)]}'
{
  "log": [
    {
      "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": "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": "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": "dbe01350fa8ce0c11948ab7d6be71a4d901be151",
      "tree": "8d79460aeb616f39f95ff74357c7b72ad3501839",
      "parents": [
        "9160306e6f5b68bb64630c9031c517ca1cf463db"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Tue Nov 10 13:37:19 2009 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Nov 10 22:48:49 2009 +0100"
      },
      "message": "rcu: Remove inline from forward-referenced functions\n\nSome variants of gcc are reputed to dislike forward references\nto functions declared \"inline\".  Remove the \"inline\" keyword\nfrom such functions.\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: \u003c12578890422402-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": "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": "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": "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": "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": "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": "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": "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": "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": "6258c4fb59e77d748f7efc2c137ad420372edd07",
      "tree": "c1e2ae0f027e81e55613b043ce44965858475d59",
      "parents": [
        "b1f77b0581b8fd837acb4a973f7d5496cae6efee"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Mar 25 16:42:24 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Apr 03 12:23:03 2009 +0200"
      },
      "message": "kmemtrace, rcu: fix rcu_tree_trace.c data structure dependencies\n\nImpact: cleanup\n\nWe want to remove rcutree internals from the public rcutree.h file for\nupcoming kmemtrace changes - but kernel/rcutree_trace.c depends on them.\n\nIntroduce kernel/rcutree.h for internal definitions. (Probably all\nthe other data types from include/linux/rcutree.h could be\nmoved here too - except rcu_data.)\n\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: Eduard - Gabriel Munteanu \u003ceduard.munteanu@linux360.ro\u003e\nCc: paulmck@linux.vnet.ibm.com\nLKML-Reference: \u003c1237898630.25315.83.camel@penberg-laptop\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    }
  ]
}
