)]}'
{
  "log": [
    {
      "commit": "ac44021fccd8f1f2b267b004f23a2e8d7ef05f7b",
      "tree": "164d43e03bff92e66058a2bd2a57a3af9a4723c2",
      "parents": [
        "a979241c532f07c201fe94e0a632107268f02578"
      ],
      "author": {
        "name": "Eduard - Gabriel Munteanu",
        "email": "eduard.munteanu@linux360.ro",
        "time": "Mon Mar 23 15:12:21 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Apr 03 12:23:05 2009 +0200"
      },
      "message": "kmemtrace, rcu: don\u0027t include unnecessary headers, allow kmemtrace w/ tracepoints\n\nImpact: cleanup\n\nlinux/percpu.h includes linux/slab.h, which generates circular inclusion\ndependencies when trying to switch kmemtrace to use tracepoints instead\nof markers.\n\nThis patch allows tracing within slab headers\u0027 inline functions.\n\nSigned-off-by: 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"
    },
    {
      "commit": "b1f77b0581b8fd837acb4a973f7d5496cae6efee",
      "tree": "4faa2e4285c31dd70d1d20b4172d1eed55ba7330",
      "parents": [
        "255d11bc910fd38153156a0c5ebb256657290882"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Mar 13 03:20:49 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Apr 03 12:23:02 2009 +0200"
      },
      "message": "kmemtrace, rcu: fix linux/rcutree.h and linux/rcuclassic.h dependencies\n\nImpact: build fix for all non-x86 architectures\n\nWe want to remove percpu.h from rcuclassic.h/rcutree.h (for upcoming\nkmemtrace changes) but that would break the DECLARE_PER_CPU based\ndeclarations in these files.\n\nMove the quiescent counter management functions to their respective\nRCU implementation .c files - they were slightly above the inlining\nlimit anyway.\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"
    },
    {
      "commit": "a682604838763981613e42015cd0e39f2989d6bb",
      "tree": "29eae425e484edc494807702696c240ce09ba3f5",
      "parents": [
        "694593e3374a67d95ece6a275a1f181644c2c4d8"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Wed Feb 25 18:03:42 2009 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Feb 26 04:08:14 2009 +0100"
      },
      "message": "rcu: Teach RCU that idle task is not quiscent state at boot\n\nThis patch fixes a bug located by Vegard Nossum with the aid of\nkmemcheck, updated based on review comments from Nick Piggin,\nIngo Molnar, and Andrew Morton.  And cleans up the variable-name\nand function-name language.  ;-)\n\nThe boot CPU runs in the context of its idle thread during boot-up.\nDuring this time, idle_cpu(0) will always return nonzero, which will\nfool Classic and Hierarchical RCU into deciding that a large chunk of\nthe boot-up sequence is a big long quiescent state.  This in turn causes\nRCU to prematurely end grace periods during this time.\n\nThis patch changes the rcutree.c and rcuclassic.c rcu_check_callbacks()\nfunction to ignore the idle task as a quiescent state until the\nsystem has started up the scheduler in rest_init(), introducing a\nnew non-API function rcu_idle_now_means_idle() to inform RCU of this\ntransition.  RCU maintains an internal rcu_idle_cpu_truthful variable\nto track this state, which is then used by rcu_check_callback() to\ndetermine if it should believe idle_cpu().\n\nBecause this patch has the effect of disallowing RCU grace periods\nduring long stretches of the boot-up sequence, this patch also introduces\nJosh Triplett\u0027s UP-only optimization that makes synchronize_rcu() be a\nno-op if num_online_cpus() returns 1.  This allows boot-time code that\ncalls synchronize_rcu() to proceed normally.  Note, however, that RCU\ncallbacks registered by call_rcu() will likely queue up until later in\nthe boot sequence.  Although rcuclassic and rcutree can also use this\nsame optimization after boot completes, rcupreempt must restrict its\nuse of this optimization to the portion of the boot sequence before the\nscheduler starts up, given that an rcupreempt RCU read-side critical\nsection may be preeempted.\n\nIn addition, this patch takes Nick Piggin\u0027s suggestion to make the\nsystem_state global variable be __read_mostly.\n\nChanges since v4:\n\no\tChanges the name of the introduced function and variable to\n\tbe less emotional.  ;-)\n\nChanges since v3:\n\no\tWARN_ON(nr_context_switches() \u003e 0) to verify that RCU\n\tswitches out of boot-time mode before the first context\n\tswitch, as suggested by Nick Piggin.\n\nChanges since v2:\n\no\tCreated rcu_blocking_is_gp() internal-to-RCU API that\n\tdetermines whether a call to synchronize_rcu() is itself\n\ta grace period.\n\no\tThe definition of rcu_blocking_is_gp() for rcuclassic and\n\trcutree checks to see if but a single CPU is online.\n\no\tThe definition of rcu_blocking_is_gp() for rcupreempt\n\tchecks to see both if but a single CPU is online and if\n\tthe system is still in early boot.\n\n\tThis allows rcupreempt to again work correctly if running\n\ton a single CPU after booting is complete.\n\no\tAdded check to rcupreempt\u0027s synchronize_sched() for there\n\tbeing but one online CPU.\n\nTested all three variants both SMP and !SMP, booted fine, passed a short\nrcutorture test on both x86 and Power.\n\nLocated-by: Vegard Nossum \u003cvegard.nossum@gmail.com\u003e\nTested-by: Vegard Nossum \u003cvegard.nossum@gmail.com\u003e\nTested-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "bd232f97b30f6bb630efa136a777647545db3039",
      "tree": "0dd55c07abfee9e1f4c83f9e8cbf853f817ff226",
      "parents": [
        "d036e67b40f52bdd95392390108defbac7e53837"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Jan 01 10:12:26 2009 +1030"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Jan 01 10:12:26 2009 +1030"
      },
      "message": "cpumask: convert RCU implementations\n\nImpact: use new cpumask API.\n\nrcu_ctrlblk contains a cpumask, and it\u0027s highly optimized so I don\u0027t want\na cpumask_var_t (ie. a pointer) for the CONFIG_CPUMASK_OFFSTACK case.  It\ncould use a dangling bitmap, and be allocated in __rcu_init to save memory,\nbut for the moment we use a bitmap.\n\n(Eventually \u0027struct cpumask\u0027 will be undefined for CONFIG_CPUMASK_OFFSTACK,\nso we use a bitmap here to show we really mean it).\n\nWe remove on-stack cpumasks, using cpumask_var_t for\nrcu_torture_shuffle_tasks() and for_each_cpu_and in force_quiescent_state().\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "29cbda77a67cf263d636feea65d3bbc9c7de2e24",
      "tree": "99881cc6279fa157f8114f1f739528136672b1e2",
      "parents": [
        "be19ef82e068e92a28df50341938fdeb5ea56436"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Mon Nov 03 09:16:39 2008 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Nov 03 18:36:48 2008 +0100"
      },
      "message": "rcu: increase RCU stall-check timeouts\n\nImpact: increase timeout of debug check feature\n\nIncrease RCU stall period timeouts to reduce the likelyhood of\nfalse positives.\n\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "2133b5d7ff531bc15a923db4a6a50bf96c561be9",
      "tree": "5917515eaec573fbc3d4a734769d6184beb83dbb",
      "parents": [
        "b5259d944279d0b7e78a83849a352d8ba0447c4c"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Thu Oct 02 16:06:39 2008 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Oct 03 10:36:08 2008 +0200"
      },
      "message": "rcu: RCU-based detection of stalled CPUs for Classic RCU\n\nThis patch adds stalled-CPU detection to Classic RCU.  This capability\nis enabled by a new config variable CONFIG_RCU_CPU_STALL_DETECTOR, which\ndefaults disabled.\n\nThis is a debugging feature to detect infinite loops in kernel code, not\nsomething that non-kernel-hackers would be expected to care about.\n\nThis feature can detect looping CPUs in !PREEMPT builds and looping CPUs\nwith preemption disabled in PREEMPT builds.  This is essentially a port of\nthis functionality from the treercu patch, replacing the stall debug patch\nthat is already in tip/core/rcu (commit 67182ae1c4).\n\nThe changes from the patch in tip/core/rcu include making the config\nvariable name match that in treercu, changing from seconds to jiffies to\navoid spurious warnings, and printing a boot message when this feature\nis enabled.\n\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "429b022af41108f6942d72547592b1d30e9a51f0",
      "tree": "7d68355529718018cdad1241285816c6f64620b2",
      "parents": [
        "0cd418ddb1ee88df7d16d5df06cb2da68eceb9e4",
        "adee14b2e1557d0a8559f29681732d05a89dfc35"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Sep 10 08:35:40 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Sep 10 08:35:40 2008 +0200"
      },
      "message": "Merge commit \u0027v2.6.27-rc6\u0027 into core/rcu\n"
    },
    {
      "commit": "67182ae1c42206e516f7efb292b745e826497b24",
      "tree": "d2d402550a0432489090264df95a8154597dc989",
      "parents": [
        "c4c0c56a7a85ed5725786219e4fbca7e840b1531"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Sun Aug 10 18:35:38 2008 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Aug 11 13:35:18 2008 +0200"
      },
      "message": "rcu, debug: detect stalled grace periods\n\nthis is a diagnostic patch for Classic RCU.\n\nThe approach is to record a timestamp at the beginning\nof the grace period (in rcu_start_batch()), then have\nrcu_check_callbacks() complain if:\n\n 1.\tit is running on a CPU that has holding up grace periods for\n \ta long time (say one second).  This will identify the culprit\n \tassuming that the culprit has not disabled hardware irqs,\n \tinstruction execution, or some such.\n\n 2.\tit is running on a CPU that is not holding up grace periods,\n \tbut grace periods have been held up for an even longer time\n \t(say two seconds).\n\nIt is enabled via the default-off CONFIG_DEBUG_RCU_STALL kernel parameter.\n\nRather than exponential backoff, it backs off to once per 30 seconds.\nMy feeling upon thinking on it was that if you have stalled RCU grace\nperiods for that long, a few extra printk() messages are probably the\nleast of your worries...\n\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Yinghai Lu \u003cyhlu.kernel@gmail.com\u003e\nCc: David Witbrodt \u003cdawitbro@sbcglobal.net\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "7531e2f34d1d551b096143f19111139f0dd84c8b",
      "tree": "0a29d6703e28dc6752b9b4085594cca238595aac",
      "parents": [
        "4f3e7524b2e703d9f8b02ac338153a53dd7ede66"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Mon Aug 11 09:30:24 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Aug 11 09:30:24 2008 +0200"
      },
      "message": "lockdep: lock protection locks\n\nOn Fri, 2008-08-01 at 16:26 -0700, Linus Torvalds wrote:\n\n\u003e On Fri, 1 Aug 2008, David Miller wrote:\n\u003e \u003e\n\u003e \u003e Taking more than a few locks of the same class at once is bad\n\u003e \u003e news and it\u0027s better to find an alternative method.\n\u003e\n\u003e It\u0027s not always wrong.\n\u003e\n\u003e If you can guarantee that anybody that takes more than one lock of a\n\u003e particular class will always take a single top-level lock _first_, then\n\u003e that\u0027s all good. You can obviously screw up and take the same lock _twice_\n\u003e (which will deadlock), but at least you cannot get into ABBA situations.\n\u003e\n\u003e So maybe the right thing to do is to just teach lockdep about \"lock\n\u003e protection locks\". That would have solved the multi-queue issues for\n\u003e networking too - all the actual network drivers would still have taken\n\u003e just their single queue lock, but the one case that needs to take all of\n\u003e them would have taken a separate top-level lock first.\n\u003e\n\u003e Never mind that the multi-queue locks were always taken in the same order:\n\u003e it\u0027s never wrong to just have some top-level serialization, and anybody\n\u003e who needs to take \u003cn\u003e locks might as well do \u003cn+1\u003e, because they sure as\n\u003e hell aren\u0027t going to be on _any_ fastpaths.\n\u003e\n\u003e So the simplest solution really sounds like just teaching lockdep about\n\u003e that one special case. It\u0027s not \"nesting\" exactly, although it\u0027s obviously\n\u003e related to it.\n\nDo as Linus suggested. The lock protection lock is called nest_lock.\n\nNote that we still have the MAX_LOCK_DEPTH (48) limit to consider, so anything\nthat spills that it still up shit creek.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "5127bed588a2f8f3a1f732de2a8a190b7df5dce3",
      "tree": "bf79321ffa4c1b7c1071bea8ad1a3eb6eb7b888e",
      "parents": [
        "3cac97cbb14aed00d83eb33d4613b0fe3aaea863"
      ],
      "author": {
        "name": "Lai Jiangshan",
        "email": "laijs@cn.fujitsu.com",
        "time": "Sun Jul 06 17:23:59 2008 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jul 18 16:07:33 2008 +0200"
      },
      "message": "rcu classic: new algorithm for callbacks-processing(v2)\n\nThis is v2, it\u0027s a little deference from v1 that I\nhad send to lkml.\nuse ACCESS_ONCE\nuse rcu_batch_after/rcu_batch_before for batch # comparison.\n\nrcutorture test result:\n(hotplugs: do cpu-online/offline once per second)\n\nNo CONFIG_NO_HZ:           OK, 12hours\nNo CONFIG_NO_HZ, hotplugs: OK, 12hours\nCONFIG_NO_HZ\u003dy:            OK, 24hours\nCONFIG_NO_HZ\u003dy, hotplugs:  Failed.\n(Failed also without my patch applied, exactly the same bug occurred,\nhttp://lkml.org/lkml/2008/7/3/24)\n\nv1\u0027s email thread:\nhttp://lkml.org/lkml/2008/6/2/539\n\nv1\u0027s description:\n\nThe code/algorithm of the implement of current callbacks-processing\nis very efficient and technical. But when I studied it and I found\na disadvantage:\n\nIn multi-CPU systems, when a new RCU callback is being\nqueued(call_rcu[_bh]), this callback will be invoked after the grace\nperiod for the batch with batch number \u003d rcp-\u003ecur+2 has completed\nvery very likely in current implement. Actually, this callback can be\ninvoked after the grace period for the batch with\nbatch number \u003d rcp-\u003ecur+1 has completed. The delay of invocation means\nthat latency of synchronize_rcu() is extended. But more important thing\nis that the callbacks usually free memory, and these works are delayed\ntoo! it\u0027s necessary for reclaimer to free memory as soon as\npossible when left memory is few.\n\nA very simple way can solve this problem:\na field(struct rcu_head::batch) is added to record the batch number for\nthe RCU callback. And when a new RCU callback is being queued, we\ndetermine the batch number for this callback(head-\u003ebatch \u003d rcp-\u003ecur+1)\nand we move this callback to rdp-\u003edonelist if we find\nthat head-\u003ebatch \u003c\u003d rcp-\u003ecompleted when we process callbacks.\nThis simple way reduces the wait time for invocation a lot. (about\n2.5Grace Period -\u003e 1.5Grace Period in average in multi-CPU systems)\n\nThis is my algorithm. But I do not add any field for struct rcu_head\nin my implement. We just need to memorize the last 2 batches and\ntheir batch number, because these 2 batches include all entries that\nfor whom the grace period hasn\u0027t completed. So we use a special\nlinked-list rather than add a field.\nPlease see the comment of struct rcu_data.\n\nSigned-off-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nCc: \"Paul E. McKenney\" \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: Dipankar Sarma \u003cdipankar@in.ibm.com\u003e\nCc: Gautham Shenoy \u003cego@in.ibm.com\u003e\nCc: Dhaval Giani \u003cdhaval@linux.vnet.ibm.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "3cac97cbb14aed00d83eb33d4613b0fe3aaea863",
      "tree": "ba775ff62be34c2a7c17149516509d6c7d70f4d5",
      "parents": [
        "5b664cb235e97afbf34db9c4d77f08ebd725335e"
      ],
      "author": {
        "name": "Lai Jiangshan",
        "email": "laijs@cn.fujitsu.com",
        "time": "Sun Jul 06 17:23:55 2008 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jul 18 16:07:32 2008 +0200"
      },
      "message": "rcu classic: simplify the next pending batch\n\nuse a batch number(rcp-\u003epending) instead of a flag(rcp-\u003enext_pending)\n\nrcu_start_batch() need to change this flag, so mb()s is needed\nfor memory-access safe.\n\nbut(after this patch applied) rcu_start_batch() do not change\nthis batch number(rcp-\u003epending), rcp-\u003epending is managed by\n__rcu_process_callbacks only, and troublesome mb()s are eliminated.\n\nAnd codes look simpler and clearer.\n\nSigned-off-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nCc: \"Paul E. McKenney\" \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: Dipankar Sarma \u003cdipankar@in.ibm.com\u003e\nCc: Gautham Shenoy \u003cego@in.ibm.com\u003e\nCc: Dhaval Giani \u003cdhaval@linux.vnet.ibm.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "4446a36ff8c74ac3b32feb009b651048e129c6af",
      "tree": "4ae726073e02281c2de51ed394ba2a812fd55c9b",
      "parents": [
        "8b09dee67f484e9b42114b1a1f068e080fd7aa56"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Mon May 12 21:21:05 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon May 19 10:01:36 2008 +0200"
      },
      "message": "rcu: add call_rcu_sched()\n\nFourth cut of patch to provide the call_rcu_sched().  This is again to\nsynchronize_sched() as call_rcu() is to synchronize_rcu().\n\nShould be fine for experimental and -rt use, but not ready for inclusion.\nWith some luck, I will be able to tell Andrew to come out of hiding on\nthe next round.\n\nPasses multi-day rcutorture sessions with concurrent CPU hotplugging.\n\nFixes since the first version include a bug that could result in\nindefinite blocking (spotted by Gautham Shenoy), better resiliency\nagainst CPU-hotplug operations, and other minor fixes.\n\nFixes since the second version include reworking grace-period detection\nto avoid deadlocks that could happen when running concurrently with\nCPU hotplug, adding Mathieu\u0027s fix to avoid the softlockup messages,\nas well as Mathieu\u0027s fix to allow use earlier in boot.\n\nFixes since the third version include a wrong-CPU bug spotted by\nAndrew, getting rid of the obsolete synchronize_kernel API that somehow\nsnuck back in, merging spin_unlock() and local_irq_restore() in a\nfew places, commenting the code that checks for quiescent states based\non interrupting from user-mode execution or the idle loop, removing\nsome inline attributes, and some code-style changes.\n\nKnown/suspected shortcomings:\n\no\tI still do not entirely trust the sleep/wakeup logic.  Next step\n\twill be to use a private snapshot of the CPU online mask in\n\trcu_sched_grace_period() -- if the CPU wasn\u0027t there at the start\n\tof the grace period, we don\u0027t need to hear from it.  And the\n\tbit about accounting for changes in online CPUs inside of\n\trcu_sched_grace_period() is ugly anyway.\n\no\tIt might be good for rcu_sched_grace_period() to invoke\n\tresched_cpu() when a given CPU wasn\u0027t responding quickly,\n\tbut resched_cpu() is declared static...\n\nThis patch also fixes a long-standing bug in the earlier preemptable-RCU\nimplementation of synchronize_rcu() that could result in loss of\nconcurrent external changes to a task\u0027s CPU affinity mask.  I still cannot\nremember who reported this...\n\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nSigned-off-by: Mathieu Desnoyers \u003cmathieu.desnoyers@polymtl.ca\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "735643ee6cc5249bfac07fcad0946a5e7aff4423",
      "tree": "e725df246f4a3cf88b6b42a28d859ab969acf81c",
      "parents": [
        "71cc2c2152170b8166f59abb0604dc62073aeb92"
      ],
      "author": {
        "name": "Robert P. J. Day",
        "email": "rpjday@crashcourse.ca",
        "time": "Wed Apr 30 00:55:12 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 30 08:29:54 2008 -0700"
      },
      "message": "Remove \"#ifdef __KERNEL__\" checks from unexported headers\n\nRemove the \"#ifdef __KERNEL__\" tests from unexported header files in\nlinux/include whose entire contents are wrapped in that preprocessor\ntest.\n\nSigned-off-by: Robert P. J. Day \u003crpjday@crashcourse.ca\u003e\nCc: David Woodhouse \u003cdwmw2@infradead.org\u003e\nCc: Sam Ravnborg \u003csam@ravnborg.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2232c2d8e0a6a31061dec311f3d1cf7624bc14f1",
      "tree": "1d90ec0b8bd4e3c154e386f005ef596ee25fa53f",
      "parents": [
        "c0f4133b8f70769bc8dda977feb9a29109d6ccca"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Fri Feb 29 18:46:50 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Feb 29 18:46:50 2008 +0100"
      },
      "message": "rcu: add support for dynamic ticks and preempt rcu\n\nThe PREEMPT-RCU can get stuck if a CPU goes idle and NO_HZ is set. The\nidle CPU will not progress the RCU through its grace period and a\nsynchronize_rcu my get stuck. Without this patch I have a box that will\nnot boot when PREEMPT_RCU and NO_HZ are set. That same box boots fine\nwith this patch.\n\nThis patch comes from the -rt kernel where it has been tested for\nseveral months.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "e260be673a15b6125068270e0216a3bfbfc12f87",
      "tree": "f50760606d395bf6faa9e865f814761a3c88d32c",
      "parents": [
        "e0ecfa7917cafe72f4a75f87e8bb5d8d51dc534f"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Fri Jan 25 21:08:24 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:24 2008 +0100"
      },
      "message": "Preempt-RCU: implementation\n\nThis patch implements a new version of RCU which allows its read-side\ncritical sections to be preempted. It uses a set of counter pairs\nto keep track of the read-side critical sections and flips them\nwhen all tasks exit read-side critical section. The details\nof this implementation can be found in this paper -\n\n\thttp://www.rdrop.com/users/paulmck/RCU/OLSrtRCU.2006.08.11a.pdf\n\nand the article-\n\n\thttp://lwn.net/Articles/253651/\n\nThis patch was developed as a part of the -rt kernel development and\nmeant to provide better latencies when read-side critical sections of\nRCU don\u0027t disable preemption.  As a consequence of keeping track of RCU\nreaders, the readers have a slight overhead (optimizations in the paper).\nThis implementation co-exists with the \"classic\" RCU implementations\nand can be switched to at compiler.\n\nAlso includes RCU tracing summarized in debugfs.\n\n[ akpm@linux-foundation.org: build fixes on non-preempt architectures ]\n\nSigned-off-by: Gautham R Shenoy \u003cego@in.ibm.com\u003e\nSigned-off-by: Dipankar Sarma \u003cdipankar@in.ibm.com\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@us.ibm.com\u003e\nReviewed-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "01c1c660f4b8086cad7a62345fd04290f3d82c8f",
      "tree": "bd09ab1fc3f9e267b1ea78f1a41b121175e1585a",
      "parents": [
        "c2d727aa2ff17a1c8e5ed1e5e231bb8579b27e82"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Fri Jan 25 21:08:24 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:24 2008 +0100"
      },
      "message": "Preempt-RCU: reorganize RCU code into rcuclassic.c and rcupdate.c\n\nThis patch re-organizes the RCU code to enable multiple implementations\nof RCU. Users of RCU continues to include rcupdate.h and the\nRCU interfaces remain the same. This is in preparation for\nsubsequently merging the preemptible RCU implementation.\n\nSigned-off-by: Gautham R Shenoy \u003cego@in.ibm.com\u003e\nSigned-off-by: Dipankar Sarma \u003cdipankar@in.ibm.com\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nReviewed-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    }
  ]
}
