)]}'
{
  "log": [
    {
      "commit": "e3a55fd18deab758a2970e0dfcd60a677a920426",
      "tree": "87a0b7e3ae565c10077b1444fda0a462e2e88a1e",
      "parents": [
        "058560fbd70190ea6b50b5df4d814bc30911d06b"
      ],
      "author": {
        "name": "Jarek Poplawski",
        "email": "jarkao2@o2.pl",
        "time": "Thu Mar 22 00:11:26 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Mar 22 19:39:06 2007 -0700"
      },
      "message": "[PATCH] lockdep: lockdep_depth vs. debug_locks\n\nlockdep found a bug during a run of workqueue function - this could be also\ncaused by a bug from other code running simultaneously.\n\nlockdep really shouldn\u0027t be used when debug_locks \u003d\u003d 0!\n\nReported-by: Folkert van Heusden \u003cfolkert@vanheusden.com\u003e\nInspired-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nSigned-off-by: Jarek Poplawski \u003cjarkao2@o2.pl\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nAcked-by: 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": "a1e96b0310d70b72012b5ecde5e97b8262785aae",
      "tree": "45c507f1f55b991d2c6696c7585e0935adf0ef06",
      "parents": [
        "473e66fd24a230e03f6f164913bedb81c0ba052a"
      ],
      "author": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Mon Feb 12 00:52:20 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Feb 12 09:48:29 2007 -0800"
      },
      "message": "[PATCH] lockdep: forward declare struct task_struct\n\n3117df0453828bd045c16244e6f50e5714667a8a causes this:\n\nIn file included from arch/s390/kernel/early.c:13:\ninclude/linux/lockdep.h:300: warning:\n\t\t\"struct task_struct\" declared inside parameter list\ninclude/linux/lockdep.h:300:\n\t\twarning: its scope is only this definition or\n\t\tdeclaration, which is probably not what you want\n\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nSigned-off-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "068135e63518314d4efd711142f674ad0841599e",
      "tree": "dbf8193b0e8f3b6c0e735b48c1f8201a6df207ac",
      "parents": [
        "381a229209aa6f7f72375797b7bcfcfe2ae6fcbb"
      ],
      "author": {
        "name": "Jason Baron",
        "email": "jbaron@redhat.com",
        "time": "Sat Feb 10 01:44:59 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Sun Feb 11 10:51:26 2007 -0800"
      },
      "message": "[PATCH] lockdep: add graph depth information to /proc/lockdep\n\nGenerate locking graph information into /proc/lockdep, for lock hierarchy\ndocumentation and visualization purposes.\n\nsample output:\n\n c089fd5c OPS:     138 FD:   14 BD:    1 --..: \u0026tty-\u003etermios_mutex\n  -\u003e [c07a3430] tty_ldisc_lock\n  -\u003e [c07a37f0] \u0026port_lock_key\n  -\u003e [c07afdc0] \u0026rq-\u003erq_lock_key#2\n\nThe lock classes listed are all the first-hop lock dependencies that\nlockdep has seen so far.\n\nSigned-off-by: 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": "3117df0453828bd045c16244e6f50e5714667a8a",
      "tree": "4f24e5b4024359dd42c91b84cbc25280f21b7314",
      "parents": [
        "27c3b23226fc649de47e4886ccbf994482f388ba"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Dec 13 00:34:43 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Wed Dec 13 09:05:50 2006 -0800"
      },
      "message": "[PATCH] lockdep: print irq-trace info on asserts\n\nWhen we print an assert due to scheduling-in-atomic bugs, and if lockdep\nis enabled, then the IRQ tracing information of lockdep can be printed\nto pinpoint the code location that disabled interrupts. This saved me\nquite a bit of debugging time in cases where the backtrace did not\nidentify the irq-disabling site well enough.\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": "ebe7e5fe4b41deeb2731c5b52d8c8e6ac08b1f74",
      "tree": "4fde2d9f7562776ef3b227d81a6dcd0928d9b13d",
      "parents": [
        "1f370a23f2a3101886953add4bd7f529e3bba016"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Wed Dec 06 20:38:21 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Dec 07 08:39:39 2006 -0800"
      },
      "message": "[PATCH] remove kernel/lockdep.c:lockdep_internal\n\nRemove the no longer used lockdep_internal().\n\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nAcked-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": "d5abe669172f20a4129a711de0f250a4e07db298",
      "tree": "8a1ae8ab51525bfa9e29707f27cc656e2275b247",
      "parents": [
        "6fb50ea79cb869667adaa71ed32cc15dd73986de"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Wed Dec 06 20:37:26 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Dec 07 08:39:36 2006 -0800"
      },
      "message": "[PATCH] debug: workqueue locking sanity\n\nWorkqueue functions should not leak locks, assert so, printing the\nlast function ran.\n\nUse macros in lockdep.h to avoid include dependency pains.\n\n[akpm@osdl.org: build fix]\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nAcked-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": "07646e217f473a3e6213f8228336a9046833d6aa",
      "tree": "78169bacc7604be9db6e63aeee92afe370c053cb",
      "parents": [
        "88aa0103e408616e433c209e80169ab8d6eda99e"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Wed Oct 11 23:45:23 2006 -0400"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dtor@insightbb.com",
        "time": "Wed Oct 11 23:45:23 2006 -0400"
      },
      "message": "Lockdep: fix compile error in drivers/input/serio/serio.c\n\nlockdep_set_subclass() was missing in !LOCKDEP case\n\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\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": "db0b0ead60815155c791e8f479ee4777e7946369",
      "tree": "013317fde85b57af3e9240858c952858a63d1773",
      "parents": [
        "ddc0a51d2e351985aa542ff650635e2fd62d3f8b"
      ],
      "author": {
        "name": "Michael S. Tsirkin",
        "email": "mst@mellanox.co.il",
        "time": "Fri Sep 29 01:59:28 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Sep 29 09:18:08 2006 -0700"
      },
      "message": "[PATCH] lockdep: don\u0027t pull in includes when lockdep disabled\n\nDo not pull in various includes through lockdep.h if lockdep is disabled.\n\nSigned-off-by: Michael S. Tsirkin \u003cmst@mellanox.co.il\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: 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": "d6d897cec29252b8d0785198cfa6ca16d30c739d",
      "tree": "01b138b10c7afa0e88e9720be3d3616e4f0bccc1",
      "parents": [
        "55794a412fdf9af1744800e5020a4ec6b21e3cdc"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jul 10 04:44:04 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jul 10 13:24:14 2006 -0700"
      },
      "message": "[PATCH] lockdep: core, reduce per-lock class-cache size\n\nlockdep_map is embedded into every lock, which blows up data structure\nsizes all around the kernel.  Reduce the class-cache to be for the default\nclass only - that is used in 99.9% of the cases and even if we dont have a\nclass cached, the lookup in the class-hash is lockless.\n\nThis change reduces the per-lock dep_map overhead by 56 bytes on 64-bit\nplatforms and by 28 bytes on 32-bit platforms.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: 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": "243c7621aac4ed1aa79524c9a1cecf7c05a28124",
      "tree": "d8f7a1fce57c9349183bfd9ab6738a763078db85",
      "parents": [
        "8b8f319fc7f4ab59f567d6a401a62659b3d37007"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jul 03 00:25:06 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jul 03 15:27:06 2006 -0700"
      },
      "message": "[PATCH] lockdep: annotate genirq\n\nTeach special (recursive) locking code to the lock validator.  Has no effect\non non-lockdep kernels.\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": "fbb9ce9530fd9b66096d5187fa6a115d16d9746c",
      "tree": "1151a55e5d56045bac17b9766e6a4696cff0a26f",
      "parents": [
        "cae2ed9aa573415c6e5de9a09b7ff0d74af793bc"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jul 03 00:24:50 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jul 03 15:27:03 2006 -0700"
      },
      "message": "[PATCH] lockdep: core\n\nDo \u0027make oldconfig\u0027 and accept all the defaults for new config options -\nreboot into the kernel and if everything goes well it should boot up fine and\nyou should have /proc/lockdep and /proc/lockdep_stats files.\n\nTypically if the lock validator finds some problem it will print out\nvoluminous debug output that begins with \"BUG: ...\" and which syslog output\ncan be used by kernel developers to figure out the precise locking scenario.\n\nWhat does the lock validator do?  It \"observes\" and maps all locking rules as\nthey occur dynamically (as triggered by the kernel\u0027s natural use of spinlocks,\nrwlocks, mutexes and rwsems).  Whenever the lock validator subsystem detects a\nnew locking scenario, it validates this new rule against the existing set of\nrules.  If this new rule is consistent with the existing set of rules then the\nnew rule is added transparently and the kernel continues as normal.  If the\nnew rule could create a deadlock scenario then this condition is printed out.\n\nWhen determining validity of locking, all possible \"deadlock scenarios\" are\nconsidered: assuming arbitrary number of CPUs, arbitrary irq context and task\ncontext constellations, running arbitrary combinations of all the existing\nlocking scenarios.  In a typical system this means millions of separate\nscenarios.  This is why we call it a \"locking correctness\" validator - for all\nrules that are observed the lock validator proves it with mathematical\ncertainty that a deadlock could not occur (assuming that the lock validator\nimplementation itself is correct and its internal data structures are not\ncorrupted by some other kernel subsystem).  [see more details and conditionals\nof this statement in include/linux/lockdep.h and\nDocumentation/lockdep-design.txt]\n\nFurthermore, this \"all possible scenarios\" property of the validator also\nenables the finding of complex, highly unlikely multi-CPU multi-context races\nvia single single-context rules, increasing the likelyhood of finding bugs\ndrastically.  In practical terms: the lock validator already found a bug in\nthe upstream kernel that could only occur on systems with 3 or more CPUs, and\nwhich needed 3 very unlikely code sequences to occur at once on the 3 CPUs.\nThat bug was found and reported on a single-CPU system (!).  So in essence a\nrace will be found \"piecemail-wise\", triggering all the necessary components\nfor the race, without having to reproduce the race scenario itself!  In its\nshort existence the lock validator found and reported many bugs before they\nactually caused a real deadlock.\n\nTo further increase the efficiency of the validator, the mapping is not per\n\"lock instance\", but per \"lock-class\".  For example, all struct inode objects\nin the kernel have inode-\u003einotify_mutex.  If there are 10,000 inodes cached,\nthen there are 10,000 lock objects.  But -\u003einotify_mutex is a single \"lock\ntype\", and all locking activities that occur against -\u003einotify_mutex are\n\"unified\" into this single lock-class.  The advantage of the lock-class\napproach is that all historical -\u003einotify_mutex uses are mapped into a single\n(and as narrow as possible) set of locking rules - regardless of how many\ndifferent tasks or inode structures it took to build this set of rules.  The\nset of rules persist during the lifetime of the kernel.\n\nTo see the rough magnitude of checking that the lock validator does, here\u0027s a\nportion of /proc/lockdep_stats, fresh after bootup:\n\n lock-classes:                            694 [max: 2048]\n direct dependencies:                  1598 [max: 8192]\n indirect dependencies:               17896\n all direct dependencies:             16206\n dependency chains:                    1910 [max: 8192]\n in-hardirq chains:                      17\n in-softirq chains:                     105\n in-process chains:                    1065\n stack-trace entries:                 38761 [max: 131072]\n combined max dependencies:         2033928\n hardirq-safe locks:                     24\n hardirq-unsafe locks:                  176\n softirq-safe locks:                     53\n softirq-unsafe locks:                  137\n irq-safe locks:                         59\n irq-unsafe locks:                      176\n\nThe lock validator has observed 1598 actual single-thread locking patterns,\nand has validated all possible 2033928 distinct locking scenarios.\n\nMore details about the design of the lock validator can be found in\nDocumentation/lockdep-design.txt, which can also found at:\n\n   http://redhat.com/~mingo/lockdep-patches/lockdep-design.txt\n\n[bunk@stusta.de: cleanups]\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    }
  ]
}
