)]}'
{
  "log": [
    {
      "commit": "768dfffdffbfcc07d6927bdd642c714c0dd64c99",
      "tree": "3f559e37c0ff2ae59af963024c0d3595fa3d4b8e",
      "parents": [
        "afef20540f7cd1ea91bc1ac20be238389eee4003"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paul.mckenney@linaro.org",
        "time": "Wed Jan 11 16:33:17 2012 -0800"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Tue Feb 21 09:03:41 2012 -0800"
      },
      "message": "rcu: Prevent RCU callbacks from executing before scheduler initialized\n\nThis is a port of commit #b0d3041 from TREE_RCU to TREE_PREEMPT_RCU.\n\nUnder some rare but real combinations of configuration parameters, RCU\ncallbacks are posted during early boot that use kernel facilities that are\nnot yet initialized.  Therefore, when these callbacks are invoked, hard\nhangs and crashes ensue.  This commit therefore prevents RCU callbacks\nfrom being invoked until after the scheduler is fully up and running,\nas in after multiple tasks have been spawned.\n\nIt might well turn out that a better approach is to identify the specific\nRCU callbacks that are causing this problem, but that discussion will\nwait until such time as someone really needs an RCU callback to be invoked\n(as opposed to merely registered) during early boot.\n\nSigned-off-by: Paul E. McKenney \u003cpaul.mckenney@linaro.org\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "486e259340fc4c60474f2c14703e3b3634bb58ca",
      "tree": "70a58702194588fa0773463523f72c682785d040",
      "parents": [
        "0bb7b59d6e2b8440cd7097097dd4bbfc4d76ed07"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paul.mckenney@linaro.org",
        "time": "Fri Jan 06 14:11:30 2012 -0800"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Tue Feb 21 09:03:25 2012 -0800"
      },
      "message": "rcu: Avoid waking up CPUs having only kfree_rcu() callbacks\n\nWhen CONFIG_RCU_FAST_NO_HZ is enabled, RCU will allow a given CPU to\nenter dyntick-idle mode even if it still has RCU callbacks queued.\nRCU avoids system hangs in this case by scheduling a timer for several\njiffies in the future.  However, if all of the callbacks on that CPU\nare from kfree_rcu(), there is no reason to wake the CPU up, as it is\nnot a problem to defer freeing of memory.\n\nThis commit therefore tracks the number of callbacks on a given CPU\nthat are from kfree_rcu(), and avoids scheduling the timer if all of\na given CPU\u0027s callbacks are from kfree_rcu().\n\nSigned-off-by: Paul E. McKenney \u003cpaul.mckenney@linaro.org\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "965a002b4f1a458c5dcb334ec29f48a0046faa25",
      "tree": "9aa3847fd44b322a73631758e7337632e5e3a32d",
      "parents": [
        "385680a9487d2f85382ad6d74e2a15837e47bfd9"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paul.mckenney@linaro.org",
        "time": "Sat Jun 18 09:55:39 2011 -0700"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Wed Sep 28 21:38:20 2011 -0700"
      },
      "message": "rcu: Make TINY_RCU also use softirq for RCU_BOOST\u003dn\n\nThis patch #ifdefs TINY_RCU kthreads out of the kernel unless RCU_BOOST\u003dy,\nthus eliminating context-switch overhead if RCU priority boosting has\nnot been configured.\n\nSigned-off-by: Paul E. McKenney \u003cpaul.mckenney@linaro.org\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "2c42818e962e2858334bf45bfc56662b3752df34",
      "tree": "192364123c9aeeab282c53168e51eddece9d8be4",
      "parents": [
        "f039d1f1884b2fe9c13d28f59d8330f0b0518fc4"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Thu May 26 22:14:36 2011 -0700"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Wed Sep 28 21:36:42 2011 -0700"
      },
      "message": "rcu: Abstract common code for RCU grace-period-wait primitives\n\nPull the code that waits for an RCU grace period into a single function,\nwhich is then called by synchronize_rcu() and friends in the case of\nTREE_RCU and TREE_PREEMPT_RCU, and from rcu_barrier() and friends in\nthe case of TINY_RCU and TINY_PREEMPT_RCU.\n\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "29ce831000081dd757d3116bf774aafffc4b6b20",
      "tree": "0b992d993b02d3479a150e9fc508d110dc45631d",
      "parents": [
        "bad6e1393cb505fe17747344a23666464daa3fa7"
      ],
      "author": {
        "name": "Gleb Natapov",
        "email": "gleb@redhat.com",
        "time": "Wed May 04 16:31:03 2011 +0300"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Thu May 05 23:16:59 2011 -0700"
      },
      "message": "rcu: provide rcu_virt_note_context_switch() function.\n\nProvide rcu_virt_note_context_switch() for vitalization use to note\nquiescent state during guest entry.\n\nSigned-off-by: Gleb Natapov \u003cgleb@redhat.com\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "7b27d5475f86186914e54e4a6bb994e9a985337b",
      "tree": "36349c88d75497db89956d6721d82c4f889cbc2b",
      "parents": [
        "deb7a41815a8a32d4f9ea2af7a48ed1175222cec"
      ],
      "author": {
        "name": "Lai Jiangshan",
        "email": "laijs@cn.fujitsu.com",
        "time": "Thu Oct 21 11:29:05 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: move synchronize_sched_expedited() out of sched.c\n\nThe first version of synchronize_sched_expedited() used the migration\ncode in the scheduler, and was therefore implemented in kernel/sched.c.\nHowever, the more recent version of this code no longer uses the\nmigration code, so this commit moves it to the main RCU source files.\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": "b2c0710c464ede15e1fc52fb1e7ee9ba54cea186",
      "tree": "7524518fec8a02e53c3fab558b40a5e94f0bb5ec",
      "parents": [
        "8e8be45e8e55daa381028aec339829929ddb53a5"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paul.mckenney@linaro.org",
        "time": "Thu Sep 09 13:40:39 2010 -0700"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Wed Nov 17 15:45:09 2010 -0800"
      },
      "message": "rcu: move TINY_RCU from softirq to kthread\n\nIf RCU priority boosting is to be meaningful, callback invocation must\nbe boosted in addition to preempted RCU readers.  Otherwise, in presence\nof CPU real-time threads, the grace period ends, but the callbacks don\u0027t\nget invoked.  If the callbacks don\u0027t get invoked, the associated memory\ndoesn\u0027t get freed, so the system is still subject to OOM.\n\nBut it is not reasonable to priority-boost RCU_SOFTIRQ, so this commit\nmoves the callback invocations to a kthread, which can be boosted easily.\n\nSigned-off-by: Paul E. McKenney \u003cpaul.mckenney@linaro.org\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "7b0b759b65247cbc66384a912be9acf8d4800636",
      "tree": "085a18f506193725ab16fa61cae41f93dcc7c3e9",
      "parents": [
        "73d4da4d360136826b36f78f5cf72b29da82c8a6"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Tue Aug 17 14:18:46 2010 -0700"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Fri Aug 20 09:00:16 2010 -0700"
      },
      "message": "rcu: combine duplicate code, courtesy of CONFIG_PREEMPT_RCU\n\nThe CONFIG_PREEMPT_RCU kernel configuration parameter was recently\nre-introduced, but as an indication of the type of RCU (preemptible\nvs. non-preemptible) instead of as selecting a given implementation.\nThis commit uses CONFIG_PREEMPT_RCU to combine duplicate code\nfrom include/linux/rcutiny.h and include/linux/rcutree.h into\ninclude/linux/rcupdate.h.  This commit also combines a few other pieces\nof duplicate code that have accumulated.\n\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "a3dc3fb161f9b4066c0fce22db72638af8baf83b",
      "tree": "e41a30edd7e4965807b199da7637a6d6e44d4ed1",
      "parents": [
        "53d84e004d5e8c018be395c4330dc72fd60bd13e"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Fri Aug 13 16:16:25 2010 -0700"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Fri Aug 20 09:00:13 2010 -0700"
      },
      "message": "rcu: repair code-duplication FIXMEs\n\nCombine the duplicate definitions of ULONG_CMP_GE(), ULONG_CMP_LT(),\nand rcu_preempt_depth() into include/linux/rcupdate.h.\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": "a57eb940d130477a799dfb24a570ee04979c0f7f",
      "tree": "5add1c135a302cf1c1a454b0620ed17eb802923b",
      "parents": [
        "4d87ffadbba88105f33271bef5f2c79366c6a4e1"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Tue Jun 29 16:49:16 2010 -0700"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Fri Aug 20 08:55:00 2010 -0700"
      },
      "message": "rcu: Add a TINY_PREEMPT_RCU\n\nImplement a small-memory-footprint uniprocessor-only implementation of\npreemptible RCU.  This implementation uses but a single blocked-tasks\nlist rather than the combinatorial number used per leaf rcu_node by\nTREE_PREEMPT_RCU, which reduces memory consumption and greatly simplifies\nprocessing.  This version also takes advantage of uniprocessor execution\nto accelerate grace periods in the case where there are no readers.\n\nThe general design is otherwise broadly similar to that of TREE_PREEMPT_RCU.\n\nThis implementation is a step towards having RCU implementation driven\noff of the SMP and PREEMPT kernel configuration variables, which can\nhappen once this implementation has accumulated sufficient experience.\n\nRemoved ACCESS_ONCE() from __rcu_read_unlock() and added barrier() as\nsuggested by Steve Rostedt in order to avoid the compiler-reordering\nissue noted by Mathieu Desnoyers (http://lkml.org/lkml/2010/8/16/183).\n\nAs can be seen below, CONFIG_TINY_PREEMPT_RCU represents almost 5Kbyte\nsavings compared to CONFIG_TREE_PREEMPT_RCU.  Of course, for non-real-time\nworkloads, CONFIG_TINY_RCU is even better.\n\n\tCONFIG_TREE_PREEMPT_RCU\n\n\t   text\t   data\t    bss\t    dec\t   filename\n\t     13\t      0\t      0\t     13\t   kernel/rcupdate.o\n\t   6170\t    825\t     28\t   7023\t   kernel/rcutree.o\n\t\t\t\t   ----\n\t\t\t\t   7026    Total\n\n\tCONFIG_TINY_PREEMPT_RCU\n\n\t   text\t   data\t    bss\t    dec\t   filename\n\t     13\t      0\t      0\t     13\t   kernel/rcupdate.o\n\t   2081\t     81\t      8\t   2170\t   kernel/rcutiny.o\n\t\t\t\t   ----\n\t\t\t\t   2183    Total\n\n\tCONFIG_TINY_RCU (non-preemptible)\n\n\t   text\t   data\t    bss\t    dec\t   filename\n\t     13\t      0\t      0\t     13\t   kernel/rcupdate.o\n\t    719\t     25\t      0\t    744\t   kernel/rcutiny.o\n\t\t\t\t    ---\n\t\t\t\t    757    Total\n\nRequested-by: Loïc Minier \u003cloic.minier@canonical.com\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "b8ae30ee26d379db436b0b8c8c3ff1b52f69e5d1",
      "tree": "506aa0b4bdbf90f61e7e9261c7db90aa1452dcce",
      "parents": [
        "4d7b4ac22fbec1a03206c6cde353f2fd6942f828",
        "9c6f7e43b4e02c161b53e97ba913855246876c61"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 18 08:27:54 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 18 08:27:54 2010 -0700"
      },
      "message": "Merge branch \u0027sched-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027sched-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (49 commits)\n  stop_machine: Move local variable closer to the usage site in cpu_stop_cpu_callback()\n  sched, wait: Use wrapper functions\n  sched: Remove a stale comment\n  ondemand: Make the iowait-is-busy time a sysfs tunable\n  ondemand: Solve a big performance issue by counting IOWAIT time as busy\n  sched: Intoduce get_cpu_iowait_time_us()\n  sched: Eliminate the ts-\u003eidle_lastupdate field\n  sched: Fold updating of the last_update_time_info into update_ts_time_stats()\n  sched: Update the idle statistics in get_cpu_idle_time_us()\n  sched: Introduce a function to update the idle statistics\n  sched: Add a comment to get_cpu_idle_time_us()\n  cpu_stop: add dummy implementation for UP\n  sched: Remove rq argument to the tracepoints\n  rcu: need barrier() in UP synchronize_sched_expedited()\n  sched: correctly place paranioa memory barriers in synchronize_sched_expedited()\n  sched: kill paranoia check in synchronize_sched_expedited()\n  sched: replace migration_thread with cpu_stop\n  stop_machine: reimplement using cpu_stop\n  cpu_stop: implement stop_cpu[s]()\n  sched: Fix select_idle_sibling() logic in select_task_rq_fair()\n  ...\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": "da848c47bc6e873a54a445ea1960423a495b6b32",
      "tree": "4c0eaef1a5990585730f00caca0cfcba21fe9f9f",
      "parents": [
        "32c141a0a1dfa29e0a07d78bec0c0919fc4b9f88"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Tue Mar 30 15:46:01 2010 -0700"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Mon May 10 11:08:32 2010 -0700"
      },
      "message": "rcu: shrink rcutiny by making synchronize_rcu_bh() be inline\n\nBecause synchronize_rcu_bh() is identical to synchronize_sched(),\nmake the former a static inline invoking the latter, saving the\noverhead of an EXPORT_SYMBOL_GPL() and the duplicate code.\n\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "969c79215a35b06e5e3efe69b9412f858df7856c",
      "tree": "4256378687c8bc2011ec35a3e28bc3b6473e912c",
      "parents": [
        "3fc1f1e27a5b807791d72e5d992aa33b668a6626"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu May 06 18:49:21 2010 +0200"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu May 06 18:49:21 2010 +0200"
      },
      "message": "sched: replace migration_thread with cpu_stop\n\nCurrently migration_thread is serving three purposes - migration\npusher, context to execute active_load_balance() and forced context\nswitcher for expedited RCU synchronize_sched.  All three roles are\nhardcoded into migration_thread() and determining which job is\nscheduled is slightly messy.\n\nThis patch kills migration_thread and replaces all three uses with\ncpu_stop.  The three different roles of migration_thread() are\nsplitted into three separate cpu_stop callbacks -\nmigration_cpu_stop(), active_load_balance_cpu_stop() and\nsynchronize_sched_expedited_cpu_stop() - and each use case now simply\nasks cpu_stop to execute the callback as necessary.\n\nsynchronize_sched_expedited() was implemented with private\npreallocated resources and custom multi-cpu queueing and waiting\nlogic, both of which are provided by cpu_stop.\nsynchronize_sched_expedited_count is made atomic and all other shared\nresources along with the mutex are dropped.\n\nsynchronize_sched_expedited() also implemented a check to detect cases\nwhere not all the callback got executed on their assigned cpus and\nfall back to synchronize_sched().  If called with cpu hotplug blocked,\ncpu_stop already guarantees that and the condition cannot happen;\notherwise, stop_machine() would break.  However, this patch preserves\nthe paranoid check using a cpumask to record on which cpus the stopper\nran so that it can serve as a bisection point if something actually\ngoes wrong theree.\n\nBecause the internal execution state is no longer visible,\nrcu_expedited_torture_stats() is removed.\n\nThis patch also renames cpu_stop threads to from \"stopper/%d\" to\n\"migration/%d\".  The names of these threads ultimately don\u0027t matter\nand there\u0027s no reason to make unnecessary userland visible changes.\n\nWith this patch applied, stop_machine() and sched now share the same\nresources.  stop_machine() is faster without wasting any resources and\nsched migration users are much cleaner.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nAcked-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Dipankar Sarma \u003cdipankar@in.ibm.com\u003e\nCc: Josh Triplett \u003cjosh@freedesktop.org\u003e\nCc: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Dimitri Sivanich \u003csivanich@sgi.com\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": "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": "234da7bcdc7aaa935846534c3b726dbc79a9cdd5",
      "tree": "a391afd465d6493a9f1bb274c225bab4d303aad0",
      "parents": [
        "416eb39556a03d1c7e52b0791e9052ccd71db241"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Wed Dec 16 20:21:05 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Dec 17 09:46:44 2009 +0100"
      },
      "message": "sched: Teach might_sleep() about preemptible RCU\n\nIn practice, it is harmless to voluntarily sleep in a\nrcu_read_lock() section if we are running under preempt rcu, but\nit is illegal if we build a kernel running non-preemptable rcu.\n\nCurrently, might_sleep() doesn\u0027t notice sleepable operations\nunder rcu_read_lock() sections if we are running under\npreemptable rcu because preempt_count() is left untouched after\nrcu_read_lock() in this case. But we want developers who test\ntheir changes under such config to notice the \"sleeping while\natomic\" issues.\n\nSo we add rcu_read_lock_nesting to prempt_count() in\nmight_sleep() checks.\n\n[ v2: Handle rcu-tiny ]\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nReviewed-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nLKML-Reference: \u003c1260991265-8451-1-git-send-regression-fweisbec@gmail.com\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": "4ce5b90340879ce93d169b7b523c2cbbe7c45843",
      "tree": "1372672a37f331a49c3825876a4c3e71ad2df3a0",
      "parents": [
        "cf886c44ec418a01b2c52493465accb81acbf930"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Oct 26 07:55:55 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Oct 26 09:40:40 2009 +0100"
      },
      "message": "rcu: Do tiny cleanups in rcutiny\n\nNo change in functionality - just straighten out a few small\nstylistic details.\n\nCc: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: Josh Triplett \u003cjosh@joshtriplett.org\u003e\nCc: laijs@cn.fujitsu.com\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: avi@redhat.com\nCc: mtosatti@redhat.com\nLKML-Reference: \u003c12565226351355-git-send-email-\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "9b1d82fa1611706fa7ee1505f290160a18caf95d",
      "tree": "7b2eed068360465d0b028d345eb318b1a8217305",
      "parents": [
        "0edf1a683e499191b27a067956ae9f5fa6e046c6"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Sun Oct 25 19:03:50 2009 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Oct 26 09:40:29 2009 +0100"
      },
      "message": "rcu: \"Tiny RCU\", The Bloatwatch Edition\n\nThis patch is a version of RCU designed for !SMP provided for a\nsmall-footprint RCU implementation.  In particular, the\nimplementation of synchronize_rcu() is extremely lightweight and\nhigh performance. It passes rcutorture testing in each of the\nfour relevant configurations (combinations of NO_HZ and PREEMPT)\non x86.  This saves about 1K bytes compared to old Classic RCU\n(which is no longer in mainline), and more than three kilobytes\ncompared to Hierarchical RCU (updated to 2.6.30):\n\n\tCONFIG_TREE_RCU:\n\n\t   text\t   data\t    bss\t    dec\t    filename\n\t    183       4       0     187     kernel/rcupdate.o\n\t   2783     520      36    3339     kernel/rcutree.o\n\t\t\t\t   3526 Total (vs 4565 for v7)\n\n\tCONFIG_TREE_PREEMPT_RCU:\n\n\t   text\t   data\t    bss\t    dec\t    filename\n\t    263       4       0     267     kernel/rcupdate.o\n\t   4594     776      52    5422     kernel/rcutree.o\n\t   \t\t\t   5689 Total (6155 for v7)\n\n\tCONFIG_TINY_RCU:\n\n\t   text\t   data\t    bss\t    dec\t    filename\n\t     96       4       0     100     kernel/rcupdate.o\n\t    734      24       0     758     kernel/rcutiny.o\n\t    \t\t\t    858 Total (vs 848 for v7)\n\nThe above is for x86.  Your mileage may vary on other platforms.\nFurther compression is possible, but is being procrastinated.\n\nChanges from v7 (http://lkml.org/lkml/2009/10/9/388)\n\no\tApply Lai Jiangshan\u0027s review comments (aside from\nmight_sleep() \tin synchronize_sched(), which is covered by SMP builds).\n\no\tFix up expedited primitives.\n\nChanges from v6 (http://lkml.org/lkml/2009/9/23/293).\n\no\tForward ported to put it into the 2.6.33 stream.\n\no\tAdded lockdep support.\n\no\tMake lightweight rcu_barrier.\n\nChanges from v5 (http://lkml.org/lkml/2009/6/23/12).\n\no\tPorted to latest pre-2.6.32 merge window kernel.\n\n\t- Renamed rcu_qsctr_inc() to rcu_sched_qs().\n\t- Renamed rcu_bh_qsctr_inc() to rcu_bh_qs().\n\t- Provided trivial rcu_cpu_notify().\n\t- Provided trivial exit_rcu().\n\t- Provided trivial rcu_needs_cpu().\n\t- Fixed up the rcu_*_enter/exit() functions in linux/hardirq.h.\n\no\tRemoved the dependence on EMBEDDED, with a view to making\n\tTINY_RCU default for !SMP at some time in the future.\n\no\tAdded (trivial) support for expedited grace periods.\n\nChanges from v4 (http://lkml.org/lkml/2009/5/2/91) include:\n\no\tSqueeze the size down a bit further by removing the\n\t-\u003ecompleted field from struct rcu_ctrlblk.\n\no\tThis permits synchronize_rcu() to become the empty function.\n\tPrevious concerns about rcutorture were unfounded, as\n\trcutorture correctly handles a constant value from\n\trcu_batches_completed() and rcu_batches_completed_bh().\n\nChanges from v3 (http://lkml.org/lkml/2009/3/29/221) include:\n\no\tChanged rcu_batches_completed(), rcu_batches_completed_bh()\n\trcu_enter_nohz(), rcu_exit_nohz(), rcu_nmi_enter(), and\n\trcu_nmi_exit(), to be static inlines, as suggested by David\n\tHowells.  Doing this saves about 100 bytes from rcutiny.o.\n\t(The numbers between v3 and this v4 of the patch are not directly\n\tcomparable, since they are against different versions of Linux.)\n\nChanges from v2 (http://lkml.org/lkml/2009/2/3/333) include:\n\no\tFix whitespace issues.\n\no\tChange short-circuit \"||\" operator to instead be \"+\" in order\nto \tfix performance bug noted by \"kraai\" on LWN.\n\n\t\t(http://lwn.net/Articles/324348/)\n\nChanges from v1 (http://lkml.org/lkml/2009/1/13/440) include:\n\no\tThis version depends on EMBEDDED as well as !SMP, as suggested\n\tby Ingo.\n\no\tUpdated rcu_needs_cpu() to unconditionally return zero,\n\tpermitting the CPU to enter dynticks-idle mode at any time.\n\tThis works because callbacks can be invoked upon entry to\n\tdynticks-idle mode.\n\no\tPaul is now OK with this being included, based on a poll at\nthe \tKernel Miniconf at linux.conf.au, where about ten people said\n\tthat they cared about saving 900 bytes on single-CPU systems.\n\no\tApplies to both mainline and tip/core/rcu.\n\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nAcked-by: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: Josh Triplett \u003cjosh@joshtriplett.org\u003e\nReviewed-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: avi@redhat.com\nCc: mtosatti@redhat.com\nLKML-Reference: \u003c12565226351355-git-send-email-\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    }
  ]
}
