)]}'
{
  "log": [
    {
      "commit": "72eb6a791459c87a0340318840bb3bd9252b627b",
      "tree": "3bfb8ad99f9c7e511f37f72d57b56a2cea06d753",
      "parents": [
        "23d69b09b78c4876e134f104a3814c30747c53f1",
        "55ee4ef30241a62b700f79517e6d5ef2ddbefa67"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 07 17:02:58 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 07 17:02:58 2011 -0800"
      },
      "message": "Merge branch \u0027for-2.6.38\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu\n\n* \u0027for-2.6.38\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu: (30 commits)\n  gameport: use this_cpu_read instead of lookup\n  x86: udelay: Use this_cpu_read to avoid address calculation\n  x86: Use this_cpu_inc_return for nmi counter\n  x86: Replace uses of current_cpu_data with this_cpu ops\n  x86: Use this_cpu_ops to optimize code\n  vmstat: User per cpu atomics to avoid interrupt disable / enable\n  irq_work: Use per cpu atomics instead of regular atomics\n  cpuops: Use cmpxchg for xchg to avoid lock semantics\n  x86: this_cpu_cmpxchg and this_cpu_xchg operations\n  percpu: Generic this_cpu_cmpxchg() and this_cpu_xchg support\n  percpu,x86: relocate this_cpu_add_return() and friends\n  connector: Use this_cpu operations\n  xen: Use this_cpu_inc_return\n  taskstats: Use this_cpu_ops\n  random: Use this_cpu_inc_return\n  fs: Use this_cpu_inc_return in buffer.c\n  highmem: Use this_cpu_xx_return() operations\n  vmstat: Use this_cpu_inc_return for vm statistics\n  x86: Support for this_cpu_add, sub, dec, inc_return\n  percpu: Generic support for this_cpu_add, sub, dec, inc_return\n  ...\n\nFixed up conflicts: in arch/x86/kernel/{apic/nmi.c, apic/x2apic_uv_x.c, process.c}\nas per Tejun.\n"
    },
    {
      "commit": "b52573d2796274f7f31cfeff7185c320adcd4f12",
      "tree": "61580632fa8fbf80225ba7339274ada0c013a01b",
      "parents": [
        "0209f6490b030f35349a2bb71294f3fd75b0f36d"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Tue Dec 14 17:36:02 2010 -0800"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Fri Dec 17 12:34:49 2010 -0800"
      },
      "message": "rcu: reduce __call_rcu()-induced contention on rcu_node structures\n\nWhen the current __call_rcu() function was written, the expedited\nAPIs did not exist.  The __call_rcu() implementation therefore went\nto great lengths to detect the end of old grace periods and to start\nnew ones, all in the name of reducing grace-period latency.  Now the\nexpedited APIs do exist, and the usage of __call_rcu() has increased\nconsiderably.  This commit therefore causes __call_rcu() to avoid\nworrying about grace periods unless there are a large number of\nRCU callbacks stacked up on the current CPU.\n\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "0209f6490b030f35349a2bb71294f3fd75b0f36d",
      "tree": "159e233c6fcaf63fbb1a18f5db54af38a8336ee3",
      "parents": [
        "121dfc4b3eba9e2f3c42d35205a3510cc65b9931"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Tue Dec 14 16:07:52 2010 -0800"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Fri Dec 17 12:34:20 2010 -0800"
      },
      "message": "rcu: limit rcu_node leaf-level fanout\n\nSome recent benchmarks have indicated possible lock contention on the\nleaf-level rcu_node locks.  This commit therefore limits the number of\nCPUs per leaf-level rcu_node structure to 16, in other words, there\ncan be at most 16 rcu_data structures fanning into a given rcu_node\nstructure.  Prior to this, the limit was 32 on 32-bit systems and 64 on\n64-bit systems.\n\nNote that the fanout of non-leaf rcu_node structures is unchanged.  The\norganization of accesses to the rcu_node tree is such that references\nto non-leaf rcu_node structures are much less frequent than to the\nleaf structures.\n\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "121dfc4b3eba9e2f3c42d35205a3510cc65b9931",
      "tree": "bd132a839cf3618f1d7602efbb1e144a8e04cec4",
      "parents": [
        "5ff8e6f0535fe730e921ca347bc38dcb9e01791a"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Fri Dec 10 15:02:47 2010 -0800"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Fri Dec 17 12:34:20 2010 -0800"
      },
      "message": "rcu: fine-tune grace-period begin/end checks\n\nUse the CPU\u0027s bit in rnp-\u003eqsmask to determine whether or not the CPU\nshould try to report a quiescent state.  Handle overflow in the check\nfor rdp-\u003egpnum having fallen behind.\n\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "5ff8e6f0535fe730e921ca347bc38dcb9e01791a",
      "tree": "84940db74c49e9312cd6b0295fa03a04603673a3",
      "parents": [
        "20377f32dcb77941d450728da18cce5b1a7faec5"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Fri Dec 10 22:11:11 2010 +0100"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Fri Dec 17 12:34:19 2010 -0800"
      },
      "message": "rcu: Keep gpnum and completed fields synchronized\n\nWhen a CPU that was in an extended quiescent state wakes\nup and catches up with grace periods that remote CPUs\ncompleted on its behalf, we update the completed field\nbut not the gpnum that keeps a stale value of a backward\ngrace period ID.\n\nLater, note_new_gpnum() will interpret the shift between\nthe local CPU and the node grace period ID as some new grace\nperiod to handle and will then start to hunt quiescent state.\n\nBut if every grace periods have already been completed, this\ninterpretation becomes broken. And we\u0027ll be stuck in clusters\nof spurious softirqs because rcu_report_qs_rdp() will make\nthis broken state run into infinite loop.\n\nThe solution, as suggested by Lai Jiangshan, is to ensure that\nthe gpnum and completed fields are well synchronized when we catch\nup with completed grace periods on their behalf by other cpus.\nThis way we won\u0027t start noting spurious new grace periods.\n\nSuggested-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\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: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "20377f32dcb77941d450728da18cce5b1a7faec5",
      "tree": "ef92da7c1fabcc68685021655842b3b18a6ee773",
      "parents": [
        "e27fc9641e8ddc8146f8e01f06e5eba2469698de"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Fri Dec 10 22:11:10 2010 +0100"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Fri Dec 17 12:34:18 2010 -0800"
      },
      "message": "rcu: Stop chasing QS if another CPU did it for us\n\nWhen a CPU is idle and others CPUs handled its extended\nquiescent state to complete grace periods on its behalf,\nit will catch up with completed grace periods numbers\nwhen it wakes up.\n\nBut at this point there might be no more grace period to\ncomplete, but still the woken CPU always keeps its stale\nqs_pending value and will then continue to chase quiescent\nstates even if its not needed anymore.\n\nThis results in clusters of spurious softirqs until a new\nreal grace period is started. Because if we continue to\nchase quiescent states but we have completed every grace\nperiods, rcu_report_qs_rdp() is puzzled and makes that\nstate run into infinite loops.\n\nAs suggested by Lai Jiangshan, just reset qs_pending if\nsomeone completed every grace periods on our behalf.\n\nSuggested-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\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: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "909ea96468096b07fbb41aaf69be060d92bd9271",
      "tree": "a7e015edd96b5f674874fe78cdd889769e130a2a",
      "parents": [
        "780f36d8b3fa9572f731d4fb85067b2e45e6f993"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "cl@linux.com",
        "time": "Wed Dec 08 16:22:55 2010 +0100"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Fri Dec 17 15:07:19 2010 +0100"
      },
      "message": "core: Replace __get_cpu_var with __this_cpu_read if not used for an address.\n\n__get_cpu_var() can be replaced with this_cpu_read and will then use a\nsingle read instruction with implied address calculation to access the\ncorrect per cpu instance.\n\nHowever, the address of a per cpu variable passed to __this_cpu_read()\ncannot be determined (since it\u0027s an implied address conversion through\nsegment prefixes).  Therefore apply this only to uses of __get_cpu_var\nwhere the address of the variable is not used.\n\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nAcked-by: H. Peter Anvin \u003chpa@zytor.com\u003e\nSigned-off-by: Christoph Lameter \u003ccl@linux.com\u003e\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\n"
    },
    {
      "commit": "2d999e03b7c8305b4385dd20992e4ed3e827177b",
      "tree": "3402eeb03a6cc7ac8013974983f09e46f5ecd562",
      "parents": [
        "29494be71afe2a16ad04e344306a620d7cc22d06"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Wed Oct 20 12:06:18 2010 -0700"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Mon Nov 29 22:01:59 2010 -0800"
      },
      "message": "rcu: update documentation/comments for Lai\u0027s adoption patch\n\nLai\u0027s RCU-callback immediate-adoption patch changes the RCU tracing\noutput, so update tracing.txt.  Also update a few comments to clarify\nthe synchronization design.\n\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "29494be71afe2a16ad04e344306a620d7cc22d06",
      "tree": "d16a2acd1566be326483d5217d39b78d2ef798c5",
      "parents": [
        "7b27d5475f86186914e54e4a6bb994e9a985337b"
      ],
      "author": {
        "name": "Lai Jiangshan",
        "email": "laijs@cn.fujitsu.com",
        "time": "Wed Oct 20 14:13:06 2010 +0800"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Mon Nov 29 22:01:58 2010 -0800"
      },
      "message": "rcu,cleanup: simplify the code when cpu is dying\n\nWhen we handle the CPU_DYING notifier, the whole system is stopped except\nfor the current CPU.  We therefore need no synchronization with the other\nCPUs.  This allows us to move any orphaned RCU callbacks directly to the\nlist of any online CPU without needing to run them through the global\norphan lists.  These global orphan lists can therefore be dispensed with.\nThis commit makes thes changes, though currently victimizes CPU 0 @@@.\n\nSigned-off-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "4ee0a603926cad973e4d384f48c5e279a0fd4118",
      "tree": "da507192551987d4841fccc541a5b94adfef4f01",
      "parents": [
        "b0a0f667a349247bd7f05f806b662a25653822bc"
      ],
      "author": {
        "name": "Dongdong Deng",
        "email": "dongdong.deng@windriver.com",
        "time": "Tue Sep 28 16:32:43 2010 +0800"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Thu Oct 07 10:41:06 2010 -0700"
      },
      "message": "rcu: using ACCESS_ONCE() to observe the jiffies_stall/rnp-\u003eqsmask value\n\nUsing ACCESS_ONCE() to observe the jiffies_stall/rnp-\u003eqsmask value\ndue to the caller didn\u0027t hold the root_rcu/rnp node\u0027s lock.  Although\nuse without ACCESS_ONCE() is safe due to the value loaded being used\nbut once, the ACCESS_ONCE() is a good documentation aid -- the variables\nare being loaded without the services of a lock.\n\nSigned-off-by: Dongdong Deng \u003cdongdong.deng@windriver.com\u003e\nCC: Dipankar Sarma \u003cdipankar@in.ibm.com\u003e\nCC: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "269dcc1c2ec25864308ee03a3fa26ea819d9f5d0",
      "tree": "1c81ee6a9151ab1580628f6e9f85c469ceccb5c0",
      "parents": [
        "0ddea0ead2ced99eaaaddff2beb755381e5c89f8"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Tue Sep 07 14:23:09 2010 -0700"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Thu Sep 23 09:16:53 2010 -0700"
      },
      "message": "rcu: Add tracing data to support queueing models\n\nThe current tracing data is not sufficient to deduce the average time\nthat a callback spends waiting for a grace period to end.  Add three\nper-CPU counters recording the number of callbacks invoked (ci), the\nnumber of callbacks orphaned (co), and the number of callbacks adopted\n(ca).  Given the existing callback queue length (ql), the average wait\ntime in absence of CPU hotplug operations is ql/ci.  The units of wait\ntime will be in terms of the duration over which ci was measured.\n\nIn the presence of CPU hotplug operations, there is room for argument,\nbut ql/(ci-co+ca) won\u0027t steer you too far wrong.\n\nAlso fixes a typo called out by Lucas De Marchi \u003clucas.de.marchi@gmail.com\u003e.\n\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "53d84e004d5e8c018be395c4330dc72fd60bd13e",
      "tree": "6d5b265442ac42c7cc73147b0de0d029644e312b",
      "parents": [
        "8cdd32a918350430483751feaae1c19cef816f69"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Tue Aug 10 14:28:53 2010 -0700"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Fri Aug 20 09:00:12 2010 -0700"
      },
      "message": "rcu: permit suppressing current grace period\u0027s CPU stall warnings\n\nWhen using a kernel debugger, a long sojourn in the debugger can get\nyou lots of RCU CPU stall warnings once you resume.  This might not be\nhelpful, especially if you are using the system console.  This patch\ntherefore allows RCU CPU stall warnings to be suppressed, but only for\nthe duration of the current set of grace periods.\n\nThis differs from Jason\u0027s original patch in that it adds support for\ntiny RCU and preemptible RCU, and uses a slightly different method for\nsuppressing the RCU CPU stall warning messages.\n\nSigned-off-by: Jason Wessel \u003cjason.wessel@windriver.com\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nTested-by: Jason Wessel \u003cjason.wessel@windriver.com\u003e\n"
    },
    {
      "commit": "8cdd32a918350430483751feaae1c19cef816f69",
      "tree": "b219bf5daf42a5fa0b48caf8b94174be2aa9a63f",
      "parents": [
        "9079fd7c2e06a92cf27d05224a1f478581916c5b"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Mon Aug 09 14:23:03 2010 -0700"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Fri Aug 20 09:00:11 2010 -0700"
      },
      "message": "rcu: refer RCU CPU stall-warning victims to stallwarn.txt\n\nThere is some documentation on RCU CPU stall warnings contained in\nDocumentation/RCU/stallwarn.txt, but it will not be apparent to someone\nwho runs into such a warning while under time pressure.  This commit\ntherefore adds comments preceding the printk()s pointing out the\nlocation of this documentation.\n\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "910b1b7e19a292ff685001caf1bf1a9775b771a1",
      "tree": "7ec42bf018ab62c3c2180fbe168cd6130556cb80",
      "parents": [
        "687d7a960aea46e016182c7ce346d62c4dbd0366"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Wed Jul 21 08:05:56 2010 -0700"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Thu Aug 19 17:18:04 2010 -0700"
      },
      "message": "rcu: Allow RCU CPU stall warnings to be off at boot, but manually enablable\n\nCurrently, if RCU CPU stall warnings are enabled, they are enabled\nimmediately upon boot.  They can be manually disabled via /sys (and\nalso re-enabled via /sys), and are automatically disabled upon panic.\nHowever, some users need RCU CPU stalls to be disabled at boot time,\nbut to be enabled without rebuilding/rebooting.  For example, someone\nrunning a real-time application in production might not want the\nadditional latency of RCU CPU stall detection in normal operation, but\nmight need to enable it at any point for fault isolation purposes.\n\nThis commit therefore provides a new CONFIG_RCU_CPU_STALL_DETECTOR_RUNNABLE\nkernel configuration parameter that maintains the current behavior\n(enable at boot) by default, but allows a kernel to be configured\nwith RCU CPU stall detection built into the kernel, but disabled at\nboot time.\n\nRequested-by: Clark Williams \u003cwilliams@redhat.com\u003e\nRequested-by: John Kacur \u003cjkacur@redhat.com\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "f2e0dd7090eddef427ab9d9f81de122244cded51",
      "tree": "71f6dbc174eb9405c1d4313fafa2b5db369d5939",
      "parents": [
        "ded5e5ed2f3348ba2f9a319c6497e46c22850e97"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Wed Jul 14 14:38:30 2010 -0700"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Thu Aug 19 17:18:03 2010 -0700"
      },
      "message": "rcu: allow RCU CPU stall warning messages to be controlled in /sys\n\nSet the permissions of the rcu_cpu_stall_suppress to 644 to enable RCU\nCPU stall warnings to be enabled and disabled at runtime via sysfs.\n\nSuggested-by: Josh Triplett \u003cjosh@joshtriplett.org\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "742734eea0cf5314cde5945963ed964be167bd84",
      "tree": "5716bb62b38f7c65099ff8bc3142457e60637eb3",
      "parents": [
        "b163760e37047781b37c412cde54d146ac4b651f"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Wed Jun 30 11:43:52 2010 -0700"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Thu Aug 19 17:18:02 2010 -0700"
      },
      "message": "rcu: add boot parameter to suppress RCU CPU stall warning messages\n\nAlthough the RCU CPU stall warning messages are a very good way to alert\npeople to a problem, once alerted, it is sometimes helpful to shut them\noff in order to avoid obscuring other messages that might be being used\nto track down the problem.  Although you can rebuild the kernel with\nCONFIG_RCU_CPU_STALL_DETECTOR\u003dn, this is sometimes inconvenient.  This\ncommit therefore adds a boot parameter named \"rcu_cpu_stall_suppress\"\nthat shuts these messages off without requiring a rebuild (though a\nreboot might be needed for those not brave enough to patch their kernel\nwhile it is running).\n\nThis message-suppression was already in place for the panic case, so this\ncommit need only rename the variable and export it via module_param().\n\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "394f99a9007d4274f7076bb8553ab0ff9707688b",
      "tree": "7d379f91321cec58b87fd5f5089947872689d591",
      "parents": [
        "e546f485e1d7520ca0200502cdcc11b503f4805c"
      ],
      "author": {
        "name": "Lai Jiangshan",
        "email": "laijs@cn.fujitsu.com",
        "time": "Mon Jun 28 16:25:04 2010 +0800"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Thu Aug 19 17:18:01 2010 -0700"
      },
      "message": "rcu: simplify the usage of percpu data\n\n\u0026percpu_data is compatible with allocated percpu data.\n\nAnd we use it and remove the \"-\u003erda[NR_CPUS]\" array, saving significant\nstorage on systems with large numbers of CPUs.  This does add an additional\nlevel of indirection and thus an additional cache line referenced, but\nbecause -\u003erda is not used on the read side, this is OK.\n\nSigned-off-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nReviewed-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nReviewed-by: Josh Triplett \u003cjosh@joshtriplett.org\u003e\n"
    },
    {
      "commit": "551d55a944b143ef26fbd482d1c463199d6f65cf",
      "tree": "6911d3f8e8719ba5ca43c83acdf87cbc8276d7d1",
      "parents": [
        "875352c94224c88f5aa28cb77206f993bd31b7a2"
      ],
      "author": {
        "name": "Mathieu Desnoyers",
        "email": "mathieu.desnoyers@efficios.com",
        "time": "Sat Apr 17 08:48:42 2010 -0400"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Mon Jun 14 16:37:26 2010 -0700"
      },
      "message": "tree/tiny rcu: Add debug RCU head objects\n\nHelps finding racy users of call_rcu(), which results in hangs because list\nentries are overwritten and/or skipped.\n\nChangelog since v4:\n- Bissectability is now OK\n- Now generate a WARN_ON_ONCE() for non-initialized rcu_head passed to\n  call_rcu(). Statically initialized objects are detected with\n  object_is_static().\n- Rename rcu_head_init_on_stack to init_rcu_head_on_stack.\n- Remove init_rcu_head() completely.\n\nChangelog since v3:\n- Include comments from Lai Jiangshan\n\nThis new patch version is based on the debugobjects with the newly introduced\n\"active state\" tracker.\n\nNon-initialized entries are all considered as \"statically initialized\". An\nactivation fixup (triggered by call_rcu()) takes care of performing the debug\nobject initialization without issuing any warning. Since we cannot increase the\nsize of struct rcu_head, I don\u0027t see much room to put an identifier for\nstatically initialized rcu_head structures. So for now, we have to live without\n\"activation without explicit init\" detection. But the main purpose of this debug\noption is to detect double-activations (double call_rcu() use of a rcu_head\nbefore the callback is executed), which is correctly addressed here.\n\nThis also detects potential internal RCU callback corruption, which would cause\nthe callbacks to be executed twice.\n\nSigned-off-by: Mathieu Desnoyers \u003cmathieu.desnoyers@efficios.com\u003e\nCC: David S. Miller \u003cdavem@davemloft.net\u003e\nCC: \"Paul E. McKenney\" \u003cpaulmck@linux.vnet.ibm.com\u003e\nCC: akpm@linux-foundation.org\nCC: mingo@elte.hu\nCC: laijs@cn.fujitsu.com\nCC: dipankar@in.ibm.com\nCC: josh@joshtriplett.org\nCC: dvhltc@us.ibm.com\nCC: niv@us.ibm.com\nCC: tglx@linutronix.de\nCC: peterz@infradead.org\nCC: rostedt@goodmis.org\nCC: Valdis.Kletnieks@vt.edu\nCC: dhowells@redhat.com\nCC: eric.dumazet@gmail.com\nCC: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nReviewed-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\n"
    },
    {
      "commit": "72d5a9f7a9542f88397558c65bcfc3b115a65e34",
      "tree": "e46d3ad1948de45b9641d1a8b88f88bfb3809007",
      "parents": [
        "4376030a54860dedab9d848dfa7cc700a6025c0b"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Mon May 10 17:12:17 2010 -0700"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Tue May 11 16:10:47 2010 -0700"
      },
      "message": "rcu: remove all rcu head initializations, except on_stack initializations\n\nRemove all rcu head inits. We don\u0027t care about the RCU head state before passing\nit to call_rcu() anyway. Only leave the \"on_stack\" variants so debugobjects can\nkeep track of objects on stack.\n\nSigned-off-by: Mathieu Desnoyers \u003cmathieu.desnoyers@efficios.com\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "d21670acab9fcb4bc74a40b68a6941059234c55c",
      "tree": "6a4c054bc4dbadf0524b4e221889a8da558dbdaf",
      "parents": [
        "4a90a0681cf6cd21cd444184302aa045156486b3"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Wed Apr 14 17:39:26 2010 -0700"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Mon May 10 11:08:35 2010 -0700"
      },
      "message": "rcu: reduce the number of spurious RCU_SOFTIRQ invocations\n\nLai Jiangshan noted that up to 10% of the RCU_SOFTIRQ are spurious, and\ntraced this down to the fact that the current grace-period machinery\nwill uselessly raise RCU_SOFTIRQ when a given CPU needs to go through\na quiescent state, but has not yet done so.  In this situation, there\nmight well be nothing that RCU_SOFTIRQ can do, and the overhead can be\nworth worrying about in the ksoftirqd case.  This patch therefore avoids\nraising RCU_SOFTIRQ in this situation.\n\nChanges since v1 (http://lkml.org/lkml/2010/3/30/122 from Lai Jiangshan):\n\no\tOmit the rcu_qs_pending() prechecks, as they aren\u0027t that\n\tmuch less expensive than the quiescent-state checks.\n\no\tMerge with the set_need_resched() patch that reduces IPIs.\n\no\tAdd the new n_rp_report_qs field to the rcu_pending tracing output.\n\no\tUpdate the tracing documentation accordingly.\n\nSigned-off-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "4a90a0681cf6cd21cd444184302aa045156486b3",
      "tree": "5e54587e0844d51f6c015f4c489cbf021c9db509",
      "parents": [
        "4300aa642cc9ecb35f2e0683dd294fb790ef028c"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Wed Apr 14 16:48:11 2010 -0700"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Mon May 10 11:08:35 2010 -0700"
      },
      "message": "rcu: permit discontiguous cpu_possible_mask CPU numbering\n\nTREE_RCU assumes that CPU numbering is contiguous, but some users need\nlarge holes in the numbering to better map to hardware layout.  This patch\nmakes TREE_RCU (and TREE_PREEMPT_RCU) tolerate large holes in the CPU\nnumbering.  However, NR_CPUS must still be greater than the largest\nCPU number.\n\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "4300aa642cc9ecb35f2e0683dd294fb790ef028c",
      "tree": "b70d676b02c6311a638fdaa6f3df8773b39fade1",
      "parents": [
        "26845c2860cebebe6ce2d9d01ae3cb3db84b7e29"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Tue Apr 13 16:18:22 2010 -0700"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Mon May 10 11:08:34 2010 -0700"
      },
      "message": "rcu: improve RCU CPU stall-warning messages\n\nThe existing RCU CPU stall-warning messages can be confusing, especially\nin the case where one CPU detects a single other stalled CPU.  In addition,\nthe console messages did not say which flavor of RCU detected the stall,\nwhich can make it difficult to work out exactly what is causing the stall.\nThis commit improves these messages.\n\nRequested-by: Dhaval Giani \u003cdhaval.giani@gmail.com\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "26845c2860cebebe6ce2d9d01ae3cb3db84b7e29",
      "tree": "83849948ea7bffb5e87eecc17a7275e357740632",
      "parents": [
        "c68de2097a8799549a3c3bf27cbfeea24a604284"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Tue Apr 13 14:19:23 2010 -0700"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Mon May 10 11:08:34 2010 -0700"
      },
      "message": "rcu: print boot-time console messages if RCU configs out of ordinary\n\nPrint boot-time messages if tracing is enabled, if fanout is set\nto non-default values, if exact fanout is specified, if accelerated\ndyntick-idle grace periods have been enabled, if RCU-lockdep is enabled,\nif rcutorture has been boot-time enabled, if the CPU stall detector has\nbeen disabled, or if four-level hierarchy has been enabled.\n\nThis is all for TREE_RCU and TREE_PREEMPT_RCU.  TINY_RCU will be handled\nseparately, if at all.\n\nSuggested-by: Josh Triplett \u003cjosh@joshtriplett.org\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "c68de2097a8799549a3c3bf27cbfeea24a604284",
      "tree": "acf2e5cb6de06185002a7d22daa91d893068551b",
      "parents": [
        "55ec936ff4e57cc626db336a7bf33b267390e9b4"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Thu Apr 15 10:12:40 2010 -0700"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Mon May 10 11:08:34 2010 -0700"
      },
      "message": "rcu: disable CPU stall warnings upon panic\n\nThe current RCU CPU stall warnings remain enabled even after a panic\noccurs, which some people have found to be a bit counterproductive.\nThis patch therefore uses a notifier to disable stall warnings once a\npanic occurs.\n\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "bbad937983147c017c25406860287cb94da9af7c",
      "tree": "57311598c360b92b189c7ec337146e4bc779c73d",
      "parents": [
        "25502a6c13745f4650cc59322bd198194f55e796"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Fri Apr 02 16:17:17 2010 -0700"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Mon May 10 11:08:34 2010 -0700"
      },
      "message": "rcu: slim down rcutiny by removing rcu_scheduler_active and friends\n\nTINY_RCU does not need rcu_scheduler_active unless CONFIG_DEBUG_LOCK_ALLOC.\nSo conditionally compile rcu_scheduler_active in order to slim down\nrcutiny a bit more.  Also gets rid of an EXPORT_SYMBOL_GPL, which is\nresponsible for most of the slimming.\n\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "25502a6c13745f4650cc59322bd198194f55e796",
      "tree": "d76cc659d3ea797c5da4630e219ac363d17c44a6",
      "parents": [
        "99652b54de1ee094236f7171485214071af4ef31"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Thu Apr 01 17:37:01 2010 -0700"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Mon May 10 11:08:33 2010 -0700"
      },
      "message": "rcu: refactor RCU\u0027s context-switch handling\n\nThe addition of preemptible RCU to treercu resulted in a bit of\nconfusion and inefficiency surrounding the handling of context switches\nfor RCU-sched and for RCU-preempt.  For RCU-sched, a context switch\nis a quiescent state, pure and simple, just like it always has been.\nFor RCU-preempt, a context switch is in no way a quiescent state, but\nspecial handling is required when a task blocks in an RCU read-side\ncritical section.\n\nHowever, the callout from the scheduler and the outer loop in ksoftirqd\nstill calls something named rcu_sched_qs(), whose name is no longer\naccurate.  Furthermore, when rcu_check_callbacks() notes an RCU-sched\nquiescent state, it ends up unnecessarily (though harmlessly, aside\nfrom the performance hit) enqueuing the current task if it happens to\nbe running in an RCU-preempt read-side critical section.  This not only\nincreases the maximum latency of scheduler_tick(), it also needlessly\nincreases the overhead of the next outermost rcu_read_unlock() invocation.\n\nThis patch addresses this situation by separating the notion of RCU\u0027s\ncontext-switch handling from that of RCU-sched\u0027s quiescent states.\nThe context-switch handling is covered by rcu_note_context_switch() in\ngeneral and by rcu_preempt_note_context_switch() for preemptible RCU.\nThis permits rcu_sched_qs() to handle quiescent states and only quiescent\nstates.  It also reduces the maximum latency of scheduler_tick(), though\nprobably by much less than a microsecond.  Finally, it means that tasks\nwithin preemptible-RCU read-side critical sections avoid incurring the\noverhead of queuing unless there really is a context switch.\n\nSuggested-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nAcked-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\n"
    },
    {
      "commit": "0c34029abdfdea64420cb4264c4e91a776b22157",
      "tree": "9025ccfef4210c04520617a4ae11ec4f24128660",
      "parents": [
        "f261414f0d56dd1a0e34888e27d1d4902ad052f3"
      ],
      "author": {
        "name": "Lai Jiangshan",
        "email": "laijs@cn.fujitsu.com",
        "time": "Sun Mar 28 11:12:30 2010 +0800"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Mon May 10 11:08:31 2010 -0700"
      },
      "message": "rcu: move some code from macro to function\n\nShrink the RCU_INIT_FLAVOR() macro by moving all but the initialization\nof the -\u003erda[] array to rcu_init_one().  The call to rcu_init_one()\ncan then be moved to the end of the RCU_INIT_FLAVOR() macro, which is\nrequired because rcu_boot_init_percpu_data(), which is now called from\nrcu_init_one(), depends on the initialization of the -\u003erda[] array.\n\nSigned-off-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "f261414f0d56dd1a0e34888e27d1d4902ad052f3",
      "tree": "6779e82e0a520121a8d1b86fbfb248bef3ab201a",
      "parents": [
        "d25eb9442bb2c38c1e742f0fa764d7132d72593f"
      ],
      "author": {
        "name": "Lai Jiangshan",
        "email": "laijs@cn.fujitsu.com",
        "time": "Sun Mar 28 11:15:20 2010 +0800"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Mon May 10 11:08:31 2010 -0700"
      },
      "message": "rcu: make dead code really dead\n\ncleanup: make dead code really dead\n\nSigned-off-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "d25eb9442bb2c38c1e742f0fa764d7132d72593f",
      "tree": "0a2604a3b61ce7a0868c021ac945d9826e0d88f1",
      "parents": [
        "2b3fc35f6919344e3cf722dde8308f47235c0b70"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Thu Mar 18 21:36:51 2010 -0700"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Mon May 10 11:08:31 2010 -0700"
      },
      "message": "rcu: substitute set_need_resched for sending resched IPIs\n\nThis patch adds a check to __rcu_pending() that does a local\nset_need_resched() if the current CPU is holding up the current grace\nperiod and if force_quiescent_state() will be called soon.  The goal is\nto reduce the probability that force_quiescent_state() will need to do\nsmp_send_reschedule(), which sends an IPI and is therefore more expensive\non most architectures.\n\nSigned-off-by: \"Paul E. McKenney\" \u003cpaulmck@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "a47cd880b50e14b0b6f5e9d426ae9a2676c9c474",
      "tree": "c134dcec52450ec92ea853f4aeeef8e3967a36cb",
      "parents": [
        "f5f654096487c6d526c47bb66308f9de81f091cf"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Fri Feb 26 16:38:56 2010 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Feb 27 09:53:52 2010 +0100"
      },
      "message": "rcu: Fix accelerated grace periods for last non-dynticked CPU\n\nIt is invalid to invoke __rcu_process_callbacks() with irqs\ndisabled, so do it indirectly via raise_softirq().  This\nrequires a state-machine implementation to cycle through the\ngrace-period machinery the required number of times.\n\nLocated-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: \u003c1267231138-27856-1-git-send-email-paulmck@linux.vnet.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "d9f1bb6ad7fc53c406706f47858dd5ff030b14a3",
      "tree": "4af519d68b396e372e6a5afbb5e968de3bacd123",
      "parents": [
        "056ba4a9bea5f32781a36b797c562fb731e5eaa6"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Thu Feb 25 14:06:47 2010 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Feb 26 08:20:46 2010 +0100"
      },
      "message": "rcu: Make rcu_read_lock_sched_held() take boot time into account\n\nBefore the scheduler starts, all tasks are non-preemptible by\ndefinition. So, during that time, rcu_read_lock_sched_held()\nneeds to always return \"true\".  This patch makes that be so.\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: \u003c1267135607-7056-2-git-send-email-paulmck@linux.vnet.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "1ed509a225008c9e8c0644fbd22168e09a7383a0",
      "tree": "db65a58258bb968e7bc922dab14f4f0714a7667e",
      "parents": [
        "6155fec92e85f07d99e9746234496215443ffb0d"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Mon Feb 22 17:05:05 2010 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Feb 25 10:35:02 2010 +0100"
      },
      "message": "rcu: Add RCU_CPU_STALL_VERBOSE to dump detailed per-task information\n\nWhen RCU detects a grace-period stall, it currently just prints\nout the PID of any tasks doing the stalling.  This patch adds\nRCU_CPU_STALL_VERBOSE, which enables the more-verbose reporting\nfrom sched_show_task().\n\nSuggested-by: Thomas Gleixner \u003ctglx@linutronix.de\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: \u003c1266887105-1528-21-git-send-email-paulmck@linux.vnet.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "3acd9eb31c5f7eb97cb2009fa41472710fb4a10f",
      "tree": "a339775ed9683bdf0f4d7b47a75648a6f86a8446",
      "parents": [
        "1304afb225288a2e250d6a7495462c28e5509cbb"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Mon Feb 22 17:05:03 2010 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Feb 25 10:34:59 2010 +0100"
      },
      "message": "rcu: Fix deadlock in TREE_PREEMPT_RCU CPU stall detection\n\nUnder TREE_PREEMPT_RCU, print_other_cpu_stall() invokes\nrcu_print_task_stall() with the root rcu_node structure\u0027s -\u003elock\nheld, and rcu_print_task_stall() acquires that same lock for\nself-deadlock. Fix this by removing the lock acquisition from\nrcu_print_task_stall(), and making all callers acquire the lock\ninstead.\n\nTested-by: John Kacur \u003cjkacur@redhat.com\u003e\nTested-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nLocated-by: Thomas Gleixner \u003ctglx@linutronix.de\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: \u003c1266887105-1528-19-git-send-email-paulmck@linux.vnet.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "1304afb225288a2e250d6a7495462c28e5509cbb",
      "tree": "1ba76e304f718f7ce89532e1c4d276b4af439c07",
      "parents": [
        "20133cfce7d0bbdcc0c398301030c091f5675c88"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Mon Feb 22 17:05:02 2010 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Feb 25 10:34:58 2010 +0100"
      },
      "message": "rcu: Convert to raw_spinlocks\n\nThe spinlocks in rcutree need to be real spinlocks in\npreempt-rt. Convert them to raw_spinlocks.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\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: \u003c1266887105-1528-18-git-send-email-paulmck@linux.vnet.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "20133cfce7d0bbdcc0c398301030c091f5675c88",
      "tree": "337f242bfc89f5880cf86234fa6b574f52a2f0a5",
      "parents": [
        "1bd22e374b20c2f0ba1d2723c1f585acab2251c5"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Mon Feb 22 17:05:01 2010 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Feb 25 10:34:57 2010 +0100"
      },
      "message": "rcu: Stop overflowing signed integers\n\nThe C standard does not specify the result of an operation that\noverflows a signed integer, so such operations need to be\navoided.  This patch changes the type of several fields from\n\"long\" to \"unsigned long\" and adjusts operations as needed.\nULONG_CMP_GE() and ULONG_CMP_LT() macros are introduced to do\nthe modular comparisons that are appropriate given that overflow\nis an expected event.\n\nAcked-by: Mathieu Desnoyers \u003cmathieu.desnoyers@efficios.com\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: \u003c1266887105-1528-17-git-send-email-paulmck@linux.vnet.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "8bd93a2c5d4cab2ae17d06350daa7dbf546a4634",
      "tree": "3facbdbfbcc1b169fad20f456b0a2521adadfb25",
      "parents": [
        "998f2ac3fea93bfa8b55c279fff68f7c5b9ab93d"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Mon Feb 22 17:04:59 2010 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Feb 25 10:34:55 2010 +0100"
      },
      "message": "rcu: Accelerate grace period if last non-dynticked CPU\n\nCurrently, rcu_needs_cpu() simply checks whether the current CPU\nhas an outstanding RCU callback, which means that the last CPU\nto go into dyntick-idle mode might wait a few ticks for the\nrelevant grace periods to complete.  However, if all the other\nCPUs are in dyntick-idle mode, and if this CPU is in a quiescent\nstate (which it is for RCU-bh and RCU-sched any time that we are\nconsidering going into dyntick-idle mode), then the grace period\nis instantly complete.\n\nThis patch therefore repeatedly invokes the RCU grace-period\nmachinery in order to force any needed grace periods to complete\nquickly.  It does so a limited number of times in order to\nprevent starvation by an RCU callback function that might pass\nitself to call_rcu().\n\nHowever, if any CPU other than the current one is not in\ndyntick-idle mode, fall back to simply checking (with fix to bug\nnoted by Lai Jiangshan).  Also, take advantage of last\ngrace-period forcing, the opportunity to do so noted by Steve\nRostedt.  And apply simplified #ifdef condition suggested by\nFrederic Weisbecker.\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-15-git-send-email-paulmck@linux.vnet.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "017c426138122c8e9b9f5057fbd0567c37b35247",
      "tree": "648d35f773bc08e83d06f0c02a68cae02c46a4cd",
      "parents": [
        "4c54005ca438a8b46dd542b497d4f0dc2ca375e8"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Thu Jan 14 16:10:58 2010 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Jan 16 10:25:22 2010 +0100"
      },
      "message": "rcu: Fix sparse warnings\n\nRename local variable \"i\" in rcu_init() to avoid conflict with\nRCU_INIT_FLAVOR(), restrict the scope of RCU_TREE_NONCORE, and\nmake __synchronize_srcu() static.\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: \u003c12635142581560-git-send-email-\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "b6407e863934965cdc66cbc244d811ceeb6f4d77",
      "tree": "5fb8f9fe233a2084f283887e019e6bf5ac6fac29",
      "parents": [
        "cba8244a0f1c277b6b1e48ed6504fa434119e24d"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Mon Jan 04 16:04:02 2010 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 13 09:06:07 2010 +0100"
      },
      "message": "rcu: Give different levels of the rcu_node hierarchy distinct lockdep names\n\nPreviously, each level of the rcu_node hierarchy had the same\nrather unimaginative name: \"\u0026rcu_node_class[i]\".  This makes\nlockdep diagnostics involving these lockdep classes less helpful\nthan would be nice. This patch fixes this by giving each level\nof the rcu_node hierarchy a distinct name: \"rcu_node_level_0\",\n\"rcu_node_level_1\", and so on. This version of the patch\nincludes improved diagnostics suggested by Josh Triplett and\nPeter Zijlstra.\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: \u003c12626498421830-git-send-email-\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "bf66f18e79e34c421bbd8f6511e2c556b779df2f",
      "tree": "2348e3bc8392addf7959fbe94003f7e0da2a1c8b",
      "parents": [
        "46a1e34eda805501a8b32f26394faa435149f6d1"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Mon Jan 04 15:09:10 2010 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 13 09:06:05 2010 +0100"
      },
      "message": "rcu: Add force_quiescent_state() testing to rcutorture\n\nAdd force_quiescent_state() testing to rcutorture, with a\nseparate thread that repeatedly invokes force_quiescent_state()\nin bursts. This can greatly increase the probability of\nencountering certain types of race conditions.\n\nSuggested-by: Josh Triplett \u003cjosh@joshtriplett.org\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: \u003c1262646551116-git-send-email-\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "46a1e34eda805501a8b32f26394faa435149f6d1",
      "tree": "56359434e348fce6ffc8701fb4948dee1cb4c91f",
      "parents": [
        "45f014c52eef022873b19d6a20eb0ec9668f2b09"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Mon Jan 04 15:09:09 2010 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 13 09:06:05 2010 +0100"
      },
      "message": "rcu: Make force_quiescent_state() start grace period if needed\n\nGrace periods cannot be started while force_quiescent_state() is\nactive.  This is OK in that the affected CPUs will try again\nlater, but it does induce needless grace-period delays.  This\npatch causes rcu_start_gp() to record a failed attempt to start\na grace period. When force_quiescent_state() prepares to return,\nit then starts the grace period if there was such a failed\nattempt.\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: \u003c12626465501854-git-send-email-\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "45f014c52eef022873b19d6a20eb0ec9668f2b09",
      "tree": "036e3987276a5e689869a47b3641d70588db2489",
      "parents": [
        "ee47eb9f4da6f44af965d6d049e77ee8c8a4b822"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Mon Jan 04 15:09:08 2010 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 13 09:06:04 2010 +0100"
      },
      "message": "rcu: Remove redundant grace-period check\n\nThe rcu_process_dyntick() function checks twice for the end of\nthe current grace period.  However, it holds the current\nrcu_node structure\u0027s -\u003elock field throughout, and doesn\u0027t get to\nthe second call to rcu_gp_in_progress() unless there is at least\none CPU corresponding to this rcu_node structure that has not\nyet checked in for the current grace period, which would prevent\nthe current grace period from ending. So the current grace\nperiod cannot have ended, and the second check is redundant, so\nremove it.\n\nAlso, given that this function is used even with !CONFIG_NO_HZ,\nits name is quite misleading.  Change from rcu_process_dyntick()\nto force_qs_rnp().\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: \u003c1262646550562-git-send-email-\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "ee47eb9f4da6f44af965d6d049e77ee8c8a4b822",
      "tree": "bc500b12150bd47afd34b24fd1db90939f5fec3b",
      "parents": [
        "0f10dc826646134dce3e5751512b87d30f3903e4"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Mon Jan 04 15:09:07 2010 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 13 09:06:04 2010 +0100"
      },
      "message": "rcu: Remove leg of force_quiescent_state() switch statement\n\nThe comparisons of rsp-\u003egpnum nad rsp-\u003ecompleted in\nrcu_process_dyntick() and force_quiescent_state() can be\nreplaced by the much more clear rcu_gp_in_progress() predicate\nfunction.  After doing this, it becomes clear that the\nRCU_SAVE_COMPLETED leg of the force_quiescent_state() function\u0027s\nswitch statement is almost completely a no-op.  A small change\nto the RCU_SAVE_DYNTICK leg renders it a complete no-op, after\nwhich it can be removed.  Doing so also eliminates the forcenow\nlocal variable from force_quiescent_state().\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: \u003c12626465501781-git-send-email-\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "0f10dc826646134dce3e5751512b87d30f3903e4",
      "tree": "6d377b3714889a0ab148166a33105b3be14be0c1",
      "parents": [
        "eb1ba45f1e7f6e626fefc063b340c7cbec9bd8c7"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Mon Jan 04 15:09:06 2010 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 13 09:06:03 2010 +0100"
      },
      "message": "rcu: Eliminate rcu_process_dyntick() return value\n\nBecause a new grace period cannot start while we are executing\nwithin the force_quiescent_state() function\u0027s switch statement,\nif any test within that switch statement or within any function\ncalled from that switch statement shows that the current grace\nperiod has ended, we can safely re-do that test any time before\nwe leave the switch statement.  This means that we no longer\nneed a return value from rcu_process_dyntick(), as we can simply\ninvoke rcu_gp_in_progress() to check whether the old grace\nperiod has finished -- there is no longer any need to worry\nabout whether or not a new grace period has been started.\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: \u003c12626465501857-git-send-email-\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "eb1ba45f1e7f6e626fefc063b340c7cbec9bd8c7",
      "tree": "e5d37e450c3c2c96863060c9a7b51a90c03fe363",
      "parents": [
        "39c0bbfc07c6e28db7346d0e11106f2d045d3035"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Mon Jan 04 15:09:05 2010 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 13 09:06:03 2010 +0100"
      },
      "message": "rcu: Eliminate second argument of rcu_process_dyntick()\n\nAt this point, the second argument to all calls to\nrcu_process_dyntick() is a function of the same field of the\nstructure passed in as the first argument, namely, rsp-\u003egpnum-1.\n So propagate rsp-\u003egpnum-1 to all uses of the second argument\nwithin rcu_process_dyntick() and then eliminate the second\nargument.\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: \u003c12626465503786-git-send-email-\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "39c0bbfc07c6e28db7346d0e11106f2d045d3035",
      "tree": "82f0fdacb1eea0334e76e0adb8b9d5beec66f2a7",
      "parents": [
        "f3a8b5c6aa543bd87764418d63632eb65b80e2f6"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Mon Jan 04 15:09:04 2010 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 13 09:06:03 2010 +0100"
      },
      "message": "rcu: Eliminate local variable lastcomp from force_quiescent_state()\n\nBecause rsp-\u003efqs_active is set to 1 across\nforce_quiescent_state()\u0027s switch statement, rcu_start_gp() will\nrefrain from starting a new grace period during this time.\nTherefore, rsp-\u003egpnum is constant, and can be propagated to all\nuses of lastcomp, eliminating this local variable.\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: \u003c12626465502985-git-send-email-\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "f3a8b5c6aa543bd87764418d63632eb65b80e2f6",
      "tree": "c579ced57838ee4f0504c5c295d283b37636e747",
      "parents": [
        "07079d5357a4d53c2b13126c4a38fb40e6e04966"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Mon Jan 04 15:09:03 2010 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 13 09:06:02 2010 +0100"
      },
      "message": "rcu: Eliminate local variable signaled from force_quiescent_state()\n\nBecause the root rcu_node lock is held across entry to the\nswitch statement in force_quiescent_state(), it is no longer\nnecessary to snapshot rsp-\u003esignaled to a local variable.\nEliminate both the snapshotting and the local variable.\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: \u003c1262646550602-git-send-email-\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "07079d5357a4d53c2b13126c4a38fb40e6e04966",
      "tree": "1a97552a220a9bbdfceb1cda01c1ee5b92ce75bd",
      "parents": [
        "559569acf94f538b56bd6eead80b439d6a78cdff"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Mon Jan 04 15:09:02 2010 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 13 09:06:02 2010 +0100"
      },
      "message": "rcu: Prohibit starting new grace periods while forcing quiescent states\n\nReduce the number and variety of race conditions by prohibiting\nthe start of a new grace period while force_quiescent_state() is\nactive. A new fqs_active flag in the rcu_state structure is used\nto trace whether or not force_quiescent_state() is active, and\nthis new flag is tested by rcu_start_gp().  If the CPU that\nclosed out the last grace period needs another grace period,\nthis new grace period may be delayed up to one scheduling-clock\ntick, but it will eventually get started.\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: \u003c126264655052-git-send-email-\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "559569acf94f538b56bd6eead80b439d6a78cdff",
      "tree": "36ff850b4bfd45cdeb102092f4cf00c48ca86434",
      "parents": [
        "f96e9232e04856c781d4f71923a46dd3f7b429fa"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Mon Jan 04 15:09:01 2010 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 13 09:06:01 2010 +0100"
      },
      "message": "rcu: Adjust force_quiescent_state() locking, step 2\n\nThis patch releases rnp-\u003elock after the end of\nforce_quiescent_state()\u0027s switch statement.  This is a second\nstep towards prohibiting starting grace periods while\nforce_quiescent_state() is executing, which will reduce the\nnumber and complexity of races that force_quiescent_state() is\ninvolved in.\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: \u003c12626465501994-git-send-email-\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "f96e9232e04856c781d4f71923a46dd3f7b429fa",
      "tree": "3c320a0a2bc03f54fea5c115b6c0fa1e4bcc7e27",
      "parents": [
        "7284ce6c9f6153d1777df5f310c959724d1bd446"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Mon Jan 04 15:09:00 2010 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 13 09:06:01 2010 +0100"
      },
      "message": "rcu: Adjust force_quiescent_state() locking, step 1\n\nThis causes rnp-\u003elock to be held on entry to\nforce_quiescent_state()\u0027s switch statement.  This is a first\nstep towards prohibiting starting grace periods while\nforce_quiescent_state() is executing, which will reduce the\nnumber and complexity of races that force_quiescent_state() is\ninvolved in.\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: \u003c12626465501455-git-send-email-\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "d9a3da0699b24a589b27a61e1a5b5bd30d9db669",
      "tree": "f7440e396a6c818f3cef514ccc31ab55d88025ef",
      "parents": [
        "cf244dc01bf68e1ad338b82447f8686d24ea4435"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Wed Dec 02 12:10:15 2009 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Dec 03 11:35:25 2009 +0100"
      },
      "message": "rcu: Add expedited grace-period support for preemptible RCU\n\nImplement an synchronize_rcu_expedited() for preemptible RCU\nthat actually is expedited.  This uses\nsynchronize_sched_expedited() to force all threads currently\nrunning in a preemptible-RCU read-side critical section onto the\nappropriate -\u003eblocked_tasks[] list, then takes a snapshot of all\nof these lists and waits for them to drain.\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: \u003c1259784616158-git-send-email-\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "cf244dc01bf68e1ad338b82447f8686d24ea4435",
      "tree": "dc2aebb60ef1eddf92d7e23b72ec2f6c08797684",
      "parents": [
        "d3f6bad3911736e44ba11f3f3f6ac4e8c837fdfc"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Wed Dec 02 12:10:14 2009 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Dec 03 11:34:53 2009 +0100"
      },
      "message": "rcu: Enable fourth level of TREE_RCU hierarchy\n\nEnable a fourth level of rcu_node hierarchy for TREE_RCU and\nTREE_PREEMPT_RCU.  This is for stress-testing and experiemental\npurposes only, although in theory this would enable 16,777,216\nCPUs on 64-bit systems, though only 1,048,576 CPUs on 32-bit\nsystems. Normal experimental use of this fourth level will\nnormally set CONFIG_RCU_FANOUT\u003d2, requiring a 16-CPU system,\nthough the more adventurous (and more fortunate) experimenters\nmay wish to chose CONFIG_RCU_FANOUT\u003d3 for 81-CPU systems or even\nCONFIG_RCU_FANOUT\u003d4 for 256-CPU systems.\n\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nAcked-by: Josh Triplett \u003cjosh@joshtriplett.org\u003e\nAcked-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nCc: dipankar@in.ibm.com\nCc: mathieu.desnoyers@polymtl.ca\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: \u003c12597846161257-git-send-email-\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "d3f6bad3911736e44ba11f3f3f6ac4e8c837fdfc",
      "tree": "55b0c2e11ab3ec02e9065cf3d46ffd20386dfed2",
      "parents": [
        "6ebb237bece23275d1da149b61a342f0d4d06a08"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Wed Dec 02 12:10:13 2009 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Dec 03 11:34:26 2009 +0100"
      },
      "message": "rcu: Rename \"quiet\" functions\n\nThe number of \"quiet\" functions has grown recently, and the\nnames are no longer very descriptive.  The point of all of these\nfunctions is to do some portion of the task of reporting a\nquiescent state, so rename them accordingly:\n\no\tcpu_quiet() becomes rcu_report_qs_rdp(), which reports a\n\tquiescent state to the per-CPU rcu_data structure.  If this\n\tturns out to be a new quiescent state for this grace period,\n\tthen rcu_report_qs_rnp() will be invoked to propagate the\n\tquiescent state up the rcu_node hierarchy.\n\no\tcpu_quiet_msk() becomes rcu_report_qs_rnp(), which reports\n\ta quiescent state for a given CPU (or possibly a set of CPUs)\n\tup the rcu_node hierarchy.\n\no\tcpu_quiet_msk_finish() becomes rcu_report_qs_rsp(), which\n\treports a full set of quiescent states to the global rcu_state\n\tstructure.\n\no\ttask_quiet() becomes rcu_report_unblock_qs_rnp(), which reports\n\ta quiescent state due to a task exiting an RCU read-side critical\n\tsection that had previously blocked in that same critical section.\n\tAs indicated by the new name, this type of quiescent state is\n\treported up the rcu_node hierarchy (using rcu_report_qs_rnp()\n\tto do so).\n\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nAcked-by: Josh Triplett \u003cjosh@joshtriplett.org\u003e\nAcked-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nCc: dipankar@in.ibm.com\nCc: mathieu.desnoyers@polymtl.ca\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: \u003c12597846163698-git-send-email-\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "6ebb237bece23275d1da149b61a342f0d4d06a08",
      "tree": "5f3d99f6ce2e1e98736e5708eecb5bf217f78fde",
      "parents": [
        "9f680ab41485edfdc96331b70afa7513aa0a7720"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Sun Nov 22 08:53:50 2009 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Nov 22 18:58:16 2009 +0100"
      },
      "message": "rcu: Re-arrange code to reduce #ifdef pain\n\nRemove #ifdefs from kernel/rcupdate.c and\ninclude/linux/rcupdate.h by moving code to\ninclude/linux/rcutiny.h, include/linux/rcutree.h, and\nkernel/rcutree.c.\n\nAlso remove some definitions that are no longer used.\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: \u003c1258908830885-git-send-email-\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "9f680ab41485edfdc96331b70afa7513aa0a7720",
      "tree": "620b34f8129c0ea4ddee033c9875a9f60bfba2ae",
      "parents": [
        "b668c9cf3e58739dac54a1d6f42f2b4bdd980b3e"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Sun Nov 22 08:53:49 2009 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Nov 22 18:58:16 2009 +0100"
      },
      "message": "rcu: Eliminate unneeded function wrapping\n\nThe functions rcu_init() is a wrapper for __rcu_init(), and also\nsets up the CPU-hotplug notifier for rcu_barrier_cpu_hotplug().\nBut TINY_RCU doesn\u0027t need CPU-hotplug notification, and the\nrcu_barrier_cpu_hotplug() is a simple wrapper for\nrcu_cpu_notify().\n\nSo push rcu_init() out to kernel/rcutree.c and kernel/rcutiny.c\nand get rid of the wrapper function rcu_barrier_cpu_hotplug().\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: \u003c12589088302320-git-send-email-\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "b668c9cf3e58739dac54a1d6f42f2b4bdd980b3e",
      "tree": "c0165d39532a2314f8187d765f3c8ddf88b72831",
      "parents": [
        "2f51f9884f6a36b0fe9636d5a1937e5cbd25723b"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Sun Nov 22 08:53:48 2009 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Nov 22 18:58:15 2009 +0100"
      },
      "message": "rcu: Fix grace-period-stall bug on large systems with CPU hotplug\n\nWhen the last CPU of a given leaf rcu_node structure goes\noffline, all of the tasks queued on that leaf rcu_node structure\n(due to having blocked in their current RCU read-side critical\nsections) are requeued onto the root rcu_node structure.  This\nrequeuing is carried out by rcu_preempt_offline_tasks().\nHowever, it is possible that these queued tasks are the only\nthing preventing the leaf rcu_node structure from reporting a\nquiescent state up the rcu_node hierarchy.  Unfortunately, the\nold code would fail to do this reporting, resulting in a\ngrace-period stall given the following sequence of events:\n\n1.\tKernel built for more than 32 CPUs on 32-bit systems or for more\n\tthan 64 CPUs on 64-bit systems, so that there is more than one\n\trcu_node structure.  (Or CONFIG_RCU_FANOUT is artificially set\n\tto a number smaller than CONFIG_NR_CPUS.)\n\n2.\tThe kernel is built with CONFIG_TREE_PREEMPT_RCU.\n\n3.\tA task running on a CPU associated with a given leaf rcu_node\n\tstructure blocks while in an RCU read-side critical section\n\t-and- that CPU has not yet passed through a quiescent state\n\tfor the current RCU grace period.  This will cause the task\n\tto be queued on the leaf rcu_node\u0027s blocked_tasks[] array, in\n\tparticular, on the element of this array corresponding to the\n\tcurrent grace period.\n\n4.\tEach of the remaining CPUs corresponding to this same leaf rcu_node\n\tstructure pass through a quiescent state.  However, the task is\n\tstill in its RCU read-side critical section, so these quiescent\n\tstates cannot be reported further up the rcu_node hierarchy.\n\tNevertheless, all bits in the leaf rcu_node structure\u0027s -\u003eqsmask\n\tfield are now zero.\n\n5.\tEach of the remaining CPUs go offline.  (The events in step\n\t#4 and #5 can happen in any order as long as each CPU passes\n\tthrough a quiescent state before going offline.)\n\n6.\tWhen the last CPU goes offline, __rcu_offline_cpu() will invoke\n\trcu_preempt_offline_tasks(), which will move the task to the\n\troot rcu_node structure, but without reporting a quiescent state\n\tup the rcu_node hierarchy (and this failure to report a quiescent\n\tstate is the bug).\n\n\tBut because this leaf rcu_node structure\u0027s -\u003eqsmask field is\n\talready zero and its -\u003eblock_tasks[] entries are all empty,\n\tforce_quiescent_state() will skip this rcu_node structure.\n\n\tTherefore, grace periods are now hung.\n\nThis patch abstracts some code out of rcu_read_unlock_special(),\ncalling the result task_quiet() by analogy with cpu_quiet(), and\ninvokes task_quiet() from both rcu_read_lock_special() and\n__rcu_offline_cpu().  Invoking task_quiet() from\n__rcu_offline_cpu() reports the quiescent state up the rcu_node\nhierarchy, fixing the bug.  This ends up requiring a separate\nlock_class_key per level of the rcu_node hierarchy, which this\npatch also provides.\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: \u003c12589088301770-git-send-email-\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "2f51f9884f6a36b0fe9636d5a1937e5cbd25723b",
      "tree": "0505e111a9714b2bd022322f76e6c4de26861107",
      "parents": [
        "560d4bc0df9a5e63b980432282d8c2bd3559ec74"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Fri Nov 13 19:51:39 2009 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Nov 14 10:31:42 2009 +0100"
      },
      "message": "rcu: Eliminate __rcu_pending() false positives\n\nNow that there are both -\u003egpnum and -\u003ecompleted fields in the\nrcu_node structure, __rcu_pending() should check rdp-\u003egpnum and\nrdp-\u003ecompleted against rnp-\u003egpnum and rdp-\u003ecompleted, respectively,\ninstead of the prior comparison against the rcu_state fields\nrsp-\u003egpnum and rsp-\u003ecompleted.\n\nGiven the old comparison, __rcu_pending() could return 1, resulting\nin a needless raise_softirq(RCU_SOFTIRQ).  This useless work would\nhappen if RCU responded to a scheduling-clock interrupt after the\nrcu_state fields had been updated, but before the rcu_node fields\nhad been updated.\n\nChanging the comparison from the rcu_state fields to the rcu_node\nfields prevents this useless work from happening.\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: \u003c12581706991966-git-send-email-\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "560d4bc0df9a5e63b980432282d8c2bd3559ec74",
      "tree": "1e44bf34973b217977d0b4d57d2b1ee1d4209f08",
      "parents": [
        "8e9aa8f067d2dcd9457980ced618e1cffbcfba46"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Fri Nov 13 19:51:38 2009 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Nov 14 10:31:42 2009 +0100"
      },
      "message": "rcu: Further cleanups of use of lastcomp\n\nNow that a copy of the rsp-\u003ecompleted flag is available in all\nrcu_node structures, make full use of it.  It is still\nlegitimate to access rsp-\u003ecompleted while holding the root\nrcu_node structure\u0027s lock, however.\n\nAlso, tighten up force_quiescent_state()\u0027s checks for end of\ncurrent grace period.\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: \u003c1258170699933-git-send-email-\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "8e9aa8f067d2dcd9457980ced618e1cffbcfba46",
      "tree": "bb32427c6a010435420e4b9481d2fdf1961fdc17",
      "parents": [
        "b32e9eb6ad29572b4451847d0e8227c9be2b6d69"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Thu Nov 12 22:35:04 2009 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Nov 13 10:18:36 2009 +0100"
      },
      "message": "rcu: Simplify association of forced quiescent states with grace periods\n\nThe force_quiescent_state() function also took a snapshot\nof the -\u003ecompleted field, which was as obnoxious as it was in\nrcu_sched_qs() and friends.  So snapshot -\u003egpnum-1.\n\nAlso, since the dyntick_record_completed() and\ndyntick_recall_completed() functions are now simple assignments\nthat are independent of CONFIG_NO_HZ, and since their names are\nnow misleading, get rid of them.\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: \u003c12580941042308-git-send-email-\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "b32e9eb6ad29572b4451847d0e8227c9be2b6d69",
      "tree": "d697f2c9dcf59d2defb6693866bf33cc45307dca",
      "parents": [
        "0e0fc1c23e04c15e814763f2b366e92d87d8b95d"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Thu Nov 12 22:35:03 2009 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Nov 13 10:18:36 2009 +0100"
      },
      "message": "rcu: Accelerate callback processing on CPUs not detecting GP end\n\nAn earlier fix for a race resulted in a situation where the CPUs\nother than the CPU that detected the end of the grace period would\nnot process their callbacks until the next grace period started.\n\nThis means that these other CPUs would unnecessarily demand that an\nextra grace period be started.\n\nThis patch eliminates this extra grace period and speeds callback\nprocessing by propagating rsp-\u003ecompleted to the rcu_node structures\nin the case where the CPU detecting the end of the grace period\nsees no reason to start a new grace period.\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: \u003c1258094104417-git-send-email-\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "c64ac3ce06558e534aec62b1fadeb0a3f111dac1",
      "tree": "faee8cf2d5cb47aeac4999a1e2163491a8e03734",
      "parents": [
        "4bcfe055030d9e953945def3864f7e6997b27782"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Tue Nov 10 13:37:22 2009 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Nov 10 22:48:50 2009 +0100"
      },
      "message": "rcu: Simplify association of quiescent states with grace periods\n\nThe rdp-\u003epassed_quiesc_completed fields are used to properly\nassociate the recorded quiescent state with a grace period.  It\nis OK to wrongly associate a given quiescent state with a\npreceding grace period, but it is fatal to associate a given\nquiescent state with a grace period that begins after the\nquiescent state occurred.  Grace periods are numbered, and the\nfollowing fields track them:\n\no\t-\u003egpnum is the number of the grace period currently in\n\tprogress, or the number of the last grace period to\n\tcomplete if no grace period is currently in progress.\n\no\t-\u003ecompleted is the number of the last grace period to\n\thave completed.\n\nThese two fields are equal if there is no grace period in\nprogress, otherwise -\u003egpnum is one greater than -\u003ecompleted.\nBut the rdp-\u003epassed_quiesc_completed field compared against\n-\u003ecompleted, and if equal, the quiescent state is presumed to\ncount against the current grace period.\n\nThe earlier code copied rdp-\u003ecompleted to\nrdp-\u003epassed_quiesc_completed, which has been made to work, but\nis error-prone.  In contrast, copying one less than rdp-\u003egpnum\nis guaranteed safe, because rdp-\u003egpnum is not incremented until\nafter the start of the corresponding grace period. At the end of\nthe grace period, when -\u003ecompleted has incremented, then any\nquiescent periods recorded previously will be discarded.\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: \u003c12578890421011-git-send-email-\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "4bcfe055030d9e953945def3864f7e6997b27782",
      "tree": "5021112c826572bd0b356f193c2be742e54deb4f",
      "parents": [
        "956539b75921f561c0956c22d37320780e8b4ba1"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Tue Nov 10 13:37:21 2009 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Nov 10 22:48:50 2009 +0100"
      },
      "message": "rcu: Rename dynticks_completed to completed_fqs\n\nThis field is used whether or not CONFIG_NO_HZ is set, so the\nold name of -\u003edynticks_completed is quite misleading.\n\nChange to -\u003ecompleted_fqs, given that it the value that\nforce_quiescent_state() is trying to drive the -\u003ecompleted field\naway from.\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: \u003c12578890423298-git-send-email-\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "9160306e6f5b68bb64630c9031c517ca1cf463db",
      "tree": "d8f78f99d417f34121c21e45a4675b2b1d5c2674",
      "parents": [
        "d09b62dfa336447c52a5ec9bb88adbc479b0f3b8"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Mon Nov 02 13:52:29 2009 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Nov 10 04:12:11 2009 +0100"
      },
      "message": "rcu: Fix note_new_gpnum() uses of -\u003egpnum\n\nImpose a clear locking design on the note_new_gpnum()\nfunction\u0027s use of the -\u003egpnum counter.  This is done by updating\nrdp-\u003egpnum only from the corresponding leaf rcu_node structure\u0027s\nrnp-\u003egpnum field, and even then only under the protection of\nthat same rcu_node structure\u0027s -\u003elock field.  Performance and\nscalability are maintained using a form of double-checked\nlocking, and excessive spinning is avoided by use of the\nspin_trylock() function.  The use of spin_trylock() is safe due\nto the fact that CPUs who fail to acquire this lock will try\nagain later. The hierarchical nature of the rcu_node data\nstructure limits contention (which could be limited further if\nneed be using the RCU_FANOUT kernel parameter).\n\nWithout this patch, obscure but quite possible races could\nresult in a quiescent state that occurred during one grace\nperiod to be accounted to the following grace period, causing\nthis following grace period to end prematurely.  Not good!\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\nCc: \u003cstable@kernel.org\u003e # .32.x\nLKML-Reference: \u003c12571987492350-git-send-email-\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "d09b62dfa336447c52a5ec9bb88adbc479b0f3b8",
      "tree": "70a002fed2e0471def01ea3c166137449cb1527d",
      "parents": [
        "281d150c5f8892f158747594ab49ce2823fd8b8c"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Mon Nov 02 13:52:28 2009 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Nov 10 04:11:54 2009 +0100"
      },
      "message": "rcu: Fix synchronization for rcu_process_gp_end() uses of -\u003ecompleted counter\n\nImpose a clear locking design on the rcu_process_gp_end()\nfunction\u0027s use of the -\u003ecompleted counter.  This is done by\ncreating a -\u003ecompleted field in the rcu_node structure, which\ncan safely be accessed under the protection of that structure\u0027s\nlock.  Performance and scalability are maintained by using a\nform of double-checked locking, so that rcu_process_gp_end()\nonly acquires the leaf rcu_node structure\u0027s -\u003elock if a grace\nperiod has recently ended.\n\nThis fix reduces rcutorture failure rate by at least two orders\nof magnitude under heavy stress with force_quiescent_state()\nbeing invoked artificially often.  Without this fix,\nunsynchronized access to the -\u003ecompleted field can cause\nrcu_process_gp_end() to advance callbacks whose grace period has\nnot yet expired.  (Bad idea!)\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\nCc: \u003cstable@kernel.org\u003e # .32.x\nLKML-Reference: \u003c12571987494069-git-send-email-\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "281d150c5f8892f158747594ab49ce2823fd8b8c",
      "tree": "e46ed3e84545ec33f99f58f4b7211121bbfe3755",
      "parents": [
        "7e1a2766e67a529f62c8cfba0a47d63fc4f7fa8a"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Mon Nov 02 13:52:27 2009 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Nov 10 04:11:17 2009 +0100"
      },
      "message": "rcu: Prepare for synchronization fixes: clean up for non-NO_HZ handling of -\u003ecompleted counter\n\nImpose a clear locking design on non-NO_HZ handling of the\n-\u003ecompleted counter.  This increases the distance between the\nRCU and the CPU-hotplug mechanisms.\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\nCc: \u003cstable@kernel.org\u003e # .32.x\nLKML-Reference: \u003c12571987491353-git-send-email-\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "7e1a2766e67a529f62c8cfba0a47d63fc4f7fa8a",
      "tree": "197950369a773afdf04af9bdfc4a2ce1d2b5d3af",
      "parents": [
        "c5e0cb3ddc5f14cedcfc50c0fb3b5fc6b56576da",
        "83f5b01ffbbaea6f97c9a79d21e240dbfb69f2f1"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Nov 10 04:10:31 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Nov 10 04:10:35 2009 +0100"
      },
      "message": "Merge branch \u0027core/urgent\u0027 into core/rcu\n\nMerge reason: Pick up RCU fixlet to base further commits on.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "83f5b01ffbbaea6f97c9a79d21e240dbfb69f2f1",
      "tree": "e278471f3b9851028ef60e283ce8c73772531d82",
      "parents": [
        "b00bc0b237055b4c45816325ee14f0bd83e6f590"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Wed Oct 28 08:14:49 2009 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Nov 02 16:06:21 2009 +0100"
      },
      "message": "rcu: Fix long-grace-period race between forcing and initialization\n\nVery long RCU read-side critical sections (50 milliseconds or\nso) can cause a race between force_quiescent_state() and\nrcu_start_gp() as follows on kernel builds with multi-level\nrcu_node hierarchies:\n\n1.\tCPU 0 calls force_quiescent_state(), sees that there is a\n\tgrace period in progress, and acquires -\u003efsqlock.\n\n2.\tCPU 1 detects the end of the grace period, and so\n\tcpu_quiet_msk_finish() sets rsp-\u003ecompleted to rsp-\u003egpnum.\n\tThis operation is carried out under the root rnp-\u003elock,\n\tbut CPU 0 has not yet acquired that lock.  Note that\n\trsp-\u003esignaled is still RCU_SAVE_DYNTICK from the last\n\tgrace period.\n\n3.\tCPU 1 calls rcu_start_gp(), but no one wants a new grace\n\tperiod, so it drops the root rnp-\u003elock and returns.\n\n4.\tCPU 0 acquires the root rnp-\u003elock and picks up rsp-\u003ecompleted\n\tand rsp-\u003esignaled, then drops rnp-\u003elock.  It then enters the\n\tRCU_SAVE_DYNTICK leg of the switch statement.\n\n5.\tCPU 2 invokes call_rcu(), and now needs a new grace period.\n\tIt calls rcu_start_gp(), which acquires the root rnp-\u003elock, sets\n\trsp-\u003esignaled to RCU_GP_INIT (too bad that CPU 0 is already in\n\tthe RCU_SAVE_DYNTICK leg of the switch statement!)  and starts\n\tinitializing the rcu_node hierarchy.  If there are multiple\n\tlevels to the hierarchy, it will drop the root rnp-\u003elock and\n\tinitialize the lower levels of the hierarchy.\n\n6.\tCPU 0 notes that rsp-\u003ecompleted has not changed, which permits\n        both CPU 2 and CPU 0 to try updating it concurrently.  If CPU 0\u0027s\n\tupdate prevails, later calls to force_quiescent_state() can\n\tcount old quiescent states against the new grace period, which\n\tcan in turn result in premature ending of grace periods.\n\n\tNot good.\n\nThis patch adds an RCU_GP_IDLE state for rsp-\u003esignaled that is\nset initially at boot time and any time a grace period ends.\nThis prevents CPU 0 from getting into the workings of\nforce_quiescent_state() in step 4.  Additional locking and\nchecks prevent the concurrent update of rsp-\u003esignaled in step 6.\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: \u003c1256742889199-git-send-email-\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "88b91c7ca49bc8600cf1106eb891d08c1965b9ce",
      "tree": "0b45d744c0016e11d70d56f864ad95f321b3ddea",
      "parents": [
        "4ce5b90340879ce93d169b7b523c2cbbe7c45843"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "peterz@infradead.org",
        "time": "Mon Oct 26 10:24:31 2009 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Oct 26 21:07:16 2009 +0100"
      },
      "message": "rcu: Simplify creating of lockdep class for root rcu_node\n\nUse lockdep_set_class() to simplify the code and to avoid any\nadditional overhead in the !LOCKDEP case.  Also move the\ndefinition of rcu_root_class into kernel/rcutree.c, as suggested\nby Lai Jiangshan.\n\nSigned-off-by: Peter Zijlstra \u003cpeterz@infradead.org\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: rostedt@goodmis.org\nCc: Valdis.Kletnieks@vt.edu\nCc: dhowells@redhat.com\nLKML-Reference: \u003c1256577871443-git-send-email-\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "237c80c5c8fb7ec128cf2a756b550dc41ad7eac7",
      "tree": "5d6b3346f2c53cd3f7471001479a8dbd741533a3",
      "parents": [
        "019129d595caaa5bd0b41d128308da1be6a91869"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Thu Oct 15 09:26:14 2009 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Oct 15 20:33:01 2009 +0200"
      },
      "message": "rcu: Fix TREE_PREEMPT_RCU CPU_HOTPLUG bad-luck hang\n\nIf the following sequence of events occurs, then\nTREE_PREEMPT_RCU will hang waiting for a grace period to\ncomplete, eventually OOMing the system:\n\no\tA TREE_PREEMPT_RCU build of the kernel is booted on a system\n\twith more than 64 physical CPUs present (32 on a 32-bit system).\n\tAlternatively, a TREE_PREEMPT_RCU build of the kernel is booted\n\twith RCU_FANOUT set to a sufficiently small value that the\n\tphysical CPUs populate two or more leaf rcu_node structures.\n\no\tA task is preempted in an RCU read-side critical section\n\twhile running on a CPU corresponding to a given leaf rcu_node\n\tstructure.\n\no\tAll CPUs corresponding to this same leaf rcu_node structure\n\trecord quiescent states for the current grace period.\n\no\tAll of these same CPUs go offline (hence the need for enough\n\tphysical CPUs to populate more than one leaf rcu_node structure).\n\tThis causes the preempted task to be moved to the root rcu_node\n\tstructure.\n\nAt this point, there is nothing left to cause the quiescent\nstate to be propagated up the rcu_node tree, so the current\ngrace period never completes.\n\nThe simplest fix, especially after considering the deadlock\npossibilities, is to detect this situation when the last CPU is\nofflined, and to set that CPU\u0027s -\u003eqsmask bit in its leaf\nrcu_node structure.  This will cause the next invocation of\nforce_quiescent_state() to end the grace period.\n\nWithout this fix, this hang can be triggered in an hour or so on\nsome machines with rcutorture and random CPU onlining/offlining.\nWith this fix, these same machines pass a full 10 hours of this\nsort of abuse.\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: \u003c20091015162614.GA19131@linux.vnet.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "37c72e56f6b234ea7387ba530434a80abf2658d8",
      "tree": "1c589c3ecdebbe19488359795cde4c55726a63aa",
      "parents": [
        "2bc872036e1c5948b5b02942810bbdd8dbdb9812"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Wed Oct 14 10:15:55 2009 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Oct 15 11:17:16 2009 +0200"
      },
      "message": "rcu: Prevent RCU IPI storms in presence of high call_rcu() load\n\nAs the number of callbacks on a given CPU rises, invoke\nforce_quiescent_state() only every blimit number of callbacks\n(defaults to 10,000), and even then only if no other CPU has\ninvoked force_quiescent_state() in the meantime.\n\nThis should fix the performance regression reported by Nick.\n\nReported-by: Nick Piggin \u003cnpiggin@suse.de\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\nCc: jens.axboe@oracle.com\nLKML-Reference: \u003c12555405592133-git-send-email-\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "978c0b88146a7f9b364b71b5b83c5b12e7b413d7",
      "tree": "b68bedc40888192d329841a786f3b1214eab91ef",
      "parents": [
        "e74f4c4564455c91a3b4075bb1721993c2a95dda"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Tue Oct 06 21:48:18 2009 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Oct 07 08:11:21 2009 +0200"
      },
      "message": "rcu: Place root rcu_node structure in separate lockdep class\n\nBefore this patch, all of the rcu_node structures were in the same lockdep\nclass, so that lockdep would complain when rcu_preempt_offline_tasks()\nacquired the root rcu_node structure\u0027s lock while holding one of the leaf\nrcu_nodes\u0027 locks.\n\nThis patch changes rcu_init_one() to use a separate\nspin_lock_init() for the root rcu_node structure\u0027s lock than is\nused for that of all of the rest of the rcu_node structures, which\nputs the root rcu_node structure\u0027s lock in its own lockdep class.\n\nSuggested-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: laijs@cn.fujitsu.com\nCc: dipankar@in.ibm.com\nCc: akpm@linux-foundation.org\nCc: mathieu.desnoyers@polymtl.ca\nCc: josh@joshtriplett.org\nCc: dvhltc@us.ibm.com\nCc: niv@us.ibm.com\nCc: rostedt@goodmis.org\nCc: Valdis.Kletnieks@vt.edu\nCc: dhowells@redhat.com\nLKML-Reference: \u003c12548908983277-git-send-email-\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "e74f4c4564455c91a3b4075bb1721993c2a95dda",
      "tree": "213f9df0974c6e1e729de207b2c6dd942a39ba8c",
      "parents": [
        "d0ec774cb2599c858be9d923bb873cf6697520d8"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Tue Oct 06 21:48:17 2009 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Oct 07 08:11:20 2009 +0200"
      },
      "message": "rcu: Make hot-unplugged CPU relinquish its own RCU callbacks\n\nThe current interaction between RCU and CPU hotplug requires that\nRCU block in CPU notifiers waiting for callbacks to drain.\n\nThis can be greatly simplified by having each CPU relinquish its\nown callbacks, and for both _rcu_barrier() and CPU_DEAD notifiers\nto adopt all callbacks that were previously relinquished.\n\nThis change also eliminates the possibility of certain types of\nhangs due to the previous practice of waiting for callbacks to be\ninvoked from within CPU notifiers.  If you don\u0027t every wait, you\ncannot hang.\n\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: laijs@cn.fujitsu.com\nCc: dipankar@in.ibm.com\nCc: akpm@linux-foundation.org\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: \u003c1254890898456-git-send-email-\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "d0ec774cb2599c858be9d923bb873cf6697520d8",
      "tree": "0897fd843622033a6db6ab43167e47c3236aa22d",
      "parents": [
        "322a2c100a8998158445599ea437fb556aa95b11"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Tue Oct 06 21:48:16 2009 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Oct 07 08:11:20 2009 +0200"
      },
      "message": "rcu: Move rcu_barrier() to rcutree\n\nMove the existing rcu_barrier() implementation to rcutree.c,\nconsistent with the fact that the rcu_barrier() implementation is\ntied quite tightly to the RCU implementation.\n\nThis opens the way to simplify and fix rcutree.c\u0027s rcu_barrier()\nimplementation in a later patch.\n\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: laijs@cn.fujitsu.com\nCc: dipankar@in.ibm.com\nCc: akpm@linux-foundation.org\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: \u003c12548908982563-git-send-email-\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "a0b6c9a78c41dc36732d6e1e90f0f2f57b29816f",
      "tree": "4e68c76c95a74e1c8f3360c10e2c3496b7a7df0d",
      "parents": [
        "3d76c082907e8f83c5d5c4572f38d53ad8f00c4b"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Mon Sep 28 07:46:33 2009 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Oct 05 21:02:04 2009 +0200"
      },
      "message": "rcu: Clean up code based on review feedback from Josh Triplett, part 4\n\nThese issues identified during an old-fashioned face-to-face code\nreview extending over many hours.  This group improves an existing\nabstraction and introduces two new ones.  It also fixes an RCU\nstall-warning bug found while making the other changes.\n\no\tMake RCU_INIT_FLAVOR() declare its own variables, removing\n\tthe need to declare them at each call site.\n\no\tCreate an rcu_for_each_leaf() macro that scans the leaf\n\tnodes of the rcu_node tree.\n\no\tCreate an rcu_for_each_node_breadth_first() macro that does\n\ta breadth-first traversal of the rcu_node tree, AKA\n\tstepping through the array in index-number order.\n\no\tIf all CPUs corresponding to a given leaf rcu_node\n\tstructure go offline, then any tasks queued on that leaf\n\twill be moved to the root rcu_node structure.  Therefore,\n\tthe stall-warning code must dump out tasks queued on the\n\troot rcu_node structure as well as those queued on the leaf\n\trcu_node structures.\n\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: laijs@cn.fujitsu.com\nCc: dipankar@in.ibm.com\nCc: akpm@linux-foundation.org\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: \u003c12541491934126-git-send-email-\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "3d76c082907e8f83c5d5c4572f38d53ad8f00c4b",
      "tree": "a39c3d3ea17dc085195626487f37995beb742ac0",
      "parents": [
        "162cc2794df37662beb7f97ddd1dd5bffaf85e9a"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Mon Sep 28 07:46:32 2009 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Oct 05 21:02:02 2009 +0200"
      },
      "message": "rcu: Clean up code based on review feedback from Josh Triplett, part 3\n\nWhitespace fixes, updated comments, and trivial code movement.\n\no\tFix whitespace error in RCU_HEAD_INIT()\n\no\tMove \"So where is rcu_write_lock()\" comment so that it does\n\tnot come between the rcu_read_unlock() header comment and\n\tthe rcu_read_unlock() definition.\n\no\tMove the module_param statements for blimit, qhimark, and\n\tqlowmark to immediately follow the corresponding\n\tdefinitions.\n\no\tIn __rcu_offline_cpu(), move the assignment to rdp_me\n\tinside the \"if\" statement, given that rdp_me is not used\n\toutside of that \"if\" statement.\n\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: laijs@cn.fujitsu.com\nCc: dipankar@in.ibm.com\nCc: akpm@linux-foundation.org\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: \u003c12541491931164-git-send-email-\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "162cc2794df37662beb7f97ddd1dd5bffaf85e9a",
      "tree": "88619bce8fce70c4f19c1a5809448d7b624bbb9e",
      "parents": [
        "9b2619aff0332e95ea5eb7a0d75b0208818d871c"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Wed Sep 23 16:18:13 2009 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Oct 05 21:01:28 2009 +0200"
      },
      "message": "rcu: Fix rcu_lock_map build failure on CONFIG_PROVE_LOCKING\u003dy\n\nMove the rcu_lock_map definition from rcutree.c to rcupdate.c so that\nTINY_RCU can use lockdep.\n\nReported-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "9b2619aff0332e95ea5eb7a0d75b0208818d871c",
      "tree": "a1aed182c4f1ec511352c0e3cb3eba0e20535263",
      "parents": [
        "1eba8f84380bede3c602bd7758dea96925cead01"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Wed Sep 23 09:50:43 2009 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Sep 23 19:46:30 2009 +0200"
      },
      "message": "rcu: Clean up code to address Ingo\u0027s checkpatch feedback\n\nMove declarations and update storage classes to make checkpatch happy.\n\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: laijs@cn.fujitsu.com\nCc: dipankar@in.ibm.com\nCc: akpm@linux-foundation.org\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: \u003c12537246441701-git-send-email-\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "1eba8f84380bede3c602bd7758dea96925cead01",
      "tree": "32dd97671016c9fdc24d75be50cc8540e6cc0730",
      "parents": [
        "fc2219d49ef1606e7fd2c88af2b423b01ff3d319"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Wed Sep 23 09:50:42 2009 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Sep 23 19:46:29 2009 +0200"
      },
      "message": "rcu: Clean up code based on review feedback from Josh Triplett, part 2\n\nThese issues identified during an old-fashioned face-to-face code\nreview extending over many hours.\n\no\tAdd comments for tricky parts of code, and correct comments\n\tthat have passed their sell-by date.\n\no\tGet rid of the vestiges of rcu_init_sched(), which is no\n\tlonger needed now that PREEMPT_RCU is gone.\n\no\tMove the #include of rcutree_plugin.h to the end of\n\trcutree.c, which means that, rather than having a random\n\tcollection of forward declarations, the new set of forward\n\tdeclarations document the set of plugins.  The new home for\n\tthis #include also allows __rcu_init_preempt() to move into\n\trcutree_plugin.h.\n\no\tFix rcu_preempt_check_callbacks() to be static.\n\nSuggested-by: Josh Triplett \u003cjosh@joshtriplett.org\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: laijs@cn.fujitsu.com\nCc: dipankar@in.ibm.com\nCc: akpm@linux-foundation.org\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: \u003c12537246443924-git-send-email-\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nPeter Zijlstra \u003cpeterz@infradead.org\u003e\n"
    },
    {
      "commit": "fc2219d49ef1606e7fd2c88af2b423b01ff3d319",
      "tree": "1c1cba7e4334898a98cf0e2c992e8cfef4b34979",
      "parents": [
        "0729e196147692d84d4c099fcff056eba2ed61d8"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Wed Sep 23 09:50:41 2009 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Sep 23 19:46:29 2009 +0200"
      },
      "message": "rcu: Clean up code based on review feedback from Josh Triplett\n\nThese issues identified during an old-fashioned face-to-face code\nreview extended over many hours.\n\no\tBury various forms of the \"rsp-\u003ecompleted \u003d\u003d rsp-\u003egpnum\"\n\tcomparison into an rcu_gp_in_progress() function, which has\n\tthe beneficial side-effect of forcing consistent use of\n\tACCESS_ONCE().\n\no\tReplace hand-coded arithmetic with DIV_ROUND_UP().\n\no\tBury several \"!list_empty(\u0026rnp-\u003eblocked_tasks[rnp-\u003egpnum \u0026 0x01])\"\n\tinstances into an rcu_preempted_readers() function, as this\n\texpression indicates that there are no readers blocked\n\twithin RCU read-side critical sections blocking the current\n\tgrace period.  (Though there might well be similar readers\n\tblocking the next grace period.)\n\no\tRemove a dangling rcu_restart_cpu() declaration that has\n\tbeen dangling for almost 20 minor releases of the kernel.\n\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nAcked-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: laijs@cn.fujitsu.com\nCc: dipankar@in.ibm.com\nCc: akpm@linux-foundation.org\nCc: mathieu.desnoyers@polymtl.ca\nCc: josh@joshtriplett.org\nCc: dvhltc@us.ibm.com\nCc: niv@us.ibm.com\nCc: rostedt@goodmis.org\nCc: Valdis.Kletnieks@vt.edu\nCc: dhowells@redhat.com\nLKML-Reference: \u003c12537246442687-git-send-email-\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "a71fca58b7f4abca551ae2256ac08dd9123a03f9",
      "tree": "55bef0550ff2558a117d768426474e15b081ff4b",
      "parents": [
        "49e291266d0920264471d9d64268fb030e33a99a"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Fri Sep 18 10:28:19 2009 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Sep 19 08:53:22 2009 +0200"
      },
      "message": "rcu: Fix whitespace inconsistencies\n\nFix a number of whitespace ^Ierrors in the include/linux/rcu*\nand the kernel/rcu* files.\n\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: laijs@cn.fujitsu.com\nCc: dipankar@in.ibm.com\nCc: akpm@linux-foundation.org\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\nLKML-Reference: \u003c20090918172819.GA24405@linux.vnet.ibm.com\u003e\n[ did more checkpatch fixlets ]\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "49e291266d0920264471d9d64268fb030e33a99a",
      "tree": "8770717427ee877e6b7b3dae6b120f35be645d70",
      "parents": [
        "e7d8842ed34a7fe19d1ed90f84c211fb056ac523"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Fri Sep 18 09:50:19 2009 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Sep 19 08:53:21 2009 +0200"
      },
      "message": "rcu: Fix thinko, actually initialize full tree\n\nCommit de078d8 (\"rcu: Need to update rnp-\u003egpnum if preemptable RCU\nis to be reliable\") repeatedly and incorrectly initializes the root\nrcu_node structure\u0027s -\u003egpnum field rather than initializing the\n-\u003egpnum field of each node in the tree.  Fix this.  Also add an\nadditional consistency check to catch this in the future.\n\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: laijs@cn.fujitsu.com\nCc: dipankar@in.ibm.com\nCc: akpm@linux-foundation.org\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\nLKML-Reference: \u003c125329262011-git-send-email-\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "e7d8842ed34a7fe19d1ed90f84c211fb056ac523",
      "tree": "d49d5b8ff8829e525b8f80d60a18ef1f37e09529",
      "parents": [
        "28ecd58020409be8eb176c716f957fc3386fa2fa"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Fri Sep 18 09:50:18 2009 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Sep 19 08:53:21 2009 +0200"
      },
      "message": "rcu: Apply results of code inspection of kernel/rcutree_plugin.h\n\no Drop the calls to cpu_quiet() from the online/offline code.\n  These are unnecessary, since force_quiescent_state() will\n  clean up, and removing them simplifies the code a bit.\n\no Add a warning to check that we don\u0027t enqueue the same blocked\n  task twice onto the -\u003eblocked_tasks[] lists.\n\no Rework the phase computation in rcu_preempt_note_context_switch()\n  to be more readable, as suggested by Josh Triplett.\n\no Disable irqs to close a race between the scheduling clock\n  interrupt and rcu_preempt_note_context_switch() WRT the\n  -\u003ercu_read_unlock_special field.\n\no Add comments to rnp-\u003elock acquisition and release within\n  rcu_read_unlock_special() noting that irqs are already\n  disabled.\n\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: laijs@cn.fujitsu.com\nCc: dipankar@in.ibm.com\nCc: akpm@linux-foundation.org\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\nLKML-Reference: \u003c12532926201851-git-send-email-\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "28ecd58020409be8eb176c716f957fc3386fa2fa",
      "tree": "820dd14bbfc5b69384c3b88611c6173c06ba5e08",
      "parents": [
        "16e3081191837a6a04733de5cd5d1d1b303140d4"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Fri Sep 18 09:50:17 2009 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Sep 19 08:53:19 2009 +0200"
      },
      "message": "rcu: Add WARN_ON_ONCE() consistency checks covering state transitions\n\no Verify that qsmask bits stay clear through GP\n  initialization.\n\no Verify that cpu_quiet_msk_finish() is never invoked unless\n  there actually is an RCU grace period in progress.\n\no Verify that all internal-node rcu_node structures have empty\n  blocked_tasks[] lists.\n\no Verify that child rcu_node structure\u0027s bits remain clear after\n  acquiring parent\u0027s lock.\n\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: laijs@cn.fujitsu.com\nCc: dipankar@in.ibm.com\nCc: akpm@linux-foundation.org\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\nLKML-Reference: \u003c12532926191947-git-send-email-\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "c3422bea5f09b0e85704f51f2b01271630b8940b",
      "tree": "fc4a18241b0f7f5d71211f6787428197769cb9f5",
      "parents": [
        "b0e165c035b13e1074fa0b555318bd9cb7102558"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Sun Sep 13 09:15:10 2009 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Sep 18 00:06:33 2009 +0200"
      },
      "message": "rcu: Simplify rcu_read_unlock_special() quiescent-state accounting\n\nThe earlier approach required two scheduling-clock ticks to note an\npreemptable-RCU quiescent state in the situation in which the\nscheduling-clock interrupt is unlucky enough to always interrupt an\nRCU read-side critical section.\n\nWith this change, the quiescent state is instead noted by the\noutermost rcu_read_unlock() immediately following the first\nscheduling-clock tick, or, alternatively, by the first subsequent\ncontext switch.  Therefore, this change also speeds up grace\nperiods.\n\nSuggested-by: Josh Triplett \u003cjosh@joshtriplett.org\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: laijs@cn.fujitsu.com\nCc: dipankar@in.ibm.com\nCc: akpm@linux-foundation.org\nCc: mathieu.desnoyers@polymtl.ca\nCc: dvhltc@us.ibm.com\nCc: niv@us.ibm.com\nCc: peterz@infradead.org\nCc: rostedt@goodmis.org\nCc: Valdis.Kletnieks@vt.edu\nLKML-Reference: \u003c12528585111945-git-send-email-\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "b0e165c035b13e1074fa0b555318bd9cb7102558",
      "tree": "c65de438df4e8ad3e9e562663b377d61cc87af57",
      "parents": [
        "bbe3eae8bb039b5ffd64a6e3d1a0deaa1f3cbae9"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Sun Sep 13 09:15:09 2009 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Sep 18 00:06:13 2009 +0200"
      },
      "message": "rcu: Add debug checks to TREE_PREEMPT_RCU for premature grace periods\n\nCheck to make sure that there are no blocked tasks for the previous\ngrace period while initializing for the next grace period, verify\nthat rcu_preempt_qs() is given the correct CPU number and is never\ncalled for an offline CPU.\n\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: laijs@cn.fujitsu.com\nCc: dipankar@in.ibm.com\nCc: akpm@linux-foundation.org\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\nLKML-Reference: \u003c12528585111986-git-send-email-\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "b835db1f9cadaf008750a32664e35a207782c95e",
      "tree": "5bf73f245ac83250a984b8a14adfe3c7596b684f",
      "parents": [
        "de078d875cc7fc709f7818f26d38389c04369826"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Tue Sep 08 15:54:37 2009 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Sep 18 00:05:14 2009 +0200"
      },
      "message": "rcu: Initialize multi-level RCU grace periods holding locks\n\nPrior implementations initialized the root and any internal\nnodes without holding locks, then initialized the leaves\nholding locks.\n\nThis is a false economy, as the leaf nodes will usually greatly\noutnumber the root and internal nodes.  Acquiring locks on all\nnodes is conceptually much simpler as well.\n\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: laijs@cn.fujitsu.com\nCc: dipankar@in.ibm.com\nCc: akpm@linux-foundation.org\nCc: mathieu.desnoyers@polymtl.ca\nCc: josht@linux.vnet.ibm.com\nCc: dvhltc@us.ibm.com\nCc: niv@us.ibm.com\nCc: peterz@infradead.org\nLKML-Reference: \u003c12524504773190-git-send-email-\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "de078d875cc7fc709f7818f26d38389c04369826",
      "tree": "0e7ed4d9d11ae707cc3b4e1e9d511a6d78e9e29d",
      "parents": [
        "de55a8958f6e3ef5ce5f0971b80bd44bfcac7cf1"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Tue Sep 08 15:54:36 2009 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Sep 18 00:04:54 2009 +0200"
      },
      "message": "rcu: Need to update rnp-\u003egpnum if preemptable RCU is to be reliable\n\nWithout this patch, tasks preempted in RCU read-side critical\nsections can fail to block the grace period, given that\nrnp-\u003egpnum is used to determine which rnp-\u003eblocked_tasks[]\nelement the preempted task is enqueued on.\n\nBefore the patch, rnp-\u003egpnum is always zero, so preempted tasks\nare always enqueued on rnp-\u003eblocked_tasks[0], which is correct\nonly when the current CPU has not checked into the current\ngrace period and the grace-period number is even, or,\nsimilarly, if the current CPU -has- checked into the current\ngrace period and the grace-period number is odd.\n\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: laijs@cn.fujitsu.com\nCc: dipankar@in.ibm.com\nCc: akpm@linux-foundation.org\nCc: mathieu.desnoyers@polymtl.ca\nCc: josht@linux.vnet.ibm.com\nCc: dvhltc@us.ibm.com\nCc: niv@us.ibm.com\nCc: peterz@infradead.org\nLKML-Reference: \u003c12524504771622-git-send-email-\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "eee2775d9924b22643bd89b2e568cc5eed7e8a04",
      "tree": "095ad7851895c5d39596f3ff7ee1e078235a2501",
      "parents": [
        "53e16fbd30005905168d9b75555fdc7e0a2eac58",
        "7db905e636f08ea5bc9825c1f73d77802e8ccad5"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Sep 11 13:20:18 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Sep 11 13:20:18 2009 -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: (28 commits)\n  rcu: Move end of special early-boot RCU operation earlier\n  rcu: Changes from reviews: avoid casts, fix/add warnings, improve comments\n  rcu: Create rcutree plugins to handle hotplug CPU for multi-level trees\n  rcu: Remove lockdep annotations from RCU\u0027s _notrace() API members\n  rcu: Add #ifdef to suppress __rcu_offline_cpu() warning in !HOTPLUG_CPU builds\n  rcu: Add CPU-offline processing for single-node configurations\n  rcu: Add \"notrace\" to RCU function headers used by ftrace\n  rcu: Remove CONFIG_PREEMPT_RCU\n  rcu: Merge preemptable-RCU functionality into hierarchical RCU\n  rcu: Simplify rcu_pending()/rcu_check_callbacks() API\n  rcu: Use debugfs_remove_recursive() simplify code.\n  rcu: Merge per-RCU-flavor initialization into pre-existing macro\n  rcu: Fix online/offline indication for rcudata.csv trace file\n  rcu: Consolidate sparse and lockdep declarations in include/linux/rcupdate.h\n  rcu: Renamings to increase RCU clarity\n  rcu: Move private definitions from include/linux/rcutree.h to kernel/rcutree.h\n  rcu: Expunge lingering references to CONFIG_CLASSIC_RCU, optimize on !SMP\n  rcu: Delay rcu_barrier() wait until beginning of next CPU-hotunplug operation.\n  rcu: Fix typo in rcu_irq_exit() comment header\n  rcu: Make rcupreempt_trace.c look at offline CPUs\n  ...\n"
    },
    {
      "commit": "868489660dabc0c28087cca3dbc1adbbc398c6fe",
      "tree": "cf991ec94ce29bccfef27213107748810c51a1ca",
      "parents": [
        "dd5d19bafd90d33043a4a14b2e2d98612caa293c"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Thu Aug 27 15:00:12 2009 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Aug 29 15:34:40 2009 +0200"
      },
      "message": "rcu: Changes from reviews: avoid casts, fix/add warnings, improve comments\n\nChanges suggested by review comments from Josh Triplett and\nMathieu Desnoyers.\n\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nAcked-by: Josh Triplett \u003cjosh@joshtriplett.org\u003e\nAcked-by: Mathieu Desnoyers \u003cmathieu.desnoyers@polymtl.ca\u003e\nCc: laijs@cn.fujitsu.com\nCc: dipankar@in.ibm.com\nCc: akpm@linux-foundation.org\nCc: dvhltc@us.ibm.com\nCc: niv@us.ibm.com\nCc: peterz@infradead.org\nCc: rostedt@goodmis.org\nLKML-Reference: \u003c20090827220012.GA30525@linux.vnet.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "dd5d19bafd90d33043a4a14b2e2d98612caa293c",
      "tree": "c21d547124d277f00332bdb01c75f2f4f321de8c",
      "parents": [
        "06e799764eb7c2e4640888d438c3524d756613e1"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Thu Aug 27 14:58:16 2009 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Aug 29 15:34:39 2009 +0200"
      },
      "message": "rcu: Create rcutree plugins to handle hotplug CPU for multi-level trees\n\nWhen offlining CPUs from a multi-level tree, there is the\npossibility of offlining the last CPU from a given node when\nthere are preempted RCU read-side critical sections that\nstarted life on one of the CPUs on that node.\n\nIn this case, the corresponding tasks will be enqueued via the\ntask_struct\u0027s rcu_node_entry list_head onto one of the\nrcu_node\u0027s blocked_tasks[] lists.  These tasks need to be moved\nsomewhere else so that they will prevent the current grace\nperiod from ending. That somewhere is the root rcu_node.\n\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: laijs@cn.fujitsu.com\nCc: dipankar@in.ibm.com\nCc: akpm@linux-foundation.org\nCc: mathieu.desnoyers@polymtl.ca\nCc: josht@linux.vnet.ibm.com\nCc: dvhltc@us.ibm.com\nCc: niv@us.ibm.com\nCc: peterz@infradead.org\nCc: rostedt@goodmis.org\nLKML-Reference: \u003c20090827215816.GA30472@linux.vnet.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "c935a331c8f569c7903ed26a3994a70cbea1802e",
      "tree": "e60c2920c077a77a1921b9b9ad024a55f745a55c",
      "parents": [
        "33f76148ced0e0618062e302d2a9614efdbd4a06"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Tue Aug 25 08:40:25 2009 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Aug 25 20:20:03 2009 +0200"
      },
      "message": "rcu: Add #ifdef to suppress __rcu_offline_cpu() warning in !HOTPLUG_CPU builds\n\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: laijs@cn.fujitsu.com\nCc: dipankar@in.ibm.com\nCc: akpm@linux-foundation.org\nCc: mathieu.desnoyers@polymtl.ca\nCc: josht@linux.vnet.ibm.com\nCc: dvhltc@us.ibm.com\nCc: niv@us.ibm.com\nCc: peterz@infradead.org\nCc: rostedt@goodmis.org\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nLKML-Reference: \u003c20090825154025.GD6616@linux.vnet.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "33f76148ced0e0618062e302d2a9614efdbd4a06",
      "tree": "82a5c2719301bcb9f20b0597b77e91529f9ec2df",
      "parents": [
        "7c614d6461399acca5c0ba444f5db49cb332fc08"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Mon Aug 24 09:42:01 2009 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Aug 24 20:37:04 2009 +0200"
      },
      "message": "rcu: Add CPU-offline processing for single-node configurations\n\nAdd preemptable-RCU plugin to handle the CPU-offline\nprocessing.\n\nAn additional plugin is forthcoming to handle multinode RCU\ntrees, but this current plugin works for configurations up to\n32 CPUs (64 CPUs for 64-bit kernels).\n\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: laijs@cn.fujitsu.com\nCc: dipankar@in.ibm.com\nCc: akpm@linux-foundation.org\nCc: mathieu.desnoyers@polymtl.ca\nCc: josht@linux.vnet.ibm.com\nCc: dvhltc@us.ibm.com\nCc: niv@us.ibm.com\nCc: peterz@infradead.org\nCc: rostedt@goodmis.org\nLKML-Reference: \u003c12511321213336-git-send-email-\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "f41d911f8c49a5d65c86504c19e8204bb605c4fd",
      "tree": "59bcd3048652ef290b3e19d2904409afd5c90eb3",
      "parents": [
        "a157229cabd6dd8cfa82525fc9bf730c94cc9ac2"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Sat Aug 22 13:56:52 2009 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Aug 23 10:32:40 2009 +0200"
      },
      "message": "rcu: Merge preemptable-RCU functionality into hierarchical RCU\n\nCreate a kernel/rcutree_plugin.h file that contains definitions\nfor preemptable RCU (or, under the #else branch of the #ifdef,\nempty definitions for the classic non-preemptable semantics).\nThese definitions fit into plugins defined in kernel/rcutree.c\nfor this purpose.\n\nThis variant of preemptable RCU uses a new algorithm whose\nread-side expense is roughly that of classic hierarchical RCU\nunder CONFIG_PREEMPT. This new algorithm\u0027s update-side expense\nis similar to that of classic hierarchical RCU, and, in absence\nof read-side preemption or blocking, is exactly that of classic\nhierarchical RCU.  Perhaps more important, this new algorithm\nhas a much simpler implementation, saving well over 1,000 lines\nof code compared to mainline\u0027s implementation of preemptable\nRCU, which will hopefully be retired in favor of this new\nalgorithm.\n\nThe simplifications are obtained by maintaining per-task\nnesting state for running tasks, and using a simple\nlock-protected algorithm to handle accounting when tasks block\nwithin RCU read-side critical sections, making use of lessons\nlearned while creating numerous user-level RCU implementations\nover the past 18 months.\n\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: laijs@cn.fujitsu.com\nCc: dipankar@in.ibm.com\nCc: akpm@linux-foundation.org\nCc: mathieu.desnoyers@polymtl.ca\nCc: josht@linux.vnet.ibm.com\nCc: dvhltc@us.ibm.com\nCc: niv@us.ibm.com\nCc: peterz@infradead.org\nCc: rostedt@goodmis.org\nLKML-Reference: \u003c12509746134003-git-send-email-\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "a157229cabd6dd8cfa82525fc9bf730c94cc9ac2",
      "tree": "886013efc2f25dab915640acf46151fac7ae57b4",
      "parents": [
        "22f00b69f6a7e1e18e821979a23e8307c2de9888"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Sat Aug 22 13:56:51 2009 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Aug 23 10:32:39 2009 +0200"
      },
      "message": "rcu: Simplify rcu_pending()/rcu_check_callbacks() API\n\nAll calls from outside RCU are of the form:\n\n\tif (rcu_pending(cpu))\n\t\trcu_check_callbacks(cpu, user);\n\nThis is silly, instead we put a call to rcu_pending() in\nrcu_check_callbacks(), and then make the outside calls be to\nrcu_check_callbacks().  This cuts down on the code a bit and\nalso gives the compiler a better chance of optimizing.\n\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: laijs@cn.fujitsu.com\nCc: dipankar@in.ibm.com\nCc: akpm@linux-foundation.org\nCc: mathieu.desnoyers@polymtl.ca\nCc: josht@linux.vnet.ibm.com\nCc: dvhltc@us.ibm.com\nCc: niv@us.ibm.com\nCc: peterz@infradead.org\nCc: rostedt@goodmis.org\nLKML-Reference: \u003c125097461311-git-send-email-\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "65cf8f866fc0fb40fa9daaded7e938a886d6f7c5",
      "tree": "88ca0b1bab821ea7e887384ffaecf751d7ec54bc",
      "parents": [
        "5699ed8fcb0c32ca699e2a27ad716eb70b367dbf"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Sat Aug 22 13:56:49 2009 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Aug 23 10:32:38 2009 +0200"
      },
      "message": "rcu: Merge per-RCU-flavor initialization into pre-existing macro\n\nRename the RCU_DATA_PTR_INIT() macro to RCU_INIT_FLAVOR() and\nmake it do the rcu_init_one() and rcu_boot_init_percpu_data()\ncalls.  Merge the loop that was in the original macro with the\nloops that were in __rcu_init().\n\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: laijs@cn.fujitsu.com\nCc: dipankar@in.ibm.com\nCc: akpm@linux-foundation.org\nCc: mathieu.desnoyers@polymtl.ca\nCc: josht@linux.vnet.ibm.com\nCc: dvhltc@us.ibm.com\nCc: niv@us.ibm.com\nCc: peterz@infradead.org\nCc: rostedt@goodmis.org\nLKML-Reference: \u003c12509746133916-git-send-email-\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "d6714c22b43fbcbead7e7b706ff270e15f04a791",
      "tree": "1dc15e57d982351bed45b7b9768a118f86b88c19",
      "parents": [
        "9f77da9f40045253e91f55c12d4481254b513d2d"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Sat Aug 22 13:56:46 2009 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Aug 23 10:32:37 2009 +0200"
      },
      "message": "rcu: Renamings to increase RCU clarity\n\nMake RCU-sched, RCU-bh, and RCU-preempt be underlying\nimplementations, with \"RCU\" defined in terms of one of the\nthree.  Update the outdated rcu_qsctr_inc() names, as these\nfunctions no longer increment anything.\n\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: laijs@cn.fujitsu.com\nCc: dipankar@in.ibm.com\nCc: akpm@linux-foundation.org\nCc: mathieu.desnoyers@polymtl.ca\nCc: josht@linux.vnet.ibm.com\nCc: dvhltc@us.ibm.com\nCc: niv@us.ibm.com\nCc: peterz@infradead.org\nCc: rostedt@goodmis.org\nLKML-Reference: \u003c12509746132696-git-send-email-\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "9f77da9f40045253e91f55c12d4481254b513d2d",
      "tree": "8699c413d1493855ca8b1205e1b63090f568af42",
      "parents": [
        "b560d8ad8583803978aaaeba50ef29dc8e97a610"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Sat Aug 22 13:56:45 2009 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Aug 23 10:32:36 2009 +0200"
      },
      "message": "rcu: Move private definitions from include/linux/rcutree.h to kernel/rcutree.h\n\nSome information hiding that makes it easier to merge\npreemptability into rcutree without descending into #include\nhell.\n\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: laijs@cn.fujitsu.com\nCc: dipankar@in.ibm.com\nCc: akpm@linux-foundation.org\nCc: mathieu.desnoyers@polymtl.ca\nCc: josht@linux.vnet.ibm.com\nCc: dvhltc@us.ibm.com\nCc: niv@us.ibm.com\nCc: peterz@infradead.org\nCc: rostedt@goodmis.org\nLKML-Reference: \u003c1250974613373-git-send-email-\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "2e597558086dec36d5c33521a36e0f6b1bc3f3a7",
      "tree": "ce8c6ced1c8a3b6bf6170a5894e1d7102e6ee9d4",
      "parents": [
        "799e64f05f4bfaad2bb3165cab95c8c992a1c296"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Sat Aug 15 09:53:48 2009 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Aug 15 19:02:08 2009 +0200"
      },
      "message": "rcu: Simplify RCU CPU-hotplug notification\n\nUse the new cpu_notifier() API to simplify RCU\u0027s CPU-hotplug\nnotifiers, collapsing down to a single such notifier.\n\nThis makes it trivial to provide the notifier-ordering\nguarantee that rcu_barrier() depends on.\n\nAlso remove redundant open_softirq() calls from Hierarchical\nRCU notifier.\n\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: laijs@cn.fujitsu.com\nCc: dipankar@in.ibm.com\nCc: josht@linux.vnet.ibm.com\nCc: akpm@linux-foundation.org\nCc: mathieu.desnoyers@polymtl.ca\nCc: dvhltc@us.ibm.com\nCc: niv@us.ibm.com\nCc: peterz@infradead.org\nCc: rostedt@goodmis.org\nCc: hugh.dickins@tiscali.co.uk\nCc: benh@kernel.crashing.org\nLKML-Reference: \u003c12503552312510-git-send-email-\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "27569620c748ec13f801b4683b448a2ac2adaae4",
      "tree": "d5fd5dd1b9d352ca0ef2cf224f7141338d3413f3",
      "parents": [
        "fa08661af834875c9bd6f7f0b1b9388dc72a6585"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Sat Aug 15 09:53:46 2009 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Aug 15 19:02:07 2009 +0200"
      },
      "message": "rcu: Split hierarchical RCU initialization into boot-time and CPU-online pieces\n\nThis patch divides the rcutree initialization into boot-time\nand hotplug-time components, so that the tree data structures\nare guaranteed to be fully linked at boot time regardless of\nwhat might happen in CPU hotplug operations.\n\nThis makes RCU more resilient against CPU hotplug misbehavior\n(and vice versa), but more importantly, does a better job of\ncompartmentalizing the code.\n\nReported-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: josht@linux.vnet.ibm.com\nCc: akpm@linux-foundation.org\nCc: mathieu.desnoyers@polymtl.ca\nCc: dvhltc@us.ibm.com\nCc: niv@us.ibm.com\nCc: peterz@infradead.org\nCc: rostedt@goodmis.org\nCc: hugh.dickins@tiscali.co.uk\nCc: benh@kernel.crashing.org\nLKML-Reference: \u003c1250355231152-git-send-email-\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "c1dc0b9c0c8979ce4d411caadff5c0d79dee58bc",
      "tree": "6822205799a6cf8928623d60aa226c95534a20f9",
      "parents": [
        "ed680c4ad478d0fee9740f7d029087f181346564"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Aug 02 11:28:21 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Aug 02 13:27:17 2009 +0200"
      },
      "message": "debug lockups: Improve lockup detection\n\nWhen debugging a recent lockup bug i found various deficiencies\nin how our current lockup detection helpers work:\n\n - SysRq-L is not very efficient as it uses a workqueue, hence\n   it cannot punch through hard lockups and cannot see through\n   most soft lockups either.\n\n - The SysRq-L code depends on the NMI watchdog - which is off\n   by default.\n\n - We dont print backtraces from the RCU code\u0027s built-in\n   \u0027RCU state machine is stuck\u0027 debug code. This debug\n   code tends to be one of the first (and only) mechanisms\n   that show that a lockup has occured.\n\nThis patch changes the code so taht we:\n\n - Trigger the NMI backtrace code from SysRq-L instead of using\n   a workqueue (which cannot punch through hard lockups)\n\n - Trigger print-all-CPU-backtraces from the RCU lockup detection\n   code\n\nAlso decouple the backtrace printing code from the NMI watchdog:\n\n - Dont use variable size cpumasks (it might not be initialized\n   and they are a bit more fragile anyway)\n\n - Trigger an NMI immediately via an IPI, instead of waiting\n   for the NMI tick to occur. This is a lot faster and can\n   produce more relevant backtraces. It will also work if the\n   NMI watchdog is disabled.\n\n - Dont print the \u0027dazed and confused\u0027 message when we print\n   a backtrace from the NMI\n\n - Do a show_regs() plus a dump_stack() to get maximum info\n   out of the dump. Worst-case we get two stacktraces - which\n   is not a big deal. Sometimes, if register content is\n   corrupted, the precise stack walker in show_regs() wont\n   give us a full backtrace - in this case dump_stack() will\n   do it.\n\nCc: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "f6faac71d502be1c29c81b2f45657662c3b84470",
      "tree": "b320a04b6f3955c60edaa30f47b889a0daf9f4b6",
      "parents": [
        "4e8a2372f9255a1464ef488ed925455f53fbdaa1"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Tue Jun 23 17:24:40 2009 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jun 24 15:02:48 2009 +0200"
      },
      "message": "rcu: Mark Hierarchical RCU no longer experimental\n\nRemoves the warnings about Hierarchical RCU being experimental,\ngiven that it has gone through almost six months of being the\ndefault RCU in mainline for the x86 with very little trouble.\n\nThis makes hierarchical-RCU bootup look less scary.\n\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: akpm@linux-foundation.org\nCc: niv@us.ibm.com\nCc: dvhltc@us.ibm.com\nCc: dipankar@in.ibm.com\nCc: dhowells@redhat.com\nCc: lethal@linux-sh.org\nCc: kernel@wantstofly.org\nCc: cl@linux-foundation.org\nCc: schamp@sgi.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    }
  ],
  "next": "7ba5c840e64d4a967379f1ae3eca73278180b11d"
}
