)]}'
{
  "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": "8dac456a681bd94272ff50ecb31be6b669382c2b",
      "tree": "1558cac565781e503c6a793a7921b49c0ace9a22",
      "parents": [
        "dd9739980b50c8cde33e1f8eb08b7e0140bcd61e"
      ],
      "author": {
        "name": "Darren Hart",
        "email": "dvhltc@us.ibm.com",
        "time": "Fri Apr 03 13:40:12 2009 -0700"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Apr 06 11:14:02 2009 +0200"
      },
      "message": "rt_mutex: add proxy lock routines\n\nThis patch is a prerequisite for futex requeue_pi. It basically splits\nrt_mutex_slowlock() right down the middle, just before the first call\nto schedule(). It further adds helper functions which make use of the\nsplit and provide the rt-mutex preliminaries for futex requeue_pi.\n\nSigned-off-by: Darren Hart \u003cdvhltc@us.ibm.com\u003e\nReviewed-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\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": "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": "bd197234b0a616c8f04f6b682326a5a24b33ca92",
      "tree": "1c31f8934b0d5472c9038c042ff27d08b52ffdc6",
      "parents": [
        "188e1f81ba31af1b65a2f3611df4c670b092bbac"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sun Jun 17 21:11:10 2007 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Jun 18 09:48:41 2007 -0700"
      },
      "message": "Revert \"futex_requeue_pi optimization\"\n\nThis reverts commit d0aa7a70bf03b9de9e995ab272293be1f7937822.\n\nIt not only introduced user space visible changes to the futex syscall,\nit is also non-functional and there is no way to fix it proper before\nthe 2.6.22 release.\n\nThe breakage report ( http://lkml.org/lkml/2007/5/12/17 ) went\nunanswered, and unfortunately it turned out that the concept is not\nfeasible at all.  It violates the rtmutex semantics badly by introducing\na virtual owner, which hacks around the coupling of the user-space\npi_futex and the kernel internal rt_mutex representation.\n\nAt the moment the only safe option is to remove it fully as it contains\nuser-space visible changes to broken kernel code, which we do not want\nto expose in the 2.6.22 release.\n\nThe patch reverts the original patch mostly 1:1, but contains a couple\nof trivial manual cleanups which were necessary due to patches, which\ntouched the same area of code later.\n\nVerified against the glibc tests and my own PI futex tests.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nAcked-by: Ulrich Drepper \u003cdrepper@redhat.com\u003e\nCc: Pierre Peiffer \u003cpierre.peiffer@bull.net\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d0aa7a70bf03b9de9e995ab272293be1f7937822",
      "tree": "194b30b7b8374b946f166996cb99fb95eb3b7819",
      "parents": [
        "c19384b5b296905d4988c7c684ff540a0f9d65be"
      ],
      "author": {
        "name": "Pierre Peiffer",
        "email": "pierre.peiffer@bull.net",
        "time": "Wed May 09 02:35:02 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:55 2007 -0700"
      },
      "message": "futex_requeue_pi optimization\n\nThis patch provides the futex_requeue_pi functionality, which allows some\nthreads waiting on a normal futex to be requeued on the wait-queue of a\nPI-futex.\n\nThis provides an optimization, already used for (normal) futexes, to be used\nwith the PI-futexes.\n\nThis optimization is currently used by the glibc in pthread_broadcast, when\nusing \"normal\" mutexes.  With futex_requeue_pi, it can be used with\nPRIO_INHERIT mutexes too.\n\nSigned-off-by: Pierre Peiffer \u003cpierre.peiffer@bull.net\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Ulrich Drepper \u003cdrepper@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c87e2837be82df479a6bae9f155c43516d2feebc",
      "tree": "ad6ab35f0b78f71abaa7b05185e9e3f97809c6de",
      "parents": [
        "0cdbee9920fb37eb2dc49b860c2b28862d647adc"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Jun 27 02:54:58 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jun 27 17:32:47 2006 -0700"
      },
      "message": "[PATCH] pi-futex: futex_lock_pi/futex_unlock_pi support\n\nThis adds the actual pi-futex implementation, based on rt-mutexes.\n\n[dino@in.ibm.com: fix an oops-causing race]\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: Dinakar Guniguntala \u003cdino@in.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "61a87122869b6340a63b6f9f84097d3688604b90",
      "tree": "11d60d29763a42abd66453a920cc06bebc852427",
      "parents": [
        "e7eebaf6a81b956c989f184ee4b27277c88f8afe"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Jun 27 02:54:56 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 tester\n\nRT-mutex tester: scriptable tester for rt mutexes, which allows userspace\nscripting of mutex unit-tests (and dynamic tests as well), using the actual\nrt-mutex implementation of the kernel.\n\n[akpm@osdl.org: fixlet]\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\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": "23f78d4a03c53cbd75d87a795378ea540aa08c86",
      "tree": "27dfe06337990911380fe8c5949ae9acd8e9568a",
      "parents": [
        "b29739f902ee76a05493fb7d2303490fc75364f4"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Jun 27 02:54:53 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 core\n\nCore functions for the rt-mutex subsystem.\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"
    }
  ]
}
