)]}'
{
  "log": [
    {
      "commit": "8161239a8bcce9ad6b537c04a1fa3b5c68bae693",
      "tree": "a30738ef6e6be053e3604d7ca966a4805ef0039b",
      "parents": [
        "6fb1b304255efc5c4c93874ac8c066272e257e28"
      ],
      "author": {
        "name": "Lai Jiangshan",
        "email": "laijs@cn.fujitsu.com",
        "time": "Fri Jan 14 17:09:41 2011 +0800"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu Jan 27 21:13:51 2011 -0500"
      },
      "message": "rtmutex: Simplify PI algorithm and make highest prio task get lock\n\nIn current rtmutex, the pending owner may be boosted by the tasks\nin the rtmutex\u0027s waitlist when the pending owner is deboosted\nor a task in the waitlist is boosted. This boosting is unrelated,\nbecause the pending owner does not really take the rtmutex.\nIt is not reasonable.\n\nExample.\n\ntime1:\nA(high prio) onwers the rtmutex.\nB(mid prio) and C (low prio) in the waitlist.\n\ntime2\nA release the lock, B becomes the pending owner\nA(or other high prio task) continues to run. B\u0027s prio is lower\nthan A, so B is just queued at the runqueue.\n\ntime3\nA or other high prio task sleeps, but we have passed some time\nThe B and C\u0027s prio are changed in the period (time2 ~ time3)\ndue to boosting or deboosting. Now C has the priority higher\nthan B. ***Is it reasonable that C has to boost B and help B to\nget the rtmutex?\n\nNO!! I think, it is unrelated/unneed boosting before B really\nowns the rtmutex. We should give C a chance to beat B and\nwin the rtmutex.\n\nThis is the motivation of this patch. This patch *ensures*\nonly the top waiter or higher priority task can take the lock.\n\nHow?\n1) we don\u0027t dequeue the top waiter when unlock, if the top waiter\n   is changed, the old top waiter will fail and go to sleep again.\n2) when requiring lock, it will get the lock when the lock is not taken and:\n   there is no waiter OR higher priority than waiters OR it is top waiter.\n3) In any time, the top waiter is changed, the top waiter will be woken up.\n\nThe algorithm is much simpler than before, no pending owner, no\nboosting for pending owner.\n\nOther advantage of this patch:\n1) The states of a rtmutex are reduced a half, easier to read the code.\n2) the codes become shorter.\n3) top waiter is not dequeued until it really take the lock:\n   they will retain FIFO when it is stolen.\n\nNot advantage nor disadvantage\n1) Even we may wakeup multiple waiters(any time when top waiter changed),\n   we hardly cause \"thundering herd\",\n   the number of wokenup task is likely 1 or very little.\n2) two APIs are changed.\n   rt_mutex_owner() will not return pending owner, it will return NULL when\n                    the top waiter is going to take the lock.\n   rt_mutex_next_owner() always return the top waiter.\n\t                 will not return NULL if we have waiters\n                         because the top waiter is not dequeued.\n\n   I have fixed the code that use these APIs.\n\nneed updated after this patch is accepted\n1) Document/*\n2) the testcase scripts/rt-tester/t4-l2-pi-deboost.tst\n\nSigned-off-by:  Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nLKML-Reference: \u003c4D3012D5.4060709@cn.fujitsu.com\u003e\nReviewed-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "1d615482547584b9a8bb6316a58fed6ce90dd9ff",
      "tree": "21dae4b70acb3ce0bdaeeaee1dbd970be41d26e2",
      "parents": [
        "fe841226bd954fba4fd79f037a876053fe9c3217"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Nov 17 14:54:03 2009 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Dec 14 23:55:33 2009 +0100"
      },
      "message": "sched: Convert pi_lock to raw_spinlock\n\nConvert locks which cannot be sleeping locks in preempt-rt to\nraw_spinlocks.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nAcked-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "48d13e483c5b450be451f78cc9cb43c0bdd6b7bb",
      "tree": "c12c76e72ee5d1c202937c7327b2a05474fbcabc",
      "parents": [
        "8dc86af00612e5ccff3384c17575362a3f2a2ca0"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Fri Feb 08 04:21:53 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:41 2008 -0800"
      },
      "message": "Don\u0027t operate with pid_t in rtmutex tester\n\nThe proper behavior to store task\u0027s pid and get this task later is to get the\nstruct pid pointer and get the task with the pid_task() call.\n\nMake it for rt_mutex_waiter-\u003edeadlock_task_pid field.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ba25f9dcc4ea6e30839fcab5a5516f2176d5bfed",
      "tree": "3123c03b25dd5c0cd24b6ab4fc16731217838157",
      "parents": [
        "9a2e70572e94e21e7ec4186702d045415422bda0"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Thu Oct 18 23:40:40 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 19 11:53:43 2007 -0700"
      },
      "message": "Use helpers to obtain task pid in printks\n\nThe task_struct-\u003epid member is going to be deprecated, so start\nusing the helpers (task_pid_nr/task_pid_vnr/task_pid_nr_ns) in\nthe kernel.\n\nThe first thing to start with is the pid, printed to dmesg - in\nthis case we may safely use task_pid_nr(). Besides, printks produce\nmore (much more) than a half of all the explicit pid usage.\n\n[akpm@linux-foundation.org: git-drm went and changed lots of stuff]\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: Dave Airlie \u003cairlied@linux.ie\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a4d63e729edad704af95e5f2a56e8c8eaaa5216b",
      "tree": "d2f8e48d9c74550e3054ba2b8ac9f5e88784f8ad",
      "parents": [
        "6d76013381ed28979cd122eb4b249a88b5e384fa"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Tue Oct 16 23:26:40 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Oct 17 08:42:50 2007 -0700"
      },
      "message": "kernel/rtmutex-debug.c: cleanups\n\nThis patch contains the following cleanups:\n- make the needlessly global variable rt_trace_on static\n- remove the unused global function deadlock_trace_off()\n\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "36cf3b5c3b7228bcf5124c530d50080b61a59f69",
      "tree": "c131870530e22371da47ad7b717f61d7cb00a84e",
      "parents": [
        "0746aec3c75f23de0148774ac50cf73161f09d68"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sun Jul 15 23:41:20 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Jul 16 09:05:49 2007 -0700"
      },
      "message": "FUTEX: Tidy up the code\n\nThe recent PRIVATE and REQUEUE_PI changes to the futex code made it hard to\nread.  Tidy it up.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "038b0a6d8d32db934bba6a24e74e76e4e327a94f",
      "tree": "5fbeb3e8f140e20f8ce0e33e12b32ec5b0724cd6",
      "parents": [
        "78b656b8bf933101b42409b4492734b23427bfc3"
      ],
      "author": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Wed Oct 04 03:38:54 2006 -0400"
      },
      "committer": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Wed Oct 04 03:38:54 2006 -0400"
      },
      "message": "Remove all inclusions of \u003clinux/config.h\u003e\nkbuild explicitly includes this at build time.\n\nSigned-off-by: Dave Jones \u003cdavej@redhat.com\u003e\n"
    },
    {
      "commit": "36c8b586896f60cb91a4fd526233190b34316baf",
      "tree": "003246e1e676de33703daa979b3e3109ca202a89",
      "parents": [
        "48f24c4da1ee7f3f22289cb85e8b8a73e4df4db5"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jul 03 00:25:41 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jul 03 15:27:11 2006 -0700"
      },
      "message": "[PATCH] sched: cleanup, remove task_t, convert to struct task_struct\n\ncleanup: remove task_t and convert all the uses to struct task_struct. I\nintroduced it for the scheduler anno and it was a mistake.\n\nConversion was mostly scripted, the result was reviewed and all\nsecondary whitespace and style impact (if any) was fixed up by hand.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "9a11b49a805665e13a56aa067afaf81d43ec1514",
      "tree": "bf499956e3f67d1211d68ab1e2eb76645f453dfb",
      "parents": [
        "fb7e42413a098cc45b3adf858da290033af62bae"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jul 03 00:24:33 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jul 03 15:27:01 2006 -0700"
      },
      "message": "[PATCH] lockdep: better lock debugging\n\nGeneric lock debugging:\n\n - generalized lock debugging framework. For example, a bug in one lock\n   subsystem turns off debugging in all lock subsystems.\n\n - got rid of the caller address passing (__IP__/__IP_DECL__/etc.) from\n   the mutex/rtmutex debugging code: it caused way too much prototype\n   hackery, and lockdep will give the same information anyway.\n\n - ability to do silent tests\n\n - check lock freeing in vfree too.\n\n - more finegrained debugging options, to allow distributions to\n   turn off more expensive debugging features.\n\nThere\u0027s no separate \u0027held mutexes\u0027 list anymore - but there\u0027s a \u0027held locks\u0027\nstack within lockdep, which unifies deadlock detection across all lock\nclasses.  (this is independent of the lockdep validation stuff - lockdep first\nchecks whether we are holding a lock already)\n\nHere are the current debugging options:\n\nCONFIG_DEBUG_MUTEXES\u003dy\nCONFIG_DEBUG_LOCK_ALLOC\u003dy\n\nwhich do:\n\n config DEBUG_MUTEXES\n          bool \"Mutex debugging, basic checks\"\n\n config DEBUG_LOCK_ALLOC\n         bool \"Detect incorrect freeing of live mutexes\"\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e7eebaf6a81b956c989f184ee4b27277c88f8afe",
      "tree": "25adcfb17ec5f857791557a874cc1cced390ca9f",
      "parents": [
        "a6537be9324c67b41f6d98f5a60a1bd5a8e02861"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Jun 27 02:54:55 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jun 27 17:32:47 2006 -0700"
      },
      "message": "[PATCH] pi-futex: rt mutex debug\n\nRuntime debugging functionality for rt-mutexes.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    }
  ]
}
