)]}'
{
  "log": [
    {
      "commit": "35b740e4662ef386f0c60e1b60aaf5b44db9914c",
      "tree": "502a8f9499bc1b4cb3300d666dab2d01a1921224",
      "parents": [
        "423d091dfe58d3109d84c408810a7cfa82f6f184",
        "9e183426bfb52bb44bf3c443d6587e4d02478603"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 06 08:02:58 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 06 08:02:58 2012 -0800"
      },
      "message": "Merge branch \u0027perf-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\n* \u0027perf-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (106 commits)\n  perf kvm: Fix copy \u0026 paste error in description\n  perf script: Kill script_spec__delete\n  perf top: Fix a memory leak\n  perf stat: Introduce get_ratio_color() helper\n  perf session: Remove impossible condition check\n  perf tools: Fix feature-bits rework fallout, remove unused variable\n  perf script: Add generic perl handler to process events\n  perf tools: Use for_each_set_bit() to iterate over feature flags\n  perf tools: Unify handling of features when writing feature section\n  perf report: Accept fifos as input file\n  perf tools: Moving code in some files\n  perf tools: Fix out-of-bound access to struct perf_session\n  perf tools: Continue processing header on unknown features\n  perf tools: Improve macros for struct feature_ops\n  perf: builtin-record: Document and check that mmap_pages must be a power of two.\n  perf: builtin-record: Provide advice if mmap\u0027ing fails with EPERM.\n  perf tools: Fix truncated annotation\n  perf script: look up thread using tid instead of pid\n  perf tools: Look up thread names for system wide profiling\n  perf tools: Fix comm for processes with named threads\n  ...\n"
    },
    {
      "commit": "423d091dfe58d3109d84c408810a7cfa82f6f184",
      "tree": "43c4385d1dc7219582f924d42db1f3e203a577bd",
      "parents": [
        "1483b3823542c9721eddf09a077af1e02ac96b50",
        "919b83452b2e7c1dbced0456015508b4b9585db3"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 06 08:02:40 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 06 08:02:40 2012 -0800"
      },
      "message": "Merge branch \u0027core-rcu-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\n* \u0027core-rcu-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (64 commits)\n  cpu: Export cpu_up()\n  rcu: Apply ACCESS_ONCE() to rcu_boost() return value\n  Revert \"rcu: Permit rt_mutex_unlock() with irqs disabled\"\n  docs: Additional LWN links to RCU API\n  rcu: Augment rcu_batch_end tracing for idle and callback state\n  rcu: Add rcutorture tests for srcu_read_lock_raw()\n  rcu: Make rcutorture test for hotpluggability before offlining CPUs\n  driver-core/cpu: Expose hotpluggability to the rest of the kernel\n  rcu: Remove redundant rcu_cpu_stall_suppress declaration\n  rcu: Adaptive dyntick-idle preparation\n  rcu: Keep invoking callbacks if CPU otherwise idle\n  rcu: Irq nesting is always 0 on rcu_enter_idle_common\n  rcu: Don\u0027t check irq nesting from rcu idle entry/exit\n  rcu: Permit dyntick-idle with callbacks pending\n  rcu: Document same-context read-side constraints\n  rcu: Identify dyntick-idle CPUs on first force_quiescent_state() pass\n  rcu: Remove dynticks false positives and RCU failures\n  rcu: Reduce latency of rcu_prepare_for_idle()\n  rcu: Eliminate RCU_FAST_NO_HZ grace-period hang\n  rcu: Avoid needlessly IPIing CPUs at GP end\n  ...\n"
    },
    {
      "commit": "d87f69a16eb2cb96459117b06949a560679002e4",
      "tree": "bbb55b2bd2b6c9e8bd4067aa3279783cb6bd9028",
      "parents": [
        "124ba9403318d834ef21bcd899c22c870708d2c4",
        "384703b8e6cd4c8ef08512e596024e028c91c339"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Dec 20 20:32:03 2011 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Dec 20 20:32:11 2011 +0100"
      },
      "message": "Merge commit \u0027v3.2-rc6\u0027 into perf/core\n\nMerge reason: Update with the latest fixes.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "0464e937485f15d2add78e3b0f498469f4e6600d",
      "tree": "4007c0643436591850ac8bc87e03601afb8f1920",
      "parents": [
        "e6b80a3b0994ea6c3d876d72464f2debbfcfeb05"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Fri Oct 07 18:22:01 2011 +0200"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Sun Dec 11 10:31:30 2011 -0800"
      },
      "message": "rcu: Inform the user about extended quiescent state on PROVE_RCU warning\n\nInform the user if an RCU usage error is detected by lockdep while in\nan extended quiescent state (in this case, the RCU-free window in idle).\nThis is accomplished by adding a line to the RCU lockdep splat indicating\nwhether or not the splat occurred in extended quiescent state.\n\nUses of RCU from within extended quiescent state mode are totally ignored\nby RCU, hence the importance of this diagnostic.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nReviewed-by: Josh Triplett \u003cjosh@joshtriplett.org\u003e\n"
    },
    {
      "commit": "a33caeb118198286309859f014c0662f3ed54ed4",
      "tree": "c9bc38bef15bd7167ab27e1285d56a1e6cef4549",
      "parents": [
        "ddf6e0e50723b62ac76ed18eb53e9417c6eefba7"
      ],
      "author": {
        "name": "Yong Zhang",
        "email": "yong.zhang0@gmail.com",
        "time": "Wed Nov 09 16:04:51 2011 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Dec 06 18:18:13 2011 +0100"
      },
      "message": "lockdep, kmemcheck: Annotate -\u003elock in lockdep_init_map()\n\nSince commit f59de89 (\"lockdep: Clear whole lockdep_map on initialization\"),\nlockdep_init_map() will clear all the struct. But it will break\nlock_set_class()/lock_set_subclass(). A typical race condition\nis like below:\n\n     CPU A                                   CPU B\nlock_set_subclass(lockA);\n lock_set_class(lockA);\n   lockdep_init_map(lockA);\n     /* lockA-\u003ename is cleared */\n     memset(lockA);\n                                     __lock_acquire(lockA);\n                                       /* lockA-\u003eclass_cache[] is cleared */\n                                       register_lock_class(lockA);\n                                         look_up_lock_class(lockA);\n                                           WARN_ON_ONCE(class-\u003ename !\u003d\n                                                     lock-\u003ename);\n\n     lock-\u003ename \u003d name;\n\nSo restore to what we have done before commit f59de89 but annotate\n-\u003elock with kmemcheck_mark_initialized() to suppress the kmemcheck\nwarning reported in commit f59de89.\n\nReported-by: Sergey Senozhatsky \u003csergey.senozhatsky@gmail.com\u003e\nReported-by: Borislav Petkov \u003cbp@alien8.de\u003e\nSuggested-by: Vegard Nossum \u003cvegard.nossum@gmail.com\u003e\nSigned-off-by: Yong Zhang \u003cyong.zhang0@gmail.com\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/20111109080451.GB8124@zhy\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "81140acc66322dcde8346dabdf1ab4c229fce8d4",
      "tree": "45a3da1b4edc7a5a7c6ef9a213927e93cf815fef",
      "parents": [
        "73839c5b2eacc15cb0aa79c69b285fc659fa8851"
      ],
      "author": {
        "name": "Ming Lei",
        "email": "tom.leiming@gmail.com",
        "time": "Thu Nov 17 13:34:32 2011 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Dec 06 08:16:55 2011 +0100"
      },
      "message": "lockdep: Print lock name in lockdep_init_error()\n\nThis patch prints the name of the lock which is acquired\nbefore lockdep_init() is called, so that users can easily\nfind which lock triggered the lockdep init error warning.\n\nThis patch also removes the lockdep_init_error() message\nof \"Arch code didn\u0027t call lockdep_init() early enough?\"\nsince lockdep_init() is called in arch independent code now.\n\nSigned-off-by: Ming Lei \u003ctom.leiming@gmail.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/1321508072-23853-2-git-send-email-tom.leiming@gmail.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "d3d03d4fc5b1bec3a579112de170a9676e9d97cb",
      "tree": "f8ab00599868ffe3094edea1e940750681587835",
      "parents": [
        "fbdc4b9a6c29befbcca65e5366e5aaf2abb7a013"
      ],
      "author": {
        "name": "Yong Zhang",
        "email": "yong.zhang0@gmail.com",
        "time": "Wed Nov 09 16:04:51 2011 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Dec 06 08:16:51 2011 +0100"
      },
      "message": "lockdep, kmemcheck: Annotate -\u003elock in lockdep_init_map()\n\nSince commit f59de89 (\"lockdep: Clear whole lockdep_map on initialization\"),\nlockdep_init_map() will clear all the struct. But it will break\nlock_set_class()/lock_set_subclass(). A typical race condition\nis like below:\n\n     CPU A                                   CPU B\nlock_set_subclass(lockA);\n lock_set_class(lockA);\n   lockdep_init_map(lockA);\n     /* lockA-\u003ename is cleared */\n     memset(lockA);\n                                     __lock_acquire(lockA);\n                                       /* lockA-\u003eclass_cache[] is cleared */\n                                       register_lock_class(lockA);\n                                         look_up_lock_class(lockA);\n                                           WARN_ON_ONCE(class-\u003ename !\u003d\n                                                     lock-\u003ename);\n\n     lock-\u003ename \u003d name;\n\nSo restore to what we have done before commit f59de89 but annotate\n-\u003elock with kmemcheck_mark_initialized() to suppress the kmemcheck\nwarning reported in commit f59de89.\n\nReported-by: Sergey Senozhatsky \u003csergey.senozhatsky@gmail.com\u003e\nReported-by: Borislav Petkov \u003cbp@alien8.de\u003e\nSuggested-by: Vegard Nossum \u003cvegard.nossum@gmail.com\u003e\nSigned-off-by: Yong Zhang \u003cyong.zhang0@gmail.com\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/20111109080451.GB8124@zhy\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "fbdc4b9a6c29befbcca65e5366e5aaf2abb7a013",
      "tree": "da6f6fbf2bfb552b2dd58559bf059a5359510b41",
      "parents": [
        "df754e6af2f237a6c020c0daff55a1a609338e31"
      ],
      "author": {
        "name": "Ben Hutchings",
        "email": "ben@decadent.org.uk",
        "time": "Fri Oct 28 04:36:55 2011 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Dec 06 08:16:49 2011 +0100"
      },
      "message": "lockdep, rtmutex, bug: Show taint flags on error\n\nShow the taint flags in all lockdep and rtmutex-debug error messages.\n\nSigned-off-by: Ben Hutchings \u003cben@decadent.org.uk\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/1319773015.6759.30.camel@deadeye\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "87cdee71166fa107c5dc8e43060eeefa533c6a3b",
      "tree": "286a359e9e27e404f047ce2fa73458353a4b6e9e",
      "parents": [
        "7f80850d3f9fd8fda23a317044aef3a6bafab06b"
      ],
      "author": {
        "name": "Yong Zhang",
        "email": "yong.zhang0@gmail.com",
        "time": "Wed Nov 09 16:07:14 2011 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Nov 14 13:54:11 2011 +0100"
      },
      "message": "lockdep: Always try to set -\u003eclass_cache in register_lock_class() lockdep_init_map()\n\nCommit [\"62016250 lockdep: Add improved subclass caching\"] tries to\nimprove performance (expecially to reduce the cost of rq-\u003elock)\nwhen using lockdep, but it fails due to lockdep_init_map() in\nwhich -\u003eclass_cache is cleared. The typical caller is\nlock_set_subclass(), after that class will not be cached anymore.\n\nThis patch tries to achive the goal of commit 62016250 by always\nsetting -\u003eclass_cache in register_lock_class().\n\n\u003d\u003d\u003d Score comparison of benchmarks \u003d\u003d\u003d\n\nfor i in `seq 1 10`; do ./perf bench -f simple sched messaging; done\n\nbefore:  min: 0.604, max: 0.660, avg: 0.622\nafter:   min: 0.414, max: 0.473, avg: 0.427\n\nfor i in `seq 1 10`; do ./perf bench -f simple sched messaging -g 40; done\n\nbefore:  min: 2.347, max: 2.421, avg: 2.391\nafter:   min: 1.652, max: 1.699, avg: 1.671\n\nSigned-off-by: Yong Zhang \u003cyong.zhang0@gmail.com\u003e\nCc: Hitoshi Mitake \u003cmitake@dcl.info.waseda.ac.jp\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/20111109080714.GC8124@zhy\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "efc96737bd82b508794d2b28061a12af4a3f7766",
      "tree": "e9fe4982967b74c0d25a35a2d7f7c62d8be98a47",
      "parents": [
        "1ec454baf1245df4fdb5dae728da3363630ce6de",
        "7e9a49ef542610609144d1afcd516dc3fafac4d6"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Nov 11 08:19:37 2011 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Nov 11 08:19:37 2011 +0100"
      },
      "message": "Merge branch \u0027tip/perf/core\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace into perf/core\n"
    },
    {
      "commit": "e5e78d08f3ab3094783b8df08a5b6d1d1a56a58f",
      "tree": "524c4faf387d4ac1dc46b23015a9d8fc4823ab88",
      "parents": [
        "3890c136357284cb0656f9dd0e62286995ad32e9"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed Nov 02 20:24:16 2011 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon Nov 07 11:01:46 2011 -0500"
      },
      "message": "lockdep: Show subclass in pretty print of lockdep output\n\nThe pretty print of the lockdep debug splat uses just the lock name\nto show how the locking scenario happens. But when it comes to\nnesting locks, the output becomes confusing which takes away the point\nof the pretty printing of the lock scenario.\n\nWithout displaying the subclass info, we get the following output:\n\n  Possible unsafe locking scenario:\n\n        CPU0                    CPU1\n        ----                    ----\n   lock(slock-AF_INET);\n                                lock(slock-AF_INET);\n                                lock(slock-AF_INET);\n   lock(slock-AF_INET);\n\n  *** DEADLOCK ***\n\nThe above looks more of a A-\u003eA locking bug than a A-\u003eB B-\u003eA.\nBy adding the subclass to the output, we can see what really happened:\n\n other info that might help us debug this:\n\n  Possible unsafe locking scenario:\n\n        CPU0                    CPU1\n        ----                    ----\n   lock(slock-AF_INET);\n                                lock(slock-AF_INET/1);\n                                lock(slock-AF_INET);\n   lock(slock-AF_INET/1);\n\n  *** DEADLOCK ***\n\nThis bug was discovered while tracking down a real bug caught by lockdep.\n\nLink: http://lkml.kernel.org/r/20111025202049.GB25043@hostway.ca\n\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nReported-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nTested-by: Simon Kirby \u003csim@hostway.ca\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "19b4a8d520a6e0176dd52aaa429261ad4fcaa545",
      "tree": "6dcf5a780718fc50b9cd79cc803daa7c7e080a02",
      "parents": [
        "3cfef9524677a4ecb392d6fbffe6ebce6302f1d4",
        "048b718029033af117870d3da47da12995be14a3"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Oct 26 16:26:53 2011 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Oct 26 16:26:53 2011 +0200"
      },
      "message": "Merge branch \u0027core-rcu-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\n* \u0027core-rcu-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (45 commits)\n  rcu: Move propagation of -\u003ecompleted from rcu_start_gp() to rcu_report_qs_rsp()\n  rcu: Remove rcu_needs_cpu_flush() to avoid false quiescent states\n  rcu: Wire up RCU_BOOST_PRIO for rcutree\n  rcu: Make rcu_torture_boost() exit loops at end of test\n  rcu: Make rcu_torture_fqs() exit loops at end of test\n  rcu: Permit rt_mutex_unlock() with irqs disabled\n  rcu: Avoid having just-onlined CPU resched itself when RCU is idle\n  rcu: Suppress NMI backtraces when stall ends before dump\n  rcu: Prohibit grace periods during early boot\n  rcu: Simplify unboosting checks\n  rcu: Prevent early boot set_need_resched() from __rcu_pending()\n  rcu: Dump local stack if cannot dump all CPUs\u0027 stacks\n  rcu: Move __rcu_read_unlock()\u0027s barrier() within if-statement\n  rcu: Improve rcu_assign_pointer() and RCU_INIT_POINTER() documentation\n  rcu: Make rcu_assign_pointer() unconditionally insert a memory barrier\n  rcu: Make rcu_implicit_dynticks_qs() locals be correct size\n  rcu: Eliminate in_irq() checks in rcu_enter_nohz()\n  nohz: Remove nohz_cpu_mask\n  rcu: Document interpretation of RCU-lockdep splats\n  rcu: Allow rcutorture\u0027s stat_interval parameter to be changed at runtime\n  ...\n"
    },
    {
      "commit": "b3fbab0571eb09746cc0283648165ec00efc8eb2",
      "tree": "63bc01cbf03a5df34a96af292a00df4a96dc148a",
      "parents": [
        "d5988af53102f3b73e5e0788be024ccfa51869de"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Tue May 24 08:31:09 2011 -0700"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Wed Sep 28 21:36:37 2011 -0700"
      },
      "message": "rcu: Restore checks for blocking in RCU read-side critical sections\n\nLong ago, using TREE_RCU with PREEMPT would result in \"scheduling\nwhile atomic\" diagnostics if you blocked in an RCU read-side critical\nsection.  However, PREEMPT now implies TREE_PREEMPT_RCU, which defeats\nthis diagnostic.  This commit therefore adds a replacement diagnostic\nbased on PROVE_RCU.\n\nBecause rcu_lockdep_assert() and lockdep_rcu_dereference() are now being\nused for things that have nothing to do with rcu_dereference(), rename\nlockdep_rcu_dereference() to lockdep_rcu_suspicious() and add a third\nargument that is a string indicating what is suspicious.  This third\nargument is passed in from a new third argument to rcu_lockdep_assert().\nUpdate all calls to rcu_lockdep_assert() to add an informative third\nargument.\n\nAlso, add a pair of rcu_lockdep_assert() calls from within\nrcu_note_context_switch(), one complaining if a context switch occurs\nin an RCU-bh read-side critical section and another complaining if a\ncontext switch occurs in an RCU-sched read-side critical section.\nThese are present only if the PROVE_RCU kernel parameter is enabled.\n\nFinally, fix some checkpatch whitespace complaints in lockdep.c.\n\nAgain, you must enable PROVE_RCU to see these new diagnostics.  But you\nare enabling PROVE_RCU to check out new RCU uses in any case, aren\u0027t you?\n\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "0119fee449f501d55924914a90f152540dd4ef9a",
      "tree": "2ed9f5cd1fbdbaf6b237426ec4452d0e7ecf3a08",
      "parents": [
        "cb475de3d12df6912bc95048202ae8c280d4cad5"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Sep 02 01:30:29 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Sep 18 13:58:57 2011 +0200"
      },
      "message": "lockdep: Comment all warnings\n\nAndrew requested I comment all the lockdep WARN()s to help other people\nfigure out wth is wrong..\n\nRequested-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/1315301493.3191.9.camel@twins\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "80e0401e35410a69bfae05b454db8a7187edd6b8",
      "tree": "d43eb51e0ca861e18284a85ccb790b321ed08320",
      "parents": [
        "2f84dd70916ccadd25e94d28363182a978f569b6"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Aug 05 14:26:17 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Aug 09 11:57:35 2011 +0200"
      },
      "message": "lockdep: Fix wrong assumption in match_held_lock\n\nmatch_held_lock() was assuming it was being called on a lock class\nthat had already seen usage.\n\nThis condition was true for bug-free code using lockdep_assert_held(),\nsince you\u0027re in fact holding the lock when calling it. However the\nassumption fails the moment you assume the assertion can fail, which\nis the whole point of having the assertion in the first place.\n\nAnyway, now that there\u0027s more lockdep_is_held() users, notably\n__rcu_dereference_check(), its much easier to trigger this since we\ntest for a number of locks and we only need to hold any one of them to\nbe good.\n\nReported-by: Sergey Senozhatsky \u003csergey.senozhatsky@gmail.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/1312547787.28695.2.camel@twins\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "f59de8992aa6dc85e81aadc26b0f69e17809721d",
      "tree": "4cdb87598edb67a774281bf3cea2800114d2fa0c",
      "parents": [
        "83835b3d9aec8e9f666d8223d8a386814f756266"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Jul 14 15:19:09 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Aug 04 10:17:56 2011 +0200"
      },
      "message": "lockdep: Clear whole lockdep_map on initialization\n\nlockdep_init_map() only initializes parts of lockdep_map and triggers\nkmemcheck warning when it is copied as a whole.  There isn\u0027t anything\nto be gained by clearing selectively.  memset() the whole structure\nand remove loop for -\u003eclass_cache[] clearing.\n\nAddresses https://bugzilla.kernel.org/show_bug.cgi?id\u003d35532\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nReported-and-tested-by: Christian Casteyde \u003ccasteyde.christian@free.fr\u003e\nBugzilla: https://bugzilla.kernel.org/show_bug.cgi?id\u003d35532\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/20110714131909.GJ3455@htj.dyndns.org\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "70a0686a72c7a7e554b404ca11406ceec709d425",
      "tree": "e6f1d4bdb72ca93e7b13975b02e6e9199148666f",
      "parents": [
        "7d36b26be0f3c6b86e3ab7e1539e42f3a3bc79ca"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Mon Jul 25 12:09:59 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Aug 04 10:17:41 2011 +0200"
      },
      "message": "lockdep: Fix up warning\n\nOn Sun, 2011-07-24 at 21:06 -0400, Arnaud Lacombe wrote:\n\n\u003e /src/linux/linux/kernel/lockdep.c: In function \u0027mark_held_locks\u0027:\n\u003e /src/linux/linux/kernel/lockdep.c:2471:31: warning: comparison of\n\u003e distinct pointer types lacks a cast\n\nThe warning is harmless in this case, but the below makes it go away.\n\nReported-by: Arnaud Lacombe \u003clacombar@gmail.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/1311588599.2617.56.camel@laptop\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "7d36b26be0f3c6b86e3ab7e1539e42f3a3bc79ca",
      "tree": "f22ac58f11dc1d0738e66024052f2e1c709533f1",
      "parents": [
        "d7619fe39d9769b4d4545cc511c891deea18ae08"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue Jul 26 13:13:44 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Aug 04 10:17:36 2011 +0200"
      },
      "message": "lockdep: Fix trace_hardirqs_on_caller()\n\nCommit dd4e5d3ac4a (\"lockdep: Fix trace_[soft,hard]irqs_[on,off]()\nrecursion\") made a bit of a mess of the various checks and error\nconditions.\n\nIn particular it moved the check for !irqs_disabled() before the\nspurious enable test, resulting in some warnings.\n\nReported-by: Arnaud Lacombe \u003clacombar@gmail.com\u003e\nReported-by: Dave Jones \u003cdavej@redhat.com\u003e\nReported-and-tested-by: Sergey Senozhatsky \u003csergey.senozhatsky@gmail.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/1311679697.24752.28.camel@twins\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "391d6276db9fbdedfbc30e1b56390414f0e55988",
      "tree": "d22cd2482f5452d616ee981e954074ffc6ae094d",
      "parents": [
        "75b56ec294b074d70f8a676ab02611a3fea76cab",
        "dd4e5d3ac4a76b868daf30e35bd572def96c30ed"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 22 16:43:49 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 22 16:43:49 2011 -0700"
      },
      "message": "Merge branch \u0027core-printk-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027core-printk-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  lockdep: Fix trace_[soft,hard]irqs_[on,off]() recursion\n  printk: Fix console_sem vs logbuf_lock unlock race\n  printk: Release console_sem after logbuf_lock\n"
    },
    {
      "commit": "efbe2eee6dc0f179be84292bf269528b3ec365e9",
      "tree": "40996bc1d349f1747a5dd0261bdc1c84db2631de",
      "parents": [
        "4582c0a4866ea70c35aa9279e1f91834d3348a93"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Thu Jul 07 11:39:45 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Jul 21 20:43:16 2011 +0200"
      },
      "message": "lockdep: Fix lockdep_no_validate against IRQ states\n\nThomas noticed that a lock marked with lockdep_set_novalidate_class()\nwill still trigger warnings for IRQ inversions. Cure this by skipping\nthose when marking irq state.\n\nReported-and-tested-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/n/tip-2dp5vmpsxeraqm42kgww6ge2@git.kernel.org\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "dd4e5d3ac4a76b868daf30e35bd572def96c30ed",
      "tree": "76ee78919a212b2c28171d39ccb53195aec7284f",
      "parents": [
        "4f2a8d3cf5e0486fd547633fa86c5d130ae98cad"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue Jun 21 17:17:27 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jun 22 11:39:34 2011 +0200"
      },
      "message": "lockdep: Fix trace_[soft,hard]irqs_[on,off]() recursion\n\nCommit:\n\n  1efc5da3cf56: [PATCH] order of lockdep off/on in vprintk() should be changed\n\nexplains the reason for having raw_local_irq_*() and lockdep_off()\nin printk(). Instead of working around the broken recursion detection\nof interrupt state tracking, fix it.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: efault@gmx.de\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nLink: http://lkml.kernel.org/r/20110621153806.185242734@chello.nl\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "f2513cde93f0957d5dc6c09bc24b0cccd27d8e1d",
      "tree": "b461cb0836170eb555b20818802c121c79e76d33",
      "parents": [
        "f339b9dc1f03591761d5d930800db24bc0eda1e1"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Mon Jun 06 12:32:43 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Jun 07 12:25:50 2011 +0200"
      },
      "message": "lockdep: Fix lock_is_held() on recursion\n\nThe main lock_is_held() user is lockdep_assert_held(), avoid false\nassertions in lockdep_off() sections by unconditionally reporting the\nlock is taken.\n\n[ the reason this is important is a lockdep_assert_held() in ttwu()\n  which triggers a warning under lockdep_off() as in printk() which\n  can trigger another wakeup and lock up due to spinlock\n  recursion, as reported and heroically debugged by Arne Jansen ]\n\nReported-and-tested-by: Arne Jansen \u003clists@die-jansens.de\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: \u003cstable@kernel.org\u003e\nLink: http://lkml.kernel.org/r/1307398759.2497.966.camel@laptop\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "e0944ee63f7249802be74454cef81c97630ae1cd",
      "tree": "00c81028ff9b324bdd9106103f043ba26ea54e41",
      "parents": [
        "282b5c2f6f663c008444321fd8fcdd374596046b"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed Apr 20 21:42:00 2011 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Apr 22 11:06:59 2011 +0200"
      },
      "message": "lockdep: Remove cmpxchg to update nr_chain_hlocks\n\nFor some reason nr_chain_hlocks is updated with cmpxchg, but\nthis is performed inside of the lockdep global \"grab_lock()\",\nwhich also makes simple modification of this variable atomic.\n\nRemove the cmpxchg logic for updating nr_chain_hlocks and\nsimplify the code.\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nLink: http://lkml.kernel.org/r/20110421014300.727863282@goodmis.org\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "282b5c2f6f663c008444321fd8fcdd374596046b",
      "tree": "33d189c35bccdccfaef281a90afd3451c5ae115f",
      "parents": [
        "6be8c3935b914dfbc24b27c91c2b6d583645e61a"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed Apr 20 21:41:59 2011 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Apr 22 11:06:59 2011 +0200"
      },
      "message": "lockdep: Print a nicer description for simple irq lock inversions\n\nLockdep output can be pretty cryptic, having nicer output\ncan save a lot of head scratching. When a simple irq inversion\nscenario is detected by lockdep (lock A taken in interrupt\ncontext but also in thread context without disabling interrupts)\nwe now get the following (hopefully more informative) output:\n\nother info that might help us debug this:\n Possible unsafe locking scenario:\n\n       CPU0\n       ----\n  lock(lockA);\n  \u003cInterrupt\u003e\n    lock(lockA);\n\n *** DEADLOCK ***\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nLink: http://lkml.kernel.org/r/20110421014300.436140880@goodmis.org\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "6be8c3935b914dfbc24b27c91c2b6d583645e61a",
      "tree": "fd7dceed824b4c478a46b52c3a9af01f87a89ada",
      "parents": [
        "dad3d7435e1d8c254d6877dc06852dc00c5da812"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed Apr 20 21:41:58 2011 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Apr 22 11:06:59 2011 +0200"
      },
      "message": "lockdep: Replace \"Bad BFS generated tree\" message with something less cryptic\n\nThe message of \"Bad BFS generated tree\" is a bit confusing.\nReplace it with a more sane error message.\n\nThanks to Peter Zijlstra for helping me come up with a better\nmessage.\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nLink: http://lkml.kernel.org/r/20110421014300.135521252@goodmis.org\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "dad3d7435e1d8c254d6877dc06852dc00c5da812",
      "tree": "85f4ab38ff63879b117d363ef1fdb3cf83bf870d",
      "parents": [
        "48702ecf308e53f176c1f6fdc193d622ded54ac0"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed Apr 20 21:41:57 2011 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Apr 22 11:06:58 2011 +0200"
      },
      "message": "lockdep: Print a nicer description for irq inversion bugs\n\nIrq inversion and irq dependency bugs are only subtly\ndifferent. The diffenerence lies where the interrupt occurred.\n\nFor irq dependency:\n\n\tirq_disable\n\tlock(A)\n\tlock(B)\n\tunlock(B)\n\tunlock(A)\n\tirq_enable\n\n\tlock(B)\n\tunlock(B)\n\n \t\u003cinterrupt\u003e\n\t  lock(A)\n\nThe interrupt comes in after it has been established that lock A\ncan be held when taking an irq unsafe lock. Lockdep detects the\nproblem when taking lock A in interrupt context.\n\nWith the irq_inversion the irq happens before it is established\nand lockdep detects the problem with the taking of lock B:\n\n \t\u003cinterrupt\u003e\n\t  lock(A)\n\n\tirq_disable\n\tlock(A)\n\tlock(B)\n\tunlock(B)\n\tunlock(A)\n\tirq_enable\n\n\tlock(B)\n\tunlock(B)\n\nSince the problem with the locking logic for both of these issues\nis in actuality the same, they both should report the same scenario.\nThis patch implements that and prints this:\n\nother info that might help us debug this:\n\nChain exists of:\n  \u0026rq-\u003elock --\u003e lockA --\u003e lockC\n\n Possible interrupt unsafe locking scenario:\n\n       CPU0                    CPU1\n       ----                    ----\n  lock(lockC);\n                               local_irq_disable();\n                               lock(\u0026rq-\u003elock);\n                               lock(lockA);\n  \u003cInterrupt\u003e\n    lock(\u0026rq-\u003elock);\n\n *** DEADLOCK ***\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nLink: http://lkml.kernel.org/r/20110421014259.910720381@goodmis.org\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "48702ecf308e53f176c1f6fdc193d622ded54ac0",
      "tree": "aa348b35b3a97fd9a5230e145ea4e6186ab2a978",
      "parents": [
        "f4185812aa046ecb97e8817e10148cacdd7a6baa"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed Apr 20 21:41:56 2011 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Apr 22 11:06:58 2011 +0200"
      },
      "message": "lockdep: Print a nicer description for simple deadlocks\n\nLockdep output can be pretty cryptic, having nicer output\ncan save a lot of head scratching. When a simple deadlock\nscenario is detected by lockdep (lock A -\u003e lock A) we now\nget the following new output:\n\nother info that might help us debug this:\n Possible unsafe locking scenario:\n\n       CPU0\n       ----\n  lock(\u0026(lock)-\u003erlock);\n  lock(\u0026(lock)-\u003erlock);\n\n *** DEADLOCK ***\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nLink: http://lkml.kernel.org/r/20110421014259.643930104@goodmis.org\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "f4185812aa046ecb97e8817e10148cacdd7a6baa",
      "tree": "a17a417d13586554f452df9fd251165c4d714a97",
      "parents": [
        "3003eba313dd0e0502dd71548c36fe7c19801ce5"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed Apr 20 21:41:55 2011 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Apr 22 11:06:57 2011 +0200"
      },
      "message": "lockdep: Print a nicer description for normal deadlocks\n\nThe lockdep output can be pretty cryptic, having nicer output\ncan save a lot of head scratching. When a normal deadlock\nscenario is detected by lockdep (lock A -\u003e lock B and there\nexists a place where lock B -\u003e lock A) we now get the following\nnew output:\n\nother info that might help us debug this:\n\n Possible unsafe locking scenario:\n\n       CPU0                    CPU1\n       ----                    ----\n  lock(lockB);\n                               lock(lockA);\n                               lock(lockB);\n  lock(lockA);\n\n *** DEADLOCK ***\n\nOn cases where there\u0027s a deeper chair, it shows the partial\nchain that can cause the issue:\n\nChain exists of:\n  lockC --\u003e lockA --\u003e lockB\n\n Possible unsafe locking scenario:\n\n       CPU0                    CPU1\n       ----                    ----\n  lock(lockB);\n                               lock(lockA);\n                               lock(lockB);\n  lock(lockC);\n\n *** DEADLOCK ***\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nLink: http://lkml.kernel.org/r/20110421014259.380621789@goodmis.org\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "3003eba313dd0e0502dd71548c36fe7c19801ce5",
      "tree": "2b23fc90378bbdfe77e0446771ee4f75eef35a29",
      "parents": [
        "91e8549bde9e5cc88c5a2e8c8114389279e240b5"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed Apr 20 21:41:54 2011 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Apr 22 11:06:57 2011 +0200"
      },
      "message": "lockdep: Print a nicer description for irq lock inversions\n\nLocking order inversion due to interrupts is a subtle problem.\n\nWhen an irq lockiinversion discovered by lockdep it currently\nreports something like:\n\n[ INFO: HARDIRQ-safe -\u003e HARDIRQ-unsafe lock order detected ]\n\n... and then prints out the locks that are involved, as back traces.\n\nJudging by lkml feedback developers were routinely confused by what\na HARDIRQ-\u003esafe to unsafe issue is all about, and sometimes even\nblew it off as a bug in lockdep.\n\nIt is not obvious when lockdep prints this message about a lock that\nis never taken in interrupt context.\n\nAfter explaining the problems that lockdep is reporting, I\ndecided to add a description of the problem in visual form. Now\nthe following is shown:\n\n ---\nother info that might help us debug this:\n\n Possible interrupt unsafe locking scenario:\n\n       CPU0                    CPU1\n       ----                    ----\n  lock(lockA);\n                               local_irq_disable();\n                               lock(\u0026rq-\u003elock);\n                               lock(lockA);\n  \u003cInterrupt\u003e\n    lock(\u0026rq-\u003elock);\n\n *** DEADLOCK ***\n\n ---\n\nThe above is the case when the unsafe lock is taken while\nholding a lock taken in irq context. But when a lock is taken\nthat also grabs a unsafe lock, the call chain is shown:\n\n ---\nother info that might help us debug this:\n\nChain exists of:\n  \u0026rq-\u003elock --\u003e lockA --\u003e lockC\n\n Possible interrupt unsafe locking scenario:\n\n       CPU0                    CPU1\n       ----                    ----\n  lock(lockC);\n                               local_irq_disable();\n                               lock(\u0026rq-\u003elock);\n                               lock(lockA);\n  \u003cInterrupt\u003e\n    lock(\u0026rq-\u003elock);\n\n *** DEADLOCK ***\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nLink: http://lkml.kernel.org/r/20110421014259.132728798@goodmis.org\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "25985edcedea6396277003854657b5f3cb31a628",
      "tree": "f026e810210a2ee7290caeb737c23cb6472b7c38",
      "parents": [
        "6aba74f2791287ec407e0f92487a725a25908067"
      ],
      "author": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@profusion.mobi",
        "time": "Wed Mar 30 22:57:33 2011 -0300"
      },
      "committer": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@profusion.mobi",
        "time": "Thu Mar 31 11:26:23 2011 -0300"
      },
      "message": "Fix common misspellings\n\nFixes generated by \u0027codespell\u0027 and manually reviewed.\n\nSigned-off-by: Lucas De Marchi \u003clucas.demarchi@profusion.mobi\u003e\n"
    },
    {
      "commit": "2ce802f62ba32a7d95748ac92bf351f76affb6ff",
      "tree": "54dd0d6063ca61619e6b8ca84dd95b8e5a3c1402",
      "parents": [
        "12fcdba1b7ae8b25696433f420b775aeb556d89b"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Jan 20 12:06:35 2011 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Jan 20 13:32:33 2011 +0100"
      },
      "message": "lockdep: Move early boot local IRQ enable/disable status to init/main.c\n\nDuring early boot, local IRQ is disabled until IRQ subsystem is\nproperly initialized.  During this time, no one should enable\nlocal IRQ and some operations which usually are not allowed with\nIRQ disabled, e.g. operations which might sleep or require\ncommunications with other processors, are allowed.\n\nlockdep tracked this with early_boot_irqs_off/on() callbacks.\nAs other subsystems need this information too, move it to\ninit/main.c and make it generally available.  While at it,\ntoggle the boolean to early_boot_irqs_disabled instead of\nenabled so that it can be initialized with %false and %true\nindicates the exceptional condition.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nAcked-by: Pekka Enberg \u003cpenberg@kernel.org\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nLKML-Reference: \u003c20110120110635.GB6036@htj.dyndns.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "4ba053c04aece1f4734056f21b751eee47ea3fb1",
      "tree": "2386ea00022684cd8a9ff811bee2cd8cc7229001",
      "parents": [
        "620162505e5d46bc4494b1761743e4b0b3bf8e16"
      ],
      "author": {
        "name": "Hitoshi Mitake",
        "email": "mitake@dcl.info.waseda.ac.jp",
        "time": "Wed Oct 13 17:30:26 2010 +0900"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Oct 18 18:44:26 2010 +0200"
      },
      "message": "lockdep: Check the depth of subclass\n\nCurrent look_up_lock_class() doesn\u0027t check the parameter \"subclass\".\nThis rarely rises problems because the main caller of this function,\nregister_lock_class(), checks it.\n\nBut register_lock_class() is not the only function which calls\nlook_up_lock_class(). lock_set_class() and its callees also call it.\nAnd lock_set_class() doesn\u0027t check this parameter.\n\nThis will rise problems when the the value of subclass is larger than\nMAX_LOCKDEP_SUBCLASSES. Because the address (used as the key of class)\ncaliculated with too large subclass has a probability to point\nanother key in different lock_class_key.\n\nOf course this problem depends on the memory layout and\noccurs with really low probability.\n\nSigned-off-by: Hitoshi Mitake \u003cmitake@dcl.info.waseda.ac.jp\u003e\nCc: Dmitry Torokhov \u003cdtor@mail.ru\u003e\nCc: Vojtech Pavlik \u003cvojtech@ucw.cz\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1286958626-986-1-git-send-email-mitake@dcl.info.waseda.ac.jp\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "620162505e5d46bc4494b1761743e4b0b3bf8e16",
      "tree": "462e6d2ecdcfdaa117c5b926325a0ce1d565571e",
      "parents": [
        "f2f108eb4511f22a6f7568090cfcf4e7b2dc0f62"
      ],
      "author": {
        "name": "Hitoshi Mitake",
        "email": "mitake@dcl.info.waseda.ac.jp",
        "time": "Tue Oct 05 18:01:51 2010 +0900"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Oct 18 18:44:25 2010 +0200"
      },
      "message": "lockdep: Add improved subclass caching\n\nCurrent lockdep_map only caches one class with subclass \u003d\u003d 0,\nand looks up hash table of classes when subclass !\u003d 0.\n\nIt seems that this has no problem because the case of\nsubclass !\u003d 0 is rare. But locks of struct rq are\nacquired with subclass \u003d\u003d 1 when task migration is executed.\nTask migration is high frequent event, so I modified lockdep\nto cache subclasses.\n\nI measured the score of perf bench sched messaging.\nThis patch has slightly but certain (order of milli seconds\nor 10 milli seconds) effect when lots of tasks are running.\nI\u0027ll show the result in the tail of this description.\n\nNR_LOCKDEP_CACHING_CLASSES specifies how many classes can be\ncached in the instances of lockdep_map.\nI discussed with Peter Zijlstra in LinuxCon Japan about\nthis approach and he taught me that caching every subclasses(8)\nis cleary waste of memory. So number of cached classes\nshould be configurable.\n\n\u003d\u003d\u003d Score comparison of benchmarks \u003d\u003d\u003d\n# \"min\" means best score, and \"max\" means worst score\n\nfor i in `seq 1 10`; do ./perf bench -f simple sched messaging; done\n\nbefore: min: 0.565000, max: 0.583000, avg: 0.572500\nafter:  min: 0.559000, max: 0.568000, avg: 0.563300\n\n# with more processes\nfor i in `seq 1 10`; do ./perf bench -f simple sched messaging -g 40; done\n\nbefore: min: 2.274000, max: 2.298000, avg: 2.286300\nafter:  min: 2.242000, max: 2.270000, avg: 2.259700\n\nSigned-off-by: Hitoshi Mitake \u003cmitake@dcl.info.waseda.ac.jp\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1286269311-28336-2-git-send-email-mitake@dcl.info.waseda.ac.jp\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "f1b499f029c5dde85d46a8811353c62f29157541",
      "tree": "50e49c147c77c39c52dc59dbd6a2a9c1e70793a7",
      "parents": [
        "da5cabf80e2433131bf0ed8993abc0f7ea618c73"
      ],
      "author": {
        "name": "John Kacur",
        "email": "jkacur@redhat.com",
        "time": "Thu Aug 05 17:10:53 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Aug 17 09:11:10 2010 +0200"
      },
      "message": "lockdep: Remove __debug_show_held_locks\n\nThere is no longer any functional difference between\n__debug_show_held_locks() and debug_show_held_locks(),\nso remove the former.\n\nSigned-off-by: John Kacur \u003cjkacur@redhat.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1281021054-4228-1-git-send-email-jkacur@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "c676329abb2b8359d9a5d734dec0c81779823fd6",
      "tree": "b6c33715176221a87100228399c2a6f5049e44ea",
      "parents": [
        "95ae3c59fa8ad616c73745e21154b5af0fb10168"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue May 25 10:48:51 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jun 09 10:34:49 2010 +0200"
      },
      "message": "sched_clock: Add local_clock() API and improve documentation\n\nFor people who otherwise get to write: cpu_clock(smp_processor_id()),\nthere is now: local_clock().\n\nAlso, as per suggestion from Andrew, provide some documentation on\nthe various clock interfaces, and minimize the unsigned long long vs\nu64 mess.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Jens Axboe \u003cjaxboe@fusionio.com\u003e\nLKML-Reference: \u003c1275052414.1645.52.camel@laptop\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "1704f47b50b5d9e1b825e43e1baaf2c5897baf03",
      "tree": "60617ff867624f915f75a502f2207de5e586757a",
      "parents": [
        "3142788b7967ccfd2f1813ee9e11aeb1e1cf7de2"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "peterz@infradead.org",
        "time": "Fri Mar 19 01:37:42 2010 +0100"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Fri May 21 09:37:30 2010 -0700"
      },
      "message": "lockdep: Add novalidate class for dev-\u003emutex conversion\n\nThe conversion of device-\u003esem to device-\u003emutex resulted in lockdep\nwarnings. Create a novalidate class for now until the driver folks\ncome up with separate classes. That way we have at least the basic\nmutex debugging coverage.\n\nAdd a checkpatch error so the usage is reserved for device-\u003emutex.\n\n[ tglx: checkpatch and compile fix for LOCKDEP\u003dn ]\n\nSigned-off-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "4d7b4ac22fbec1a03206c6cde353f2fd6942f828",
      "tree": "2d96a9e9c28cf6fa628a278decc00ad55a8b043b",
      "parents": [
        "3aaf51ace5975050ab43c7d4d7e439e0ae7d13d7",
        "94f3ca95787ada3d64339a4ecb2754236ab563f6"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 18 08:19:03 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 18 08:19:03 2010 -0700"
      },
      "message": "Merge branch \u0027perf-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027perf-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (311 commits)\n  perf tools: Add mode to build without newt support\n  perf symbols: symbol inconsistency message should be done only at verbose\u003d1\n  perf tui: Add explicit -lslang option\n  perf options: Type check all the remaining OPT_ variants\n  perf options: Type check OPT_BOOLEAN and fix the offenders\n  perf options: Check v type in OPT_U?INTEGER\n  perf options: Introduce OPT_UINTEGER\n  perf tui: Add workaround for slang \u003c 2.1.4\n  perf record: Fix bug mismatch with -c option definition\n  perf options: Introduce OPT_U64\n  perf tui: Add help window to show key associations\n  perf tui: Make \u003c- exit menus too\n  perf newt: Add single key shortcuts for zoom into DSO and threads\n  perf newt: Exit browser unconditionally when CTRL+C, q or Q is pressed\n  perf newt: Fix the \u0027A\u0027/\u0027a\u0027 shortcut for annotate\n  perf newt: Make \u003c- exit the ui_browser\n  x86, perf: P4 PMU - fix counters management logic\n  perf newt: Make \u003c- zoom out filters\n  perf report: Report number of events, not samples\n  perf hist: Clarify events_stats fields usage\n  ...\n\nFix up trivial conflicts in kernel/fork.c and tools/perf/builtin-record.c\n"
    },
    {
      "commit": "f262af3d08d3fffc4e11277d3a177b2d67ea2aba",
      "tree": "cf5e4ac1bc39fe46cfbf4d17a0e9c71ee43b9728",
      "parents": [
        "1014cfe2fb4cdd663137aafb21448cb613dd6a7d",
        "72d5a9f7a9542f88397558c65bcfc3b115a65e34"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 18 08:17:58 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 18 08:17:58 2010 -0700"
      },
      "message": "Merge branch \u0027core-rcu-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027core-rcu-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (24 commits)\n  rcu: remove all rcu head initializations, except on_stack initializations\n  rcu head introduce rcu head init on stack\n  Debugobjects transition check\n  rcu: fix build bug in RCU_FAST_NO_HZ builds\n  rcu: RCU_FAST_NO_HZ must check RCU dyntick state\n  rcu: make SRCU usable in modules\n  rcu: improve the RCU CPU-stall warning documentation\n  rcu: reduce the number of spurious RCU_SOFTIRQ invocations\n  rcu: permit discontiguous cpu_possible_mask CPU numbering\n  rcu: improve RCU CPU stall-warning messages\n  rcu: print boot-time console messages if RCU configs out of ordinary\n  rcu: disable CPU stall warnings upon panic\n  rcu: enable CPU_STALL_VERBOSE by default\n  rcu: slim down rcutiny by removing rcu_scheduler_active and friends\n  rcu: refactor RCU\u0027s context-switch handling\n  rcu: rename rcutiny rcu_ctrlblk to rcu_sched_ctrlblk\n  rcu: shrink rcutiny by making synchronize_rcu_bh() be inline\n  rcu: fix now-bogus rcu_scheduler_active comments.\n  rcu: Fix bogus CONFIG_PROVE_LOCKING in comments to reflect reality.\n  rcu: ignore offline CPUs in last non-dyntick-idle CPU check\n  ...\n"
    },
    {
      "commit": "2b3fc35f6919344e3cf722dde8308f47235c0b70",
      "tree": "2bc2cfc9c1a032d51a3d99a10e309e100b9eea4a",
      "parents": [
        "b57f95a38233a2e73b679bea4a5453a1cc2a1cc9"
      ],
      "author": {
        "name": "Lai Jiangshan",
        "email": "laijs@cn.fujitsu.com",
        "time": "Tue Apr 20 16:23:07 2010 +0800"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Mon May 10 11:08:31 2010 -0700"
      },
      "message": "rcu: optionally leave lockdep enabled after RCU lockdep splat\n\nThere is no need to disable lockdep after an RCU lockdep splat,\nso remove the debug_lockdeps_off() from lockdep_rcu_dereference().\nTo avoid repeated lockdep splats, use a static variable in the inlined\nrcu_dereference_check() and rcu_dereference_protected() macros so that\na given instance splats only once, but so that multiple instances can\nbe detected per boot.\n\nThis is controlled by a new config variable CONFIG_PROVE_RCU_REPEATEDLY,\nwhich is disabled by default.  This provides the normal lockdep behavior\nby default, but permits people who want to find multiple RCU-lockdep\nsplats per boot to easily do so.\n\nRequested-by: Eric Paris \u003ceparis@redhat.com\u003e\nSigned-off-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nTested-by: Eric Paris \u003ceparis@redhat.com\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "93135439459920c4d856f4ab8f068c030085c8df",
      "tree": "a53defcfe4f99258e1fc7d408114cd34baa35e0c",
      "parents": [
        "883a2a3189dae9d2912c417e47152f51cb922a3f"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Sat May 08 06:24:25 2010 +0200"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Sun May 09 13:45:34 2010 +0200"
      },
      "message": "tracing: Drop the nested field from lock_release event\n\nDrop the nested field as we don\u0027t use it. Every nested state can\nbe computed from a state machine on post processing already.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Hitoshi Mitake \u003cmitake@dcl.info.waseda.ac.jp\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "883a2a3189dae9d2912c417e47152f51cb922a3f",
      "tree": "286a31a1d86b1e49afc79f61c9b83ca81840065b",
      "parents": [
        "90c0e5fc7b73d2575c7367e1da70ff9521718e5e"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Sat May 08 06:16:11 2010 +0200"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Sun May 09 13:45:32 2010 +0200"
      },
      "message": "tracing: Drop lock_acquired waittime field\n\nDrop the waittime field from the lock_acquired event, we can\ncalculate it by substracting the lock_acquired event timestamp\nwith the matching lock_acquire one.\n\nIt is not needed and takes useless space in the traces.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Hitoshi Mitake \u003cmitake@dcl.info.waseda.ac.jp\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "4726f2a617ebd868a4fdeb5679613b897e5f1676",
      "tree": "c9eea44c66f98123802d99aad5b3cce93626eda8",
      "parents": [
        "54d47a2be5e7f928fb77b2f5a0761f6bd3c9dbff"
      ],
      "author": {
        "name": "Yong Zhang",
        "email": "yong.zhang@windriver.com",
        "time": "Tue May 04 14:16:48 2010 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri May 07 11:27:26 2010 +0200"
      },
      "message": "lockdep: Reduce stack_trace usage\n\nWhen calling check_prevs_add(), if all validations passed\nadd_lock_to_list() will add new lock to dependency tree and\nalloc stack_trace for each list_entry.\n\nBut at this time, we are always on the same stack, so stack_trace\nfor each list_entry has the same value. This is redundant and eats\nup lots of memory which could lead to warning on low\nMAX_STACK_TRACE_ENTRIES.\n\nUse one copy of stack_trace instead.\n\nV2: As suggested by Peter Zijlstra, move save_trace() from\n    check_prevs_add() to check_prev_add().\n    Add tracking for trylock dependence which is also redundant.\n\nSigned-off-by: Yong Zhang \u003cyong.zhang0@windriver.com\u003e\nCc: David S. Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c20100504065711.GC10784@windriver.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "ba697f40dbb704956a4cf67a7845b538015a01ea",
      "tree": "9ab6f1391bd45c52145d04b588e31c2f1abe0c53",
      "parents": [
        "0e417fe1f247bb3ac056ee04604332005c334fac"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Tue May 04 04:47:25 2010 +0200"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Tue May 04 05:37:28 2010 +0200"
      },
      "message": "lockdep: Provide off case for redundant_hardirqs_on increment\n\nWe forgot to provide a !CONFIG_DEBUG_LOCKDEP case for the\nredundant_hardirqs_on stat handling.\n\nManage that in the headers with a new __debug_atomic_inc() helper.\n\nFixes:\n\n\tkernel/lockdep.c:2306: error: \u0027lockdep_stats\u0027 undeclared (first use in this function)\n\tkernel/lockdep.c:2306: error: (Each undeclared identifier is reported only once\n\tkernel/lockdep.c:2306: error: for each function it appears in.)\n\nReported-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\n"
    },
    {
      "commit": "8795d7717c467bea7b0a0649d44a258e09f34db2",
      "tree": "33d0dc56ef918bfc7dd615162be20e77899147c5",
      "parents": [
        "868c522b1b75fd3fd3e6a636b4c344ac08edf13a"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Thu Apr 15 23:10:42 2010 +0200"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Fri Apr 30 19:15:49 2010 +0200"
      },
      "message": "lockdep: Fix redundant_hardirqs_on incremented with irqs enabled\n\nWhen a path restore the flags while irqs are already enabled, we\nupdate the per cpu var redundant_hardirqs_on in a racy fashion\nand debug_atomic_inc() warns about this situation.\n\nIn this particular case, loosing a few hits in a stat is not a big\ndeal, so increment it without protection.\n\nv2: Don\u0027t bother with disabling irq, we can miss one count in\n    rare situations\n\nReported-by: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: David Miller \u003cdavem@davemloft.net\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\n"
    },
    {
      "commit": "868c522b1b75fd3fd3e6a636b4c344ac08edf13a",
      "tree": "d85b984d9818abc3ccc0237eb53b710d9e96c39e",
      "parents": [
        "bd6d29c25bb1a24a4c160ec5de43e0004e01f72b",
        "66f41d4c5c8a5deed66fdcc84509376c9a0bf9d8"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Fri Apr 30 19:11:13 2010 +0200"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Fri Apr 30 19:12:47 2010 +0200"
      },
      "message": "Merge commit \u0027v2.6.34-rc6\u0027 into core/locking\n\nMerge reason: Further lockdep patches depend on per cpu updates\nmade in -rc1.\n"
    },
    {
      "commit": "bd6d29c25bb1a24a4c160ec5de43e0004e01f72b",
      "tree": "0aa96c7e9fdfbe7dc9c7e40151aed928903240f0",
      "parents": [
        "ced918eb748ce30b3aace549fd17540e40ffdca0"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Tue Apr 06 00:10:17 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Apr 06 00:15:37 2010 +0200"
      },
      "message": "lockstat: Make lockstat counting per cpu\n\nLocking statistics are implemented using global atomic\nvariables. This is usually fine unless some path write them very\noften.\n\nThis is the case for the function and function graph tracers\nthat disable irqs for each entry saved (except if the function\ntracer is in preempt disabled only mode).\nAnd calls to local_irq_save/restore() increment\nhardirqs_on_events and hardirqs_off_events stats (or similar\nstats for redundant versions).\n\nIncrementing these global vars for each function ends up in too\nmuch cache bouncing if lockstats are enabled.\n\nTo solve this, implement the debug_atomic_*() operations using\nper cpu vars.\n\n -v2: Use per_cpu() instead of get_cpu_var() to fetch the desired\n      cpu vars on debug_atomic_read()\n\n -v3: Store the stats in a structure. No need for local_t as we\n      are NMI/irq safe.\n\n -v4: Fix tons of build errors. I thought I had tested it but I\n      probably forgot to select the relevant config.\n\nSuggested-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nLKML-Reference: \u003c1270505417-8144-1-git-send-regression-fweisbec@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "b66696e3c0d8fc01efdbc701eba1276618332cb3",
      "tree": "3094ef42787b8e0c900bce1f2391ced081ed1ba4",
      "parents": [
        "9e74e7c81a24aee66024fc477786bd1de84e293b",
        "a32f3926632e71c8aa23ce32fe2625f8d5f792c2"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 05 09:39:11 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 05 09:39:11 2010 -0700"
      },
      "message": "Merge branch \u0027slabh\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/misc\n\n* \u0027slabh\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/misc:\n  eeepc-wmi: include slab.h\n  staging/otus: include slab.h from usbdrv.h\n  percpu: don\u0027t implicitly include slab.h from percpu.h\n  kmemcheck: Fix build errors due to missing slab.h\n  include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h\n  iwlwifi: don\u0027t include iwl-dev.h from iwl-devtrace.h\n  x86: don\u0027t include slab.h from arch/x86/include/asm/pgtable_32.h\n\nFix up trivial conflicts in include/linux/percpu.h due to\nis_kernel_percpu_address() having been introduced since the slab.h\ncleanup with the percpu_up.c splitup.\n"
    },
    {
      "commit": "5a0e3ad6af8660be21ca98a971cd00f331318c05",
      "tree": "5bfb7be11a03176a87296a43ac6647975c00a1d1",
      "parents": [
        "ed391f4ebf8f701d3566423ce8f17e614cde9806"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Mar 24 17:04:11 2010 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Mar 30 22:02:32 2010 +0900"
      },
      "message": "include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h\n\npercpu.h is included by sched.h and module.h and thus ends up being\nincluded when building most .c files.  percpu.h includes slab.h which\nin turn includes gfp.h making everything defined by the two files\nuniversally available and complicating inclusion dependencies.\n\npercpu.h -\u003e slab.h dependency is about to be removed.  Prepare for\nthis change by updating users of gfp and slab facilities include those\nheaders directly instead of assuming availability.  As this conversion\nneeds to touch large number of source files, the following script is\nused as the basis of conversion.\n\n  http://userweb.kernel.org/~tj/misc/slabh-sweep.py\n\nThe script does the followings.\n\n* Scan files for gfp and slab usages and update includes such that\n  only the necessary includes are there.  ie. if only gfp is used,\n  gfp.h, if slab is used, slab.h.\n\n* When the script inserts a new include, it looks at the include\n  blocks and try to put the new include such that its order conforms\n  to its surrounding.  It\u0027s put in the include block which contains\n  core kernel includes, in the same order that the rest are ordered -\n  alphabetical, Christmas tree, rev-Xmas-tree or at the end if there\n  doesn\u0027t seem to be any matching order.\n\n* If the script can\u0027t find a place to put a new include (mostly\n  because the file doesn\u0027t have fitting include block), it prints out\n  an error message indicating which .h file needs to be added to the\n  file.\n\nThe conversion was done in the following steps.\n\n1. The initial automatic conversion of all .c files updated slightly\n   over 4000 files, deleting around 700 includes and adding ~480 gfp.h\n   and ~3000 slab.h inclusions.  The script emitted errors for ~400\n   files.\n\n2. Each error was manually checked.  Some didn\u0027t need the inclusion,\n   some needed manual addition while adding it to implementation .h or\n   embedding .c file was more appropriate for others.  This step added\n   inclusions to around 150 files.\n\n3. The script was run again and the output was compared to the edits\n   from #2 to make sure no file was left behind.\n\n4. Several build tests were done and a couple of problems were fixed.\n   e.g. lib/decompress_*.c used malloc/free() wrappers around slab\n   APIs requiring slab.h to be added manually.\n\n5. The script was run on all .h files but without automatically\n   editing them as sprinkling gfp.h and slab.h inclusions around .h\n   files could easily lead to inclusion dependency hell.  Most gfp.h\n   inclusion directives were ignored as stuff from gfp.h was usually\n   wildly available and often used in preprocessor macros.  Each\n   slab.h inclusion directive was examined and added manually as\n   necessary.\n\n6. percpu.h was updated not to include slab.h.\n\n7. Build test were done on the following configurations and failures\n   were fixed.  CONFIG_GCOV_KERNEL was turned off for all tests (as my\n   distributed build env didn\u0027t work with gcov compiles) and a few\n   more options had to be turned off depending on archs to make things\n   build (like ipr on powerpc/64 which failed due to missing writeq).\n\n   * x86 and x86_64 UP and SMP allmodconfig and a custom test config.\n   * powerpc and powerpc64 SMP allmodconfig\n   * sparc and sparc64 SMP allmodconfig\n   * ia64 SMP allmodconfig\n   * s390 SMP allmodconfig\n   * alpha SMP allmodconfig\n   * um on x86_64 SMP allmodconfig\n\n8. percpu.h modifications were reverted so that it could be applied as\n   a separate patch and serve as bisection point.\n\nGiven the fact that I had only a couple of failures from tests on step\n6, I\u0027m fairly confident about the coverage of this conversion patch.\nIf there is a breakage, it\u0027s likely to be something in one of the arch\nheaders which should be easily discoverable easily on most builds of\nthe specific arch.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nGuess-its-ok-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: Lee Schermerhorn \u003cLee.Schermerhorn@hp.com\u003e\n"
    },
    {
      "commit": "10fad5e46f6c7bdfb01b1a012380a38e3c6ab346",
      "tree": "9ec6e3955e7f879f64ea79812cf5ecd41baa6939",
      "parents": [
        "259354deaaf03d49a02dbb9975d6ec2a54675672"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Mar 10 18:57:54 2010 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Mar 29 23:07:12 2010 +0900"
      },
      "message": "percpu, module: implement and use is_kernel/module_percpu_address()\n\nlockdep has custom code to check whether a pointer belongs to static\npercpu area which is somewhat broken.  Implement proper\nis_kernel/module_percpu_address() and replace the custom code.\n\nOn UP, percpu variables are regular static variables and can\u0027t be\ndistinguished from them.  Always return %false on UP.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\n"
    },
    {
      "commit": "f82c37e7bb4c4d9b6a476c642d5c2d2efbd6f240",
      "tree": "09fc553c2fb6f527962048d139159dc139e04afc",
      "parents": [
        "c6b9e73f2fee8bb86058f296de808b326473456b",
        "dcd5c1662db59a6b82942f47fb6ac9dd63f6d3dd"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 18 16:52:46 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 18 16:52:46 2010 -0700"
      },
      "message": "Merge branch \u0027perf-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027perf-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (35 commits)\n  perf: Fix unexported generic perf_arch_fetch_caller_regs\n  perf record: Don\u0027t try to find buildids in a zero sized file\n  perf: export perf_trace_regs and perf_arch_fetch_caller_regs\n  perf, x86: Fix hw_perf_enable() event assignment\n  perf, ppc: Fix compile error due to new cpu notifiers\n  perf: Make the install relative to DESTDIR if specified\n  kprobes: Calculate the index correctly when freeing the out-of-line execution slot\n  perf tools: Fix sparse CPU numbering related bugs\n  perf_event: Fix oops triggered by cpu offline/online\n  perf: Drop the obsolete profile naming for trace events\n  perf: Take a hot regs snapshot for trace events\n  perf: Introduce new perf_fetch_caller_regs() for hot regs snapshot\n  perf/x86-64: Use frame pointer to walk on irq and process stacks\n  lockdep: Move lock events under lockdep recursion protection\n  perf report: Print the map table just after samples for which no map was found\n  perf report: Add multiple event support\n  perf session: Change perf_session post processing functions to take histogram tree\n  perf session: Add storage for seperating event types in report\n  perf session: Change add_hist_entry to take the tree root instead of session\n  perf record: Add ID and to recorded event data when recording multiple events\n  ...\n"
    },
    {
      "commit": "db2c4c7791cd04512093d05afc693c3511a65fd7",
      "tree": "11ad51f5ec2010e32edde2dea5696f90822435f4",
      "parents": [
        "65f2ed2b2fa6034ef9890b60c8fd39fbe76b9d37"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Tue Feb 02 23:34:40 2010 +0100"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Wed Mar 10 14:26:07 2010 +0100"
      },
      "message": "lockdep: Move lock events under lockdep recursion protection\n\nThere are rcu locked read side areas in the path where we submit\na trace event. And these rcu_read_(un)lock() trigger lock events,\nwhich create recursive events.\n\nOne pair in do_perf_sw_event:\n\n__lock_acquire\n      |\n      |--96.11%-- lock_acquire\n      |          |\n      |          |--27.21%-- do_perf_sw_event\n      |          |          perf_tp_event\n      |          |          |\n      |          |          |--49.62%-- ftrace_profile_lock_release\n      |          |          |          lock_release\n      |          |          |          |\n      |          |          |          |--33.85%-- _raw_spin_unlock\n\nAnother pair in perf_output_begin/end:\n\n__lock_acquire\n      |--23.40%-- perf_output_begin\n      |          |          __perf_event_overflow\n      |          |          perf_swevent_overflow\n      |          |          perf_swevent_add\n      |          |          perf_swevent_ctx_event\n      |          |          do_perf_sw_event\n      |          |          perf_tp_event\n      |          |          |\n      |          |          |--55.37%-- ftrace_profile_lock_acquire\n      |          |          |          lock_acquire\n      |          |          |          |\n      |          |          |          |--37.31%-- _raw_spin_lock\n\nThe problem is not that much the trace recursion itself, as we have a\nrecursion protection already (though it\u0027s always wasteful to recurse).\nBut the trace events are outside the lockdep recursion protection, then\neach lockdep event triggers a lock trace, which will trigger two\nother lockdep events. Here the recursive lock trace event won\u0027t\nbe taken because of the trace recursion, so the recursion stops there\nbut lockdep will still analyse these new events:\n\nTo sum up, for each lockdep events we have:\n\n\tlock_*()\n\t     |\n             trace lock_acquire\n                  |\n                  ----- rcu_read_lock()\n                  |          |\n                  |          lock_acquire()\n                  |          |\n                  |          trace_lock_acquire() (stopped)\n                  |          |\n\t\t  |          lockdep analyze\n                  |\n                  ----- rcu_read_unlock()\n                             |\n                             lock_release\n                             |\n                             trace_lock_release() (stopped)\n                             |\n                             lockdep analyze\n\nAnd you can repeat the above two times as we have two rcu read side\nsections when we submit an event.\n\nThis is fixed in this patch by moving the lock trace event under\nthe lockdep recursion protection.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Hitoshi Mitake \u003cmitake@dcl.info.waseda.ac.jp\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nCc: Masami Hiramatsu \u003cmhiramat@redhat.com\u003e\nCc: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "cc5b83a9f884fe8722a275069a5a6fde39988455",
      "tree": "6eec1c17d57a74e98d8b99a568c0c8c2a07a21de",
      "parents": [
        "5ed42b8113667c06a6ff2c72717395b5044d30a1"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Wed Mar 03 07:46:59 2010 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Mar 04 12:07:32 2010 +0100"
      },
      "message": "rcu: Add control variables to lockdep_rcu_dereference() diagnostics\n\nAdd the values of rcu_scheduler_active() and debug_locks() to\nthe lockdep_rcu_dereference() output to help diagnose RCU\nlockdep splats that occur shortly after the scheduler starts.\n\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: laijs@cn.fujitsu.com\nCc: dipankar@in.ibm.com\nCc: mathieu.desnoyers@polymtl.ca\nCc: josh@joshtriplett.org\nCc: dvhltc@us.ibm.com\nCc: niv@us.ibm.com\nCc: peterz@infradead.org\nCc: rostedt@goodmis.org\nCc: Valdis.Kletnieks@vt.edu\nCc: dhowells@redhat.com\nLKML-Reference: \u003c1267631219-8713-4-git-send-email-paulmck@linux.vnet.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "056ba4a9bea5f32781a36b797c562fb731e5eaa6",
      "tree": "1e28f4aed66666c7d20bc0112c1237fee980924a",
      "parents": [
        "c50cc75271759373bd89a036eec4d4269b291616"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Thu Feb 25 14:06:46 2010 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Feb 26 08:20:46 2010 +0100"
      },
      "message": "rcu: Make lockdep_rcu_dereference() message less alarmist\n\nChange from \"unsafe\" to \"suspicious\", given that there will be\nfalse alarms.\n\nSuggested-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: laijs@cn.fujitsu.com\nCc: dipankar@in.ibm.com\nCc: mathieu.desnoyers@polymtl.ca\nCc: josh@joshtriplett.org\nCc: dvhltc@us.ibm.com\nCc: niv@us.ibm.com\nCc: peterz@infradead.org\nCc: rostedt@goodmis.org\nCc: Valdis.Kletnieks@vt.edu\nCc: dhowells@redhat.com\nLKML-Reference: \u003c1267135607-7056-1-git-send-email-paulmck@linux.vnet.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "0632eb3d7563d6a76d49a3860b6352d800c92854",
      "tree": "d998e6d4292a21a91ba1333ffdb1866daf1cfee2",
      "parents": [
        "c26d34a5858f96a564c45048bf5f09319d2abad1"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Mon Feb 22 17:04:47 2010 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Feb 25 09:41:01 2010 +0100"
      },
      "message": "rcu: Integrate rcu_dereference_check() message into lockdep\n\nMake rcu_dereference_check() print the list of held locks in\naddition to the stack dump to ease debugging.\n\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: laijs@cn.fujitsu.com\nCc: dipankar@in.ibm.com\nCc: mathieu.desnoyers@polymtl.ca\nCc: josh@joshtriplett.org\nCc: dvhltc@us.ibm.com\nCc: niv@us.ibm.com\nCc: peterz@infradead.org\nCc: rostedt@goodmis.org\nCc: Valdis.Kletnieks@vt.edu\nCc: dhowells@redhat.com\nLKML-Reference: \u003c1266887105-1528-3-git-send-email-paulmck@linux.vnet.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "48d50674179981e41f432167b2441cec782d5484",
      "tree": "218bc15a2152a10d4b6e7bd412133121777cc182",
      "parents": [
        "b04da8bfdfbbd79544cab2fadfdc12e87eb01600"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Tue Jan 26 19:16:41 2010 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 27 08:34:02 2010 +0100"
      },
      "message": "lockdep: Fix check_usage_backwards() error message\n\nLockdep has found the real bug, but the output doesn\u0027t look right to me:\n\n\u003e \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\u003e [ INFO: possible irq lock inversion dependency detected ]\n\u003e 2.6.33-rc5 #77\n\u003e ---------------------------------------------------------\n\u003e emacs/1609 just changed the state of lock:\n\u003e  (\u0026(\u0026tty-\u003ectrl_lock)-\u003erlock){+.....}, at: [\u003cffffffff8127c648\u003e] tty_fasync+0xe8/0x190\n\u003e but this lock took another, HARDIRQ-unsafe lock in the past:\n\u003e  (\u0026(\u0026sighand-\u003esiglock)-\u003erlock){-.....}\n\n\"HARDIRQ-unsafe\" and \"this lock took another\" looks wrong, afaics.\n\n\u003e   ... key      at: [\u003cffffffff81c054a4\u003e] __key.46539+0x0/0x8\n\u003e   ... acquired at:\n\u003e    [\u003cffffffff81089af6\u003e] __lock_acquire+0x1056/0x15a0\n\u003e    [\u003cffffffff8108a0df\u003e] lock_acquire+0x9f/0x120\n\u003e    [\u003cffffffff81423012\u003e] _raw_spin_lock_irqsave+0x52/0x90\n\u003e    [\u003cffffffff8127c1be\u003e] __proc_set_tty+0x3e/0x150\n\u003e    [\u003cffffffff8127e01d\u003e] tty_open+0x51d/0x5e0\n\nThe stack-trace shows that this lock (ctrl_lock) was taken under\n-\u003esiglock (which is hopefully irq-safe).\n\nThis is a clear typo in check_usage_backwards() where we tell the print a\nfancy routine we\u0027re forwards.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c20100126181641.GA10460@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\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": "d0316554d3586cbea60592a41391b5def2553d6f",
      "tree": "5e7418f0bacbc68cec5dfd1541e03eb56870aa02",
      "parents": [
        "fb0bbb92d42d5bd0ab224605444efdfed06d6934",
        "51e99be00ce2713cbb841cedc997cafa6e26c7f4"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Dec 14 09:58:24 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Dec 14 09:58:24 2009 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu: (34 commits)\n  m68k: rename global variable vmalloc_end to m68k_vmalloc_end\n  percpu: add missing per_cpu_ptr_to_phys() definition for UP\n  percpu: Fix kdump failure if booted with percpu_alloc\u003dpage\n  percpu: make misc percpu symbols unique\n  percpu: make percpu symbols in ia64 unique\n  percpu: make percpu symbols in powerpc unique\n  percpu: make percpu symbols in x86 unique\n  percpu: make percpu symbols in xen unique\n  percpu: make percpu symbols in cpufreq unique\n  percpu: make percpu symbols in oprofile unique\n  percpu: make percpu symbols in tracer unique\n  percpu: make percpu symbols under kernel/ and mm/ unique\n  percpu: remove some sparse warnings\n  percpu: make alloc_percpu() handle array types\n  vmalloc: fix use of non-existent percpu variable in put_cpu_var()\n  this_cpu: Use this_cpu_xx in trace_functions_graph.c\n  this_cpu: Use this_cpu_xx for ftrace\n  this_cpu: Use this_cpu_xx in nmi handling\n  this_cpu: Use this_cpu operations in RCU\n  this_cpu: Use this_cpu ops for VM statistics\n  ...\n\nFix up trivial (famous last words) global per-cpu naming conflicts in\n\tarch/x86/kvm/svm.c\n\tmm/slab.c\n"
    },
    {
      "commit": "ea5b41f9d595be354f7a50e56b28c2d72e6e88a5",
      "tree": "cfb23bea9059df20c1c64da92f3619dc0a1038ec",
      "parents": [
        "722d0172377a5697919b9f7e5beb95165b1dec4e"
      ],
      "author": {
        "name": "Luck, Tony",
        "email": "tony.luck@intel.com",
        "time": "Wed Dec 09 14:29:36 2009 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Dec 10 08:29:33 2009 +0100"
      },
      "message": "lockdep: Avoid out of bounds array reference in save_trace()\n\nia64 found this the hard way (because we currently have a stub\nfor save_stack_trace() that does nothing). But it would be a\ngood idea to  be cautious in case a real save_stack_trace()\nbailed out with an error before it set trace-\u003enr_entries.\n\nSigned-off-by: Tony Luck \u003ctony.luck@intel.com\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: luming.yu@intel.com\nLKML-Reference: \u003c4b2024d085302c2a2@agluck-desktop.sc.intel.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "109d71c6dd52ec08878c2c67eb4c0bd67fcbc80b",
      "tree": "0e531ab9d3327bbc939a13e8e2991150ada9e469",
      "parents": [
        "6ec22f9b037fc0c2e00ddb7023fad279c365324d"
      ],
      "author": {
        "name": "Frank Rowand",
        "email": "frank.rowand@am.sony.com",
        "time": "Thu Nov 19 13:42:06 2009 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Dec 06 13:20:00 2009 +0100"
      },
      "message": "lockstat: Fix min, max times in /proc/lock_stats\n\nFix min, max times in /proc/lock_stats\n\n(1) When collecting lock hold and wait times, if the current minimum\n    time is zero, it will be replaced by the next time.\n\n(2) When aggregating minimum and maximum lock hold and wait times\n    accross cpus, the values are added, instead of selecting the\n    minimum and maximum.\n\nSigned-off-by: Frank Rowand \u003cfrank.rowand@am.sony.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c4B05BBAE.2050005@am.sony.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "67178767b936fb47a3a5e88097cff41ccbda7acb",
      "tree": "f55675817e8d934bd2a627a729a010a58bbba464",
      "parents": [
        "db48cccc7c709ccfa7cb4ac702bc27c216bffee7"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Fri Nov 13 10:06:34 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Nov 13 10:48:27 2009 +0100"
      },
      "message": "tracing: Rename \u0027lockdep\u0027 event subsystem into \u0027lock\u0027\n\nLockdep events subsystem gathers various locking related events\nsuch as a request, release, contention or acquisition of a lock.\n\nThe name of this event subsystem is a bit of a misnomer since\nthese events are not quite related to lockdep but more generally\nto locking, ie: these events are not reporting lock dependencies\nor possible deadlock scenario but pure locking events.\n\nHence this rename.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nAcked-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nAcked-by: Hitoshi Mitake \u003cmitake@dcl.info.waseda.ac.jp\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nLKML-Reference: \u003c1258103194-843-1-git-send-email-fweisbec@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "1871e52c76dd95895caeb772f845a1718dcbcd75",
      "tree": "49e8148326f65353e673204f427bd4545eb26c16",
      "parents": [
        "0f5e4816dbf38ce9488e611ca2296925c1e90d5e"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Oct 29 22:34:13 2009 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Oct 29 22:34:13 2009 +0900"
      },
      "message": "percpu: make percpu symbols under kernel/ and mm/ unique\n\nThis patch updates percpu related symbols under kernel/ and mm/ such\nthat percpu symbols are unique and don\u0027t clash with local symbols.\nThis serves two purposes of decreasing the possibility of global\npercpu symbol collision and allowing dropping per_cpu__ prefix from\npercpu symbols.\n\n* kernel/lockdep.c: s/lock_stats/cpu_lock_stats/\n\n* kernel/sched.c: s/init_rq_rt/init_rt_rq_var/\t(any better idea?)\n  \t\t  s/sched_group_cpus/sched_groups/\n\n* kernel/softirq.c: s/ksoftirqd/run_ksoftirqd/a\n\n* kernel/softlockup.c: s/(*)_timestamp/softlockup_\\1_ts/\n  \t\t       s/watchdog_task/softlockup_watchdog/\n\t\t       s/timestamp/ts/ for local variables\n\n* kernel/time/timer_stats: s/lookup_lock/tstats_lookup_lock/\n\n* mm/slab.c: s/reap_work/slab_reap_work/\n  \t     s/reap_node/slab_reap_node/\n\n* mm/vmstat.c: local variable changed to avoid collision with vmstat_work\n\nPartly based on Rusty Russell\u0027s \"alloc_percpu: rename percpu vars\nwhich cause name clashes\" patch.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nAcked-by: (slab/vmstat) Christoph Lameter \u003ccl@linux-foundation.org\u003e\nReviewed-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Nick Piggin \u003cnpiggin@suse.de\u003e\n"
    },
    {
      "commit": "3365e7798760dc6c190a9bbb0945a38f02625438",
      "tree": "c3c1b49dcf4c2fcbddf1af27c281c9a7a55219ad",
      "parents": [
        "36a07902c2134649c4af7f07980413ffb1a56085"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Oct 09 10:12:41 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Oct 09 15:56:44 2009 +0200"
      },
      "message": "lockdep: Use cpu_clock() for lockstat\n\nSome tracepoint magic (TRACE_EVENT(lock_acquired)) relies on\nthe fact that lock hold times are positive and uses div64 on\nthat. That triggered a build warning on MIPS, and probably\ncauses bad output in certain circumstances as well.\n\nMake it truly positive.\n\nReported-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1254818502.21044.112.camel@laptop\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "2a9ad18deb2870a9968f50351a0d4b8cc2a04099",
      "tree": "e56747b3dc8dd825515d61524c91129f92aed134",
      "parents": [
        "128e8db38e30c1786498dfc011d0f9dd7f9f9266"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier@gentoo.org",
        "time": "Tue Sep 22 16:44:16 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 23 07:39:30 2009 -0700"
      },
      "message": "lockdep: use new arch_is_kernel_data()\n\nThis allows lockdep to locate symbols that are in arch-specific data\nsections (such as data in Blackfin on-chip SRAM regions).\n\nSigned-off-by: Mike Frysinger \u003cvapier@gentoo.org\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Robin Getz \u003crgetz@blackfin.uclinux.org\u003e\nCc: Sam Ravnborg \u003csam@ravnborg.org\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Arnd Bergmann \u003carnd@arndb.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a417887637e862b434b293404f2a31ad1f282a58",
      "tree": "55c71d0a1404b4ab93a38fc51a3ab6f5afe5b860",
      "parents": [
        "96004bb2a1e4ccad2b1eeb92e51031d1e8e609e3"
      ],
      "author": {
        "name": "Ming Lei",
        "email": "tom.leiming@gmail.com",
        "time": "Sat Aug 29 18:47:59 2009 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Aug 29 13:22:36 2009 +0200"
      },
      "message": "lockdep: Remove recursion stattistics\n\nSince lockdep has introduced BFS to avoid recursion, statistics\nfor recursion does not make any sense now. So remove them.\n\nSigned-off-by: Ming Lei \u003ctom.leiming@gmail.com\u003e\nCc: a.p.zijlstra@chello.nl\nLKML-Reference: \u003c1251542879-5211-1-git-send-email-tom.leiming@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "90629209a020859b67423a6326f3765f220c7f5c",
      "tree": "64f3bcbc0c73e709a95fa1192fb6c877b3525855",
      "parents": [
        "e351b660fddd4df76cc4635f896d311ed0ff3752"
      ],
      "author": {
        "name": "Ming Lei",
        "email": "tom.leiming@gmail.com",
        "time": "Sun Aug 02 21:43:36 2009 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Aug 02 15:45:28 2009 +0200"
      },
      "message": "lockdep: Fix memory usage info of BFS\n\nThe unit is KB, so sizeof(struct circular_queue) should be\ndivided by 1024.\n\nSigned-off-by: Ming Lei \u003ctom.leiming@gmail.com\u003e\nCc: akpm@linux-foundation.org\nCc: torvalds@linux-foundation.org\nCc: davem@davemloft.net\nCc: Ming Lei \u003ctom.leiming@gmail.com\u003e\nCc: a.p.zijlstra@chello.nl\nLKML-Reference: \u003c1249220616-7190-1-git-send-email-tom.leiming@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "e351b660fddd4df76cc4635f896d311ed0ff3752",
      "tree": "380a67c875a4454bd47a8ce6ddd159432863646e",
      "parents": [
        "bb97a91e2549a7f2df9c21d32542582f549ab3ec"
      ],
      "author": {
        "name": "Ming Lei",
        "email": "tom.leiming@gmail.com",
        "time": "Wed Jul 22 22:48:09 2009 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Aug 02 15:41:37 2009 +0200"
      },
      "message": "lockdep: Reintroduce generation count to make BFS faster\n\nWe still can apply DaveM\u0027s generation count optimization to\nBFS, based on the following idea:\n\n - before doing each BFS, increase the global generation id\n   by 1\n\n - if one node in the graph has been visited, mark it as\n   visited by storing the current global generation id into\n   the node\u0027s dep_gen_id field\n\n - so we can decide if one node has been visited already, by\n   comparing the node\u0027s dep_gen_id with the global generation id.\n\nBy applying DaveM\u0027s generation count optimization to current\nimplementation of BFS, we gain the following advantages:\n\n - we save MAX_LOCKDEP_ENTRIES/8 bytes memory;\n\n - we remove the bitmap_zero(bfs_accessed, MAX_LOCKDEP_ENTRIES);\n   in each BFS, which is very time-consuming since\n   MAX_LOCKDEP_ENTRIES may be very large.(16384UL)\n\nSigned-off-by: Ming Lei \u003ctom.leiming@gmail.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nLKML-Reference: \u003c1248274089-6358-1-git-send-email-tom.leiming@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "bb97a91e2549a7f2df9c21d32542582f549ab3ec",
      "tree": "fdddcb458b74a39e97089e5bcc93234cb50704c6",
      "parents": [
        "f607c6685774811b8112e124f10a053d77015485"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Mon Jul 20 19:15:35 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Aug 02 15:41:35 2009 +0200"
      },
      "message": "lockdep: Deal with many similar locks\n\nspin_lock_nest_lock() allows to take many instances of the same\nclass, this can easily lead to overflow of MAX_LOCK_DEPTH.\n\nTo avoid this overflow, we\u0027ll stop accounting instances but\nstart reference counting the class in the held_lock structure.\n\n[ We could maintain a list of instances, if we\u0027d move the hlock\n  stuff into __lock_acquired(), but that would require\n  significant modifications to the current code. ]\n\nWe restrict this mode to spin_lock_nest_lock() only, because it\ndegrades the lockdep quality due to lost of instance.\n\nFor lockstat this means we don\u0027t track lock statistics for any\nbut the first lock in the series.\n\nCurrently nesting is limited to 11 bits because that was the\nspare space available in held_lock. This yields a 2048\ninstances maximium.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "f607c6685774811b8112e124f10a053d77015485",
      "tree": "4d32d967c8f8fb37ae09319735062a131a91725b",
      "parents": [
        "98c33eddaf41d225d99b40f9eedbd0fac4c08c05"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Mon Jul 20 19:16:29 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Aug 02 15:41:34 2009 +0200"
      },
      "message": "lockdep: Introduce lockdep_assert_held()\n\nAdd a lockdep helper to validate that we indeed are the owner\nof a lock.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "98c33eddaf41d225d99b40f9eedbd0fac4c08c05",
      "tree": "554181729c032b801d567b8559d68ab66c23ebf3",
      "parents": [
        "4f84f4330a11b9eb828bf5af557f4c79c64614a3"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue Jul 21 13:19:07 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Aug 02 15:41:32 2009 +0200"
      },
      "message": "lockdep: Fix style nits\n\nfixes a few comments and whitespaces that annoyed me.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "4f84f4330a11b9eb828bf5af557f4c79c64614a3",
      "tree": "2ff001464083190f67f61fe3766ee2a6eeb8c349",
      "parents": [
        "bbfa26229a8143889e95e0df4a9d69067ee836cd"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Mon Jul 20 15:27:04 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Aug 02 15:41:31 2009 +0200"
      },
      "message": "lockdep: Fix backtraces\n\nTruncate stupid -1 entries in backtraces.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1248096665.15751.8816.camel@twins\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "af012961450949ea297b209e091bd1a3805b8a0a",
      "tree": "d092a182ad014b4508079bacf416deb1e0650c01",
      "parents": [
        "12f3dfd022d7e616757a94f0538d3d525d806a16"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Thu Jul 16 15:44:29 2009 +0200"
      },
      "committer": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Jul 24 10:53:29 2009 +0200"
      },
      "message": "lockdep: BFS cleanup\n\nSome cleanups of the lockdep code after the BFS series:\n\n - Remove the last traces of the generation id\n - Fixup comment style\n - Move the bfs routines into lockdep.c\n - Cleanup the bfs routines\n\n[ tom.leiming@gmail.com: Fix crash ]\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1246201486-7308-11-git-send-email-tom.leiming@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "12f3dfd022d7e616757a94f0538d3d525d806a16",
      "tree": "22221bcfa6edcc47094bd87862eb9cc5402a5799",
      "parents": [
        "4dd861d6467007681991d8ec079d928db2018cbb"
      ],
      "author": {
        "name": "Ming Lei",
        "email": "tom.leiming@gmail.com",
        "time": "Thu Jul 16 15:44:29 2009 +0200"
      },
      "committer": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Jul 24 10:52:03 2009 +0200"
      },
      "message": "lockdep: Add statistics info for max bfs queue depth\n\nAdd BFS statistics to the existing lockdep stats.\n\nSigned-off-by: Ming Lei \u003ctom.leiming@gmail.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1246201486-7308-10-git-send-email-tom.leiming@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "4dd861d6467007681991d8ec079d928db2018cbb",
      "tree": "f02f8d4ea7779c159d4cbdf67da76ab31f14ba6e",
      "parents": [
        "ef681026ff85c49b7399ceec3eb62bbbcce605e8"
      ],
      "author": {
        "name": "Ming Lei",
        "email": "tom.leiming@gmail.com",
        "time": "Thu Jul 16 15:44:29 2009 +0200"
      },
      "committer": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Jul 24 10:51:52 2009 +0200"
      },
      "message": "lockdep: Update memory usage introduced by BFS\n\nAlso account the BFS memory usage.\n\nSigned-off-by: Ming Lei \u003ctom.leiming@gmail.com\u003e\n[ fix build for !PROVE_LOCKING ]\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1246201486-7308-9-git-send-email-tom.leiming@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "ef681026ff85c49b7399ceec3eb62bbbcce605e8",
      "tree": "38093d7b18ad236e98d59118c730784b67f3467a",
      "parents": [
        "24208ca76707581a097c01a73fd63781e73d3404"
      ],
      "author": {
        "name": "Ming Lei",
        "email": "tom.leiming@gmail.com",
        "time": "Thu Jul 16 15:44:29 2009 +0200"
      },
      "committer": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Jul 24 10:49:56 2009 +0200"
      },
      "message": "lockdep: Implement lockdep_count_*ward_deps by BFS\n\nImplement lockdep_count_{for,back}ward using BFS.\n\nSigned-off-by: Ming Lei \u003ctom.leiming@gmail.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1246201486-7308-8-git-send-email-tom.leiming@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "24208ca76707581a097c01a73fd63781e73d3404",
      "tree": "46d2e44f11dd0b3dda782d6e4467c700f6d03149",
      "parents": [
        "d7aaba140a09b7a2295aec061629c880f088de3d"
      ],
      "author": {
        "name": "Ming Lei",
        "email": "tom.leiming@gmail.com",
        "time": "Thu Jul 16 15:44:29 2009 +0200"
      },
      "committer": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Jul 24 10:49:54 2009 +0200"
      },
      "message": "lockdep: Introduce print_shortest_lock_dependencies\n\nSince the shortest lock dependencies\u0027 path may be obtained by BFS,\nwe print the shortest one by print_shortest_lock_dependencies().\n\nSigned-off-by: Ming Lei \u003ctom.leiming@gmail.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1246201486-7308-7-git-send-email-tom.leiming@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "d7aaba140a09b7a2295aec061629c880f088de3d",
      "tree": "2ea4cac57c25b52049bd5da6b85ef2667d6563b9",
      "parents": [
        "db0002a32f31060ca900b533d93a074ddf7d5b61"
      ],
      "author": {
        "name": "Ming Lei",
        "email": "tom.leiming@gmail.com",
        "time": "Thu Jul 16 15:44:29 2009 +0200"
      },
      "committer": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Jul 24 10:49:52 2009 +0200"
      },
      "message": "lockdep: Implement find_usage_*wards by BFS\n\nThis patch uses BFS to implement find_usage_*wards(),which\nwas originally writen by DFS.\n\nSigned-off-by: Ming Lei \u003ctom.leiming@gmail.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1246201486-7308-6-git-send-email-tom.leiming@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "db0002a32f31060ca900b533d93a074ddf7d5b61",
      "tree": "fb33cb30c852e6dc22ed66fd82d2daa1d5b5206e",
      "parents": [
        "9e2d551ea0d767c0d624965f0c273e942f4be536"
      ],
      "author": {
        "name": "Ming Lei",
        "email": "tom.leiming@gmail.com",
        "time": "Thu Jul 16 15:44:29 2009 +0200"
      },
      "committer": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Jul 24 10:49:50 2009 +0200"
      },
      "message": "lockdep: Implement check_noncircular() by BFS\n\nThis patch uses BFS to implement check_noncircular() and\nprints the generated shortest circle if exists.\n\nSigned-off-by: Ming Lei \u003ctom.leiming@gmail.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1246201486-7308-5-git-send-email-tom.leiming@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "9e2d551ea0d767c0d624965f0c273e942f4be536",
      "tree": "0568e3002063bb174cbfc6f18ec0b5d562b0f77a",
      "parents": [
        "d588e46155e9c51217b9840db1e94a0f594c1af2"
      ],
      "author": {
        "name": "Ming Lei",
        "email": "tom.leiming@gmail.com",
        "time": "Thu Jul 16 15:44:29 2009 +0200"
      },
      "committer": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Jul 24 10:49:48 2009 +0200"
      },
      "message": "lockdep: Introduce match function to BFS\n\n1,introduce match() to BFS in order to make it usable to\nmatch different pattern;\n\n2,also rename some functions to make them more suitable.\n\nSigned-off-by: Ming Lei \u003ctom.leiming@gmail.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1246201486-7308-4-git-send-email-tom.leiming@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "d588e46155e9c51217b9840db1e94a0f594c1af2",
      "tree": "0ede7d7d8338f8db15d8c690c46a0173196d7bac",
      "parents": [
        "c94aa5ca3088018d2a7a9bd3258aefffe29df265"
      ],
      "author": {
        "name": "Ming Lei",
        "email": "tom.leiming@gmail.com",
        "time": "Thu Jul 16 15:44:29 2009 +0200"
      },
      "committer": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Jul 24 10:49:46 2009 +0200"
      },
      "message": "lockdep: Improve implementation of BFS\n\n1,replace %MAX_CIRCULAR_QUE_SIZE with \u0026(MAX_CIRCULAR_QUE_SIZE-1)\nsince we define MAX_CIRCULAR_QUE_SIZE as power of 2;\n\n2,use bitmap to mark if a lock is accessed in BFS in order to\nclear it quickly, because we may search a graph many times.\n\nSigned-off-by: Ming Lei \u003ctom.leiming@gmail.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1246201486-7308-3-git-send-email-tom.leiming@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "c94aa5ca3088018d2a7a9bd3258aefffe29df265",
      "tree": "29c81673e37315087ee3087180fae043085e6343",
      "parents": [
        "4be3bd7849165e7efa6b0b35a23d6a3598d97465"
      ],
      "author": {
        "name": "Ming Lei",
        "email": "tom.leiming@gmail.com",
        "time": "Thu Jul 16 15:44:29 2009 +0200"
      },
      "committer": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Jul 24 10:49:44 2009 +0200"
      },
      "message": "lockdep: Print the shortest dependency chain if finding a circle\n\nCurrently lockdep will print the 1st circle detected if it\nexists when acquiring a new (next) lock.\n\nThis patch prints the shortest path from the next lock to be\nacquired to the previous held lock if a circle is found.\n\nThe patch still uses the current method to check circle, and\nonce the circle is found, breadth-first search algorithem is\nused to compute the shortest path from the next lock to the\nprevious lock in the forward lock dependency graph.\n\nPrinting the shortest path will shorten the dependency chain,\nand make troubleshooting for possible circular locking easier.\n\nSigned-off-by: Ming Lei \u003ctom.leiming@gmail.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1246201486-7308-2-git-send-email-tom.leiming@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "44347d947f628060b92449702071bfe1d31dfb75",
      "tree": "c6ed74610d5b3295df4296659f80f5feb94b28cc",
      "parents": [
        "d94fc523f3c35bd8013f04827e94756cbc0212f4",
        "413f81eba35d6ede9289b0c8a920c013a84fac71"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu May 07 11:17:13 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu May 07 11:17:34 2009 +0200"
      },
      "message": "Merge branch \u0027linus\u0027 into tracing/core\n\nMerge reason: tracing/core was on a .30-rc1 base and was missing out on\n              on a handful of tracing fixes present in .30-rc5-almost.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "c8a250058656495be02c00de61e26b017c86ef00",
      "tree": "d192a7a21deb47146654ab4dc3c824f0cfd5808a",
      "parents": [
        "79d381c9f2354b594dcab9b04dfcc0debf7294fe"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "peterz@infradead.org",
        "time": "Fri Apr 17 09:40:49 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Apr 17 18:00:00 2009 +0200"
      },
      "message": "lockdep: more robust lockdep_map init sequence\n\nSteven Rostedt reported:\n\n\u003e OK, I think I figured this bug out. This is a lockdep issue with respect\n\u003e to tracepoints.\n\u003e\n\u003e The trace points in lockdep are called all the time. Outside the lockdep\n\u003e logic. But if lockdep were to trigger an error / warning (which this run\n\u003e did) we might be in trouble. For new locks, like the dentry-\u003ed_lock, that\n\u003e are created, they will not get a name:\n\u003e\n\u003e void lockdep_init_map(struct lockdep_map *lock, const char *name,\n\u003e                       struct lock_class_key *key, int subclass)\n\u003e {\n\u003e         if (unlikely(!debug_locks))\n\u003e                 return;\n\u003e\n\u003e When a problem is found by lockdep, debug_locks becomes false. Thus we\n\u003e stop allocating names for locks. This dentry-\u003ed_lock I had, now has no\n\u003e name. Worse yet, I have CONFIG_DEBUG_VM set, that scrambles non\n\u003e initialized memory. Thus, when the trace point was hit, it had junk for\n\u003e the lock-\u003ename, and the machine crashed.\n\nAh, nice catch. I think we should put at least the name in regardless.\n\nEnsure we at least initialize the trivial entries of the depmap so that\nthey can be relied upon, even when lockdep itself decided to pack up and\ngo home.\n\n[ Impact: fix lock tracing after lockdep warnings. ]\n\nReported-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nLKML-Reference: \u003c1239954049.23397.4156.camel@laptop\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "ad8d75fff811a6a230f7f43b05a6483099349533",
      "tree": "764f75c0785b29067b141719b6e8000f005da7fd",
      "parents": [
        "ecda8ae02a08ef065ff387f5cb2a2d4999da2408"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Apr 14 19:39:12 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Apr 14 22:05:43 2009 -0400"
      },
      "message": "tracing/events: move trace point headers into include/trace/events\n\nImpact: clean up\n\nCreate a sub directory in include/trace called events to keep the\ntrace point headers in their own separate directory. Only headers that\ndeclare trace points should be defined in this directory.\n\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Neil Horman \u003cnhorman@tuxdriver.com\u003e\nCc: Zhao Lei \u003czhaolei@cn.fujitsu.com\u003e\nCc: Eduard - Gabriel Munteanu \u003ceduard.munteanu@linux360.ro\u003e\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "a8d154b009168337494fbf345671bab74d3e4b8b",
      "tree": "4097612e1a5cc8bf7658542f7d0f51b815113eaf",
      "parents": [
        "ea20d9293ce423a39717ed4375393129a2e701f9"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri Apr 10 09:36:00 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Apr 14 12:57:28 2009 -0400"
      },
      "message": "tracing: create automated trace defines\n\nThis patch lowers the number of places a developer must modify to add\nnew tracepoints. The current method to add a new tracepoint\ninto an existing system is to write the trace point macro in the\ntrace header with one of the macros TRACE_EVENT, TRACE_FORMAT or\nDECLARE_TRACE, then they must add the same named item into the C file\nwith the macro DEFINE_TRACE(name) and then add the trace point.\n\nThis change cuts out the needing to add the DEFINE_TRACE(name).\nEvery file that uses the tracepoint must still include the trace/\u003ctype\u003e.h\nfile, but the one C file must also add a define before the including\nof that file.\n\n #define CREATE_TRACE_POINTS\n #include \u003ctrace/mytrace.h\u003e\n\nThis will cause the trace/mytrace.h file to also produce the C code\nnecessary to implement the trace point.\n\nNote, if more than one trace/\u003ctype\u003e.h is used to create the C code\nit is best to list them all together.\n\n #define CREATE_TRACE_POINTS\n #include \u003ctrace/foo.h\u003e\n #include \u003ctrace/bar.h\u003e\n #include \u003ctrace/fido.h\u003e\n\nThanks to Mathieu Desnoyers and Christoph Hellwig for coming up with\nthe cleaner solution of the define above the includes over my first\ndesign to have the C code include a \"special\" header.\n\nThis patch converts sched, irq and lockdep and skb to use this new\nmethod.\n\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Neil Horman \u003cnhorman@tuxdriver.com\u003e\nCc: Zhao Lei \u003czhaolei@cn.fujitsu.com\u003e\nCc: Eduard - Gabriel Munteanu \u003ceduard.munteanu@linux360.ro\u003e\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "2062501ae6505dbc5bff3a792246c2661d114050",
      "tree": "59792987c9e9fd1ae657c2e4a5cdb14545523e24",
      "parents": [
        "1cad1252ed279ea59f3f8d3d3a5817eeb2f7a4d3"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Mon Apr 06 01:49:33 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Apr 10 12:50:56 2009 +0200"
      },
      "message": "tracing/lockdep: report the time waited for a lock\n\nWhile trying to optimize the new lock on reiserfs to replace\nthe bkl, I find the lock tracing very useful though it lacks\nsomething important for performance (and latency) instrumentation:\nthe time a task waits for a lock.\n\nThat\u0027s what this patch implements:\n\n  bash-4816  [000]   202.652815: lock_contended: lock_contended: \u0026sb-\u003es_type-\u003ei_mutex_key\n  bash-4816  [000]   202.652819: lock_acquired: \u0026rq-\u003elock (0.000 us)\n \u003c...\u003e-4787  [000]   202.652825: lock_acquired: \u0026rq-\u003elock (0.000 us)\n \u003c...\u003e-4787  [000]   202.652829: lock_acquired: \u0026rq-\u003elock (0.000 us)\n  bash-4816  [000]   202.652833: lock_acquired: \u0026sb-\u003es_type-\u003ei_mutex_key (16.005 us)\n\nAs shown above, the \"lock acquired\" field is followed by the time\nit has been waiting for the lock. Usually, a lock contended entry\nis followed by a near lock_acquired entry with a non-zero time waited.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nAcked-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nLKML-Reference: \u003c1238975373-15739-1-git-send-email-fweisbec@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "609862be074cc20e007c640fd936ffe798b41abc",
      "tree": "2ebcacf036fce1b075fe267f608b6abe3f196c67",
      "parents": [
        "12fe32e4f942ac5c71a4ab70b039fee65c0dc29d",
        "eedeeabdeeadb016b8c783e3620d06b98d0cb4e1"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 06 13:37:30 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 06 13:37:30 2009 -0700"
      },
      "message": "Merge branch \u0027locking-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027locking-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  lockdep: add stack dumps to asserts\n  hrtimer: fix rq-\u003elock inversion (again)\n"
    },
    {
      "commit": "8302294f43250dc337108c51882a6007f2b1e2e0",
      "tree": "85acd4440799c46a372df9cad170fa0c21e59096",
      "parents": [
        "4fe70410d9a219dabb47328effccae7e7f2a6e26",
        "2e572895bf3203e881356a4039ab0fa428ed2639"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Apr 01 21:54:19 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Apr 02 00:49:02 2009 +0200"
      },
      "message": "Merge branch \u0027tracing/core-v2\u0027 into tracing-for-linus\n\nConflicts:\n\tinclude/linux/slub_def.h\n\tlib/Kconfig.debug\n\tmm/slob.c\n\tmm/slub.c\n"
    },
    {
      "commit": "eedeeabdeeadb016b8c783e3620d06b98d0cb4e1",
      "tree": "f7353981f73c1db6a65ec403e04c4ddb4be48fc9",
      "parents": [
        "7f1e2ca9f04b02794597f60e7b1d43f0a1317939"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Wed Mar 18 12:38:47 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Mar 31 14:53:01 2009 +0200"
      },
      "message": "lockdep: add stack dumps to asserts\n\nHave a better idea about exactly which loc causes a lockdep\nlimit overflow. Often it\u0027s a bug or inefficiency in that\nsubsystem.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1237376327.5069.253.camel@laptop\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "7bee946358c3cb957d4aa648fc5ab3cad0b232d0",
      "tree": "693061ebde2abc35ecc846e5084630d7225aaaff",
      "parents": [
        "d820ac4c2fa881079e6b689d2098adce337558ae",
        "15f7176eb1cccec0a332541285ee752b935c1c85"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Mar 31 13:53:43 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Mar 31 13:53:43 2009 +0200"
      },
      "message": "Merge branch \u0027linus\u0027 into locking-for-linus\n\nConflicts:\n\tlib/Kconfig.debug\n"
    },
    {
      "commit": "2f8501815256af8498904e68bd0984b1afffd6f8",
      "tree": "ffc9b4d8d80906fc2743b34dcdc93fdd2294f2c6",
      "parents": [
        "19cefdffbfe0f7e280f21e80875937e8700e99e2"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "peterz@infradead.org",
        "time": "Fri Mar 20 11:13:20 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Mar 30 23:19:24 2009 +0200"
      },
      "message": "lockdep: fix deadlock in lockdep_trace_alloc\n\nHeiko reported that we grab the graph lock with irqs enabled.\n\nFix this by providng the same wrapper as all other lockdep entry\nfunctions have.\n\nReported-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Nick Piggin \u003cnpiggin@suse.de\u003e\nLKML-Reference: \u003c1237544000.24626.52.camel@twins\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "480c93df5b99699390f93a7024c9f60d09da0e96",
      "tree": "b93b6c8c71c5f2e716dd05b126e01ef4e20ff0af",
      "parents": [
        "aecfcde920da8d32949f6cbbc1fc051b4ef9e7be",
        "d820ac4c2fa881079e6b689d2098adce337558ae"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Mar 13 01:33:21 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Mar 13 01:33:21 2009 +0100"
      },
      "message": "Merge branch \u0027core/locking\u0027 into tracing/ftrace\n"
    },
    {
      "commit": "03d78913f01e8f6599823f00357ed17b32747d3d",
      "tree": "753cd98bdc3b670bfea014fa28ba2a7430716cb5",
      "parents": [
        "a140feab42d1cfd811930ab76104559c19dfc4b0"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Thu Mar 05 02:29:05 2009 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Mar 05 11:46:00 2009 +0100"
      },
      "message": "lockdep: remove duplicate CONFIG_DEBUG_LOCKDEP definitions\n\nImpact: cleanup\n\nThe atomic debug modifiers are already defined in\nkernel/lockdep_internals.h.\n\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nAcked-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nLKML-Reference: \u003calpine.DEB.2.00.0903050222160.30401@chino.kir.corp.google.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "efed792d6738964f399a508ef9e831cd60fa4657",
      "tree": "b4b5e472bafb3d5d0d8ea26680e1d8cc87365c30",
      "parents": [
        "28b1bd1cbc33cae95a309691d814399a69cf3070"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "peterz@infradead.org",
        "time": "Wed Mar 04 12:32:55 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Mar 04 18:49:58 2009 +0100"
      },
      "message": "tracing: add lockdep tracepoints for lock acquire/release\n\nAugment the traces with lock names when lockdep is available:\n\n 1)               |  down_read_trylock() {\n 1)               |    _spin_lock_irqsave() {\n 1)               |      /* lock_acquire: \u0026sem-\u003ewait_lock */\n 1)   4.201 us    |    }\n 1)               |    _spin_unlock_irqrestore() {\n 1)               |      /* lock_release: \u0026sem-\u003ewait_lock */\n 1)   3.523 us    |    }\n 1)               |  /* lock_acquire: try read \u0026mm-\u003emmap_sem */\n 1) + 13.386 us   |  }\n 1)   1.635 us    |  find_vma();\n 1)               |  handle_mm_fault() {\n 1)               |    __do_fault() {\n 1)               |      filemap_fault() {\n 1)               |        find_lock_page() {\n 1)               |          find_get_page() {\n 1)               |            /* lock_acquire: read rcu_read_lock */\n 1)               |            /* lock_release: rcu_read_lock */\n 1)   5.697 us    |          }\n 1)   8.158 us    |        }\n 1) + 11.079 us   |      }\n 1)               |      _spin_lock() {\n 1)               |        /* lock_acquire: __pte_lockptr(page) */\n 1)   3.949 us    |      }\n 1)   1.460 us    |      page_add_file_rmap();\n 1)               |      _spin_unlock() {\n 1)               |        /* lock_release: __pte_lockptr(page) */\n 1)   3.115 us    |      }\n 1)               |      unlock_page() {\n 1)   1.421 us    |        page_waitqueue();\n 1)   1.220 us    |        __wake_up_bit();\n 1)   6.519 us    |      }\n 1) + 34.328 us   |    }\n 1) + 37.452 us   |  }\n 1)               |  up_read() {\n 1)               |  /* lock_release: \u0026mm-\u003emmap_sem */\n 1)               |    _spin_lock_irqsave() {\n 1)               |      /* lock_acquire: \u0026sem-\u003ewait_lock */\n 1)   3.865 us    |    }\n 1)               |    _spin_unlock_irqrestore() {\n 1)               |      /* lock_release: \u0026sem-\u003ewait_lock */\n 1)   8.562 us    |    }\n 1) + 17.370 us   |  }\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: \u003d?ISO-8859-1?Q?T\u003dF6r\u003dF6k?\u003d Edwin \u003cedwintorok@gmail.com\u003e\nCc: Jason Baron \u003cjbaron@redhat.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nLKML-Reference: \u003c1236166375.5330.7209.camel@laptop\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "26575e28df5eb2050c02369843faba38cecb4d8c",
      "tree": "048d715d8653c0fa88a8c2dd3fb5153537d4e581",
      "parents": [
        "1c21f14ec48a2256fb03682b24dddd23eacdc96f"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Wed Mar 04 14:53:24 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Mar 04 18:38:34 2009 +0100"
      },
      "message": "lockdep: remove extra \"irq\" string\n\nImpact: clarify lockdep printk text\n\nprint_irq_inversion_bug() gets handed state strings of the form\n\n  \"HARDIRQ\", \"SOFTIRQ\", \"RECLAIM_FS\"\n\nand appends \"-irq-{un,}safe\" to them, which is either redudant for *IRQ or\nconfusing in the RECLAIM_FS case.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1236175192.5330.7585.camel@laptop\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "1c21f14ec48a2256fb03682b24dddd23eacdc96f",
      "tree": "03b6ecf8d87074d1f154ff8ac794e9084e00d7cd",
      "parents": [
        "6700ec65c207068a81a535e9dca616fefac21671"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Wed Mar 04 13:51:13 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Mar 04 18:38:33 2009 +0100"
      },
      "message": "lockdep: fix incorrect state name\n\nIn the recent mark_lock_irq() rework a bug snuck in that would report the\nstate of write locks causing irq inversion under a read lock as a read\nlock.\n\nFix this by masking the read bit of the state when validating write\ndependencies.\n\nReported-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1236172646.5330.7450.camel@laptop\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "868a23a8043f2a3042dae60105c89bd4680187ba",
      "tree": "2dfc742bfe6d4dc544a3c43f74c9aa72eea66d57",
      "parents": [
        "9833f8cb952b9aa3f98a71e7bef8820cee3261a0"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Sun Feb 15 00:25:21 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Feb 15 00:30:26 2009 +0100"
      },
      "message": "lockdep: build fix for !PROVE_LOCKING\n\nThe __GFP_FS annotations fail to build with CONFIG_LOCKDEP\u003dy,\nCONFIG_PROVE_LOCKING\u003dn, ammend that.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "b4b136f44b3b7adb9265fd5566d0ea9b99b1cd5f",
      "tree": "5d4b96e8d93903908828fab9850805e172bb7259",
      "parents": [
        "4f367d8adca947bed4385740a13d1efb1a06fba1"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Thu Jan 29 14:50:36 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Feb 14 23:28:26 2009 +0100"
      },
      "message": "lockdep: use stringify.h\n\nArnd pointed out we have the stringify macro magic already in-kernel.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCC: Arnd Bergmann \u003carnd@arndb.de\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "4f367d8adca947bed4385740a13d1efb1a06fba1",
      "tree": "08b758021277b5a237d731e3198e82f204ee1fb3",
      "parents": [
        "f510b233cfc7bfd57b6007071c52aa42e3d16b06"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Thu Jan 22 18:10:42 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Feb 14 23:28:24 2009 +0100"
      },
      "message": "lockdep: simplify check_prev_add_irq()\n\nRemove the manual state iteration thingy.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    }
  ],
  "next": "f510b233cfc7bfd57b6007071c52aa42e3d16b06"
}
