)]}'
{
  "log": [
    {
      "commit": "aac1cda34b84a9411d6b8d18c3658f094c834911",
      "tree": "60cc2e3d6793fdbf8b13704608aafdf01bcec118",
      "parents": [
        "2c5594df344cd1ff0cc9bf007dea3235582b3acf",
        "d484a215139cf556cb718a7ec7042260b7fc2d28",
        "351573a86d0ef17cbba1c5436706602692781bfe",
        "cda4dc813071e6cb04944c5a140610bd06acd295",
        "c896054f75f9a720ecf2ab3e688f4da79a55fe05",
        "7bd8f2a74bcbd39f4277766f4d49441c45dd10a0",
        "af71befa282ddf51c09509978abe1e83de8fe7eb"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Fri Nov 16 09:59:58 2012 -0800"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Fri Nov 16 09:59:58 2012 -0800"
      },
      "message": "Merge branches \u0027urgent.2012.10.27a\u0027, \u0027doc.2012.11.16a\u0027, \u0027fixes.2012.11.13a\u0027, \u0027srcu.2012.10.27a\u0027, \u0027stall.2012.11.13a\u0027, \u0027tracing.2012.11.08a\u0027 and \u0027idle.2012.10.24a\u0027 into HEAD\n\nurgent.2012.10.27a: Fix for RCU user-mode transition (already in -tip).\n\ndoc.2012.11.08a: Documentation updates, most notably codifying the\n\tmemory-barrier guarantees inherent to grace periods.\n\nfixes.2012.11.13a: Miscellaneous fixes.\n\nsrcu.2012.10.27a: Allow statically allocated and initialized srcu_struct\n\tstructures (courtesy of Lai Jiangshan).\n\nstall.2012.11.13a: Add more diagnostic information to RCU CPU stall\n\twarnings, also decrease from 60 seconds to 21 seconds.\n\nhotplug.2012.11.08a: Minor updates to CPU hotplug handling.\n\ntracing.2012.11.08a: Improved debugfs tracing, courtesy of Michael Wang.\n\nidle.2012.10.24a: Updates to RCU idle/adaptive-idle handling, including\n\ta boot parameter that maps normal grace periods to expedited.\n\nResolved conflict in kernel/rcutree.c due to side-by-side change.\n"
    },
    {
      "commit": "f2ebfbc991044fd5b89d4529741d7500feb37fbd",
      "tree": "a3bcb1b376b5c0efc441deac6f63652b71791942",
      "parents": [
        "4e87b2d7e887df3fe251dd7f702591a3acf369ca"
      ],
      "author": {
        "name": "Lai Jiangshan",
        "email": "laijs@cn.fujitsu.com",
        "time": "Sat Oct 13 01:14:15 2012 +0800"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Tue Oct 23 14:54:42 2012 -0700"
      },
      "message": "srcu: Export process_srcu()\n\nBecause process_srcu() will be used in DEFINE_SRCU(), which is a macro\nthat could be expanded pretty much anywhere, it can no longer be static.\nNote that process_srcu() is still internal to srcu.h.\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": "4e87b2d7e887df3fe251dd7f702591a3acf369ca",
      "tree": "581df8aef7f9b05e00e8d7a2944b91cb018a4def",
      "parents": [
        "6f0c0580b70c89094b3422ba81118c7b959c7556"
      ],
      "author": {
        "name": "Lai Jiangshan",
        "email": "laijs@cn.fujitsu.com",
        "time": "Sat Oct 13 01:14:14 2012 +0800"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Tue Oct 23 14:54:41 2012 -0700"
      },
      "message": "srcu: Credit Lai Jiangshan with SRCU rewrite\n\nLai Jiangshan rewrote SRCU, so this commit ensures that he gets his\nproper share of blame^Wcredit.\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": "3705b88db0d7cc4a097c32d9e554054103d3f807",
      "tree": "f3baf8c94363506964c9f944496267f74cdee47c",
      "parents": [
        "ba49df4767d4fa5bbd2af3a51709fb81f94264ec"
      ],
      "author": {
        "name": "Antti P Miettinen",
        "email": "ananaza@iki.fi",
        "time": "Fri Oct 05 09:59:15 2012 +0300"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Tue Oct 23 14:54:08 2012 -0700"
      },
      "message": "rcu: Add a module parameter to force use of expedited RCU primitives\n\nThere have been some embedded applications that would benefit from\nuse of expedited grace-period primitives.  In some ways, this is\nsimilar to synchronize_net() doing either a normal or an expedited\ngrace period depending on lock state, but with control outside of\nthe kernel.\n\nThis commit therefore adds rcu_expedited boot and sysfs parameters\nthat cause the kernel to substitute expedited primitives for the\nnormal grace-period primitives.\n\n[ paulmck: Add trace/event/rcu.h to kernel/srcu.c to avoid build error.\n\t   Get rid of infinite loop through contention path.]\n\nSigned-off-by: Antti P Miettinen \u003camiettinen@nvidia.com\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "3b07e9ca26866697616097044f25fbe53dbab693",
      "tree": "7621d076c91c05bc0fc3c63bdc54c279a487dfea",
      "parents": [
        "43829731dd372d04d6706c51052b9dabab9ca356"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Aug 20 14:51:24 2012 -0700"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Aug 20 14:51:24 2012 -0700"
      },
      "message": "workqueue: deprecate system_nrt[_freezable]_wq\n\nsystem_nrt[_freezable]_wq are now spurious.  Mark them deprecated and\nconvert all users to system[_freezable]_wq.\n\nIf you\u0027re cc\u0027d and wondering what\u0027s going on: Now all workqueues are\nnon-reentrant, so there\u0027s no reason to use system_nrt[_freezable]_wq.\nPlease use system[_freezable]_wq instead.\n\nThis patch doesn\u0027t make any functional difference.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nAcked-By: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\n\nCc: Jens Axboe \u003caxboe@kernel.dk\u003e\nCc: David Airlie \u003cairlied@linux.ie\u003e\nCc: Jiri Kosina \u003cjkosina@suse.cz\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: \"Paul E. McKenney\" \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\n"
    },
    {
      "commit": "931ea9d1a6e06a5e3af03aa4aaaa7c7fd90e163f",
      "tree": "d25495ccbf92d1ba720a945ac7fb4079b0434db4",
      "parents": [
        "d9792edd7a9a0858a3b1df92cf8beb31e4191e3c"
      ],
      "author": {
        "name": "Lai Jiangshan",
        "email": "laijs@cn.fujitsu.com",
        "time": "Mon Mar 19 16:12:13 2012 +0800"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Mon Apr 30 10:48:25 2012 -0700"
      },
      "message": "rcu: Implement per-domain single-threaded call_srcu() state machine\n\nThis commit implements an SRCU state machine in support of call_srcu().\nThe state machine is preemptible, light-weight, and single-threaded,\nminimizing synchronization overhead.  In particular, there is no longer\nany need for synchronize_srcu() to be guarded by a mutex.\n\nExpedited processing is handled, at least in the absence of concurrent\ngrace-period operations on that same srcu_struct structure, by having\nthe synchronize_srcu_expedited() thread take on the role of the\nworkqueue thread for one iteration.\n\nThere is a reasonable probability that a given SRCU callback will\nbe invoked on the same CPU that registered it, however, there is no\nguarantee.  Concurrent SRCU grace-period primitives can cause callbacks\nto be executed elsewhere, even in absence of CPU-hotplug operations.\n\nCallbacks execute in process context, but under the influence of\nlocal_bh_disable(), so it is illegal to sleep in an SRCU callback\nfunction.\n\nSigned-off-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "d9792edd7a9a0858a3b1df92cf8beb31e4191e3c",
      "tree": "149aa8e7fe288094129c94d02db2e2b64c6ff53c",
      "parents": [
        "dc87917501e324701dbfb249def44054b5220187"
      ],
      "author": {
        "name": "Lai Jiangshan",
        "email": "laijs@cn.fujitsu.com",
        "time": "Mon Mar 19 16:12:12 2012 +0800"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Mon Apr 30 10:48:24 2012 -0700"
      },
      "message": "rcu: Use single value to handle expedited SRCU grace periods\n\nThe earlier algorithm used an \"expedited\" flag combined with a \"trycount\"\ncounter to differentiate between normal and expedited SRCU grace periods.\nHowever, the difference can be encoded into a single counter with a cutoff\nvalue and different initial values for expedited and normal SRCU grace\nperiods.  This commit makes that change.\n\nSigned-off-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\n\nConflicts:\n\n\tkernel/srcu.c\n"
    },
    {
      "commit": "dc87917501e324701dbfb249def44054b5220187",
      "tree": "e39ebf104875f11b8f6fd56e98366918bacc4dca",
      "parents": [
        "966f58c2f6df826f385706673a9bb1edcfd3499a"
      ],
      "author": {
        "name": "Lai Jiangshan",
        "email": "laijs@cn.fujitsu.com",
        "time": "Tue Mar 06 17:57:34 2012 +0800"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Mon Apr 30 10:48:24 2012 -0700"
      },
      "message": "rcu: Improve srcu_readers_active_idx()\u0027s cache locality\n\nExpand the calls to srcu_readers_active_idx() from srcu_readers_active()\ninline.  This change improves cache locality by interating over the CPUs\nonce rather than twice.\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": "b52ce066c55a6a53cf1f8d71308d74f908e31b99",
      "tree": "e814e4e175f2bd8e1c0795247f413d711c7350df",
      "parents": [
        "18108ebfebe9e871d0a9af830baf8f5df69eb5fc"
      ],
      "author": {
        "name": "Lai Jiangshan",
        "email": "laijs@cn.fujitsu.com",
        "time": "Mon Feb 27 09:29:09 2012 -0800"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Mon Apr 30 10:48:22 2012 -0700"
      },
      "message": "rcu: Implement a variant of Peter\u0027s SRCU algorithm\n\nThis commit implements a variant of Peter\u0027s algorithm, which may be found\nat https://lkml.org/lkml/2012/2/1/119.\n\no\tMake the checking lock-free to enable parallel checking.\n\tParallel checking is required when (1) the original checking\n\ttask is preempted for a long time, (2) sychronize_srcu_expedited()\n\tstarts during an ongoing SRCU grace period, or (3) we wish to\n\tavoid acquiring a lock.\n\no\tSince the checking is lock-free, we avoid a mutex in state machine\n\tfor call_srcu().\n\no\tRemove the SRCU_REF_MASK and remove the coupling with the flipping.\n\tThis might allow us to remove the preempt_disable() in future\n\tversions, though such removal will need great care because it\n\trescinds the one-old-reader-per-CPU guarantee.\n\no\tRemove a smp_mb(), simplify the comments and make the smp_mb() pairs\n\tmore intuitive.\n\nInspired-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nSigned-off-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "18108ebfebe9e871d0a9af830baf8f5df69eb5fc",
      "tree": "363127aced66530e6c6808a55462e10c3e8fedb8",
      "parents": [
        "944ce9af4767ca085d465e4add69df11a8faa9ef"
      ],
      "author": {
        "name": "Lai Jiangshan",
        "email": "laijs@cn.fujitsu.com",
        "time": "Mon Feb 27 09:28:10 2012 -0800"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Mon Apr 30 10:48:22 2012 -0700"
      },
      "message": "rcu: Improve SRCU\u0027s wait_idx() comments\n\nThe safety of SRCU is provided byy wait_idx() rather than flipping.\nThe flipping actually prevents starvation.\n\nThis commit therefore updates the comments to more accurately and\nprecisely describe what is going on.\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": "944ce9af4767ca085d465e4add69df11a8faa9ef",
      "tree": "2d2f695f15affe404efb1c0646e6d31ece677d62",
      "parents": [
        "440253c17fc4ed41d778492a7fb44dc0d756eccc"
      ],
      "author": {
        "name": "Lai Jiangshan",
        "email": "laijs@cn.fujitsu.com",
        "time": "Wed Feb 22 16:43:55 2012 -0800"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Mon Apr 30 10:48:21 2012 -0700"
      },
      "message": "rcu: Flip -\u003ecompleted only once per SRCU grace period\n\nThis is an optimization of the SRCU grace period.  To guard against\npreempted readers with old values of the counter, it suffices to scan the\nold counters once more, then flip -\u003ecompleted only one time.  The reason\nthis works is that the old readers must have incremented the old set of\ncounters (if they have not yet incremented, then their critical section\nstarts after this grace period, so they may be safely ignored).\n\nThis commit therefore optimizes the second flip out in favor of a simple\nrescan.\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": "440253c17fc4ed41d778492a7fb44dc0d756eccc",
      "tree": "333cb87d73c154cdc82d2b08356a7337abec72e2",
      "parents": [
        "4b7a3e9e32114a09c61995048f055615b5d4c26d"
      ],
      "author": {
        "name": "Lai Jiangshan",
        "email": "laijs@cn.fujitsu.com",
        "time": "Wed Feb 22 13:29:06 2012 -0800"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Mon Apr 30 10:48:20 2012 -0700"
      },
      "message": "rcu: Increment upper bit only for srcu_read_lock()\n\nThe purpose of the upper bit of SRCU\u0027s per-CPU counters is to guarantee\nthat no reasonable series of srcu_read_lock() and srcu_read_unlock()\noperations can return the value of the counter to its original value.\nThis guarantee is require only after the index has been switched to\nthe other set of counters, so at most one srcu_read_lock() can affect\na given CPU\u0027s counter.  The number of srcu_read_unlock() operations\non a given counter is limited to the number of tasks in the system,\nwhich given the Linux kernel\u0027s current structure is limited to far less\nthan 2^30 on 32-bit systems and far less than 2^62 on 64-bit systems.\n(Something about a limited number of bytes in the kernel\u0027s address space.)\n\nTherefore, if srcu_read_lock() increments the upper bits, then\nsrcu_read_unlock() need not do so.  In this case, an srcu_read_lock() and\nan srcu_read_unlock() will flip the lower bit of the upper field of the\ncounter.  An unreasonably large additional number of srcu_read_unlock()\noperations would be required to return the counter to its initial value,\nthus preserving the guarantee.\n\nThis commit takes this approach, which further allows it to shrink\nthe size of the upper field to one bit, making the number of\nsrcu_read_unlock() operations required to return the counter to its\ninitial value even more unreasonable than before.\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": "4b7a3e9e32114a09c61995048f055615b5d4c26d",
      "tree": "562ff1829abb99e830b5e3b3719834b059376b03",
      "parents": [
        "cef50120b61c2af4ce34bc165e19cad66296f93d"
      ],
      "author": {
        "name": "Lai Jiangshan",
        "email": "laijs@cn.fujitsu.com",
        "time": "Wed Feb 22 13:06:51 2012 -0800"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Mon Apr 30 10:48:20 2012 -0700"
      },
      "message": "rcu: Remove fast check path from __synchronize_srcu()\n\nThe fastpath in __synchronize_srcu() is designed to handle cases where\nthere are a large number of concurrent calls for the same srcu_struct\nstructure.  However, the Linux kernel currently does not use SRCU in\nthis manner, so remove the fastpath checks for simplicity.\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": "cef50120b61c2af4ce34bc165e19cad66296f93d",
      "tree": "963a9473155bcf6a8aa12ce92ff842242c9c3575",
      "parents": [
        "fae4b54f28f034d228fa3bfc98858c698b64e89c"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paul.mckenney@linaro.org",
        "time": "Sun Feb 05 07:42:44 2012 -0800"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Mon Apr 30 10:48:19 2012 -0700"
      },
      "message": "rcu: Direct algorithmic SRCU implementation\n\nThe current implementation of synchronize_srcu_expedited() can cause\nsevere OS jitter due to its use of synchronize_sched(), which in turn\ninvokes try_stop_cpus(), which causes each CPU to be sent an IPI.\nThis can result in severe performance degradation for real-time workloads\nand especially for short-interation-length HPC workloads.  Furthermore,\nbecause only one instance of try_stop_cpus() can be making forward progress\nat a given time, only one instance of synchronize_srcu_expedited() can\nmake forward progress at a time, even if they are all operating on\ndistinct srcu_struct structures.\n\nThis commit, inspired by an earlier implementation by Peter Zijlstra\n(https://lkml.org/lkml/2012/1/31/211) and by further offline discussions,\ntakes a strictly algorithmic bits-in-memory approach.  This has the\ndisadvantage of requiring one explicit memory-barrier instruction in\neach of srcu_read_lock() and srcu_read_unlock(), but on the other hand\ncompletely dispenses with OS jitter and furthermore allows SRCU to be\nused freely by CPUs that RCU believes to be idle or offline.\n\nThe update-side implementation handles the single read-side memory\nbarrier by rechecking the per-CPU counters after summing them and\nby running through the update-side state machine twice.\n\nThis implementation has passed moderate rcutorture testing on both\nx86 and Power.  Also updated to use this_cpu_ptr() instead of per_cpu_ptr(),\nas suggested by Peter Zijlstra.\n\nReported-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nSigned-off-by: Paul E. McKenney \u003cpaul.mckenney@linaro.org\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nReviewed-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\n"
    },
    {
      "commit": "236fefafe5d3d34b78ed2ccf5510909716112326",
      "tree": "9ff5ec129e59667341aa07120720b6e4a5ced4d9",
      "parents": [
        "2036d94a7b61ca5032ce90f2bda06afec0fe713e"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Tue Jan 31 14:00:41 2012 -0800"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Tue Feb 21 09:06:08 2012 -0800"
      },
      "message": "rcu: Call out dangers of expedited RCU primitives\n\nThe expedited RCU primitives can be quite useful, but they have some\nhigh costs as well.  This commit updates and creates docbook comments\ncalling out the costs, and updates the RCU documentation as well.\n\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "fe15d706cfc1cb321dbe2329b04b5ca185edff60",
      "tree": "bec14ab52167f4f0210e8c207c93922c8270402f",
      "parents": [
        "18fec7d8758dd416904da205375e6fa667defc80"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Wed Jan 04 13:30:33 2012 -0800"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Tue Feb 21 09:03:23 2012 -0800"
      },
      "message": "rcu: Add lockdep-RCU checks for simple self-deadlock\n\nIt is illegal to have a grace period within a same-flavor RCU read-side\ncritical section, so this commit adds lockdep-RCU checks to splat when\nsuch abuse is encountered.  This commit does not detect more elaborate\nRCU deadlock situations.  These situations might be a job for lockdep\nenhancements.\n\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "9984de1a5a8a96275fcab818f7419af5a3c86e71",
      "tree": "1935d411752707a1621c5caf64f75dfe105beb3a",
      "parents": [
        "7c77509c542927ee2a3c8812fad84957e51bf67d"
      ],
      "author": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Mon May 23 14:51:41 2011 -0400"
      },
      "committer": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Mon Oct 31 09:20:12 2011 -0400"
      },
      "message": "kernel: Map most files to use export.h instead of module.h\n\nThe changed files were only including linux/module.h for the\nEXPORT_SYMBOL infrastructure, and nothing else.  Revector them\nonto the isolated export header for faster compile times.\n\nNothing to see here but a whole lot of instances of:\n\n  -#include \u003clinux/module.h\u003e\n  +#include \u003clinux/export.h\u003e\n\nThis commit is only changing the kernel dir; next targets\nwill probably be mm, fs, the arch dirs, etc.\n\nSigned-off-by: Paul Gortmaker \u003cpaul.gortmaker@windriver.com\u003e\n"
    },
    {
      "commit": "c072a388d59a1d48e36864d0e66f42d71745be1c",
      "tree": "a0537c767c834d1846430ab3bb4eb83c0d0923d7",
      "parents": [
        "394f4528c523d88daabd50f883a8d6b164075555"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Fri Jan 07 02:33:47 2011 -0800"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Fri Jan 14 04:56:49 2011 -0800"
      },
      "message": "rcu: demote SRCU_SYNCHRONIZE_DELAY from kernel-parameter status\n\nBecause the adaptive synchronize_srcu_expedited() approach has\nworked very well in testing, remove the kernel parameter and\nreplace it by a C-preprocessor macro.  If someone finds problems\nwith this approach, a more complex and aggressively adaptive\napproach might be required.\n\nLonger term, SRCU will be merged with the other RCU implementations,\nat which point synchronize_srcu_expedited() will be event driven,\njust as synchronize_sched_expedited() currently is.  At that point,\nthere will be no need for this adaptive approach.\n\nReported-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "46fdb0937f26124700fc9fc80da4776330cc00d3",
      "tree": "ce3bdf6c0379fdab8c72085f885402751fadea52",
      "parents": [
        "db3a8920995484e5e9a0abaf3bad2c7311b163db"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Tue Oct 26 02:11:40 2010 -0700"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Mon Nov 29 22:02:40 2010 -0800"
      },
      "message": "rcu: Make synchronize_srcu_expedited() fast if running readers\n\nThe synchronize_srcu_expedited() function is currently quick if there\nare no active readers, but will delay a full jiffy if there are any.\nIf these readers leave their SRCU read-side critical sections quickly,\nthis is way too long to wait.  So this commit first waits ten microseconds,\nand only then falls back to jiffy-at-a-time waiting.\n\nReported-by: Avi Kivity \u003cavi@redhat.com\u003e\nReported-by: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\nTested-by: Takuya Yoshikawa \u003cyoshikawa.takuya@oss.ntt.co.jp\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "829f8ed2c963df7c23d1c644db6c4387eb1601fa",
      "tree": "943c75c7222e8eb8d96a054946870564d6c41830",
      "parents": [
        "81a294c44e973dc7182e4733421b7cb2daba3c29"
      ],
      "author": {
        "name": "Christian Dietrich",
        "email": "qy03fugy@stud.informatik.uni-erlangen.de",
        "time": "Mon Sep 06 16:37:12 2010 +0200"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Thu Sep 23 09:14:51 2010 -0700"
      },
      "message": "kernel: Remove undead ifdef CONFIG_DEBUG_LOCK_ALLOC\n\nThe CONFIG_DEBUG_LOCK_ALLOC ifdef isn\u0027t necessary at this point, because it is\nchecked in an outer ifdef level already and has no effect here.\n\nSigned-off-by: Christian Dietrich \u003cqy03fugy@stud.informatik.uni-erlangen.de\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "5a0e3ad6af8660be21ca98a971cd00f331318c05",
      "tree": "5bfb7be11a03176a87296a43ac6647975c00a1d1",
      "parents": [
        "ed391f4ebf8f701d3566423ce8f17e614cde9806"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Mar 24 17:04:11 2010 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Mar 30 22:02:32 2010 +0900"
      },
      "message": "include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h\n\npercpu.h is included by sched.h and module.h and thus ends up being\nincluded when building most .c files.  percpu.h includes slab.h which\nin turn includes gfp.h making everything defined by the two files\nuniversally available and complicating inclusion dependencies.\n\npercpu.h -\u003e slab.h dependency is about to be removed.  Prepare for\nthis change by updating users of gfp and slab facilities include those\nheaders directly instead of assuming availability.  As this conversion\nneeds to touch large number of source files, the following script is\nused as the basis of conversion.\n\n  http://userweb.kernel.org/~tj/misc/slabh-sweep.py\n\nThe script does the followings.\n\n* Scan files for gfp and slab usages and update includes such that\n  only the necessary includes are there.  ie. if only gfp is used,\n  gfp.h, if slab is used, slab.h.\n\n* When the script inserts a new include, it looks at the include\n  blocks and try to put the new include such that its order conforms\n  to its surrounding.  It\u0027s put in the include block which contains\n  core kernel includes, in the same order that the rest are ordered -\n  alphabetical, Christmas tree, rev-Xmas-tree or at the end if there\n  doesn\u0027t seem to be any matching order.\n\n* If the script can\u0027t find a place to put a new include (mostly\n  because the file doesn\u0027t have fitting include block), it prints out\n  an error message indicating which .h file needs to be added to the\n  file.\n\nThe conversion was done in the following steps.\n\n1. The initial automatic conversion of all .c files updated slightly\n   over 4000 files, deleting around 700 includes and adding ~480 gfp.h\n   and ~3000 slab.h inclusions.  The script emitted errors for ~400\n   files.\n\n2. Each error was manually checked.  Some didn\u0027t need the inclusion,\n   some needed manual addition while adding it to implementation .h or\n   embedding .c file was more appropriate for others.  This step added\n   inclusions to around 150 files.\n\n3. The script was run again and the output was compared to the edits\n   from #2 to make sure no file was left behind.\n\n4. Several build tests were done and a couple of problems were fixed.\n   e.g. lib/decompress_*.c used malloc/free() wrappers around slab\n   APIs requiring slab.h to be added manually.\n\n5. The script was run on all .h files but without automatically\n   editing them as sprinkling gfp.h and slab.h inclusions around .h\n   files could easily lead to inclusion dependency hell.  Most gfp.h\n   inclusion directives were ignored as stuff from gfp.h was usually\n   wildly available and often used in preprocessor macros.  Each\n   slab.h inclusion directive was examined and added manually as\n   necessary.\n\n6. percpu.h was updated not to include slab.h.\n\n7. Build test were done on the following configurations and failures\n   were fixed.  CONFIG_GCOV_KERNEL was turned off for all tests (as my\n   distributed build env didn\u0027t work with gcov compiles) and a few\n   more options had to be turned off depending on archs to make things\n   build (like ipr on powerpc/64 which failed due to missing writeq).\n\n   * x86 and x86_64 UP and SMP allmodconfig and a custom test config.\n   * powerpc and powerpc64 SMP allmodconfig\n   * sparc and sparc64 SMP allmodconfig\n   * ia64 SMP allmodconfig\n   * s390 SMP allmodconfig\n   * alpha SMP allmodconfig\n   * um on x86_64 SMP allmodconfig\n\n8. percpu.h modifications were reverted so that it could be applied as\n   a separate patch and serve as bisection point.\n\nGiven the fact that I had only a couple of failures from tests on step\n6, I\u0027m fairly confident about the coverage of this conversion patch.\nIf there is a breakage, it\u0027s likely to be something in one of the arch\nheaders which should be easily discoverable easily on most builds of\nthe specific arch.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nGuess-its-ok-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: Lee Schermerhorn \u003cLee.Schermerhorn@hp.com\u003e\n"
    },
    {
      "commit": "632ee200130899252508c478ad0e808222573fbc",
      "tree": "e3f44ca9daf2a2da2186419f703bc9cec8faa058",
      "parents": [
        "996de8c6fe95c5a9fc524241cc8f142ef0605d3d"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Mon Feb 22 17:04:45 2010 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Feb 25 09:40:59 2010 +0100"
      },
      "message": "rcu: Introduce lockdep-based checking to RCU read-side primitives\n\nInspection is proving insufficient to catch all RCU misuses,\nwhich is understandable given that rcu_dereference() might be\nprotected by any of four different flavors of RCU (RCU, RCU-bh,\nRCU-sched, and SRCU), and might also/instead be protected by any\nof a number of locking primitives. It is therefore time to\nenlist the aid of lockdep.\n\nThis set of patches is inspired by earlier work by Peter\nZijlstra and Thomas Gleixner, and takes the following approach:\n\no\tSet up separate lockdep classes for RCU, RCU-bh, and RCU-sched.\n\no\tSet up separate lockdep classes for each instance of SRCU.\n\no\tCreate primitives that check for being in an RCU read-side\n\tcritical section.  These return exact answers if lockdep is\n\tfully enabled, but if unsure, report being in an RCU read-side\n\tcritical section.  (We want to avoid false positives!)\n\tThe primitives are:\n\n\tFor RCU: rcu_read_lock_held(void)\n\n\tFor RCU-bh: rcu_read_lock_bh_held(void)\n\n\tFor RCU-sched: rcu_read_lock_sched_held(void)\n\n\tFor SRCU: srcu_read_lock_held(struct srcu_struct *sp)\n\no\tAdd rcu_dereference_check(), which takes a second argument\n\tin which one places a boolean expression based on the above\n\tprimitives and/or lockdep_is_held().\n\no\tA new kernel configuration parameter, CONFIG_PROVE_RCU, enables\n\trcu_dereference_check().  This depends on CONFIG_PROVE_LOCKING,\n\tand should be quite helpful during the transition period while\n\tCONFIG_PROVE_RCU-unaware patches are in flight.\n\nThe existing rcu_dereference() primitive does no checking, but\nupcoming patches will change that.\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-1-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": "0cd397d33608ae6c97d2ee6c8c43462b419b7e26",
      "tree": "7c6ac61e7d8cc9cf410251024f1a6e515987b478",
      "parents": [
        "9b1d82fa1611706fa7ee1505f290160a18caf95d"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Sun Oct 25 19:03:51 2009 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Oct 26 09:40:30 2009 +0100"
      },
      "message": "rcu: Add synchronize_srcu_expedited()\n\nThis patch creates a synchronize_srcu_expedited() that uses\nsynchronize_sched_expedited() where synchronize_srcu()\nuses synchronize_sched().  The synchronize_srcu() and\nsynchronize_srcu_expedited() functions become one-liners that\npass synchronize_sched() or synchronize_sched_expedited(),\nrepectively, to a new __synchronize_srcu() function.\n\nWhile in the file, move the EXPORT_SYMBOL_GPL()s to immediately\nfollow the corresponding functions.\n\nRequested-by: Avi Kivity \u003cavi@redhat.com\u003e\nTested-by: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.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: dhowells@redhat.com\nCc: avi@redhat.com\nLKML-Reference: \u003c12565226354038-git-send-email-\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "bb695170d8dff3f22682b6c19df64dc093f58c0a",
      "tree": "a78249958fe4c0906f5cbcd3501cc409b4f88841",
      "parents": [
        "f17d30a803e8434c4ef381bb5cfa1956ff0201f0"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@kernel.org",
        "time": "Wed Feb 06 01:36:45 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Feb 06 10:41:02 2008 -0800"
      },
      "message": "make srcu_readers_active() static\n\nMake the needlessly global srcu_readers_active() static.\n\nSigned-off-by: Adrian Bunk \u003cbunk@kernel.org\u003e\nCc: \"Paul E. McKenney\" \u003cpaulmck@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e6a92013ba458804161c0c5b6d134d82204dc233",
      "tree": "ecee5fdcef80d1dba0ac6ea87370931ea39ffecd",
      "parents": [
        "eabc069401bcf45bcc3f19e643017bf761780aa8"
      ],
      "author": {
        "name": "Alan Stern",
        "email": "stern@rowland.harvard.edu",
        "time": "Wed Oct 04 02:17:05 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Oct 04 07:55:30 2006 -0700"
      },
      "message": "[PATCH] SRCU: report out-of-memory errors\n\nCurrently the init_srcu_struct() routine has no way to report out-of-memory\nerrors.  This patch (as761) makes it return -ENOMEM when the per-cpu data\nallocation fails.\n\nThe patch also makes srcu_init_notifier_head() report a BUG if a notifier\nhead can\u0027t be initialized.  Perhaps it should return -ENOMEM instead, but\nin the most likely cases where this might occur I don\u0027t think any recovery\nis possible.  Notifier chains generally are not created dynamically.\n\n[akpm@osdl.org: avoid statement-with-side-effect in macro]\nSigned-off-by: Alan Stern \u003cstern@rowland.harvard.edu\u003e\nAcked-by: Paul E. McKenney \u003cpaulmck@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "621934ee7ed5b073c7fd638b347e632c53572761",
      "tree": "5722f9cda22c099ad60545f963410dcbc762ee65",
      "parents": [
        "95d77884c77beed676036d2f74d10b470a483c63"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@us.ibm.com",
        "time": "Wed Oct 04 02:17:02 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Oct 04 07:55:30 2006 -0700"
      },
      "message": "[PATCH] srcu-3: RCU variant permitting read-side blocking\n\nUpdated patch adding a variant of RCU that permits sleeping in read-side\ncritical sections.  SRCU is as follows:\n\no\tEach use of SRCU creates its own srcu_struct, and each\n\tsrcu_struct has its own set of grace periods.  This is\n\tcritical, as it prevents one subsystem with a blocking\n\treader from holding up SRCU grace periods for other\n\tsubsystems.\n\no\tThe SRCU primitives (srcu_read_lock(), srcu_read_unlock(),\n\tand synchronize_srcu()) all take a pointer to a srcu_struct.\n\no\tThe SRCU primitives must be called from process context.\n\no\tsrcu_read_lock() returns an int that must be passed to\n\tthe matching srcu_read_unlock().  Realtime RCU avoids the\n\tneed for this by storing the state in the task struct,\n\tbut SRCU needs to allow a given code path to pass through\n\tmultiple SRCU domains -- storing state in the task struct\n\twould therefore require either arbitrary space in the\n\ttask struct or arbitrary limits on SRCU nesting.  So I\n\tkicked the state-storage problem up to the caller.\n\n\tOf course, it is not permitted to call synchronize_srcu()\n\twhile in an SRCU read-side critical section.\n\no\tThere is no call_srcu().  It would not be hard to implement\n\tone, but it seems like too easy a way to OOM the system.\n\t(Hey, we have enough trouble with call_rcu(), which does\n\t-not- permit readers to sleep!!!)  So, if you want it,\n\tplease tell me why...\n\n[josht@us.ibm.com: sparse notation]\nSigned-off-by: Paul E. McKenney \u003cpaulmck@us.ibm.com\u003e\nSigned-off-by: Josh Triplett \u003cjosh@freedesktop.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    }
  ]
}
