)]}'
{
  "commit": "cae2ed9aa573415c6e5de9a09b7ff0d74af793bc",
  "tree": "1a7bcea760681872bcc6020843886c5597130eb4",
  "parents": [
    "1f194a4c393103ac925001d7e04b05fbb122580d"
  ],
  "author": {
    "name": "Ingo Molnar",
    "email": "mingo@elte.hu",
    "time": "Mon Jul 03 00:24:48 2006 -0700"
  },
  "committer": {
    "name": "Linus Torvalds",
    "email": "torvalds@g5.osdl.org",
    "time": "Mon Jul 03 15:27:03 2006 -0700"
  },
  "message": "[PATCH] lockdep: locking API self tests\n\nIntroduce DEBUG_LOCKING_API_SELFTESTS, which uses the generic lock debugging\ncode\u0027s silent-failure feature to run a matrix of testcases.  There are 210\ntestcases currently:\n\n  +-----------------------\n  | Locking API testsuite:\n  +------------------------------+------+------+------+------+------+------+\n                                 | spin |wlock |rlock |mutex | wsem | rsem |\n  -------------------------------+------+------+------+------+------+------+\n                     A-A deadlock:  ok  |  ok  |  ok  |  ok  |  ok  |  ok  |\n                 A-B-B-A deadlock:  ok  |  ok  |  ok  |  ok  |  ok  |  ok  |\n             A-B-B-C-C-A deadlock:  ok  |  ok  |  ok  |  ok  |  ok  |  ok  |\n             A-B-C-A-B-C deadlock:  ok  |  ok  |  ok  |  ok  |  ok  |  ok  |\n         A-B-B-C-C-D-D-A deadlock:  ok  |  ok  |  ok  |  ok  |  ok  |  ok  |\n         A-B-C-D-B-D-D-A deadlock:  ok  |  ok  |  ok  |  ok  |  ok  |  ok  |\n         A-B-C-D-B-C-D-A deadlock:  ok  |  ok  |  ok  |  ok  |  ok  |  ok  |\n                    double unlock:  ok  |  ok  |  ok  |  ok  |  ok  |  ok  |\n                 bad unlock order:  ok  |  ok  |  ok  |  ok  |  ok  |  ok  |\n  --------------------------------------+------+------+------+------+------+\n              recursive read-lock:             |  ok  |             |  ok  |\n  --------------------------------------+------+------+------+------+------+\n                non-nested unlock:  ok  |  ok  |  ok  |  ok  |\n  --------------------------------------+------+------+------+\n     hard-irqs-on + irq-safe-A/12:  ok  |  ok  |  ok  |\n     soft-irqs-on + irq-safe-A/12:  ok  |  ok  |  ok  |\n     hard-irqs-on + irq-safe-A/21:  ok  |  ok  |  ok  |\n     soft-irqs-on + irq-safe-A/21:  ok  |  ok  |  ok  |\n       sirq-safe-A \u003d\u003e hirqs-on/12:  ok  |  ok  |  ok  |\n       sirq-safe-A \u003d\u003e hirqs-on/21:  ok  |  ok  |  ok  |\n         hard-safe-A + irqs-on/12:  ok  |  ok  |  ok  |\n         soft-safe-A + irqs-on/12:  ok  |  ok  |  ok  |\n         hard-safe-A + irqs-on/21:  ok  |  ok  |  ok  |\n         soft-safe-A + irqs-on/21:  ok  |  ok  |  ok  |\n    hard-safe-A + unsafe-B #1/123:  ok  |  ok  |  ok  |\n    soft-safe-A + unsafe-B #1/123:  ok  |  ok  |  ok  |\n    hard-safe-A + unsafe-B #1/132:  ok  |  ok  |  ok  |\n    soft-safe-A + unsafe-B #1/132:  ok  |  ok  |  ok  |\n    hard-safe-A + unsafe-B #1/213:  ok  |  ok  |  ok  |\n    soft-safe-A + unsafe-B #1/213:  ok  |  ok  |  ok  |\n    hard-safe-A + unsafe-B #1/231:  ok  |  ok  |  ok  |\n    soft-safe-A + unsafe-B #1/231:  ok  |  ok  |  ok  |\n    hard-safe-A + unsafe-B #1/312:  ok  |  ok  |  ok  |\n    soft-safe-A + unsafe-B #1/312:  ok  |  ok  |  ok  |\n    hard-safe-A + unsafe-B #1/321:  ok  |  ok  |  ok  |\n    soft-safe-A + unsafe-B #1/321:  ok  |  ok  |  ok  |\n    hard-safe-A + unsafe-B #2/123:  ok  |  ok  |  ok  |\n    soft-safe-A + unsafe-B #2/123:  ok  |  ok  |  ok  |\n    hard-safe-A + unsafe-B #2/132:  ok  |  ok  |  ok  |\n    soft-safe-A + unsafe-B #2/132:  ok  |  ok  |  ok  |\n    hard-safe-A + unsafe-B #2/213:  ok  |  ok  |  ok  |\n    soft-safe-A + unsafe-B #2/213:  ok  |  ok  |  ok  |\n    hard-safe-A + unsafe-B #2/231:  ok  |  ok  |  ok  |\n    soft-safe-A + unsafe-B #2/231:  ok  |  ok  |  ok  |\n    hard-safe-A + unsafe-B #2/312:  ok  |  ok  |  ok  |\n    soft-safe-A + unsafe-B #2/312:  ok  |  ok  |  ok  |\n    hard-safe-A + unsafe-B #2/321:  ok  |  ok  |  ok  |\n    soft-safe-A + unsafe-B #2/321:  ok  |  ok  |  ok  |\n      hard-irq lock-inversion/123:  ok  |  ok  |  ok  |\n      soft-irq lock-inversion/123:  ok  |  ok  |  ok  |\n      hard-irq lock-inversion/132:  ok  |  ok  |  ok  |\n      soft-irq lock-inversion/132:  ok  |  ok  |  ok  |\n      hard-irq lock-inversion/213:  ok  |  ok  |  ok  |\n      soft-irq lock-inversion/213:  ok  |  ok  |  ok  |\n      hard-irq lock-inversion/231:  ok  |  ok  |  ok  |\n      soft-irq lock-inversion/231:  ok  |  ok  |  ok  |\n      hard-irq lock-inversion/312:  ok  |  ok  |  ok  |\n      soft-irq lock-inversion/312:  ok  |  ok  |  ok  |\n      hard-irq lock-inversion/321:  ok  |  ok  |  ok  |\n      soft-irq lock-inversion/321:  ok  |  ok  |  ok  |\n      hard-irq read-recursion/123:  ok  |\n      soft-irq read-recursion/123:  ok  |\n      hard-irq read-recursion/132:  ok  |\n      soft-irq read-recursion/132:  ok  |\n      hard-irq read-recursion/213:  ok  |\n      soft-irq read-recursion/213:  ok  |\n      hard-irq read-recursion/231:  ok  |\n      soft-irq read-recursion/231:  ok  |\n      hard-irq read-recursion/312:  ok  |\n      soft-irq read-recursion/312:  ok  |\n      hard-irq read-recursion/321:  ok  |\n      soft-irq read-recursion/321:  ok  |\n  --------------------------------+-----+----------------\n  Good, all 210 testcases passed! |\n  --------------------------------+\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",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "86e9282d1c20053058ef1525b259d2645dd99ad3",
      "old_mode": 33188,
      "old_path": "Documentation/kernel-parameters.txt",
      "new_id": "149f62ba14a5023a59a1cbaa53550b053950edb2",
      "new_mode": 33188,
      "new_path": "Documentation/kernel-parameters.txt"
    },
    {
      "type": "modify",
      "old_id": "91e338a3d0693b19c46a2407fd29785ad2de54e4",
      "old_mode": 33188,
      "old_path": "lib/Kconfig.debug",
      "new_id": "16021b09c1848bde59c572568f108ca8a91f6484",
      "new_mode": 33188,
      "new_path": "lib/Kconfig.debug"
    },
    {
      "type": "modify",
      "old_id": "4f5d01922f82f9412d92943958abf788dfe6e55c",
      "old_mode": 33188,
      "old_path": "lib/Makefile",
      "new_id": "be9719ae82d047f3d6d29f977d4086a280113b43",
      "new_mode": 33188,
      "new_path": "lib/Makefile"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "10d4a150b259c9c4022f2b3542fc8d4ceba1137c",
      "new_mode": 33188,
      "new_path": "lib/locking-selftest-hardirq.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "68601b6f584b88a189c6c082bd45278756f57fca",
      "new_mode": 33188,
      "new_path": "lib/locking-selftest-mutex.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "9f517ebcb786048efcc293606271127ebb6272c3",
      "new_mode": 33188,
      "new_path": "lib/locking-selftest-rlock-hardirq.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "981455db7ff00a51446d83bf94b8eeecf04b6ad8",
      "new_mode": 33188,
      "new_path": "lib/locking-selftest-rlock-softirq.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "6789044f4d0efd2cf0773484b9c1a4172cee00da",
      "new_mode": 33188,
      "new_path": "lib/locking-selftest-rlock.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "62da886680c7aea003b97fb7a72b12be4db3562b",
      "new_mode": 33188,
      "new_path": "lib/locking-selftest-rsem.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "a83de2a04ace78006db01dd3f1f2025d3c40b606",
      "new_mode": 33188,
      "new_path": "lib/locking-selftest-softirq.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "693198dce30ab0e88aff2eac1fe24ee4e2d4aae8",
      "new_mode": 33188,
      "new_path": "lib/locking-selftest-spin-hardirq.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "c472e2a87ffc6e168de299ed763ce76f845768fb",
      "new_mode": 33188,
      "new_path": "lib/locking-selftest-spin-softirq.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "ccd1b4b0975708e770148a30df572729636a8530",
      "new_mode": 33188,
      "new_path": "lib/locking-selftest-spin.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "2dd2e5122caa23ef05fb6f00e8c6edadb7edb678",
      "new_mode": 33188,
      "new_path": "lib/locking-selftest-wlock-hardirq.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "cb80d1cb944e65d44852741604dc323bb72a3d8e",
      "new_mode": 33188,
      "new_path": "lib/locking-selftest-wlock-softirq.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "0815322d99ed92ca38fef90f930af4054e24199b",
      "new_mode": 33188,
      "new_path": "lib/locking-selftest-wlock.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "b88c5f2dc5f0065cbb07bd4261a50fb4b65591bf",
      "new_mode": 33188,
      "new_path": "lib/locking-selftest-wsem.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "5cd05f20bdecd8e8e880cbde219f3acce27cb883",
      "new_mode": 33188,
      "new_path": "lib/locking-selftest.c"
    }
  ]
}
