)]}'
{
  "log": [
    {
      "commit": "214f766ea0909e743122966c4617b3a112e405d7",
      "tree": "039650e9c3a803d30c6ee183138c63d5dcafe480",
      "parents": [
        "ca279cf1065fb689abea1dc7d8c11787729bb185"
      ],
      "author": {
        "name": "Vikram Mulukutla",
        "email": "markivx@codeaurora.org",
        "time": "Thu Oct 04 17:13:22 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Oct 06 03:04:57 2012 +0900"
      },
      "message": "lib/spinlock_debug: avoid livelock in do_raw_spin_lock()\n\nThe logic in do_raw_spin_lock() attempts to acquire a spinlock by invoking\narch_spin_trylock() in a loop with a delay between each attempt.  Now\nconsider the following situation in a 2 CPU system:\n\n1. CPU-0 continually acquires and releases a spinlock in a\n   tight loop; it stays in this loop until some condition X\n   is satisfied. X can only be satisfied by another CPU.\n\n2. CPU-1 tries to acquire the same spinlock, in an attempt\n   to satisfy the aforementioned condition X. However, it\n   never sees the unlocked value of the lock because the\n   debug spinlock code uses trylock instead of just lock;\n   it checks at all the wrong moments - whenever CPU-0 has\n   locked the lock.\n\nNow in the absence of debug spinlocks, the architecture specific spinlock\ncode can correctly allow CPU-1 to wait in a \"queue\" (e.g., ticket\nspinlocks), ensuring that it acquires the lock at some point.  However,\nwith the debug spinlock code, livelock can easily occur due to the use of\ntry_lock, which obviously cannot put the CPU in that \"queue\".  This\nqueueing mechanism is implemented in both x86 and ARM spinlock code.\n\nNote that the situation mentioned above is not hypothetical.  A real\nproblem was encountered where CPU-0 was running hrtimer_cancel with\ninterrupts disabled, and CPU-1 was attempting to run the hrtimer that\nCPU-0 was trying to cancel.\n\nAddress this by actually attempting arch_spin_lock once it is suspected\nthat there is a spinlock lockup.  If we\u0027re in a situation that is\ndescribed above, the arch_spin_lock should succeed; otherwise other\ntimeout mechanisms (e.g., watchdog) should alert the system of a lockup.\nTherefore, if there is a genuine system problem and the spinlock can\u0027t be\nacquired, the end result (irrespective of this change being present) is\nthe same.  If there is a livelock caused by the debug code, this change\nwill allow the lock to be acquired, depending on the implementation of the\nlower level arch specific spinlock code.\n\n[akpm@linux-foundation.org: tweak comment]\nSigned-off-by: Vikram Mulukutla \u003cmarkivx@codeaurora.org\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4b0681487bf72fdb86b42c93b7d8a607e5a426b1",
      "tree": "908da53ebb82951b1051f0c2021857fac9d7563f",
      "parents": [
        "7463449b8287162454d7e00bf7fd2c64f72c1dc8"
      ],
      "author": {
        "name": "Stephen Boyd",
        "email": "sboyd@codeaurora.org",
        "time": "Mon Jul 30 14:41:11 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 30 17:25:16 2012 -0700"
      },
      "message": "spinlock_debug: print offset in addition to symbol name\n\nIf there are two spinlocks embedded in a structure that kallsyms knows\nabout and one of the spinlocks locks up we will print the name of the\ncontaining structure instead of the address of the lock.  This is quite\nbad, so let\u0027s use %pS instead of %ps so we get an offset in addition to\nthe symbol so we can determine which particular lock is having problems.\n\nSigned-off-by: Stephen Boyd \u003csboyd@codeaurora.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8a173b1476d126674104c7c5c6cef0bcd824b001",
      "tree": "788d4c8a018ee939f7b7fcbb782a23259e274d2c",
      "parents": [
        "c7f5f4ab10ce4e05b9f8877f1fd112faba71f175"
      ],
      "author": {
        "name": "Christian Borntraeger",
        "email": "borntraeger@de.ibm.com",
        "time": "Tue May 29 11:18:44 2012 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Wed Jun 06 11:34:20 2012 +0200"
      },
      "message": "spinlock: Indicate that a lockup is only suspected\n\nOn an over-committed KVM system we got a:\n\n  \"BUG: spinlock lockup on CPU#2, swapper/2/0\"\n\nmessage on the heavily contended virtio blk spinlock.\n\nWhile we might want to reconsider the locking of virtio-blk\n(lock is held while switching to the host) this patch tries to\nmake the message clearer: the lockup is only suspected.\n\nSigned-off-by: Christian Borntraeger \u003cborntraeger@de.ibm.com\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Michael S. Tsirkin \u003cmst@redhat.com\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/1338283124-7063-1-git-send-email-borntraeger@de.ibm.com\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "fd0a37355c4d39affa39d5cd75168fb94b292318",
      "tree": "66bdbffce2ce960ff4566ed9dd6bd0e5e6f0eee2",
      "parents": [
        "4796dd200db943e36f876e7029552212e5bbdf33"
      ],
      "author": {
        "name": "Stephen Boyd",
        "email": "sboyd@codeaurora.org",
        "time": "Tue May 29 15:07:34 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 29 16:22:33 2012 -0700"
      },
      "message": "spinlock_debug: print kallsyms name for lock\n\nWhen a spinlock warning is printed we usually get\n\n BUG: spinlock bad magic on CPU#0, modprobe/111\n  lock: 0xdff09f38, .magic: 00000000, .owner: /0, .owner_cpu: 0\n\nbut it\u0027s nicer to print the symbol for the lock if we have it so that we\ncan avoid \u0027grep dff09f38 /proc/kallsyms\u0027 to find out which lock it was.\nUse kallsyms to print the symbol name so we get something a bit easier to\nread\n\n BUG: spinlock bad magic on CPU#0, modprobe/112\n  lock: test_lock, .magic: 00000000, .owner: \u003cnone\u003e/-1, .owner_cpu: 0\n\nIf the lock is not in kallsyms %ps will fall back to printing the address\ndirectly.\n\nSigned-off-by: Stephen Boyd \u003csboyd@codeaurora.org\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8bc3bcc93a2b4e47d5d410146f6546bca6171663",
      "tree": "101f55a96f751749041c90c32ef1ba89f94dc4d1",
      "parents": [
        "630d9c47274aa89bfa77fe6556d7818bdcb12992"
      ],
      "author": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Wed Nov 16 21:29:17 2011 -0500"
      },
      "committer": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Wed Mar 07 15:04:04 2012 -0500"
      },
      "message": "lib: reduce the use of module.h wherever possible\n\nFor files only using THIS_MODULE and/or EXPORT_SYMBOL, map\nthem onto including export.h -- or if the file isn\u0027t even\nusing those, then just delete the include.  Fix up any implicit\ninclude dependencies that were being masked by module.h along\nthe way.\n\nSigned-off-by: Paul Gortmaker \u003cpaul.gortmaker@windriver.com\u003e\n"
    },
    {
      "commit": "4e101b0e6aa885f5786a058eefc1ce4b7cc7c44e",
      "tree": "427a6aa51ec4a278bcfc749d4a8129cf9fe20f83",
      "parents": [
        "1dff46d6987484eaa31f2fb1425216ba06418be3"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Mon Oct 31 17:12:29 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 31 17:30:56 2011 -0700"
      },
      "message": "lib/spinlock_debug.c: print owner on spinlock lockup\n\nWhen SPIN_BUG_ON is triggered, the lock owner information is reported.\nBut it is omitted when spinlock lockup is detected.\n\nThis information is useful especially on the architectures which don\u0027t\nimplement trigger_all_cpu_backtrace() that is called just after detecting\nlockup.  So report it and also avoid message format duplication.\n\nSigned-off-by: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@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": "9828ea9d75c38fe3dce05d00566eed61c85732e6",
      "tree": "6cee5c8ffb07cdf45cc12d58f74a3053ffefcb5f",
      "parents": [
        "5f6384c5fb6bfc9aac506e058974d3ba293951b3"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Thu Dec 03 20:55:53 2009 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Dec 14 23:55:33 2009 +0100"
      },
      "message": "locking: Further name space cleanups\n\nThe name space hierarchy for the internal lock functions is now a bit\nbackwards. raw_spin* functions map to _spin* which use __spin*, while\nwe would like to have _raw_spin* and __raw_spin*.\n\n_raw_spin* is already used by lock debugging, so rename those funtions\nto do_raw_spin* to free up the _raw_spin* name space.\n\nNo functional change.\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": "c2f21ce2e31286a0a32f8da0a7856e9ca1122ef3",
      "tree": "6cc8d1fd37ffa6d02481353857b92734241f4dd0",
      "parents": [
        "e5931943d02bf751b1ec849c0d2ade23d76a8d41"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Wed Dec 02 20:02:59 2009 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Dec 14 23:55:32 2009 +0100"
      },
      "message": "locking: Implement new raw_spinlock\n\nNow that the raw_spin name space is freed up, we can implement\nraw_spinlock and the related functions which are used to annotate the\nlocks which are not converted to sleeping spinlocks in preempt-rt.\n\nA side effect is that only such locks can be used with the low level\nlock fsunctions which circumvent lockdep.\n\nFor !rt spin_* functions are mapped to the raw_spin* implementations.\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\n"
    },
    {
      "commit": "e5931943d02bf751b1ec849c0d2ade23d76a8d41",
      "tree": "119fe3bc583d0d043d97cb9edd98bad52692a546",
      "parents": [
        "fb3a6bbc912b12347614e5742c7c61416cdb0ca0"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Thu Dec 03 20:08:46 2009 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Dec 14 23:55:32 2009 +0100"
      },
      "message": "locking: Convert raw_rwlock functions to arch_rwlock\n\nName space cleanup for rwlock functions. No functional change.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nAcked-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nAcked-by: David S. Miller \u003cdavem@davemloft.net\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: linux-arch@vger.kernel.org\n"
    },
    {
      "commit": "fb3a6bbc912b12347614e5742c7c61416cdb0ca0",
      "tree": "f9dbf8dab23cea6f033a58672ba16abf2ae09ebd",
      "parents": [
        "0199c4e68d1f02894bdefe4b5d9e9ee4aedd8d62"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Thu Dec 03 20:01:19 2009 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Dec 14 23:55:32 2009 +0100"
      },
      "message": "locking: Convert raw_rwlock to arch_rwlock\n\nNot strictly necessary for -rt as -rt does not have non sleeping\nrwlocks, but it\u0027s odd to not have a consistent naming convention.\n\nNo functional change.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nAcked-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nAcked-by: David S. Miller \u003cdavem@davemloft.net\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: linux-arch@vger.kernel.org\n\n"
    },
    {
      "commit": "0199c4e68d1f02894bdefe4b5d9e9ee4aedd8d62",
      "tree": "e371d17bd73d64332349debbf45962ec67e7269d",
      "parents": [
        "edc35bd72e2079b25f99c5da7d7a65dbbffc4a26"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Wed Dec 02 20:01:25 2009 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Dec 14 23:55:32 2009 +0100"
      },
      "message": "locking: Convert __raw_spin* functions to arch_spin*\n\nName space cleanup. No functional change.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nAcked-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nAcked-by: David S. Miller \u003cdavem@davemloft.net\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: linux-arch@vger.kernel.org\n"
    },
    {
      "commit": "edc35bd72e2079b25f99c5da7d7a65dbbffc4a26",
      "tree": "a4fac9d24d243d3296fc36a2371db2a56d363e1a",
      "parents": [
        "445c89514be242b1b0080056d50bdc1b72adeb5c"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Thu Dec 03 12:38:57 2009 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Dec 14 23:55:32 2009 +0100"
      },
      "message": "locking: Rename __RAW_SPIN_LOCK_UNLOCKED to __ARCH_SPIN_LOCK_UNLOCKED\n\nFurther name space cleanup. No functional change\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nAcked-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nAcked-by: David S. Miller \u003cdavem@davemloft.net\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: linux-arch@vger.kernel.org\n"
    },
    {
      "commit": "445c89514be242b1b0080056d50bdc1b72adeb5c",
      "tree": "96ed062794ad0fb6a649713c83f009eea382e8b2",
      "parents": [
        "6b6b4792f89346e47437682c7ba3438e6681c0f9"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Wed Dec 02 19:49:50 2009 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Dec 14 23:55:32 2009 +0100"
      },
      "message": "locking: Convert raw_spinlock to arch_spinlock\n\nThe raw_spin* namespace was taken by lockdep for the architecture\nspecific implementations. raw_spin_* would be the ideal name space for\nthe spinlocks which are not converted to sleeping locks in preempt-rt.\n\nLinus suggested to convert the raw_ to arch_ locks and cleanup the\nname space instead of using an artifical name like core_spin,\natomic_spin or whatever\n\nNo functional change.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nAcked-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nAcked-by: David S. Miller \u003cdavem@davemloft.net\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: linux-arch@vger.kernel.org\n\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": "bb81a09e55eaf7e5f798468ab971469b6f66a259",
      "tree": "cf1ed6b0ad75137361228955535044fd4630a57b",
      "parents": [
        "e5e3a0428968dcc1f9318ce1c941a918e99f8b84"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Thu Dec 07 02:14:01 2006 +0100"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "andi@basil.nowhere.org",
        "time": "Thu Dec 07 02:14:01 2006 +0100"
      },
      "message": "[PATCH] x86: all cpu backtrace\n\nWhen a spinlock lockup occurs, arrange for the NMI code to emit an all-cpu\nbacktrace, so we get to see which CPU is holding the lock, and where.\n\nCc: Andi Kleen \u003cak@muc.de\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Badari Pulavarty \u003cpbadari@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\n"
    },
    {
      "commit": "4dfbb9d8c6cbfc32faa5c71145bd2a43e1f8237c",
      "tree": "a4fefea0d5f5930240f4ecd6f9716a029cc927a9",
      "parents": [
        "86255d9d0bede79140f4912482447963f00818c0"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Wed Oct 11 01:45:14 2006 -0400"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dtor@insightbb.com",
        "time": "Wed Oct 11 01:45:14 2006 -0400"
      },
      "message": "Lockdep: add lockdep_set_class_and_subclass() and lockdep_set_subclass()\n\nThis annotation makes it possible to assign a subclass on lock init. This\nannotation is meant to reduce the _nested() annotations by assigning a\ndefault subclass.\n\nOne could do without this annotation and rely on lockdep_set_class()\nexclusively, but that would require a manual stack of struct lock_class_key\nobjects.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "c22f008ba226e2ff25ee1a56abd9c5fd355828fc",
      "tree": "ffa01da1cf0dec73de897889a1aa5f354f521df1",
      "parents": [
        "92a0f861fe1790dad55ea249169d94f2dc88d696"
      ],
      "author": {
        "name": "Chuck Ebbert",
        "email": "76306.1226@compuserve.com",
        "time": "Fri Sep 29 01:59:14 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Sep 29 09:18:06 2006 -0700"
      },
      "message": "[PATCH] spinlock_debug: don\u0027t recompute (jiffies_per_loop * HZ) in spinloop\n\nIn spinlock_debug.c, the spinloops call __delay() on every iteration.\nBecause that is an external function, (jiffies_per_loop * HZ), the loop\u0027s\niteration limit, gets recomputed every time.  Caching it explicitly\nprevents that.\n\nSigned-off-by: Chuck Ebbert \u003c76306.1226@compuserve.com\u003e\nCc: 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": "72f0b4e2133ba1d65147d06016c0b6d2202235ca",
      "tree": "5e03d0c34379db77f50238c546f5417139ac9671",
      "parents": [
        "927cbe8a3e9ebc466f76af5a5278a520dc2d5699"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Sat Aug 05 12:13:47 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Aug 06 08:57:46 2006 -0700"
      },
      "message": "[PATCH] disable debugging version of write_lock()\n\nWe\u0027ve confirmed that the debug version of write_lock() can get stuck for long\nenough to cause NMI watchdog timeouts and hence a crash.\n\nWe don\u0027t know why, yet.   Disable it for now.\n\nAlso disable the similar read_lock() code.  Just in case.\n\nThanks to Dave Olson \u003colson@unixfolk.com\u003e for reporting and testing.\n\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "8a25d5debff2daee280e83e09d8c25d67c26a972",
      "tree": "3bccfef9acb66fc62863bfd6c16493c5e8c8e394",
      "parents": [
        "4ea2176dfa714882e88180b474e4cbcd888b70af"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jul 03 00:24:54 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jul 03 15:27:04 2006 -0700"
      },
      "message": "[PATCH] lockdep: prove spinlock rwlock locking correctness\n\nUse the lock validator framework to prove spinlock and rwlock locking\ncorrectness.\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": "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": "6ab3d5624e172c553004ecc862bfeac16d9d68b7",
      "tree": "6d98881fe91fd9583c109208d5c27131b93fa248",
      "parents": [
        "e02169b682bc448ccdc819dc8639ed34a23cedd8"
      ],
      "author": {
        "name": "Jörn Engel",
        "email": "joern@wohnheim.fh-wedel.de",
        "time": "Fri Jun 30 19:25:36 2006 +0200"
      },
      "committer": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Fri Jun 30 19:25:36 2006 +0200"
      },
      "message": "Remove obsolete #include \u003clinux/config.h\u003e\n\nSigned-off-by: Jörn Engel \u003cjoern@wohnheim.fh-wedel.de\u003e\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\n"
    },
    {
      "commit": "e0a602963485a2f109ae1521c0c55507304c63ed",
      "tree": "38900590f1d4f129cfd8748949ff62f7d3296aee",
      "parents": [
        "8519fb30e438f8088b71a94a7d5a660a814d3872"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Feb 07 12:58:54 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Feb 07 16:12:33 2006 -0800"
      },
      "message": "[PATCH] Fix spinlock debugging delays to not time out too early\n\nThe spinlock-debug wait-loop was using loops_per_jiffy to detect too long\nspinlock waits - but on fast CPUs this led to a way too fast timeout and false\nmessages.\n\nThe fix is to include a __delay(1) call in the loop, to correctly approximate\nthe intended delay timeout of 1 second.  The code assumes that every\narchitecture implements __delay(1) to last around 1/(loops_per_jiffy*HZ)\nseconds.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Andi Kleen \u003cak@muc.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "51989b9ffeea58999054fe3f21bd0cd0bd207e5a",
      "tree": "a293e5fc792eeee2acc96cb9cd18d3ed6c4e8e5a",
      "parents": [
        "0ad42352c01788e41a33336577fdd270d8de55bb"
      ],
      "author": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Mon Jan 09 20:51:32 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jan 10 08:01:24 2006 -0800"
      },
      "message": "[PATCH] printk levels for spinlock debug\n\nSigned-off-by: Dave Jones \u003cdavej@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "bb44f116a14c4c932f15c79acfafd46bcb43ca9a",
      "tree": "d8f5dc090cef75f22e7ca152298096bb2877b6b8",
      "parents": [
        "391eadeec836463a4e6e3843953bbe40f6522593"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Dec 20 11:54:17 2005 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Dec 20 10:47:55 2005 -0800"
      },
      "message": "[PATCH] fix spinlock-debugging smp_processor_id() usage\n\nWhen a spinlock debugging check hits, we print the CPU number as an\ninformational thing - but there is no guarantee that preemption is off\nat that point - hence we should use raw_smp_processor_id().  Otherwise\nDEBUG_PREEMPT will print a warning.\n\nWith this fix the warning goes away and only the spinlock-debugging info\nis printed.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "fb1c8f93d869b34cacb8b8932e2b83d96a19d720",
      "tree": "a006d078aa02e421a7dc4793c335308204859d36",
      "parents": [
        "4327edf6b8a7ac7dce144313947995538842d8fd"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Sep 10 00:25:56 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Sep 10 10:06:21 2005 -0700"
      },
      "message": "[PATCH] spinlock consolidation\n\nThis patch (written by me and also containing many suggestions of Arjan van\nde Ven) does a major cleanup of the spinlock code.  It does the following\nthings:\n\n - consolidates and enhances the spinlock/rwlock debugging code\n\n - simplifies the asm/spinlock.h files\n\n - encapsulates the raw spinlock type and moves generic spinlock\n   features (such as -\u003ebreak_lock) into the generic code.\n\n - cleans up the spinlock code hierarchy to get rid of the spaghetti.\n\nMost notably there\u0027s now only a single variant of the debugging code,\nlocated in lib/spinlock_debug.c.  (previously we had one SMP debugging\nvariant per architecture, plus a separate generic one for UP builds)\n\nAlso, i\u0027ve enhanced the rwlock debugging facility, it will now track\nwrite-owners.  There is new spinlock-owner/CPU-tracking on SMP builds too.\nAll locks have lockup detection now, which will work for both soft and hard\nspin/rwlock lockups.\n\nThe arch-level include files now only contain the minimally necessary\nsubset of the spinlock code - all the rest that can be generalized now\nlives in the generic headers:\n\n include/asm-i386/spinlock_types.h       |   16\n include/asm-x86_64/spinlock_types.h     |   16\n\nI have also split up the various spinlock variants into separate files,\nmaking it easier to see which does what. The new layout is:\n\n   SMP                         |  UP\n   ----------------------------|-----------------------------------\n   asm/spinlock_types_smp.h    |  linux/spinlock_types_up.h\n   linux/spinlock_types.h      |  linux/spinlock_types.h\n   asm/spinlock_smp.h          |  linux/spinlock_up.h\n   linux/spinlock_api_smp.h    |  linux/spinlock_api_up.h\n   linux/spinlock.h            |  linux/spinlock.h\n\n/*\n * here\u0027s the role of the various spinlock/rwlock related include files:\n *\n * on SMP builds:\n *\n *  asm/spinlock_types.h: contains the raw_spinlock_t/raw_rwlock_t and the\n *                        initializers\n *\n *  linux/spinlock_types.h:\n *                        defines the generic type and initializers\n *\n *  asm/spinlock.h:       contains the __raw_spin_*()/etc. lowlevel\n *                        implementations, mostly inline assembly code\n *\n *   (also included on UP-debug builds:)\n *\n *  linux/spinlock_api_smp.h:\n *                        contains the prototypes for the _spin_*() APIs.\n *\n *  linux/spinlock.h:     builds the final spin_*() APIs.\n *\n * on UP builds:\n *\n *  linux/spinlock_type_up.h:\n *                        contains the generic, simplified UP spinlock type.\n *                        (which is an empty structure on non-debug builds)\n *\n *  linux/spinlock_types.h:\n *                        defines the generic type and initializers\n *\n *  linux/spinlock_up.h:\n *                        contains the __raw_spin_*()/etc. version of UP\n *                        builds. (which are NOPs on non-debug, non-preempt\n *                        builds)\n *\n *   (included on UP-non-debug builds:)\n *\n *  linux/spinlock_api_up.h:\n *                        builds the _spin_*() APIs.\n *\n *  linux/spinlock.h:     builds the final spin_*() APIs.\n */\n\nAll SMP and UP architectures are converted by this patch.\n\narm, i386, ia64, ppc, ppc64, s390/s390x, x64 was build-tested via\ncrosscompilers.  m32r, mips, sh, sparc, have not been tested yet, but should\nbe mostly fine.\n\nFrom: Grant Grundler \u003cgrundler@parisc-linux.org\u003e\n\n  Booted and lightly tested on a500-44 (64-bit, SMP kernel, dual CPU).\n  Builds 32-bit SMP kernel (not booted or tested).  I did not try to build\n  non-SMP kernels.  That should be trivial to fix up later if necessary.\n\n  I converted bit ops atomic_hash lock to raw_spinlock_t.  Doing so avoids\n  some ugly nesting of linux/*.h and asm/*.h files.  Those particular locks\n  are well tested and contained entirely inside arch specific code.  I do NOT\n  expect any new issues to arise with them.\n\n If someone does ever need to use debug/metrics with them, then they will\n  need to unravel this hairball between spinlocks, atomic ops, and bit ops\n  that exist only because parisc has exactly one atomic instruction: LDCW\n  (load and clear word).\n\nFrom: \"Luck, Tony\" \u003ctony.luck@intel.com\u003e\n\n   ia64 fix\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Arjan van de Ven \u003carjanv@infradead.org\u003e\nSigned-off-by: Grant Grundler \u003cgrundler@parisc-linux.org\u003e\nCc: Matthew Wilcox \u003cwilly@debian.org\u003e\nSigned-off-by: Hirokazu Takata \u003ctakata@linux-m32r.org\u003e\nSigned-off-by: Mikael Pettersson \u003cmikpe@csd.uu.se\u003e\nSigned-off-by: Benoit Boissinot \u003cbenoit.boissinot@ens-lyon.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    }
  ]
}
