)]}'
{
  "log": [
    {
      "commit": "cf6ace16a3cd8b728fb0afa68368fd40bbeae19f",
      "tree": "489c64380668e8c5a29d3f36f37554e4b081a647",
      "parents": [
        "acc11eab70591744369722280c9ce162a6193494",
        "d1e9ae47a0285d3f1699e8219ce50f656243b93f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jul 20 15:56:25 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jul 20 15:56:25 2011 -0700"
      },
      "message": "Merge branch \u0027core-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027core-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  signal: align __lock_task_sighand() irq disabling and RCU\n  softirq,rcu: Inform RCU of irq_exit() activity\n  sched: Add irq_{enter,exit}() to scheduler_ipi()\n  rcu: protect __rcu_read_unlock() against scheduler-using irq handlers\n  rcu: Streamline code produced by __rcu_read_unlock()\n  rcu: Fix RCU_BOOST race handling current-\u003ercu_read_unlock_special\n  rcu: decrease rcu_report_exp_rnp coupling with scheduler\n"
    },
    {
      "commit": "d1e9ae47a0285d3f1699e8219ce50f656243b93f",
      "tree": "2f5a68b5ba1677bcd49ee759f09ffc5ccccb1455",
      "parents": [
        "e6625fa48e6580a74b7e700efd7e6463e282810b",
        "a841796f11c90d53dbac773be56b04fbee8af272"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jul 20 20:59:26 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jul 20 20:59:26 2011 +0200"
      },
      "message": "Merge branch \u0027rcu/urgent\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-2.6-rcu into core/urgent\n"
    },
    {
      "commit": "a841796f11c90d53dbac773be56b04fbee8af272",
      "tree": "9401a53faddecc7c1644565d0e22630028f82bca",
      "parents": [
        "ec433f0c51527426989ea8a38a856d810d739414"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paul.mckenney@linaro.org",
        "time": "Tue Jul 19 03:25:36 2011 -0700"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Wed Jul 20 11:04:54 2011 -0700"
      },
      "message": "signal: align __lock_task_sighand() irq disabling and RCU\n\nThe __lock_task_sighand() function calls rcu_read_lock() with interrupts\nand preemption enabled, but later calls rcu_read_unlock() with interrupts\ndisabled.  It is therefore possible that this RCU read-side critical\nsection will be preempted and later RCU priority boosted, which means that\nrcu_read_unlock() will call rt_mutex_unlock() in order to deboost itself, but\nwith interrupts disabled. This results in lockdep splats, so this commit\nnests the RCU read-side critical section within the interrupt-disabled\nregion of code.  This prevents the RCU read-side critical section from\nbeing preempted, and thus prevents the attempt to deboost with interrupts\ndisabled.\n\nIt is quite possible that a better long-term fix is to make rt_mutex_unlock()\ndisable irqs when acquiring the rt_mutex structure\u0027s -\u003ewait_lock.\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": "ec433f0c51527426989ea8a38a856d810d739414",
      "tree": "001550d7b18b3f2b5326da3f9dfd893e31c8dc1c",
      "parents": [
        "c5d753a55ac92e09816d410cd17093813f1a904b"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue Jul 19 15:32:00 2011 -0700"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Wed Jul 20 10:50:12 2011 -0700"
      },
      "message": "softirq,rcu: Inform RCU of irq_exit() activity\n\nThe rcu_read_unlock_special() function relies on in_irq() to exclude\nscheduler activity from interrupt level.  This fails because exit_irq()\ncan invoke the scheduler after clearing the preempt_count() bits that\nin_irq() uses to determine that it is at interrupt level.  This situation\ncan result in failures as follows:\n\n $task\t\t\tIRQ\t\tSoftIRQ\n\n rcu_read_lock()\n\n /* do stuff */\n\n \u003cpreempt\u003e |\u003d UNLOCK_BLOCKED\n\n rcu_read_unlock()\n   --t-\u003ercu_read_lock_nesting\n\n\t\t\tirq_enter();\n\t\t\t/* do stuff, don\u0027t use RCU */\n\t\t\tirq_exit();\n\t\t\t  sub_preempt_count(IRQ_EXIT_OFFSET);\n\t\t\t  invoke_softirq()\n\n\t\t\t\t\tttwu();\n\t\t\t\t\t  spin_lock_irq(\u0026pi-\u003elock)\n\t\t\t\t\t  rcu_read_lock();\n\t\t\t\t\t  /* do stuff */\n\t\t\t\t\t  rcu_read_unlock();\n\t\t\t\t\t    rcu_read_unlock_special()\n\t\t\t\t\t      rcu_report_exp_rnp()\n\t\t\t\t\t        ttwu()\n\t\t\t\t\t          spin_lock_irq(\u0026pi-\u003elock) /* deadlock */\n\n   rcu_read_unlock_special(t);\n\nEd can simply trigger this \u0027easy\u0027 because invoke_softirq() immediately\ndoes a ttwu() of ksoftirqd/# instead of doing the in-place softirq stuff\nfirst, but even without that the above happens.\n\nCure this by also excluding softirqs from the\nrcu_read_unlock_special() handler and ensuring the force_irqthreads\nksoftirqd/# wakeup is done from full softirq context.\n\n[ Alternatively, delaying the -\u003ercu_read_lock_nesting decrement\n  until after the special handling would make the thing more robust\n  in the face of interrupts as well.  And there is a separate patch\n  for that. ]\n\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nReported-and-tested-by: Ed Tomlinson \u003cedt@aei.ca\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "c5d753a55ac92e09816d410cd17093813f1a904b",
      "tree": "162c63edcc463e18d50fb5b5be479785f02222c4",
      "parents": [
        "10f39bb1b2c1923ca73e70cb13aeee0e9b822d8f"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue Jul 19 15:07:25 2011 -0700"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Wed Jul 20 10:50:11 2011 -0700"
      },
      "message": "sched: Add irq_{enter,exit}() to scheduler_ipi()\n\nEnsure scheduler_ipi() calls irq_{enter,exit} when it does some actual\nwork. Traditionally we never did any actual work from the resched IPI\nand all magic happened in the return from interrupt path.\n\nNow that we do do some work, we need to ensure irq_{enter,exit} are\ncalled so that we don\u0027t confuse things.\n\nThis affects things like timekeeping, NO_HZ and RCU, basically\neverything with a hook in irq_enter/exit.\n\nExplicit examples of things going wrong are:\n\n  sched_clock_cpu() -- has a callback when leaving NO_HZ state to take\n                    a new reading from GTOD and TSC. Without this\n                    callback, time is stuck in the past.\n\n  RCU -- needs in_irq() to work in order to avoid some nasty deadlocks\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "10f39bb1b2c1923ca73e70cb13aeee0e9b822d8f",
      "tree": "2e8349c57b1f0563a27be49410f413b643ded1a9",
      "parents": [
        "be0e1e21ef707be4d16ea6a96ac9997463e4b8d2"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paul.mckenney@linaro.org",
        "time": "Sun Jul 17 21:14:35 2011 -0700"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Wed Jul 20 10:50:11 2011 -0700"
      },
      "message": "rcu: protect __rcu_read_unlock() against scheduler-using irq handlers\n\nThe addition of RCU read-side critical sections within runqueue and\npriority-inheritance lock critical sections introduced some deadlock\ncycles, for example, involving interrupts from __rcu_read_unlock()\nwhere the interrupt handlers call wake_up().  This situation can cause\nthe instance of __rcu_read_unlock() invoked from interrupt to do some\nof the processing that would otherwise have been carried out by the\ntask-level instance of __rcu_read_unlock().  When the interrupt-level\ninstance of __rcu_read_unlock() is called with a scheduler lock held\nfrom interrupt-entry/exit situations where in_irq() returns false,\ndeadlock can result.\n\nThis commit resolves these deadlocks by using negative values of\nthe per-task -\u003ercu_read_lock_nesting counter to indicate that an\ninstance of __rcu_read_unlock() is in flight, which in turn prevents\ninstances from interrupt handlers from doing any special processing.\nThis patch is inspired by Steven Rostedt\u0027s earlier patch that similarly\nmade __rcu_read_unlock() guard against interrupt-mediated recursion\n(see https://lkml.org/lkml/2011/7/15/326), but this commit refines\nSteven\u0027s approach to avoid the need for preemption disabling on the\n__rcu_read_unlock() fastpath and to also avoid the need for manipulating\na separate per-CPU variable.\n\nThis patch avoids need for preempt_disable() by instead using negative\nvalues of the per-task -\u003ercu_read_lock_nesting counter.  Note that nested\nrcu_read_lock()/rcu_read_unlock() pairs are still permitted, but they will\nnever see -\u003ercu_read_lock_nesting go to zero, and will therefore never\ninvoke rcu_read_unlock_special(), thus preventing them from seeing the\nRCU_READ_UNLOCK_BLOCKED bit should it be set in -\u003ercu_read_unlock_special.\nThis patch also adds a check for -\u003ercu_read_unlock_special being negative\nin rcu_check_callbacks(), thus preventing the RCU_READ_UNLOCK_NEED_QS\nbit from being set should a scheduling-clock interrupt occur while\n__rcu_read_unlock() is exiting from an outermost RCU read-side critical\nsection.\n\nOf course, __rcu_read_unlock() can be preempted during the time that\n-\u003ercu_read_lock_nesting is negative.  This could result in the setting\nof the RCU_READ_UNLOCK_BLOCKED bit after __rcu_read_unlock() checks it,\nand would also result it this task being queued on the corresponding\nrcu_node structure\u0027s blkd_tasks list.  Therefore, some later RCU read-side\ncritical section would enter rcu_read_unlock_special() to clean up --\nwhich could result in deadlock if that critical section happened to be in\nthe scheduler where the runqueue or priority-inheritance locks were held.\n\nThis situation is dealt with by making rcu_preempt_note_context_switch()\ncheck for negative -\u003ercu_read_lock_nesting, thus refraining from\nqueuing the task (and from setting RCU_READ_UNLOCK_BLOCKED) if we are\nalready exiting from the outermost RCU read-side critical section (in\nother words, we really are no longer actually in that RCU read-side\ncritical section).  In addition, rcu_preempt_note_context_switch()\ninvokes rcu_read_unlock_special() to carry out the cleanup in this case,\nwhich clears out the -\u003ercu_read_unlock_special bits and dequeues the task\n(if necessary), in turn avoiding needless delay of the current RCU grace\nperiod and needless RCU priority boosting.\n\nIt is still illegal to call rcu_read_unlock() while holding a scheduler\nlock if the prior RCU read-side critical section has ever had either\npreemption or irqs enabled.  However, the common use case is legal,\nnamely where then entire RCU read-side critical section executes with\nirqs disabled, for example, when the scheduler lock is held across the\nentire lifetime of the RCU read-side critical section.\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": "d110235d2c331c4f79e0879f51104be79e17a469",
      "tree": "d56bb05a1274f9e7c6a20467d2d04713c185e7ce",
      "parents": [
        "e3589f6c81e4764d32a25d2a2a0afe54fa344f5c"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Wed Jul 20 18:42:57 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jul 20 18:54:33 2011 +0200"
      },
      "message": "sched: Avoid creating superfluous NUMA domains on non-NUMA systems\n\nWhen creating sched_domains, stop when we\u0027ve covered the entire\ntarget span instead of continuing to create domains, only to\nlater find they\u0027re redundant and throw them away again.\n\nThis avoids single node systems from touching funny NUMA\nsched_domain creation code and reduces the risks of the new\nSD_OVERLAP code.\n\nRequested-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Anton Blanchard \u003canton@samba.org\u003e\nCc: mahesh@linux.vnet.ibm.com\nCc: benh@kernel.crashing.org\nCc: linuxppc-dev@lists.ozlabs.org\nLink: http://lkml.kernel.org/r/1311180177.29152.57.camel@twins\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "e3589f6c81e4764d32a25d2a2a0afe54fa344f5c",
      "tree": "414bf6bdbad3f04f629fa2a72254ea85acf723f4",
      "parents": [
        "9c3f75cbd144014bea6af866a154cc2e73ab2287"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Jul 15 10:35:52 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jul 20 18:32:41 2011 +0200"
      },
      "message": "sched: Allow for overlapping sched_domain spans\n\nAllow for sched_domain spans that overlap by giving such domains their\nown sched_group list instead of sharing the sched_groups amongst\neach-other.\n\nThis is needed for machines with more than 16 nodes, because\nsched_domain_node_span() will generate a node mask from the\n16 nearest nodes without regard if these masks have any overlap.\n\nCurrently sched_domains have a sched_group that maps to their child\nsched_domain span, and since there is no overlap we share the\nsched_group between the sched_domains of the various CPUs. If however\nthere is overlap, we would need to link the sched_group list in\ndifferent ways for each cpu, and hence sharing isn\u0027t possible.\n\nIn order to solve this, allocate private sched_groups for each CPU\u0027s\nsched_domain but have the sched_groups share a sched_group_power\nstructure such that we can uniquely track the power.\n\nReported-and-tested-by: Anton Blanchard \u003canton@samba.org\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nLink: http://lkml.kernel.org/n/tip-08bxqw9wis3qti9u5inifh3y@git.kernel.org\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "9c3f75cbd144014bea6af866a154cc2e73ab2287",
      "tree": "2a565f7ff0820269973415c5605e313cfff903b4",
      "parents": [
        "e6625fa48e6580a74b7e700efd7e6463e282810b"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Thu Jul 14 13:00:06 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jul 20 18:32:40 2011 +0200"
      },
      "message": "sched: Break out cpu_power from the sched_group structure\n\nIn order to prepare for non-unique sched_groups per domain, we need to\ncarry the cpu_power elsewhere, so put a level of indirection in.\n\nReported-and-tested-by: Anton Blanchard \u003canton@samba.org\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nLink: http://lkml.kernel.org/n/tip-qkho2byuhe4482fuknss40ad@git.kernel.org\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "be0e1e21ef707be4d16ea6a96ac9997463e4b8d2",
      "tree": "fe53c0731f5c3a6e56e2358eee9b8f17c3af83f4",
      "parents": [
        "7765be2fec0f476fcd61812d5f9406b04c765020"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Sat May 21 05:57:18 2011 -0700"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Tue Jul 19 21:38:53 2011 -0700"
      },
      "message": "rcu: Streamline code produced by __rcu_read_unlock()\n\nGiven some common flag combinations, particularly -Os, gcc will inline\nrcu_read_unlock_special() despite its being in an unlikely() clause.\nUse noinline to prohibit this misoptimization.\n\nIn addition, move the second barrier() in __rcu_read_unlock() so that\nit is not on the common-case code path.  This will allow the compiler to\ngenerate better code for the common-case path through __rcu_read_unlock().\n\nSuggested-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nAcked-by: Mathieu Desnoyers \u003cmathieu.desnoyers@efficios.com\u003e\n"
    },
    {
      "commit": "7765be2fec0f476fcd61812d5f9406b04c765020",
      "tree": "e89ccb3fbd5655090b05f608f8e1d39924f23a9a",
      "parents": [
        "131906b0062ddde7f85bbe67754983c754648bd8"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paul.mckenney@linaro.org",
        "time": "Thu Jul 14 12:24:11 2011 -0700"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Tue Jul 19 21:38:52 2011 -0700"
      },
      "message": "rcu: Fix RCU_BOOST race handling current-\u003ercu_read_unlock_special\n\nThe RCU_BOOST commits for TREE_PREEMPT_RCU introduced an other-task\nwrite to a new RCU_READ_UNLOCK_BOOSTED bit in the task_struct structure\u0027s\n-\u003ercu_read_unlock_special field, but, as noted by Steven Rostedt, without\ncorrectly synchronizing all accesses to -\u003ercu_read_unlock_special.\nThis could result in bits in -\u003ercu_read_unlock_special being spuriously\nset and cleared due to conflicting accesses, which in turn could result\nin deadlocks between the rcu_node structure\u0027s -\u003elock and the scheduler\u0027s\nrq and pi locks.  These deadlocks would result from RCU incorrectly\nbelieving that the just-ended RCU read-side critical section had been\npreempted and/or boosted.  If that RCU read-side critical section was\nexecuted with either rq or pi locks held, RCU\u0027s ensuing (incorrect)\ncalls to the scheduler would cause the scheduler to attempt to once\nagain acquire the rq and pi locks, resulting in deadlock.  More complex\ndeadlock cycles are also possible, involving multiple rq and pi locks\nas well as locks from multiple rcu_node structures.\n\nThis commit fixes synchronization by creating -\u003ercu_boosted field in\ntask_struct that is accessed and modified only when holding the -\u003elock\nin the rcu_node structure on which the task is queued (on that rcu_node\nstructure\u0027s -\u003eblkd_tasks list).  This results in tasks accessing only\ntheir own current-\u003ercu_read_unlock_special fields, making unsynchronized\naccess once again legal, and keeping the rcu_read_unlock() fastpath free\nof atomic instructions and memory barriers.\n\nThe reason that the rcu_read_unlock() fastpath does not need to access\nthe new current-\u003ercu_boosted field is that this new field cannot\nbe non-zero unless the RCU_READ_UNLOCK_BLOCKED bit is set in the\ncurrent-\u003ercu_read_unlock_special field.  Therefore, rcu_read_unlock()\nneed only test current-\u003ercu_read_unlock_special: if that is zero, then\ncurrent-\u003ercu_boosted must also be zero.\n\nThis bug does not affect TINY_PREEMPT_RCU because this implementation\nof RCU accesses current-\u003ercu_read_unlock_special with irqs disabled,\nthus preventing races on the !SMP systems that TINY_PREEMPT_RCU runs on.\n\nMaybe-reported-by: Dave Jones \u003cdavej@redhat.com\u003e\nMaybe-reported-by: Sergey Senozhatsky \u003csergey.senozhatsky@gmail.com\u003e\nReported-by: Steven Rostedt \u003crostedt@goodmis.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\nReviewed-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "131906b0062ddde7f85bbe67754983c754648bd8",
      "tree": "1b92eacb707befb294b4d9985f10aa44715cba16",
      "parents": [
        "b0d304172f49061b4ff78f9e2b02719ac69c8a7e"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Sun Jul 17 02:05:49 2011 -0700"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Tue Jul 19 21:38:51 2011 -0700"
      },
      "message": "rcu: decrease rcu_report_exp_rnp coupling with scheduler\n\nPREEMPT_RCU read-side critical sections blocking an expedited grace\nperiod invoke rcu_report_exp_rnp().  When the last such critical section\nhas completed, rcu_report_exp_rnp() invokes the scheduler to wake up the\ntask that invoked synchronize_rcu_expedited() -- needlessly holding the\nroot rcu_node structure\u0027s lock while doing so, thus needlessly providing\na way for RCU and the scheduler to deadlock.\n\nThis commit therefore releases the root rcu_node structure\u0027s lock before\ncalling wake_up().\n\nReported-by: Ed Tomlinson \u003cedt@aei.ca\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "df8d6fe9efba4ea4b46a5bdc229031c5bb880575",
      "tree": "d5fb84d4bec0dc62b1ec1a19a01718620caa9918",
      "parents": [
        "c64be78ffb415278d7d32d6f55de95c73dcc19a4",
        "b0d304172f49061b4ff78f9e2b02719ac69c8a7e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 15 09:54:34 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 15 09:54:34 2011 -0700"
      },
      "message": "Merge branch \u0027rcu/urgent\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-2.6-rcu\n\n* \u0027rcu/urgent\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-2.6-rcu:\n  rcu: Prevent RCU callbacks from executing before scheduler initialized\n"
    },
    {
      "commit": "c64be78ffb415278d7d32d6f55de95c73dcc19a4",
      "tree": "0777bdbb0424a6ce948c817247757a4ba3b01a32",
      "parents": [
        "5dcd07b9f39ca3e9be5bcc387d193fc0674e1c81"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Mon Jul 11 16:28:50 2011 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 15 09:54:02 2011 -0700"
      },
      "message": "sched: Fix 32bit race\n\nCommit 3fe1698b7fe0 (\"sched: Deal with non-atomic min_vruntime reads\non 32bit\") forgot to initialize min_vruntime_copy which could lead to\nan infinite while loop in task_waking_fair() under some circumstances\n(early boot, lucky timing).\n\n[ This bug was also reported by others that blamed it on the RCU\n  initialization problems ]\n\nReported-and-tested-by: Bruno Wolff III \u003cbruno@wolff.to\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nReviewed-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b0d304172f49061b4ff78f9e2b02719ac69c8a7e",
      "tree": "882123e565ced895910490514f6e676c708b5001",
      "parents": [
        "620917de59eeb934b9f8cf35cc2d95c1ac8ed0fc"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paul.mckenney@linaro.org",
        "time": "Sun Jul 10 15:57:35 2011 -0700"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Wed Jul 13 08:17:56 2011 -0700"
      },
      "message": "rcu: Prevent RCU callbacks from executing before scheduler initialized\n\nUnder some rare but real combinations of configuration parameters, RCU\ncallbacks are posted during early boot that use kernel facilities that\nare not yet initialized.  Therefore, when these callbacks are invoked,\nhard hangs and crashes ensue.  This commit therefore prevents RCU\ncallbacks from being invoked until after the scheduler is fully up and\nrunning, as 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\nReported-by: julie Sullivan \u003ckernelmail.jms@gmail.com\u003e\nReported-by: RKK \u003ckulkarni.ravi4@gmail.com\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nTested-by: Konrad Rzeszutek Wilk \u003ckonrad.wilk@oracle.com\u003e\nTested-by: julie Sullivan \u003ckernelmail.jms@gmail.com\u003e\nTested-by: RKK \u003ckulkarni.ravi4@gmail.com\u003e\n"
    },
    {
      "commit": "d93a881dd7d71ad0e6504af232be2795044ab686",
      "tree": "71fc6918e676a0cf53d585f5a253646a49b60c83",
      "parents": [
        "d1ca1a004822983e2fc702d5382b4b9a5527cfbe",
        "24109afd17426e1a2b72141e4a2b730057e1a0ea"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 12 14:19:51 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 12 14:19:51 2011 -0700"
      },
      "message": "Merge branch \u0027fixes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arm/linux-arm-soc\n\n* \u0027fixes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arm/linux-arm-soc:\n  pcmcia: pxa2xx/vpac270: free gpios on exist rather than requesting\n  ARM: pxa/raumfeld: fix device name for codec ak4104\n  ARM: pxa/raumfeld: display initialisation fixes\n  ARM: pxa/raumfeld: adapt to upcoming hardware change\n  ARM: pxa: fix gpio_to_chip() clash with gpiolib namespace\n  genirq: replace irq_gc_ack() with {set,clr}_bit variants (fwd)\n  arm: mach-vt8500: add forgotten irq_data conversion\n  ARM: pxa168: correct nand pmu setting\n  ARM: pxa910: correct nand pmu setting\n  ARM: pxa: fix PGSR register address calculation\n"
    },
    {
      "commit": "31cb852809c86541c817538c98003678546dfa58",
      "tree": "324808c5a9def43a7f15c0fda97f58ee01f03c42",
      "parents": [
        "2a9d6df425d7b46b23cbc8673b2dfefa4678abdb",
        "4d4cf23cdde2f8f9324f5684a7f349e182039529"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 07 13:22:41 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 07 13:22:41 2011 -0700"
      },
      "message": "Merge branch \u0027pm-fixes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/suspend-2.6\n\n* \u0027pm-fixes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/suspend-2.6:\n  PM / Hibernate: Fix free_unnecessary_pages()\n"
    },
    {
      "commit": "27a3b735b70651f28db03e5f92775a40661ba7a6",
      "tree": "9f300b93aa34381aa1d3121e9d53e8c8e1623a24",
      "parents": [
        "85746e429f8e5dc8c5c0beadc0f099cb1feab93e",
        "161b6ae0e067e421b20bb35caf66bdb405c929ac",
        "140fe3b1ab9c082182ef13359fab4ddba95c24c3",
        "e4c2fb0d5776b58049d2556b456144a4db3fe5a9"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 07 13:17:45 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 07 13:17:45 2011 -0700"
      },
      "message": "Merge branches \u0027core-urgent-for-linus\u0027, \u0027perf-urgent-for-linus\u0027 and \u0027sched-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027core-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  debugobjects: Fix boot crash when kmemleak and debugobjects enabled\n\n* \u0027perf-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  jump_label: Fix jump_label update for modules\n  oprofile, x86: Fix race in nmi handler while starting counters\n\n* \u0027sched-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  sched: Disable (revert) SCHED_LOAD_SCALE increase\n  sched, cgroups: Fix MIN_SHARES on 64-bit boxen\n"
    },
    {
      "commit": "659fb32d1b67476f4ade25e9ea0e2642a5b9c4b5",
      "tree": "a875904f1c457f321563060491956266a57c6514",
      "parents": [
        "d30e1521b2afb5e6f21ca8bc1a4b6ec2afc93597"
      ],
      "author": {
        "name": "Simon Guinot",
        "email": "sguinot@lacie.com",
        "time": "Wed Jul 06 12:41:31 2011 -0400"
      },
      "committer": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Thu Jul 07 16:02:26 2011 +0000"
      },
      "message": "genirq: replace irq_gc_ack() with {set,clr}_bit variants (fwd)\n\nThis fixes a regression introduced by e59347a \"arm: orion:\nUse generic irq chip\".\n\nDepending on the device, interrupts acknowledgement is done by setting\nor by clearing a dedicated register. Replace irq_gc_ack() with some\n{set,clr}_bit variants allows to handle both cases.\n\nNote that this patch affects the following SoCs: Davinci, Samsung and\nOrion. Except for this last, the change is minor: irq_gc_ack() is just\nrenamed into irq_gc_ack_set_bit().\n\nFor the Orion SoCs, the edge GPIO interrupts support is currently\nbroken. irq_gc_ack() try to acknowledge a such interrupt by setting\nthe corresponding cause register bit. The Orion GPIO device expect the\nopposite. To fix this issue, the irq_gc_ack_clr_bit() variant is used.\n\nTested on Network Space v2.\n\nReported-by: Joey Oravec \u003cjoravec@drewtech.com\u003e\nSigned-off-by: Simon Guinot \u003csguinot@lacie.com\u003e\nSigned-off-by: Arnd Bergmann \u003carnd@arndb.de\u003e\n"
    },
    {
      "commit": "4d4cf23cdde2f8f9324f5684a7f349e182039529",
      "tree": "f84a26d15f1112cc7c452d1fdac3bd70857774e0",
      "parents": [
        "a2fa83faf47b514ab947cea916d3691b66525073"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Wed Jul 06 20:15:23 2011 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Wed Jul 06 20:15:23 2011 +0200"
      },
      "message": "PM / Hibernate: Fix free_unnecessary_pages()\n\nThere is a bug in free_unnecessary_pages() that causes it to\nattempt to free too many pages in some cases, which triggers the\nBUG_ON() in memory_bm_clear_bit() for copy_bm.  Namely, if\ncount_data_pages() is initially greater than alloc_normal, we get\nto_free_normal equal to 0 and \"save\" greater from 0.  In that case,\nif the sum of \"save\" and count_highmem_pages() is greater than\nalloc_highmem, we subtract a positive number from to_free_normal.\nHence, since to_free_normal was 0 before the subtraction and is\nan unsigned int, the result is converted to a huge positive number\nthat is used as the number of pages to free.\n\nFix this bug by checking if to_free_normal is actually greater\nthan or equal to the number we\u0027re going to subtract from it.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nReported-and-tested-by: Matthew Garrett \u003cmjg@redhat.com\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "23c570a67448e803408191f529ed9a83fd34a25a",
      "tree": "8705e1ad863d745c42d8eb95a8c3f53f26fd0e38",
      "parents": [
        "a51cb91d81f8e6fc4e5e08b772cc3ceb13ac9d37"
      ],
      "author": {
        "name": "Ram Pai",
        "email": "linuxram@us.ibm.com",
        "time": "Tue Jul 05 23:44:30 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jul 06 10:54:08 2011 -0700"
      },
      "message": "resource: ability to resize an allocated resource\n\nProvides the ability to resize a resource that is already allocated.\nThis functionality is put in place to support reallocation needs of\npci resources.\n\nSigned-off-by: Ram Pai \u003clinuxram@us.ibm.com\u003e\nAcked-by: Jesse Barnes \u003cjbarnes@virtuousgeek.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "cd62287e364c0d15d517c6ced4e4808b54711475",
      "tree": "12544d4a0b84f378691be2a1d3d48a46f42595fc",
      "parents": [
        "daf54f1f363a61c618662ef66d4bf09d2b090941"
      ],
      "author": {
        "name": "Mike Galbraith",
        "email": "mgalbraith@suse.de",
        "time": "Sat Jun 04 15:03:20 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jul 01 10:25:03 2011 +0200"
      },
      "message": "sched, cgroups: Fix MIN_SHARES on 64-bit boxen\n\nCommit c8b28116 (\"sched: Increase SCHED_LOAD_SCALE resolution\")\nintended to have no user-visible effect, but allows setting\ncpu.shares to \u003c MIN_SHARES, which the user then sees.\n\nSigned-off-by: Mike Galbraith \u003cefault@gmx.de\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Nikhil Rao \u003cncrao@google.com\u003e\nLink: http://lkml.kernel.org/r/1307192600.8618.3.camel@marge.simson.net\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "140fe3b1ab9c082182ef13359fab4ddba95c24c3",
      "tree": "e59debeb1aea1650fd490b0264f66b4f70a26aca",
      "parents": [
        "debf1d4948bccf58fa172acb1a7306792d77705d"
      ],
      "author": {
        "name": "Xiao Guangrong",
        "email": "xiaoguangrong@cn.fujitsu.com",
        "time": "Tue Jun 21 10:35:55 2011 +0800"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Jun 29 09:59:17 2011 -0400"
      },
      "message": "jump_label: Fix jump_label update for modules\n\nThe jump labels entries for modules do not stop at __stop__jump_table,\nbut after mod-\u003ejump_entries + mod_num_jump_entries.\n\nBy checking the wrong end point, module trace events never get enabled.\n\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nAcked-by: Jason Baron \u003cjbaron@redhat.com\u003e\nTested-by: Avi Kivity \u003cavi@redhat.com\u003e\nTested-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: Xiao Guangrong \u003cxiaoguangrong@cn.fujitsu.com\u003e\nLink: http://lkml.kernel.org/r/4E00038B.2060404@cn.fujitsu.com\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "26c4caea9d697043cc5a458b96411b86d7f6babd",
      "tree": "cf4de2553fbfcafc41eb4f84bc9ee1eb69adf725",
      "parents": [
        "08142579b6ca35883c1ed066a2681de6f6917062"
      ],
      "author": {
        "name": "Vasiliy Kulikov",
        "email": "segoon@openwall.com",
        "time": "Mon Jun 27 16:18:11 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jun 27 18:00:13 2011 -0700"
      },
      "message": "taskstats: don\u0027t allow duplicate entries in listener mode\n\nCurrently a single process may register exit handlers unlimited times.\nIt may lead to a bloated listeners chain and very slow process\nterminations.\n\nEg after 10KK sent TASKSTATS_CMD_ATTR_REGISTER_CPUMASKs ~300 Mb of\nkernel memory is stolen for the handlers chain and \"time id\" shows 2-7\nseconds instead of normal 0.003.  It makes it possible to exhaust all\nkernel memory and to eat much of CPU time by triggerring numerous exits\non a single CPU.\n\nThe patch limits the number of times a single process may register\nitself on a single CPU to one.\n\nOne little issue is kept unfixed - as taskstats_exit() is called before\nexit_files() in do_exit(), the orphaned listener entry (if it was not\nexplicitly deregistered) is kept until the next someone\u0027s exit() and\nimplicit deregistration in send_cpu_listeners().  So, if a process\nregistered itself as a listener exits and the next spawned process gets\nthe same pid, it would inherit taskstats attributes.\n\nSigned-off-by: Vasiliy Kulikov \u003csegooon@gmail.com\u003e\nCc: Balbir Singh \u003cbsingharora@gmail.com\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8abf55883431a91d4877933240c8419b7fc17274",
      "tree": "c7de035cf068f3edf5053a30d912c2024bac88d8",
      "parents": [
        "4d362ad280fca0f2e098de607534f72f2c243e12",
        "b1eb085c064d0843826d7402db7fc5f3032e01fc"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jun 25 07:23:59 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jun 25 07:23:59 2011 -0700"
      },
      "message": "Merge branch \u0027timer-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027timer-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  rtc: vt8500: Fix build error \u0026 cleanup rtc_class_ops-\u003eupdate_irq_enable()\n  alarmtimers: Return -ENOTSUPP if no RTC device is present\n  alarmtimers: Handle late rtc module loading\n"
    },
    {
      "commit": "1c6b39ad3f01514fd8dd84b5b412bafb75c19388",
      "tree": "bd31cf5d3e67acc9ef23c97ddd92c961b73f40c7",
      "parents": [
        "c008ba58af24dc5d0d8e9fe6e59d876910254761"
      ],
      "author": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Thu Jun 16 18:47:37 2011 -0700"
      },
      "committer": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Tue Jun 21 16:32:28 2011 -0700"
      },
      "message": "alarmtimers: Return -ENOTSUPP if no RTC device is present\n\nToralf Förster and Richard Weinberger noted that if there is\nno RTC device, the alarm timers core prints out an annoying\n\"ALARM timers will not wake from suspend\" message.\n\nThis warning has been removed in a previous patch, however\nthe issue still remains:  The original idea was to support\nalarm timers even if there was no rtc device, as long as the\nsystem didn\u0027t go into suspend.\n\nHowever, after further consideration, communicating to the application\nthat alarmtimers are not fully functional seems like the better\nsolution.\n\nSo this patch makes it so we return -ENOTSUPP to any posix _ALARM\nclockid calls if there is no backing RTC device on the system.\n\nFurther this changes the behavior where when there is no rtc device\nwe will check for one on clock_getres, clock_gettime, timer_create,\nand timer_nsleep instead of on suspend.\n\nCC: Toralf Förster \u003ctoralf.foerster@gmx.de\u003e\nCC: Richard Weinberger \u003crichard@nod.at\nCC: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCC: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nReported-by: Toralf Förster \u003ctoralf.foerster@gmx.de\u003e\nReported by: Richard Weinberger \u003crichard@nod.at\u003e\nSigned-off-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\n"
    },
    {
      "commit": "c008ba58af24dc5d0d8e9fe6e59d876910254761",
      "tree": "0e718ce49992b6a7dfde619cd6ebf05afe06ae12",
      "parents": [
        "e08f6d4131ab964420f0bcabecc68d75fb49df79"
      ],
      "author": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Thu Jun 16 18:27:09 2011 -0700"
      },
      "committer": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Tue Jun 21 15:38:33 2011 -0700"
      },
      "message": "alarmtimers: Handle late rtc module loading\n\nThe alarmtimers code currently picks a rtc device to use at\nlate init time. However, if your rtc driver is loaded as a module,\nit may be registered after the alarmtimers late init code, leaving\nthe alarmtimers nonfunctional.\n\nThis patch moves the the rtcdevice selection to when we actually try\nto use it, allowing us to make use of rtc modules that may have been\nloaded at any point since bootup.\n\nCC: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCC: Meelis Roos \u003cmroos@ut.ee\u003e\nReported-by: Meelis Roos \u003cmroos@ut.ee\u003e\nSigned-off-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\n"
    },
    {
      "commit": "8440f4b19494467883f8541b7aa28c7bbf6ac92b",
      "tree": "3682e034553d8b9ac676e17b144fe5b15cbb0174",
      "parents": [
        "f76b168b6f117a49d36307053e1acbe30580ea5b"
      ],
      "author": {
        "name": "Michal Kubecek",
        "email": "mkubecek@suse.cz",
        "time": "Sat Jun 18 20:34:01 2011 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue Jun 21 23:20:06 2011 +0200"
      },
      "message": "PM: Free memory bitmaps if opening /dev/snapshot fails\n\nWhen opening /dev/snapshot device, snapshot_open() creates memory\nbitmaps which are freed in snapshot_release(). But if any of the\ncallbacks called by pm_notifier_call_chain() returns NOTIFY_BAD, open()\nfails, snapshot_release() is never called and bitmaps are not freed.\nNext attempt to open /dev/snapshot then triggers BUG_ON() check in\ncreate_basic_memory_bitmaps(). This happens e.g. when vmwatchdog module\nis active on s390x.\n\nSigned-off-by: Michal Kubecek \u003cmkubecek@suse.cz\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "8816ead9d8e7c2745788e0684797e1912b504f33",
      "tree": "2a619a821024d31be2ce6ff422f287792379fe5b",
      "parents": [
        "357ed6b1a110048ff8106f99092d6c4a7aadb45a",
        "203db2952bc87f5d610c9ad53a7d02b85897721f",
        "d8ad7d1123a960cc9f276bd499f9325c6f5e1bd1",
        "b5199515c25cca622495eb9c6a8a1d275e775088",
        "c1f5c54b57341e872a9d375dccef7257f86033ef"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jun 19 09:00:18 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jun 19 09:00:18 2011 -0700"
      },
      "message": "Merge branches \u0027perf-urgent-for-linus\u0027, \u0027sched-urgent-for-linus\u0027, \u0027timers-urgent-for-linus\u0027 and \u0027x86-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027perf-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  tools/perf: Fix static build of perf tool\n  tracing: Fix regression in printk_formats file\n\n* \u0027sched-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  generic-ipi: Fix kexec boot crash by initializing call_single_queue before enabling interrupts\n\n* \u0027timers-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  clocksource: Make watchdog robust vs. interruption\n  timerfd: Fix wakeup of processes when timer is cancelled on clock change\n\n* \u0027x86-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  x86, MAINTAINERS: Add x86 MCE people\n  x86, efi: Do not reserve boot services regions within reserved areas\n"
    },
    {
      "commit": "357ed6b1a110048ff8106f99092d6c4a7aadb45a",
      "tree": "ff4eb7e809e547bc3c0680dfd51793a8f57b2063",
      "parents": [
        "de505e709ffb09a7382ca8e0d8c7dbb171ba5830",
        "f8b7fc6b514f34a51875dd48dff70d4d17a54f38"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jun 19 08:56:56 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jun 19 08:56:56 2011 -0700"
      },
      "message": "Merge branch \u0027core-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027core-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  rcu: Move RCU_BOOST #ifdefs to header file\n  rcu: use softirq instead of kthreads except when RCU_BOOST\u003dy\n  rcu: Use softirq to address performance regression\n  rcu: Simplify curing of load woes\n"
    },
    {
      "commit": "879669961b11e7f40b518784863a259f735a72bf",
      "tree": "9bff5392e365caf656c9dd9be38f7471c182278c",
      "parents": [
        "eb96c925152fc289311e5d7e956b919e9b60ab53"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Jun 17 11:25:59 2011 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jun 17 09:40:48 2011 -0700"
      },
      "message": "KEYS/DNS: Fix ____call_usermodehelper() to not lose the session keyring\n\n____call_usermodehelper() now erases any credentials set by the\nsubprocess_inf::init() function.  The problem is that commit\n17f60a7da150 (\"capabilites: allow the application of capability limits\nto usermode helpers\") creates and commits new credentials with\nprepare_kernel_cred() after the call to the init() function.  This wipes\nall keyrings after umh_keys_init() is called.\n\nThe best way to deal with this is to put the init() call just prior to\nthe commit_creds() call, and pass the cred pointer to init().  That\nmeans that umh_keys_init() and suchlike can modify the credentials\n_before_ they are published and potentially in use by the rest of the\nsystem.\n\nThis prevents request_key() from working as it is prevented from passing\nthe session keyring it set up with the authorisation token to\n/sbin/request-key, and so the latter can\u0027t assume the authority to\ninstantiate the key.  This causes the in-kernel DNS resolver to fail\nwith ENOKEY unconditionally.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: Eric Paris \u003ceparis@redhat.com\u003e\nTested-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d8ad7d1123a960cc9f276bd499f9325c6f5e1bd1",
      "tree": "0260df1b5b5b1601f56229c7dde54594d2dfebcb",
      "parents": [
        "eb96c925152fc289311e5d7e956b919e9b60ab53"
      ],
      "author": {
        "name": "Takao Indoh",
        "email": "indou.takao@jp.fujitsu.com",
        "time": "Tue Mar 29 12:35:04 2011 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jun 17 10:17:12 2011 +0200"
      },
      "message": "generic-ipi: Fix kexec boot crash by initializing call_single_queue before enabling interrupts\n\nThere is a problem that kdump(2nd kernel) sometimes hangs up due\nto a pending IPI from 1st kernel. Kernel panic occurs because IPI\ncomes before call_single_queue is initialized.\n\nTo fix the crash, rename init_call_single_data() to call_function_init()\nand call it in start_kernel() so that call_single_queue can be\ninitialized before enabling interrupts.\n\nThe details of the crash are:\n\n (1) 2nd kernel boots up\n\n (2) A pending IPI from 1st kernel comes when irqs are first enabled\n     in start_kernel().\n\n (3) Kernel tries to handle the interrupt, but call_single_queue\n     is not initialized yet at this point. As a result, in the\n     generic_smp_call_function_single_interrupt(), NULL pointer\n     dereference occurs when list_replace_init() tries to access\n     \u0026q-\u003elist.next.\n\nTherefore this patch changes the name of init_call_single_data()\nto call_function_init() and calls it before local_irq_enable()\nin start_kernel().\n\nSigned-off-by: Takao Indoh \u003cindou.takao@jp.fujitsu.com\u003e\nReviewed-by: WANG Cong \u003cxiyou.wangcong@gmail.com\u003e\nAcked-by: Neil Horman \u003cnhorman@tuxdriver.com\u003e\nAcked-by: Vivek Goyal \u003cvgoyal@redhat.com\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Milton Miller \u003cmiltonm@bga.com\u003e\nCc: Jens Axboe \u003caxboe@kernel.dk\u003e\nCc: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: kexec@lists.infradead.org\nLink: http://lkml.kernel.org/r/D6CBEE2F420741indou.takao@jp.fujitsu.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "f8b7fc6b514f34a51875dd48dff70d4d17a54f38",
      "tree": "dc6583851e3536516761b0fd9b07f5a3a1743ebb",
      "parents": [
        "a46e0899eec7a3069bcadd45dfba7bf67c6ed016"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paul.mckenney@linaro.org",
        "time": "Thu Jun 16 08:26:32 2011 -0700"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Thu Jun 16 16:12:05 2011 -0700"
      },
      "message": "rcu: Move RCU_BOOST #ifdefs to header file\n\nThe commit \"use softirq instead of kthreads except when RCU_BOOST\u003dy\"\njust applied #ifdef in place.  This commit is a cleanup that moves\nthe newly #ifdef\u0027ed code to the header file kernel/rcutree_plugin.h.\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": "b5199515c25cca622495eb9c6a8a1d275e775088",
      "tree": "250fc4f3d02c58eddf770e9d040edeafd0012e76",
      "parents": [
        "1123d93963cbd2546449d4d9f0c568e323cb0ac6"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Thu Jun 16 16:22:08 2011 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Thu Jun 16 19:30:53 2011 +0200"
      },
      "message": "clocksource: Make watchdog robust vs. interruption\n\nThe clocksource watchdog code is interruptible and it has been\nobserved that this can trigger false positives which disable the TSC.\n\nThe reason is that an interrupt storm or a long running interrupt\nhandler between the read of the watchdog source and the read of the\nTSC brings the two far enough apart that the delta is larger than the\nunstable treshold. Move both reads into a short interrupt disabled\nregion to avoid that.\n\nReported-and-tested-by: Vernon Mauery \u003cvernux@us.ibm.com\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "a46e0899eec7a3069bcadd45dfba7bf67c6ed016",
      "tree": "78158b4056fe1365d5086f66769abdc3ef2643c3",
      "parents": [
        "09223371deac67d08ca0b70bd18787920284c967"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Wed Jun 15 15:47:09 2011 -0700"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Wed Jun 15 23:07:21 2011 -0700"
      },
      "message": "rcu: use softirq instead of kthreads except when RCU_BOOST\u003dy\n\nThis patch #ifdefs 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 \u003cpaulmck@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "a1b6ae8ed01736dae19a33e74ea4e8dd88f891b5",
      "tree": "62019061cacdc90ba1454a8f9d227acbd7a64cde",
      "parents": [
        "21c5977a836e399fc710ff2c5367845ed5c2527f",
        "0da938c44921cfb690283d3b0c9c48a10375db2c"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jun 15 21:45:18 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jun 15 21:45:18 2011 -0700"
      },
      "message": "Merge branch \u0027sched-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027sched-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  sched: Check if lowest_mask is initialized in find_lowest_rq()\n  sched: Fix need_resched() when checking peempt\n"
    },
    {
      "commit": "d2c32258798f813dc2be6cbc32f78aa5ac5cb205",
      "tree": "e44c0d0feeaa52fe7d7b02ed343f7f5b671c372a",
      "parents": [
        "b0461a44a2f1fc052fc949ae19c3a5d684627b09"
      ],
      "author": {
        "name": "Josh Triplett",
        "email": "josh@joshtriplett.org",
        "time": "Wed Jun 15 15:08:47 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jun 15 20:04:01 2011 -0700"
      },
      "message": "gcov: disable CONFIG_CONSTRUCTORS when not needed by CONFIG_GCOV_KERNEL\n\nCONFIG_CONSTRUCTORS controls support for running constructor functions at\nkernel init time.  According to commit b99b87f70c7785ab (\"kernel:\nconstructor support\"), gcov (CONFIG_GCOV_KERNEL) needs this.  However,\nCONFIG_CONSTRUCTORS currently defaults to y, with no option to disable it,\nand CONFIG_GCOV_KERNEL depends on it.  Instead, default it to n and have\nCONFIG_GCOV_KERNEL select it, so that the normal case of\nCONFIG_GCOV_KERNEL\u003dn will result in CONFIG_CONSTRUCTORS\u003dn.\n\nObserved in the short list of \u003dy values in a minimal kernel configuration.\n\nSigned-off-by: Josh Triplett \u003cjosh@joshtriplett.org\u003e\nAcked-by: WANG Cong \u003cxiyou.wangcong@gmail.com\u003e\nAcked-by: Peter Oberparleiter \u003cpeter.oberparleiter@de.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": "733eda7ac316cd4e550fa096e4ed42356dc546e7",
      "tree": "6522f47608fb97314a7b615b1cb1d6e2c58952c8",
      "parents": [
        "37573e8c718277103f61f03741bdc5606d31b07e"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Wed Jun 15 15:08:43 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jun 15 20:04:01 2011 -0700"
      },
      "message": "memcg: clear mm-\u003eowner when last possible owner leaves\n\nThe following crash was reported:\n\n\u003e Call Trace:\n\u003e [\u003cffffffff81139792\u003e] mem_cgroup_from_task+0x15/0x17\n\u003e [\u003cffffffff8113a75a\u003e] __mem_cgroup_try_charge+0x148/0x4b4\n\u003e [\u003cffffffff810493f3\u003e] ? need_resched+0x23/0x2d\n\u003e [\u003cffffffff814cbf43\u003e] ? preempt_schedule+0x46/0x4f\n\u003e [\u003cffffffff8113afe8\u003e] mem_cgroup_charge_common+0x9a/0xce\n\u003e [\u003cffffffff8113b6d1\u003e] mem_cgroup_newpage_charge+0x5d/0x5f\n\u003e [\u003cffffffff81134024\u003e] khugepaged+0x5da/0xfaf\n\u003e [\u003cffffffff81078ea0\u003e] ? __init_waitqueue_head+0x4b/0x4b\n\u003e [\u003cffffffff81133a4a\u003e] ? add_mm_counter.constprop.5+0x13/0x13\n\u003e [\u003cffffffff81078625\u003e] kthread+0xa8/0xb0\n\u003e [\u003cffffffff814d13e8\u003e] ? sub_preempt_count+0xa1/0xb4\n\u003e [\u003cffffffff814d5664\u003e] kernel_thread_helper+0x4/0x10\n\u003e [\u003cffffffff814ce858\u003e] ? retint_restore_args+0x13/0x13\n\u003e [\u003cffffffff8107857d\u003e] ? __init_kthread_worker+0x5a/0x5a\n\nWhat happens is that khugepaged tries to charge a huge page against an mm\nwhose last possible owner has already exited, and the memory controller\ncrashes when the stale mm-\u003eowner is used to look up the cgroup to charge.\n\nmm-\u003eowner has never been set to NULL with the last owner going away, but\nnobody cared until khugepaged came along.\n\nEven then it wasn\u0027t a problem because the final mmput() on an mm was\nforced to acquire and release mmap_sem in write-mode, preventing an\nexiting owner to go away while the mmap_sem was held, and until \"692e0b3\nmm: thp: optimize memcg charge in khugepaged\", the memory cgroup charge\nwas protected by mmap_sem in read-mode.\n\nInstead of going back to relying on the mmap_sem to enforce lifetime of a\ntask, this patch ensures that mm-\u003eowner is properly set to NULL when the\nlast possible owner is exiting, which the memory controller can handle\njust fine.\n\n[akpm@linux-foundation.org: tweak comments]\nSigned-off-by: Hugh Dickins \u003chughd@google.com\u003e\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nReported-by: Hugh Dickins \u003chughd@google.com\u003e\nReported-by: Dave Jones \u003cdavej@redhat.com\u003e\nReviewed-by: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0da938c44921cfb690283d3b0c9c48a10375db2c",
      "tree": "7e9374a3ed16a4118f2f5d600067c471aaa80c70",
      "parents": [
        "8dd0de8be31b4b966d17750a0b10df2f575c91ac"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Jun 14 18:36:25 2011 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jun 15 11:44:48 2011 +0200"
      },
      "message": "sched: Check if lowest_mask is initialized in find_lowest_rq()\n\nOn system boot up, the lowest_mask is initialized with an\nearly_initcall(). But RT tasks may wake up on other\nearly_initcall() callers before the lowest_mask is initialized,\ncausing a system crash.\n\nCommit \"d72bce0e67 rcu: Cure load woes\" was the first commit\nto wake up RT tasks in early init. Before this commit this bug\nshould not happen.\n\nReported-by: Andrew Theurer \u003chabanero@linux.vnet.ibm.com\u003e\nTested-by: Andrew Theurer \u003chabanero@linux.vnet.ibm.com\u003e\nTested-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nAcked-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nLink: http://lkml.kernel.org/r/20110614223657.824872966@goodmis.org\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "8dd0de8be31b4b966d17750a0b10df2f575c91ac",
      "tree": "991b9dddf6ef092f94bba5af7609c13c8d7b113c",
      "parents": [
        "2c53b436a30867eb6b47dd7bab23ba638d1fb0d2"
      ],
      "author": {
        "name": "Hillf Danton",
        "email": "dhillf@gmail.com",
        "time": "Tue Jun 14 18:36:24 2011 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jun 15 09:50:32 2011 +0200"
      },
      "message": "sched: Fix need_resched() when checking peempt\n\nThe RT preempt check tests the wrong task if NEED_RESCHED is\nset. It currently checks the local CPU task. It is supposed to\ncheck the task that is running on the runqueue we are about to\nwake another task on.\n\nSigned-off-by: Hillf Danton \u003cdhillf@gmail.com\u003e\nReviewed-by: Yong Zhang \u003cyong.zhang0@gmail.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nLink: http://lkml.kernel.org/r/20110614223657.450239027@goodmis.org\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "ada9c93312f7ec49514c68c211595ce2601cebae",
      "tree": "d20d678c04daf68705f3006e3bc2a00746f3eb18",
      "parents": [
        "60b8b1de0dd2bf246f0e074d287bb3f0bc42a755"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Tue Jun 14 15:50:11 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 14 19:12:17 2011 -0700"
      },
      "message": "signal.c: fix kernel-doc notation\n\nFix kernel-doc warnings in signal.c:\n\n  Warning(kernel/signal.c:2374): No description found for parameter \u0027nset\u0027\n  Warning(kernel/signal.c:2374): Excess function parameter \u0027set\u0027 description in \u0027sys_rt_sigprocmask\u0027\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "09223371deac67d08ca0b70bd18787920284c967",
      "tree": "0ad0354a93ac209c8cfd2b79d03d0462aa3c5c58",
      "parents": [
        "9a432736904d386cda28b987b38ba14dae960ecc"
      ],
      "author": {
        "name": "Shaohua Li",
        "email": "shaohua.li@intel.com",
        "time": "Tue Jun 14 13:26:25 2011 +0800"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Tue Jun 14 15:25:39 2011 -0700"
      },
      "message": "rcu: Use softirq to address performance regression\n\nCommit a26ac2455ffcf3(rcu: move TREE_RCU from softirq to kthread)\nintroduced performance regression. In an AIM7 test, this commit degraded\nperformance by about 40%.\n\nThe commit runs rcu callbacks in a kthread instead of softirq. We observed\nhigh rate of context switch which is caused by this. Out test system has\n64 CPUs and HZ is 1000, so we saw more than 64k context switch per second\nwhich is caused by RCU\u0027s per-CPU kthread.  A trace showed that most of\nthe time the RCU per-CPU kthread doesn\u0027t actually handle any callbacks,\nbut instead just does a very small amount of work handling grace periods.\nThis means that RCU\u0027s per-CPU kthreads are making the scheduler do quite\na bit of work in order to allow a very small amount of RCU-related\nprocessing to be done.\n\nAlex Shi\u0027s analysis determined that this slowdown is due to lock\ncontention within the scheduler.  Unfortunately, as Peter Zijlstra points\nout, the scheduler\u0027s real-time semantics require global action, which\nmeans that this contention is inherent in real-time scheduling.  (Yes,\nperhaps someone will come up with a workaround -- otherwise, -rt is not\ngoing to do well on large SMP systems -- but this patch will work around\nthis issue in the meantime.  And \"the meantime\" might well be forever.)\n\nThis patch therefore re-introduces softirq processing to RCU, but only\nfor core RCU work.  RCU callbacks are still executed in kthread context,\nso that only a small amount of RCU work runs in softirq context in the\ncommon case.  This should minimize ksoftirqd execution, allowing us to\nskip boosting of ksoftirqd for CONFIG_RCU_BOOST\u003dy kernels.\n\nSigned-off-by: Shaohua Li \u003cshaohua.li@intel.com\u003e\nTested-by: \"Alex,Shi\" \u003calex.shi@intel.com\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "9a432736904d386cda28b987b38ba14dae960ecc",
      "tree": "20294203f9c6132d79737e9ab54c746546afe7d4",
      "parents": [
        "59c5f46fbe01a00eedf54a23789634438bb80603"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Mon May 30 20:38:55 2011 -0700"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Tue Jun 14 15:25:15 2011 -0700"
      },
      "message": "rcu: Simplify curing of load woes\n\nMake the functions creating the kthreads wake them up.  Leverage the\nfact that the per-node and boost kthreads can run anywhere, thus\ndispensing with the need to wake them up once the incoming CPU has\ngone fully online.\n\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nTested-by: Daniel J Blueman \u003cdaniel.blueman@gmail.com\u003e\n"
    },
    {
      "commit": "c78a9b9b8e36b8de302eddbe7a1688af3d9650ff",
      "tree": "3857996cf30ae6a60b5afe2e1e3e30f75fbca05e",
      "parents": [
        "842c895d140a75e5d67fa346213deb3ca2b460f8",
        "5f127133ee432d0b83ee26e8e3a3d7828ab5f2b1"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jun 13 10:45:49 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jun 13 10:45:49 2011 -0700"
      },
      "message": "Merge branch \u0027perf-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027perf-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  ftrace: Revert 8ab2b7efd ftrace: Remove unnecessary disabling of irqs\n  kprobes/trace: Fix kprobe selftest for gcc 4.6\n  ftrace: Fix possible undefined return code\n  oprofile, dcookies: Fix possible circular locking dependency\n  oprofile: Fix locking dependency in sync_start()\n  oprofile: Free potentially owned tasks in case of errors\n  oprofile, x86: Add comments to IBS LVT offset initialization\n"
    },
    {
      "commit": "13863a66c9c8a663665445cf05d68de96ff31830",
      "tree": "cb7864cf23b6f26f3eb11cfe09526eb7110a0e9a",
      "parents": [
        "7f45e5cd1718ed769295033ca214032848a0097d"
      ],
      "author": {
        "name": "Jesper Juhl",
        "email": "jj@chaosbits.net",
        "time": "Thu Jun 09 23:14:58 2011 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri Jun 10 10:53:42 2011 +0200"
      },
      "message": "genirq: Prevent potential NULL dereference in irq_set_irq_wake()\n\nIn kernel/irq/manage.c::irq_set_irq_wake() we call\nirq_get_desc_buslock() which may return NULL, but the code\ndereferences the result unconditionally.\n\nirq_set_irq_wake() has lots of callers - I checked a few and I couldn\u0027t\nfind anything that guarantees that they won\u0027t call it with some input that\nwill cause irq_get_desc_buslock() to return NULL, so I think it\u0027s a good\nthing to test and -EINVAL was the most sane error code in this situation\nthat I could think of.\n\nNot all callers test the return value of irq_set_irq_wake(), but those\nthat do take !\u003d 0 to mean error as far as I can see, so they should be\nfine. I guess those that don\u0027t test actually should, but that\u0027s a\ndifferent issue.\n\nSigned-off-by: Jesper Juhl \u003cjj@chaosbits.net\u003e\nLink: http://lkml.kernel.org/r/alpine.LNX.2.00.1106092300360.17868@swampdragon.chaosbits.net\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "db5e7ecc4abc91b9f26f0c0d79ef88a51e987d90",
      "tree": "022c475cc132e64f01c0765d2d965c0aa5df2286",
      "parents": [
        "5cf42f7055648aaba68ce95ecec69128d7fbf65f"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu Jun 09 08:40:59 2011 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu Jun 09 08:42:15 2011 -0400"
      },
      "message": "tracing: Fix regression in printk_formats file\n\nThe fix to fix the printk_formats of modules broke the\nprintk_formats of trace_printks in the kernel.\n\nThe update of what to show via the seq_file was only updated\nif the passed in fmt was NULL, which happens only on the first\niteration. The result was showing the first format every time\ninstead of iterating through the available formats.\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "33726bf2140a0e7c9de3ccd7cba6d69962f0b773",
      "tree": "a4f5bca74d61072533806a2fe7f257357cae1ce2",
      "parents": [
        "5b28f6a25ee202046e2d57bd431671bc23cf3dd1",
        "d7ebe75b065a7c2d58ffc12f9d2e00d5ea4e71eb"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jun 08 08:36:15 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jun 08 08:36:15 2011 -0700"
      },
      "message": "Merge branch \u0027perf-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027perf-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  perf: Fix comments in include/linux/perf_event.h\n  perf: Comment /proc/sys/kernel/perf_event_paranoid to be part of user ABI\n  perf python: Fix argument name list of read_on_cpu()\n  perf evlist: Don\u0027t die if sample_{id_all|type} is invalid\n  perf python: Use exception to propagate errors\n  perf evlist: Remove dependency on debug routines\n  perf, cgroups: Fix up for new API\n"
    },
    {
      "commit": "cb0a02ecf95e5f47d92e7d4c513cc1f7aeb40cda",
      "tree": "3e9b2341855a1b5ddac5f0edb74a679111f8a350",
      "parents": [
        "d681f1204d701cafbc45fa90e0ac977acddc33cc",
        "c5182b8867e189e14a8df5dbfcba1c73f286e061"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 07 19:21:11 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 07 19:21:11 2011 -0700"
      },
      "message": "Merge branch \u0027irq-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027irq-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  genirq: Ensure we locate the passed IRQ in irq_alloc_descs()\n  genirq: Fix descriptor init on non-sparse IRQs\n  irq: Handle spurios irq detection for threaded irqs\n  genirq: Print threaded handler in spurious debug output\n"
    },
    {
      "commit": "6715a52a581c891e9a2034abe1c81ddb482d70b3",
      "tree": "03bac8851232d11382af718c2d10559cc16e4f0f",
      "parents": [
        "ef2398019b305827ea7130ebaf7bf521b444530e",
        "6c6c54e1807faf116724451ef2bd14993780470a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 07 19:20:28 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 07 19:20:28 2011 -0700"
      },
      "message": "Merge branch \u0027sched-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027sched-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  sched: Fix/clarify set_task_cpu() locking rules\n  lockdep: Fix lock_is_held() on recursion\n  sched: Fix schedstat.nr_wakeups_migrate\n  sched: Fix cross-cpu clock sync on remote wakeups\n"
    },
    {
      "commit": "a4f18ed11a4ddf327dd91cd19e237278600ad327",
      "tree": "bbe96241c6db2be16e881920a3312ec937ed7cd1",
      "parents": [
        "265a5b7ee3eb21a4d0e53e17d59ba6eada91af39"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Jun 07 09:26:46 2011 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Jun 07 14:49:19 2011 -0400"
      },
      "message": "ftrace: Revert 8ab2b7efd ftrace: Remove unnecessary disabling of irqs\n\nRevert the commit that removed the disabling of interrupts around\nthe initial modifying of mcount callers to nops, and update the comment.\n\nThe original comment was outdated and stated that the interrupts were\nbeing disabled to prevent kstop machine, which was required with the\nold ftrace daemon, but was no longer the case.\n\nWhat the comment failed to mention was that interrupts needed to be\ndisabled to keep interrupts from preempting the modifying of the code\nand then executing the code that was partially modified.\n\nRevert the commit and update the comment.\n\nReported-by: Richard W.M. Jones \u003crjones@redhat.com\u003e\nTested-by: Richard W.M. Jones \u003crjones@redhat.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "265a5b7ee3eb21a4d0e53e17d59ba6eada91af39",
      "tree": "52ad853f49e8949a307f475115cc682d44753287",
      "parents": [
        "0aff1c0cef13b34c17e81a502336fad738151c37"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon Jun 06 22:35:13 2011 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Jun 07 14:47:36 2011 -0400"
      },
      "message": "kprobes/trace: Fix kprobe selftest for gcc 4.6\n\nWith gcc 4.6, the self test kprobe function:\n\n kprobe_trace_selftest_target()\n\nis optimized such that kallsyms does not list it. The kprobes\ntest uses this function to insert a probe and test it. But\nit will fail the test if the function is not listed in kallsyms.\n\nAdding a __used annotation keeps the symbol in the kallsyms table.\n\nSuggested-by: David Daney \u003cddaney@caviumnetworks.com\u003e\nCc: Masami Hiramatsu \u003cmasami.hiramatsu.pt@hitachi.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "6c6c54e1807faf116724451ef2bd14993780470a",
      "tree": "c306ec3d4876b70022b81f577d96ddb1c643c1d5",
      "parents": [
        "f2513cde93f0957d5dc6c09bc24b0cccd27d8e1d"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "peterz@infradead.org",
        "time": "Fri Jun 03 17:37:07 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Jun 07 12:26:40 2011 +0200"
      },
      "message": "sched: Fix/clarify set_task_cpu() locking rules\n\nSergey reported a CONFIG_PROVE_RCU warning in push_rt_task where\nset_task_cpu() was called with both relevant rq-\u003elocks held, which\nshould be sufficient for running tasks since holding its rq-\u003elock\nwill serialize against sched_move_task().\n\nUpdate the comments and fix the task_group() lockdep test.\n\nReported-and-tested-by: Sergey Senozhatsky \u003csergey.senozhatsky@gmail.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/1307115427.2353.3456.camel@twins\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "f2513cde93f0957d5dc6c09bc24b0cccd27d8e1d",
      "tree": "b461cb0836170eb555b20818802c121c79e76d33",
      "parents": [
        "f339b9dc1f03591761d5d930800db24bc0eda1e1"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Mon Jun 06 12:32:43 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Jun 07 12:25:50 2011 +0200"
      },
      "message": "lockdep: Fix lock_is_held() on recursion\n\nThe main lock_is_held() user is lockdep_assert_held(), avoid false\nassertions in lockdep_off() sections by unconditionally reporting the\nlock is taken.\n\n[ the reason this is important is a lockdep_assert_held() in ttwu()\n  which triggers a warning under lockdep_off() as in printk() which\n  can trigger another wakeup and lock up due to spinlock\n  recursion, as reported and heroically debugged by Arne Jansen ]\n\nReported-and-tested-by: Arne Jansen \u003clists@die-jansens.de\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: \u003cstable@kernel.org\u003e\nLink: http://lkml.kernel.org/r/1307398759.2497.966.camel@laptop\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "0aff1c0cef13b34c17e81a502336fad738151c37",
      "tree": "3bf383429c3d948bd34ff71ae78d82bb2439fab5",
      "parents": [
        "d7ebe75b065a7c2d58ffc12f9d2e00d5ea4e71eb"
      ],
      "author": {
        "name": "GuoWen Li",
        "email": "guowen.li.linux@gmail.com",
        "time": "Wed Jun 01 19:18:47 2011 +0800"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon Jun 06 22:34:25 2011 -0400"
      },
      "message": "ftrace: Fix possible undefined return code\n\nkernel/trace/ftrace.c: In function \u0027ftrace_regex_write.clone.15\u0027:\nkernel/trace/ftrace.c:2743:6: warning: \u0027ret\u0027 may be used uninitialized in this\nfunction\n\nSigned-off-by: GuoWen Li \u003cguowen.li.linux@gmail.com\u003e\nLink: http://lkml.kernel.org/r/201106011918.47939.guowen.li.linux@gmail.com\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "aa4a221875873d2a1f9656cb7fd7e545e952b4fa",
      "tree": "44f66345c06c94cfc95d17b337d45e09917e475d",
      "parents": [
        "710054ba25c0d1f8f41c22ce13ba336503fb5318"
      ],
      "author": {
        "name": "Vince Weaver",
        "email": "vweaver1@eecs.utk.edu",
        "time": "Fri Jun 03 17:54:40 2011 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Jun 04 12:22:04 2011 +0200"
      },
      "message": "perf: Comment /proc/sys/kernel/perf_event_paranoid to be part of user ABI\n\nTurns out that distro packages use this file as an indicator of\nthe perf event subsystem - this is easier to check for from scripts\nthan the existence of the system call.\n\nThis is easy enough to keep around for the kernel, so add a\ncomment to make sure it stays so.\n\nSigned-off-by: Vince Weaver \u003cvweaver1@eecs.utk.edu\u003e\nCc: David Ahern \u003cdsahern@gmail.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: paulus@samba.org\nCc: acme@redhat.com\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nLink: http://lkml.kernel.org/r/alpine.DEB.2.00.1106031751170.29381@cl320.eecs.utk.edu\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "710054ba25c0d1f8f41c22ce13ba336503fb5318",
      "tree": "f9b09b722bf511841539173d946f90a20fc2e59a",
      "parents": [
        "74c355fbdfedd3820046dba4f537876cea54c207",
        "b273fa9716aa1564bee88ceee62f9042981cdc81"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Jun 04 12:13:06 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Jun 04 12:13:06 2011 +0200"
      },
      "message": "Merge branch \u0027perf/urgent\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/urgent\n"
    },
    {
      "commit": "1c3cc11602111d1318c2a5743bd2e88c82813927",
      "tree": "d46a1e4a1914f3bc307f8f6215864144926d0193",
      "parents": [
        "1b054b67d3bfc6dca9f634c104780f3f24ff3eec"
      ],
      "author": {
        "name": "Sebastian Andrzej Siewior",
        "email": "sebastian@breakpoint.cc",
        "time": "Sat May 21 12:58:28 2011 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri Jun 03 15:02:32 2011 +0200"
      },
      "message": "timers: Consider slack value in mod_timer()\n\nThere is an optimization which does not update the timer if the timer\nwas pending and the expiration time was unchanged.\n\nSince commit 3bbb9ec9 (\"timers: Introduce the concept of timer slack\nfor legacy timers\") this optimization is no longer applied for timers\nwhere the expiration time got extended due to the slack value. So we\nneed to check again after the expiration time might have been updated.\n\n[ tglx: Made it a single check by applying slack first and sorting\n  out the slack \u003d 0 value (all timeouts \u003c 256 jiffies) early ]\n\nSigned-off-by: Sebastian Andrzej Siewior \u003csebastian@breakpoint.cc\u003e\nLink: http://lkml.kernel.org/r/20110521105828.GA29442@Chamillionaire.breakpoint.cc\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "c5182b8867e189e14a8df5dbfcba1c73f286e061",
      "tree": "89ac7169ab5009625770124e8b78549e69009ea1",
      "parents": [
        "e7fbad300a7a6432238f086e3c9a61538a905858"
      ],
      "author": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Thu Jun 02 18:55:13 2011 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri Jun 03 14:53:16 2011 +0200"
      },
      "message": "genirq: Ensure we locate the passed IRQ in irq_alloc_descs()\n\nWhen irq_alloc_descs() is called with no base IRQ specified then it will\nsearch for a range of IRQs starting from a specified base address. In the\ncase where an IRQ is specified it still does this search in order to ensure\nthat none of the requested range is already allocated and it still uses the\nfrom parameter to specify the base for the search. This means that in the\ncase where a base is specified but from is zero (which is reasonable as\nany IRQ number is in the range specified by a zero from) the function will\nget confused and try to allocate the first suitably sized block of free IRQs\nit finds.\n\nInstead use a specified IRQ as the base address for the search, and insist\nthat any from that is specified can support that IRQ.\n\nSigned-off-by: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\nLink: http://lkml.kernel.org/r/1307037313-15733-1-git-send-email-broonie@opensource.wolfsonmicro.com\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "e7fbad300a7a6432238f086e3c9a61538a905858",
      "tree": "76841c453717fd32be49d7d2b06e835e15b87c99",
      "parents": [
        "3a43e05f4d0600e906fa09f4a65d749288c44592"
      ],
      "author": {
        "name": "Linus Walleij",
        "email": "linus.walleij@stericsson.com",
        "time": "Tue May 31 18:14:39 2011 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri Jun 03 14:53:16 2011 +0200"
      },
      "message": "genirq: Fix descriptor init on non-sparse IRQs\n\nThe genirq changes are initializing descriptors for sparse IRQs quite\ndifferently from how non-sparse (stacked?) IRQs are initialized, with\nthe effect that on my platform all IRQs are default-disabled on sparse\nIRQs and default-enabled if non-sparse IRQs are used, crashing some\nGPIO driver.\n\nFix this by refactoring the non-sparse IRQs to use the same descriptor\ninit function as the sparse IRQs.\n\nSigned-off: Linus Walleij \u003clinus.walleij@linaro.org\u003e\nLink: http://lkml.kernel.org/r/1306858479-16622-1-git-send-email-linus.walleij@stericsson.com\nCc: stable@kernel.org # 2.6.39\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "3a43e05f4d0600e906fa09f4a65d749288c44592",
      "tree": "b99732c8f459e70078c7dd90f62a5174376e3c62",
      "parents": [
        "ef26f20cd117eb3c185038ed7cbf7b235575751d"
      ],
      "author": {
        "name": "Sebastian Andrzej Siewior",
        "email": "sebastian@breakpoint.cc",
        "time": "Tue May 31 08:56:11 2011 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri Jun 03 14:53:15 2011 +0200"
      },
      "message": "irq: Handle spurios irq detection for threaded irqs\n\nThe detection of spurios interrupts is currently limited to first level\nhandler. In force-threaded mode we never notice if the threaded irq does\nnot feel responsible.\nThis patch catches the return value of the threaded handler and forwards\nit to the spurious detector. If the primary handler returns only\nIRQ_WAKE_THREAD then the spourious detector ignores it because it gets\ncalled again from the threaded handler.\n\n[ tglx: Report the erroneous return value early and bail out ]\n\nSigned-off-by: Sebastian Andrzej Siewior \u003csebastian@breakpoint.cc\u003e\nLink: http://lkml.kernel.org/r/1306824972-27067-2-git-send-email-sebastian@breakpoint.cc\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "ef26f20cd117eb3c185038ed7cbf7b235575751d",
      "tree": "630c5b348bb2dc7abbb3bd820a51a6fa8c6e5c5d",
      "parents": [
        "1fa7b6a29c61358cc2ca6f64cef4aa0e1a7ca74c"
      ],
      "author": {
        "name": "Sebastian Andrzej Siewior",
        "email": "sebastian@breakpoint.cc",
        "time": "Tue May 31 08:56:10 2011 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri Jun 03 14:53:15 2011 +0200"
      },
      "message": "genirq: Print threaded handler in spurious debug output\n\nIn forced threaded mode (or with an explicit threaded handler) we only\nsee the primary handler, but not the threaded handler.\n\nSigned-off-by: Sebastian Andrzej Siewior \u003csebastian@breakpoint.cc\u003e\nLink: http://lkml.kernel.org/r/1306824972-27067-1-git-send-email-sebastian@breakpoint.cc\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "1b054b67d3bfc6dca9f634c104780f3f24ff3eec",
      "tree": "af50fb7333001692879c18474e84ac2736f984d1",
      "parents": [
        "1fa7b6a29c61358cc2ca6f64cef4aa0e1a7ca74c"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri Jun 03 11:13:33 2011 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri Jun 03 11:13:33 2011 +0200"
      },
      "message": "clockevents: Handle empty cpumask gracefully\n\nFor UP it\u0027s stupid to request an initialized cpumask for the clock\nevent devices. Though we need the mask set even on UP to avoid a\nhorrible ifdeffery especially in the broadcast code.\n\nFor SMP we can at least try to survive with a warning and set the\ncpumask of the cpu we\u0027re running on. That gives a decent chance to\nbring the machine up and retrieve the debug info.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Linus Walleij \u003clinus.walleij@linaro.org\nCc: Lee Jones \u003clee.jones@linaro.org\u003e\nCc: Russell King - ARM Linux \u003clinux@arm.linux.org.uk\u003e\nCc: Stephen Boyd \u003csboyd@codeaurora.org\u003e\n"
    },
    {
      "commit": "74c355fbdfedd3820046dba4f537876cea54c207",
      "tree": "3a07851e63f5eb9a233286c6683f7e8c7d9d61a2",
      "parents": [
        "89e1be50c68eb5e58b873dce87bbac627ee18d1f"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Mon May 30 16:48:06 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue May 31 14:20:25 2011 +0200"
      },
      "message": "perf, cgroups: Fix up for new API\n\nBen changed the cgroup API in commit f780bdb7c1c (cgroups: add\nper-thread subsystem callbacks) in an incompatible way, but\nforgot to convert the perf cgroup bits.\n\nAvoid compile warnings and runtime splats and convert perf too ;-)\n\nAcked-by: Ben Blum \u003cbblum@andrew.cmu.edu\u003e\nCc: Stephane Eranian \u003ceranian@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/1306767651.1200.2990.camel@twins\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "f339b9dc1f03591761d5d930800db24bc0eda1e1",
      "tree": "901c78b6e8ccaf9e74515d176084c75389bc2832",
      "parents": [
        "f01114cb59d670e9b4f2c335930dd57db96e9360"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue May 31 10:49:20 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue May 31 14:19:57 2011 +0200"
      },
      "message": "sched: Fix schedstat.nr_wakeups_migrate\n\nWhile looking over the code I found that with the ttwu rework the\nnr_wakeups_migrate test broke since we now switch cpus prior to\ncalling ttwu_stat(), hence the test is always true.\n\nCure this by passing the migration state in wake_flags. Also move the\nwhole test under CONFIG_SMP, its hard to migrate tasks on UP :-)\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/n/tip-pwwxl7gdqs5676f1d4cx6pj7@git.kernel.org\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "f01114cb59d670e9b4f2c335930dd57db96e9360",
      "tree": "98e2c76fd78e1e6762c92423a3e6f867a027ca3c",
      "parents": [
        "1e1b6c511d1b23cb7c3b619d82fc7bd9f620565d"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue May 31 12:26:55 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue May 31 14:19:56 2011 +0200"
      },
      "message": "sched: Fix cross-cpu clock sync on remote wakeups\n\nMarkus reported that commit 317f394160e (\"sched: Move the second half\nof ttwu() to the remote cpu\") caused some accounting funnies on his AMD\nPhenom II X4, such as weird \u0027top\u0027 results.\n\nIt turns out that this is due to non-synced TSC and the queued remote\nwakeups stopped coupeling the two relevant cpu clocks, which leads to\nwakeups seeing time jumps, which in turn lead to skewed runtime stats.\n\nAdd an explicit call to sched_clock_cpu() to couple the per-cpu clocks\nto restore the normal flow of time.\n\nReported-and-tested-by: Markus Trippelsdorf \u003cmarkus@trippelsdorf.de\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/1306835745.2353.3.camel@twins\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "d72bce0e67e8afc6eb959f656013cbb577426f1e",
      "tree": "9c93d4df9aa895d6f2f555e0cf50e7ae5ebaded4",
      "parents": [
        "55922c9d1b84b89cb946c777fddccb3247e7df2c"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "peterz@infradead.org",
        "time": "Mon May 30 13:34:51 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue May 31 10:01:48 2011 +0200"
      },
      "message": "rcu: Cure load woes\n\nCommit cc3ce5176d83 (rcu: Start RCU kthreads in TASK_INTERRUPTIBLE\nstate) fudges a sleeping task\u0027 state, resulting in the scheduler seeing\na TASK_UNINTERRUPTIBLE task going to sleep, but a TASK_INTERRUPTIBLE\ntask waking up. The result is unbalanced load calculation.\n\nThe problem that patch tried to address is that the RCU threads could\nstay in UNINTERRUPTIBLE state for quite a while and triggering the hung\ntask detector due to on-demand wake-ups.\n\nCure the problem differently by always giving the tasks at least one\nwake-up once the CPU is fully up and running, this will kick them out of\nthe initial UNINTERRUPTIBLE state and into the regular INTERRUPTIBLE\nwait state.\n\n[ The alternative would be teaching kthread_create() to start threads as\n  INTERRUPTIBLE but that needs a tad more thought. ]\n\nReported-by: Damien Wyart \u003cdamien.wyart@free.fr\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nAcked-by: Paul E. McKenney \u003cpaul.mckenney@linaro.org\u003e\nLink: http://lkml.kernel.org/r/1306755291.1200.2872.camel@twins\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "6345d24daf0c1fffe6642081d783cdf653ebaa5c",
      "tree": "415a253621279111bd481d48cbb86174c70b952a",
      "parents": [
        "cab0d85c8dfcad4d799f9c294571440c6f1db091"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun May 29 11:32:28 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun May 29 11:32:28 2011 -0700"
      },
      "message": "mm: Fix boot crash in mm_alloc()\n\nThomas Gleixner reports that we now have a boot crash triggered by\nCONFIG_CPUMASK_OFFSTACK\u003dy:\n\n    BUG: unable to handle kernel NULL pointer dereference at   (null)\n    IP: [\u003cc11ae035\u003e] find_next_bit+0x55/0xb0\n    Call Trace:\n     [\u003cc11addda\u003e] cpumask_any_but+0x2a/0x70\n     [\u003cc102396b\u003e] flush_tlb_mm+0x2b/0x80\n     [\u003cc1022705\u003e] pud_populate+0x35/0x50\n     [\u003cc10227ba\u003e] pgd_alloc+0x9a/0xf0\n     [\u003cc103a3fc\u003e] mm_init+0xec/0x120\n     [\u003cc103a7a3\u003e] mm_alloc+0x53/0xd0\n\nwhich was introduced by commit de03c72cfce5 (\"mm: convert\nmm-\u003ecpu_vm_cpumask into cpumask_var_t\"), and is due to wrong ordering of\nmm_init() vs mm_init_cpumask\n\nThomas wrote a patch to just fix the ordering of initialization, but I\nhate the new double allocation in the fork path, so I ended up instead\ndoing some more radical surgery to clean it all up.\n\nReported-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nReported-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f310642123e0d32d919c60ca3fab5acd130c4ba3",
      "tree": "f3844152e2e8c0fdd01621a400f84c8a159252a0",
      "parents": [
        "ef1d57599dc904fdb31b8e9b5336350d21a1fde1",
        "5d4c47e0195b989f284907358bd5c268a44b91c7"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun May 29 11:18:09 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun May 29 11:18:09 2011 -0700"
      },
      "message": "Merge branch \u0027idle-release\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-idle-2.6\n\n* \u0027idle-release\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-idle-2.6:\n  x86 idle: deprecate mwait_idle() and \"idle\u003dmwait\" cmdline param\n  x86 idle: deprecate \"no-hlt\" cmdline param\n  x86 idle APM: deprecate CONFIG_APM_CPU_IDLE\n  x86 idle floppy: deprecate disable_hlt()\n  x86 idle: EXPORT_SYMBOL(default_idle, pm_idle) only when APM demands it\n  x86 idle: clarify AMD erratum 400 workaround\n  idle governor: Avoid lock acquisition to read pm_qos before entering idle\n  cpuidle: menu: fixed wrapping timers at 4.294 seconds\n"
    },
    {
      "commit": "333c5ae9948194428fe6c5ef5c088304fc98263b",
      "tree": "83d1cf3a781642e2c366086e0b9e244a7b60fae5",
      "parents": [
        "7467571f4480b273007517b26297c07154c73924"
      ],
      "author": {
        "name": "Tim Chen",
        "email": "tim.c.chen@linux.intel.com",
        "time": "Fri Feb 11 12:49:04 2011 -0800"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Sun May 29 00:50:59 2011 -0400"
      },
      "message": "idle governor: Avoid lock acquisition to read pm_qos before entering idle\n\nThanks to the reviews and comments by Rafael, James, Mark and Andi.\nHere\u0027s version 2 of the patch incorporating your comments and also some\nupdate to my previous patch comments.\n\nI noticed that before entering idle state, the menu idle governor will\nlook up the current pm_qos target value according to the list of qos\nrequests received.  This look up currently needs the acquisition of a\nlock to access the list of qos requests to find the qos target value,\nslowing down the entrance into idle state due to contention by multiple\ncpus to access this list.  The contention is severe when there are a lot\nof cpus waking and going into idle.  For example, for a simple workload\nthat has 32 pair of processes ping ponging messages to each other, where\n64 cpu cores are active in test system, I see the following profile with\n37.82% of cpu cycles spent in contention of pm_qos_lock:\n\n-     37.82%          swapper  [kernel.kallsyms]          [k]\n_raw_spin_lock_irqsave\n   - _raw_spin_lock_irqsave\n      - 95.65% pm_qos_request\n           menu_select\n           cpuidle_idle_call\n         - cpu_idle\n              99.98% start_secondary\n\nA better approach will be to cache the updated pm_qos target value so\nreading it does not require lock acquisition as in the patch below.\nWith this patch the contention for pm_qos_lock is removed and I saw a\n2.2X increase in throughput for my message passing workload.\n\ncc: stable@kernel.org\nSigned-off-by: Tim Chen \u003ctim.c.chen@linux.intel.com\u003e\nAcked-by: Andi Kleen \u003cak@linux.intel.com\u003e\nAcked-by: James Bottomley \u003cJames.Bottomley@suse.de\u003e\nAcked-by: mark gross \u003cmarkgross@thegnar.org\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "08a8b79600101fd6e13dcf05409b330e7f5b0478",
      "tree": "461cf4061eb33d96966c5c348029bc3b5cb523bf",
      "parents": [
        "1ba4b8cb94e59b17fd0142a509eb583695c36db6",
        "1e1b6c511d1b23cb7c3b619d82fc7bd9f620565d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat May 28 12:56:46 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat May 28 12:56:46 2011 -0700"
      },
      "message": "Merge branch \u0027sched-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027sched-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  cpuset: Fix cpuset_cpus_allowed_fallback(), don\u0027t update tsk-\u003ert.nr_cpus_allowed\n  sched: Fix -\u003emin_vruntime calculation in dequeue_entity()\n  sched: Fix ttwu() for __ARCH_WANT_INTERRUPTS_ON_CTXSW\n  sched: More sched_domain iterations fixes\n"
    },
    {
      "commit": "1ba4b8cb94e59b17fd0142a509eb583695c36db6",
      "tree": "e42d1967025670401758d32964a5fa048f59f10a",
      "parents": [
        "c4a227d89f758e582fd167bb15245f2704de99ef",
        "cc3ce5176d83cd8ae1134f86e208ea758d6cb78e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat May 28 12:56:32 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat May 28 12:56:32 2011 -0700"
      },
      "message": "Merge branch \u0027core-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027core-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  rcu: Start RCU kthreads in TASK_INTERRUPTIBLE state\n  rcu: Remove waitqueue usage for cpu, node, and boost kthreads\n  rcu: Avoid acquiring rcu_node locks in timer functions\n  atomic: Add atomic_or()\n  Documentation: Add statistics about nested locks\n  rcu: Decrease memory-barrier usage based on semi-formal proof\n  rcu: Make rcu_enter_nohz() pay attention to nesting\n  rcu: Don\u0027t do reschedule unless in irq\n  rcu: Remove old memory barriers from rcu_process_callbacks()\n  rcu: Add memory barriers\n  rcu: Fix unpaired rcu_irq_enter() from locking selftests\n"
    },
    {
      "commit": "c4a227d89f758e582fd167bb15245f2704de99ef",
      "tree": "f5b6e0091e6543c14d1cd7cf1f93e097a96bbd64",
      "parents": [
        "87367a0b71a5188e34a913c05673b5078f71a64d",
        "f506b3dc0ec454a16d40cab9ee5d75435b39dc50"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat May 28 12:55:55 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat May 28 12:55:55 2011 -0700"
      },
      "message": "Merge branch \u0027perf-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027perf-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (25 commits)\n  perf: Fix SIGIO handling\n  perf top: Don\u0027t stop if no kernel symtab is found\n  perf top: Handle kptr_restrict\n  perf top: Remove unused macro\n  perf events: initialize fd array to -1 instead of 0\n  perf tools: Make sure kptr_restrict warnings fit 80 col terms\n  perf tools: Fix build on older systems\n  perf symbols: Handle /proc/sys/kernel/kptr_restrict\n  perf: Remove duplicate headers\n  ftrace: Add internal recursive checks\n  tracing: Update btrfs\u0027s tracepoints to use u64 interface\n  tracing: Add __print_symbolic_u64 to avoid warnings on 32bit machine\n  ftrace: Set ops-\u003eflag to enabled even on static function tracing\n  tracing: Have event with function tracer check error return\n  ftrace: Have ftrace_startup() return failure code\n  jump_label: Check entries limit in __jump_label_update\n  ftrace/recordmcount: Avoid STT_FUNC symbols as base on ARM\n  scripts/tags.sh: Add magic for trace-events for etags too\n  scripts/tags.sh: Fix ctags for DEFINE_EVENT()\n  x86/ftrace: Fix compiler warning in ftrace.c\n  ...\n"
    },
    {
      "commit": "cc3ce5176d83cd8ae1134f86e208ea758d6cb78e",
      "tree": "a28ada4c1e5fd8c3e8210ca1a1df950af8a704ff",
      "parents": [
        "08bca60a6912ad225254250c0a9c3a05b4152cfa"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paul.mckenney@linaro.org",
        "time": "Wed May 25 13:42:06 2011 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat May 28 17:41:56 2011 +0200"
      },
      "message": "rcu: Start RCU kthreads in TASK_INTERRUPTIBLE state\n\nUpon creation, kthreads are in TASK_UNINTERRUPTIBLE state, which can\nresult in softlockup warnings.  Because some of RCU\u0027s kthreads can\nlegitimately be idle indefinitely, start them in TASK_INTERRUPTIBLE\nstate in order to avoid those warnings.\n\nSuggested-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Paul E. McKenney \u003cpaul.mckenney@linaro.org\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nTested-by: Yinghai Lu \u003cyinghai@kernel.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "08bca60a6912ad225254250c0a9c3a05b4152cfa",
      "tree": "760b20e6eaaa02412fcecb6bc5c3598b6bc0fdce",
      "parents": [
        "8826f3b0397562eee6f8785d548be9dfdb169100"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri May 20 16:06:29 2011 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat May 28 17:41:52 2011 +0200"
      },
      "message": "rcu: Remove waitqueue usage for cpu, node, and boost kthreads\n\nIt is not necessary to use waitqueues for the RCU kthreads because\nwe always know exactly which thread is to be awakened.  In addition,\nwake_up() only issues an actual wakeup when there is a thread waiting on\nthe queue, which was why there was an extra explicit wake_up_process()\nto get the RCU kthreads started.\n\nEliminating the waitqueues (and wake_up()) in favor of wake_up_process()\neliminates the need for the initial wake_up_process() and also shrinks\nthe data structure size a bit.  The wakeup logic is placed in a new\nrcu_wait() macro.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "8826f3b0397562eee6f8785d548be9dfdb169100",
      "tree": "3b911e0ffe56b1792126f3f36f1fa4de39fd5979",
      "parents": [
        "55c2945aa9d4d907ec5ca4f6a4e30ae908d8d30d"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paul.mckenney@linaro.org",
        "time": "Wed May 11 05:41:41 2011 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat May 28 17:41:49 2011 +0200"
      },
      "message": "rcu: Avoid acquiring rcu_node locks in timer functions\n\nThis commit switches manipulations of the rcu_node -\u003ewakemask field\nto atomic operations, which allows rcu_cpu_kthread_timer() to avoid\nacquiring the rcu_node lock.  This should avoid the following lockdep\nsplat reported by Valdis Kletnieks:\n\n[   12.872150] usb 1-4: new high speed USB device number 3 using ehci_hcd\n[   12.986667] usb 1-4: New USB device found, idVendor\u003d413c, idProduct\u003d2513\n[   12.986679] usb 1-4: New USB device strings: Mfr\u003d0, Product\u003d0, SerialNumber\u003d0\n[   12.987691] hub 1-4:1.0: USB hub found\n[   12.987877] hub 1-4:1.0: 3 ports detected\n[   12.996372] input: PS/2 Generic Mouse as /devices/platform/i8042/serio1/input/input10\n[   13.071471] udevadm used greatest stack depth: 3984 bytes left\n[   13.172129]\n[   13.172130] \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n[   13.172425] [ INFO: possible circular locking dependency detected ]\n[   13.172650] 2.6.39-rc6-mmotm0506 #1\n[   13.172773] -------------------------------------------------------\n[   13.172997] blkid/267 is trying to acquire lock:\n[   13.173009]  (\u0026p-\u003epi_lock){-.-.-.}, at: [\u003cffffffff81032d8f\u003e] try_to_wake_up+0x29/0x1aa\n[   13.173009]\n[   13.173009] but task is already holding lock:\n[   13.173009]  (rcu_node_level_0){..-...}, at: [\u003cffffffff810901cc\u003e] rcu_cpu_kthread_timer+0x27/0x58\n[   13.173009]\n[   13.173009] which lock already depends on the new lock.\n[   13.173009]\n[   13.173009]\n[   13.173009] the existing dependency chain (in reverse order) is:\n[   13.173009]\n[   13.173009] -\u003e #2 (rcu_node_level_0){..-...}:\n[   13.173009]        [\u003cffffffff810679b9\u003e] check_prevs_add+0x8b/0x104\n[   13.173009]        [\u003cffffffff81067da1\u003e] validate_chain+0x36f/0x3ab\n[   13.173009]        [\u003cffffffff8106846b\u003e] __lock_acquire+0x369/0x3e2\n[   13.173009]        [\u003cffffffff81068a0f\u003e] lock_acquire+0xfc/0x14c\n[   13.173009]        [\u003cffffffff815697f1\u003e] _raw_spin_lock+0x36/0x45\n[   13.173009]        [\u003cffffffff81090794\u003e] rcu_read_unlock_special+0x8c/0x1d5\n[   13.173009]        [\u003cffffffff8109092c\u003e] __rcu_read_unlock+0x4f/0xd7\n[   13.173009]        [\u003cffffffff81027bd3\u003e] rcu_read_unlock+0x21/0x23\n[   13.173009]        [\u003cffffffff8102cc34\u003e] cpuacct_charge+0x6c/0x75\n[   13.173009]        [\u003cffffffff81030cc6\u003e] update_curr+0x101/0x12e\n[   13.173009]        [\u003cffffffff810311d0\u003e] check_preempt_wakeup+0xf7/0x23b\n[   13.173009]        [\u003cffffffff8102acb3\u003e] check_preempt_curr+0x2b/0x68\n[   13.173009]        [\u003cffffffff81031d40\u003e] ttwu_do_wakeup+0x76/0x128\n[   13.173009]        [\u003cffffffff81031e49\u003e] ttwu_do_activate.constprop.63+0x57/0x5c\n[   13.173009]        [\u003cffffffff81031e96\u003e] scheduler_ipi+0x48/0x5d\n[   13.173009]        [\u003cffffffff810177d5\u003e] smp_reschedule_interrupt+0x16/0x18\n[   13.173009]        [\u003cffffffff815710f3\u003e] reschedule_interrupt+0x13/0x20\n[   13.173009]        [\u003cffffffff810b66d1\u003e] rcu_read_unlock+0x21/0x23\n[   13.173009]        [\u003cffffffff810b739c\u003e] find_get_page+0xa9/0xb9\n[   13.173009]        [\u003cffffffff810b8b48\u003e] filemap_fault+0x6a/0x34d\n[   13.173009]        [\u003cffffffff810d1a25\u003e] __do_fault+0x54/0x3e6\n[   13.173009]        [\u003cffffffff810d447a\u003e] handle_pte_fault+0x12c/0x1ed\n[   13.173009]        [\u003cffffffff810d48f7\u003e] handle_mm_fault+0x1cd/0x1e0\n[   13.173009]        [\u003cffffffff8156cfee\u003e] do_page_fault+0x42d/0x5de\n[   13.173009]        [\u003cffffffff8156a75f\u003e] page_fault+0x1f/0x30\n[   13.173009]\n[   13.173009] -\u003e #1 (\u0026rq-\u003elock){-.-.-.}:\n[   13.173009]        [\u003cffffffff810679b9\u003e] check_prevs_add+0x8b/0x104\n[   13.173009]        [\u003cffffffff81067da1\u003e] validate_chain+0x36f/0x3ab\n[   13.173009]        [\u003cffffffff8106846b\u003e] __lock_acquire+0x369/0x3e2\n[   13.173009]        [\u003cffffffff81068a0f\u003e] lock_acquire+0xfc/0x14c\n[   13.173009]        [\u003cffffffff815697f1\u003e] _raw_spin_lock+0x36/0x45\n[   13.173009]        [\u003cffffffff81027e19\u003e] __task_rq_lock+0x8b/0xd3\n[   13.173009]        [\u003cffffffff81032f7f\u003e] wake_up_new_task+0x41/0x108\n[   13.173009]        [\u003cffffffff810376c3\u003e] do_fork+0x265/0x33f\n[   13.173009]        [\u003cffffffff81007d02\u003e] kernel_thread+0x6b/0x6d\n[   13.173009]        [\u003cffffffff8153a9dd\u003e] rest_init+0x21/0xd2\n[   13.173009]        [\u003cffffffff81b1db4f\u003e] start_kernel+0x3bb/0x3c6\n[   13.173009]        [\u003cffffffff81b1d29f\u003e] x86_64_start_reservations+0xaf/0xb3\n[   13.173009]        [\u003cffffffff81b1d393\u003e] x86_64_start_kernel+0xf0/0xf7\n[   13.173009]\n[   13.173009] -\u003e #0 (\u0026p-\u003epi_lock){-.-.-.}:\n[   13.173009]        [\u003cffffffff81067788\u003e] check_prev_add+0x68/0x20e\n[   13.173009]        [\u003cffffffff810679b9\u003e] check_prevs_add+0x8b/0x104\n[   13.173009]        [\u003cffffffff81067da1\u003e] validate_chain+0x36f/0x3ab\n[   13.173009]        [\u003cffffffff8106846b\u003e] __lock_acquire+0x369/0x3e2\n[   13.173009]        [\u003cffffffff81068a0f\u003e] lock_acquire+0xfc/0x14c\n[   13.173009]        [\u003cffffffff815698ea\u003e] _raw_spin_lock_irqsave+0x44/0x57\n[   13.173009]        [\u003cffffffff81032d8f\u003e] try_to_wake_up+0x29/0x1aa\n[   13.173009]        [\u003cffffffff81032f3c\u003e] wake_up_process+0x10/0x12\n[   13.173009]        [\u003cffffffff810901e9\u003e] rcu_cpu_kthread_timer+0x44/0x58\n[   13.173009]        [\u003cffffffff81045286\u003e] call_timer_fn+0xac/0x1e9\n[   13.173009]        [\u003cffffffff8104556d\u003e] run_timer_softirq+0x1aa/0x1f2\n[   13.173009]        [\u003cffffffff8103e487\u003e] __do_softirq+0x109/0x26a\n[   13.173009]        [\u003cffffffff8157144c\u003e] call_softirq+0x1c/0x30\n[   13.173009]        [\u003cffffffff81003207\u003e] do_softirq+0x44/0xf1\n[   13.173009]        [\u003cffffffff8103e8b9\u003e] irq_exit+0x58/0xc8\n[   13.173009]        [\u003cffffffff81017f5a\u003e] smp_apic_timer_interrupt+0x79/0x87\n[   13.173009]        [\u003cffffffff81570fd3\u003e] apic_timer_interrupt+0x13/0x20\n[   13.173009]        [\u003cffffffff810bd51a\u003e] get_page_from_freelist+0x2aa/0x310\n[   13.173009]        [\u003cffffffff810bdf03\u003e] __alloc_pages_nodemask+0x178/0x243\n[   13.173009]        [\u003cffffffff8101fe2f\u003e] pte_alloc_one+0x1e/0x3a\n[   13.173009]        [\u003cffffffff810d27fe\u003e] __pte_alloc+0x22/0x14b\n[   13.173009]        [\u003cffffffff810d48a8\u003e] handle_mm_fault+0x17e/0x1e0\n[   13.173009]        [\u003cffffffff8156cfee\u003e] do_page_fault+0x42d/0x5de\n[   13.173009]        [\u003cffffffff8156a75f\u003e] page_fault+0x1f/0x30\n[   13.173009]\n[   13.173009] other info that might help us debug this:\n[   13.173009]\n[   13.173009] Chain exists of:\n[   13.173009]   \u0026p-\u003epi_lock --\u003e \u0026rq-\u003elock --\u003e rcu_node_level_0\n[   13.173009]\n[   13.173009]  Possible unsafe locking scenario:\n[   13.173009]\n[   13.173009]        CPU0                    CPU1\n[   13.173009]        ----                    ----\n[   13.173009]   lock(rcu_node_level_0);\n[   13.173009]                                lock(\u0026rq-\u003elock);\n[   13.173009]                                lock(rcu_node_level_0);\n[   13.173009]   lock(\u0026p-\u003epi_lock);\n[   13.173009]\n[   13.173009]  *** DEADLOCK ***\n[   13.173009]\n[   13.173009] 3 locks held by blkid/267:\n[   13.173009]  #0:  (\u0026mm-\u003emmap_sem){++++++}, at: [\u003cffffffff8156cdb4\u003e] do_page_fault+0x1f3/0x5de\n[   13.173009]  #1:  (\u0026yield_timer){+.-...}, at: [\u003cffffffff810451da\u003e] call_timer_fn+0x0/0x1e9\n[   13.173009]  #2:  (rcu_node_level_0){..-...}, at: [\u003cffffffff810901cc\u003e] rcu_cpu_kthread_timer+0x27/0x58\n[   13.173009]\n[   13.173009] stack backtrace:\n[   13.173009] Pid: 267, comm: blkid Not tainted 2.6.39-rc6-mmotm0506 #1\n[   13.173009] Call Trace:\n[   13.173009]  \u003cIRQ\u003e  [\u003cffffffff8154a529\u003e] print_circular_bug+0xc8/0xd9\n[   13.173009]  [\u003cffffffff81067788\u003e] check_prev_add+0x68/0x20e\n[   13.173009]  [\u003cffffffff8100c861\u003e] ? save_stack_trace+0x28/0x46\n[   13.173009]  [\u003cffffffff810679b9\u003e] check_prevs_add+0x8b/0x104\n[   13.173009]  [\u003cffffffff81067da1\u003e] validate_chain+0x36f/0x3ab\n[   13.173009]  [\u003cffffffff8106846b\u003e] __lock_acquire+0x369/0x3e2\n[   13.173009]  [\u003cffffffff81032d8f\u003e] ? try_to_wake_up+0x29/0x1aa\n[   13.173009]  [\u003cffffffff81068a0f\u003e] lock_acquire+0xfc/0x14c\n[   13.173009]  [\u003cffffffff81032d8f\u003e] ? try_to_wake_up+0x29/0x1aa\n[   13.173009]  [\u003cffffffff810901a5\u003e] ? rcu_check_quiescent_state+0x82/0x82\n[   13.173009]  [\u003cffffffff815698ea\u003e] _raw_spin_lock_irqsave+0x44/0x57\n[   13.173009]  [\u003cffffffff81032d8f\u003e] ? try_to_wake_up+0x29/0x1aa\n[   13.173009]  [\u003cffffffff81032d8f\u003e] try_to_wake_up+0x29/0x1aa\n[   13.173009]  [\u003cffffffff810901a5\u003e] ? rcu_check_quiescent_state+0x82/0x82\n[   13.173009]  [\u003cffffffff81032f3c\u003e] wake_up_process+0x10/0x12\n[   13.173009]  [\u003cffffffff810901e9\u003e] rcu_cpu_kthread_timer+0x44/0x58\n[   13.173009]  [\u003cffffffff810901a5\u003e] ? rcu_check_quiescent_state+0x82/0x82\n[   13.173009]  [\u003cffffffff81045286\u003e] call_timer_fn+0xac/0x1e9\n[   13.173009]  [\u003cffffffff810451da\u003e] ? del_timer+0x75/0x75\n[   13.173009]  [\u003cffffffff810901a5\u003e] ? rcu_check_quiescent_state+0x82/0x82\n[   13.173009]  [\u003cffffffff8104556d\u003e] run_timer_softirq+0x1aa/0x1f2\n[   13.173009]  [\u003cffffffff8103e487\u003e] __do_softirq+0x109/0x26a\n[   13.173009]  [\u003cffffffff8106365f\u003e] ? tick_dev_program_event+0x37/0xf6\n[   13.173009]  [\u003cffffffff810a0e4a\u003e] ? time_hardirqs_off+0x1b/0x2f\n[   13.173009]  [\u003cffffffff8157144c\u003e] call_softirq+0x1c/0x30\n[   13.173009]  [\u003cffffffff81003207\u003e] do_softirq+0x44/0xf1\n[   13.173009]  [\u003cffffffff8103e8b9\u003e] irq_exit+0x58/0xc8\n[   13.173009]  [\u003cffffffff81017f5a\u003e] smp_apic_timer_interrupt+0x79/0x87\n[   13.173009]  [\u003cffffffff81570fd3\u003e] apic_timer_interrupt+0x13/0x20\n[   13.173009]  \u003cEOI\u003e  [\u003cffffffff810bd384\u003e] ? get_page_from_freelist+0x114/0x310\n[   13.173009]  [\u003cffffffff810bd51a\u003e] ? get_page_from_freelist+0x2aa/0x310\n[   13.173009]  [\u003cffffffff812220e7\u003e] ? clear_page_c+0x7/0x10\n[   13.173009]  [\u003cffffffff810bd1ef\u003e] ? prep_new_page+0x14c/0x1cd\n[   13.173009]  [\u003cffffffff810bd51a\u003e] get_page_from_freelist+0x2aa/0x310\n[   13.173009]  [\u003cffffffff810bdf03\u003e] __alloc_pages_nodemask+0x178/0x243\n[   13.173009]  [\u003cffffffff810d46b9\u003e] ? __pmd_alloc+0x87/0x99\n[   13.173009]  [\u003cffffffff8101fe2f\u003e] pte_alloc_one+0x1e/0x3a\n[   13.173009]  [\u003cffffffff810d46b9\u003e] ? __pmd_alloc+0x87/0x99\n[   13.173009]  [\u003cffffffff810d27fe\u003e] __pte_alloc+0x22/0x14b\n[   13.173009]  [\u003cffffffff810d48a8\u003e] handle_mm_fault+0x17e/0x1e0\n[   13.173009]  [\u003cffffffff8156cfee\u003e] do_page_fault+0x42d/0x5de\n[   13.173009]  [\u003cffffffff810d915f\u003e] ? sys_brk+0x32/0x10c\n[   13.173009]  [\u003cffffffff810a0e4a\u003e] ? time_hardirqs_off+0x1b/0x2f\n[   13.173009]  [\u003cffffffff81065c4f\u003e] ? trace_hardirqs_off_caller+0x3f/0x9c\n[   13.173009]  [\u003cffffffff812235dd\u003e] ? trace_hardirqs_off_thunk+0x3a/0x3c\n[   13.173009]  [\u003cffffffff8156a75f\u003e] page_fault+0x1f/0x30\n[   14.010075] usb 5-1: new full speed USB device number 2 using uhci_hcd\n\nReported-by: Valdis Kletnieks \u003cValdis.Kletnieks@vt.edu\u003e\nSigned-off-by: Paul E. McKenney \u003cpaul.mckenney@linaro.org\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "29f742f88a32c9ab8cf6d9ba69e1ea918be5aa58",
      "tree": "a38aa38c8025e050ec82a7e64d02dca07f90ffc7",
      "parents": [
        "f62508f68d04adefc4cf9b0177ba02c8818b3eec",
        "23b5c8fa01b723c70a20d6e4ef4ff54c7656d6e1"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri May 27 12:38:52 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat May 28 17:41:05 2011 +0200"
      },
      "message": "Merge branch \u0027rcu/urgent\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-2.6-rcu into core/urgent\n"
    },
    {
      "commit": "f506b3dc0ec454a16d40cab9ee5d75435b39dc50",
      "tree": "fc0dfaab17f42445e04abf51817016647a9c6b56",
      "parents": [
        "e4a338d05df93ab1ebf291aca1e753064319d301"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Thu May 26 17:02:53 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat May 28 17:04:59 2011 +0200"
      },
      "message": "perf: Fix SIGIO handling\n\nVince noticed that unless we mmap() a buffer, SIGIO gets lost. So\nexplicitly push the wakeup (including signals) when requested.\n\nReported-by: Vince Weaver \u003cvweaver1@eecs.utk.edu\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: \u003cstable@kernel.org\u003e\nLink: http://lkml.kernel.org/n/tip-2euus3f3x3dyvdk52cjxw8zu@git.kernel.org\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "1e1b6c511d1b23cb7c3b619d82fc7bd9f620565d",
      "tree": "c50e88412c8b42264177dc125f74a30f9c7a82d9",
      "parents": [
        "1e876231785d82443a5ac8b6c660e9f51bc5dede"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Thu May 19 15:08:58 2011 +0900"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat May 28 17:02:57 2011 +0200"
      },
      "message": "cpuset: Fix cpuset_cpus_allowed_fallback(), don\u0027t update tsk-\u003ert.nr_cpus_allowed\n\nThe rule is, we have to update tsk-\u003ert.nr_cpus_allowed if we change\ntsk-\u003ecpus_allowed. Otherwise RT scheduler may confuse.\n\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/4DD4B3FA.5060901@jp.fujitsu.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "1e876231785d82443a5ac8b6c660e9f51bc5dede",
      "tree": "cab00c4c8ec3090a41215223dde2f47483287cb7",
      "parents": [
        "d6aa8f85f16379d42c147b22b59e33b67f9ff466"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "peterz@infradead.org",
        "time": "Tue May 17 16:21:10 2011 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat May 28 17:02:56 2011 +0200"
      },
      "message": "sched: Fix -\u003emin_vruntime calculation in dequeue_entity()\n\nDima Zavin \u003cdima@android.com\u003e reported:\n\n\"After pulling the thread off the run-queue during a cgroup change,\nthe cfs_rq.min_vruntime gets recalculated. The dequeued thread\u0027s vruntime\nthen gets normalized to this new value. This can then lead to the thread\ngetting an unfair boost in the new group if the vruntime of the next\ntask in the old run-queue was way further ahead.\"\n\nReported-by: Dima Zavin \u003cdima@android.com\u003e\nSigned-off-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\nRecalls-having-tested-once-upon-a-time-by: Mike Galbraith \u003cefault@gmx.de\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/1305674470-23727-1-git-send-email-john.stultz@linaro.org\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "d6aa8f85f16379d42c147b22b59e33b67f9ff466",
      "tree": "7e28fec1b4d23f5a60fb3370dd446b36aff66379",
      "parents": [
        "cd4ae6adf8b1c21d88e83ed56afeeef97b28f356"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Thu May 26 14:21:33 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat May 28 17:02:55 2011 +0200"
      },
      "message": "sched: Fix ttwu() for __ARCH_WANT_INTERRUPTS_ON_CTXSW\n\nMarc reported that e4a52bcb9 (sched: Remove rq-\u003elock from the first\nhalf of ttwu()) broke his ARM-SMP machine. Now ARM is one of the few\n__ARCH_WANT_INTERRUPTS_ON_CTXSW users, so that exception in the ttwu()\ncode was suspect.\n\nYong found that the interrupt could hit after context_switch() changes\ncurrent but before it clears p-\u003eon_cpu, if that interrupt were to\nattempt a wake-up of p we would indeed find ourselves spinning in IRQ\ncontext.\n\nFix this by reverting to the old behaviour for this situation and\nperform a full remote wake-up.\n\nCc: Frank Rowand \u003cfrank.rowand@am.sony.com\u003e\nCc: Yong Zhang \u003cyong.zhang0@gmail.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nReported-by: Marc Zyngier \u003cMarc.Zyngier@arm.com\u003e\nTested-by: Marc Zyngier \u003cmarc.zyngier@arm.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "cd4ae6adf8b1c21d88e83ed56afeeef97b28f356",
      "tree": "7a0625d20d135deb1e8c142fc13da6b4eaa6ea6c",
      "parents": [
        "dc7acbb2518f250050179c8581a972df3b6a24f1"
      ],
      "author": {
        "name": "Xiaotian Feng",
        "email": "dfeng@redhat.com",
        "time": "Fri Apr 22 18:53:54 2011 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat May 28 17:02:54 2011 +0200"
      },
      "message": "sched: More sched_domain iterations fixes\n\nsched_domain iterations needs to be protected by rcu_read_lock() now,\nthis patch adds another two places which needs the rcu lock, which is\nspotted by following suspicious rcu_dereference_check() usage warnings.\n\nkernel/sched_rt.c:1244 invoked rcu_dereference_check() without protection!\nkernel/sched_stats.h:41 invoked rcu_dereference_check() without protection!\n\nSigned-off-by: Xiaotian Feng \u003cdfeng@redhat.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/1303469634-11678-1-git-send-email-dfeng@redhat.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "f23a5e1405e47df6cdc86568ea75df266b9e151f",
      "tree": "788fab831a235ce8f143e8562d832336a595cff7",
      "parents": [
        "d24c2af42292cb4ad9c829d71fe0d795112ca6e7",
        "0775a60aca2375ea5598741b30d13fe6d3f15617"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 27 14:27:34 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 27 14:27:34 2011 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/suspend-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/suspend-2.6:\n  PM: Fix PM QOS\u0027s user mode interface to work with ASCII input\n  PM / Hibernate: Update kerneldoc comments in hibernate.c\n  PM / Hibernate: Remove arch_prepare_suspend()\n  PM / Hibernate: Update some comments in core hibernate code\n"
    },
    {
      "commit": "e52e713ec30a31e9a4663d9aebbaae5ec07466a6",
      "tree": "68f9680577ae68f3972a5ed73afed5d1c2794310",
      "parents": [
        "bdf7cf1c83872a0586ce4c4da6889103cc36dbd3",
        "2f3e4af471e38e0658e701973238ae4b5e50fcd6"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 27 10:25:02 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 27 10:25:02 2011 -0700"
      },
      "message": "Merge branch \u0027docs-move\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rdunlap/linux-docs\n\n* \u0027docs-move\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rdunlap/linux-docs:\n  Create Documentation/security/, move LSM-, credentials-, and keys-related files from Documentation/   to Documentation/security/, add Documentation/security/00-INDEX, and update all occurrences of Documentation/\u003cmoved_file\u003e   to Documentation/security/\u003cmoved_file\u003e.\n"
    },
    {
      "commit": "d6a72fe465f4c54654a1d5488daeb820b4ecf275",
      "tree": "1b581d3b3452b47ba35e1ee3c96d05c030ed9726",
      "parents": [
        "b1d2dc3c06d8da7d58fb43d7123a91c1d6a4f576",
        "b1cff0ad1062621ae63cb6c5dc4165191fe2e9f1"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri May 27 14:28:09 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri May 27 14:28:09 2011 +0200"
      },
      "message": "Merge branch \u0027tip/perf/urgent\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-2.6-trace into perf/urgent\n"
    },
    {
      "commit": "6f7bd76f05eb2bfbb48d58c0408a50a7e16b2423",
      "tree": "a6a5c66d200e112cc629b392eafbaa026e1c57bf",
      "parents": [
        "d98808a253f209465ed9f415c565f4c294a213b8"
      ],
      "author": {
        "name": "Rakib Mullick",
        "email": "rakib.mullick@gmail.com",
        "time": "Thu May 26 16:26:00 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 26 17:12:37 2011 -0700"
      },
      "message": "kernel/profile.c: remove some duplicate code from profile_hits()\n\nprofile_hits() has a common check for prof_on and prof_buffer regardless\nof SMP or !SMP.  So, remove some duplicate code by splitting profile_hits\ninto two.\n\n[akpm@linux-foundation.org: make do_profile_hits static]\nSigned-off-by: Rakib Mullick \u003crakib.mullick@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3864601387cf4196371e3c1897fdffa5228296f9",
      "tree": "1c517a970194f9e49ef98ef434c650771ffa31e1",
      "parents": [
        "63ab25ebbc50f74550bd8d164a34724b498f6fb9"
      ],
      "author": {
        "name": "Jiri Slaby",
        "email": "jslaby@suse.cz",
        "time": "Thu May 26 16:25:46 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 26 17:12:36 2011 -0700"
      },
      "message": "mm: extract exe_file handling from procfs\n\nSetup and cleanup of mm_struct-\u003eexe_file is currently done in fs/proc/.\nThis was because exe_file was needed only for /proc/\u003cpid\u003e/exe.  Since we\nwill need the exe_file functionality also for core dumps (so core name can\ncontain full binary path), built this functionality always into the\nkernel.\n\nTo achieve that move that out of proc FS to the kernel/ where in fact it\nshould belong.  By doing that we can make dup_mm_exe_file static.  Also we\ncan drop linux/proc_fs.h inclusion in fs/exec.c and kernel/fork.c.\n\nSigned-off-by: Jiri Slaby \u003cjslaby@suse.cz\u003e\nCc: Alexander Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a77aea92010acf54ad785047234418d5d68772e2",
      "tree": "c7cb57b62fd02bee2baceb79251923f7caec6139",
      "parents": [
        "d846687d7f84e45f23ecf3846dbb43312a1206dd"
      ],
      "author": {
        "name": "Daniel Lezcano",
        "email": "daniel.lezcano@free.fr",
        "time": "Thu May 26 16:25:23 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 26 17:12:34 2011 -0700"
      },
      "message": "cgroup: remove the ns_cgroup\n\nThe ns_cgroup is an annoying cgroup at the namespace / cgroup frontier and\nleads to some problems:\n\n  * cgroup creation is out-of-control\n  * cgroup name can conflict when pids are looping\n  * it is not possible to have a single process handling a lot of\n    namespaces without falling in a exponential creation time\n  * we may want to create a namespace without creating a cgroup\n\n  The ns_cgroup was replaced by a compatibility flag \u0027clone_children\u0027,\n  where a newly created cgroup will copy the parent cgroup values.\n  The userspace has to manually create a cgroup and add a task to\n  the \u0027tasks\u0027 file.\n\nThis patch removes the ns_cgroup as suggested in the following thread:\n\nhttps://lists.linux-foundation.org/pipermail/containers/2009-June/018616.html\n\nThe \u0027cgroup_clone\u0027 function is removed because it is no longer used.\n\nThis is a userspace-visible change.  Commit 45531757b45c (\"cgroup: notify\nns_cgroup deprecated\") (merged into 2.6.27) caused the kernel to emit a\nprintk warning users that the feature is planned for removal.  Since that\ntime we have heard from XXX users who were affected by this.\n\nSigned-off-by: Daniel Lezcano \u003cdaniel.lezcano@free.fr\u003e\nSigned-off-by: Serge E. Hallyn \u003cserge.hallyn@canonical.com\u003e\nCc: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nCc: Jamal Hadi Salim \u003chadi@cyberus.ca\u003e\nReviewed-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nAcked-by: Paul Menage \u003cmenage@google.com\u003e\nAcked-by: Matt Helsley \u003cmatthltc@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": "d846687d7f84e45f23ecf3846dbb43312a1206dd",
      "tree": "5c19cf2e0e2faf288bb536f6878cddf11498ef3e",
      "parents": [
        "74a1166dfe1135dcc168d35fa5261aa7e087011b"
      ],
      "author": {
        "name": "Ben Blum",
        "email": "bblum@andrew.cmu.edu",
        "time": "Thu May 26 16:25:21 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 26 17:12:34 2011 -0700"
      },
      "message": "cgroups: use flex_array in attach_proc\n\nConvert cgroup_attach_proc to use flex_array.\n\nThe cgroup_attach_proc implementation requires a pre-allocated array to\nstore task pointers to atomically move a thread-group, but asking for a\nmonolithic array with kmalloc() may be unreliable for very large groups.\nUsing flex_array provides the same functionality with less risk of\nfailure.\n\nThis is a post-patch for cgroup-procs-write.patch.\n\nSigned-off-by: Ben Blum \u003cbblum@andrew.cmu.edu\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Matt Helsley \u003cmatthltc@us.ibm.com\u003e\nReviewed-by: Paul Menage \u003cmenage@google.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Miao Xie \u003cmiaox@cn.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "74a1166dfe1135dcc168d35fa5261aa7e087011b",
      "tree": "a7add70f0344e2352b8d0d6beb10aef85c6585f7",
      "parents": [
        "f780bdb7c1c73009cb57adcf99ef50027d80bf3c"
      ],
      "author": {
        "name": "Ben Blum",
        "email": "bblum@andrew.cmu.edu",
        "time": "Thu May 26 16:25:20 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 26 17:12:34 2011 -0700"
      },
      "message": "cgroups: make procs file writable\n\nMake procs file writable to move all threads by tgid at once.\n\nAdd functionality that enables users to move all threads in a threadgroup\nat once to a cgroup by writing the tgid to the \u0027cgroup.procs\u0027 file.  This\ncurrent implementation makes use of a per-threadgroup rwsem that\u0027s taken\nfor reading in the fork() path to prevent newly forking threads within the\nthreadgroup from \"escaping\" while the move is in progress.\n\nSigned-off-by: Ben Blum \u003cbblum@andrew.cmu.edu\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Matt Helsley \u003cmatthltc@us.ibm.com\u003e\nReviewed-by: Paul Menage \u003cmenage@google.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Miao Xie \u003cmiaox@cn.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f780bdb7c1c73009cb57adcf99ef50027d80bf3c",
      "tree": "d15668ffcc40a2aaa31723b87cfda0b166f84d57",
      "parents": [
        "4714d1d32d97239fb5ae3e10521d3f133a899b66"
      ],
      "author": {
        "name": "Ben Blum",
        "email": "bblum@andrew.cmu.edu",
        "time": "Thu May 26 16:25:19 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 26 17:12:34 2011 -0700"
      },
      "message": "cgroups: add per-thread subsystem callbacks\n\nAdd cgroup subsystem callbacks for per-thread attachment in atomic contexts\n\nAdd can_attach_task(), pre_attach(), and attach_task() as new callbacks\nfor cgroups\u0027s subsystem interface.  Unlike can_attach and attach, these\nare for per-thread operations, to be called potentially many times when\nattaching an entire threadgroup.\n\nAlso, the old \"bool threadgroup\" interface is removed, as replaced by\nthis.  All subsystems are modified for the new interface - of note is\ncpuset, which requires from/to nodemasks for attach to be globally scoped\n(though per-cpuset would work too) to persist from its pre_attach to\nattach_task and attach.\n\nThis is a pre-patch for cgroup-procs-writable.patch.\n\nSigned-off-by: Ben Blum \u003cbblum@andrew.cmu.edu\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Matt Helsley \u003cmatthltc@us.ibm.com\u003e\nReviewed-by: Paul Menage \u003cmenage@google.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Miao Xie \u003cmiaox@cn.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4714d1d32d97239fb5ae3e10521d3f133a899b66",
      "tree": "fb50707cefc386bf4e87cac9661a38dcfe3192df",
      "parents": [
        "dcb3a08e69629ea65a3e9647da730bfaf670497d"
      ],
      "author": {
        "name": "Ben Blum",
        "email": "bblum@andrew.cmu.edu",
        "time": "Thu May 26 16:25:18 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 26 17:12:34 2011 -0700"
      },
      "message": "cgroups: read-write lock CLONE_THREAD forking per threadgroup\n\nAdds functionality to read/write lock CLONE_THREAD fork()ing per-threadgroup\n\nAdd an rwsem that lives in a threadgroup\u0027s signal_struct that\u0027s taken for\nreading in the fork path, under CONFIG_CGROUPS.  If another part of the\nkernel later wants to use such a locking mechanism, the CONFIG_CGROUPS\nifdefs should be changed to a higher-up flag that CGROUPS and the other\nsystem would both depend on.\n\nThis is a pre-patch for cgroup-procs-write.patch.\n\nSigned-off-by: Ben Blum \u003cbblum@andrew.cmu.edu\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Matt Helsley \u003cmatthltc@us.ibm.com\u003e\nReviewed-by: Paul Menage \u003cmenage@google.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Miao Xie \u003cmiaox@cn.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0775a60aca2375ea5598741b30d13fe6d3f15617",
      "tree": "ba7cf639955af770f02b72ab80805ae10b43fd10",
      "parents": [
        "f42a9813fbf930fea3bdd0524dcb43c7feb0c977"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Fri May 27 00:05:23 2011 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Fri May 27 00:05:23 2011 +0200"
      },
      "message": "PM: Fix PM QOS\u0027s user mode interface to work with ASCII input\n\nMake pm_qos_power_write() accept values passed to it in the ASCII hex\nformat either with or without an ending newline.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Mark Gross \u003cmarkgross@thegnar.org\u003e\n"
    },
    {
      "commit": "23b5c8fa01b723c70a20d6e4ef4ff54c7656d6e1",
      "tree": "d03faad5e19848b35a019793b9a1cbc0bb68a708",
      "parents": [
        "4305ce7894dd38b0633bfc8978437320119223bd"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Tue Sep 07 10:38:22 2010 -0700"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Thu May 26 09:42:23 2011 -0700"
      },
      "message": "rcu: Decrease memory-barrier usage based on semi-formal proof\n\n(Note: this was reverted, and is now being re-applied in pieces, with\nthis being the fifth and final piece.  See below for the reason that\nit is now felt to be safe to re-apply this.)\n\nCommit d09b62d fixed grace-period synchronization, but left some smp_mb()\ninvocations in rcu_process_callbacks() that are no longer needed, but\nsheer paranoia prevented them from being removed.  This commit removes\nthem and provides a proof of correctness in their absence.  It also adds\na memory barrier to rcu_report_qs_rsp() immediately before the update to\nrsp-\u003ecompleted in order to handle the theoretical possibility that the\ncompiler or CPU might move massive quantities of code into a lock-based\ncritical section.  This also proves that the sheer paranoia was not\nentirely unjustified, at least from a theoretical point of view.\n\nIn addition, the old dyntick-idle synchronization depended on the fact\nthat grace periods were many milliseconds in duration, so that it could\nbe assumed that no dyntick-idle CPU could reorder a memory reference\nacross an entire grace period.  Unfortunately for this design, the\naddition of expedited grace periods breaks this assumption, which has\nthe unfortunate side-effect of requiring atomic operations in the\nfunctions that track dyntick-idle state for RCU.  (There is some hope\nthat the algorithms used in user-level RCU might be applied here, but\nsome work is required to handle the NMIs that user-space applications\ncan happily ignore.  For the short term, better safe than sorry.)\n\nThis proof assumes that neither compiler nor CPU will allow a lock\nacquisition and release to be reordered, as doing so can result in\ndeadlock.  The proof is as follows:\n\n1.\tA given CPU declares a quiescent state under the protection of\n\tits leaf rcu_node\u0027s lock.\n\n2.\tIf there is more than one level of rcu_node hierarchy, the\n\tlast CPU to declare a quiescent state will also acquire the\n\t-\u003elock of the next rcu_node up in the hierarchy,  but only\n\tafter releasing the lower level\u0027s lock.  The acquisition of this\n\tlock clearly cannot occur prior to the acquisition of the leaf\n\tnode\u0027s lock.\n\n3.\tStep 2 repeats until we reach the root rcu_node structure.\n\tPlease note again that only one lock is held at a time through\n\tthis process.  The acquisition of the root rcu_node\u0027s -\u003elock\n\tmust occur after the release of that of the leaf rcu_node.\n\n4.\tAt this point, we set the -\u003ecompleted field in the rcu_state\n\tstructure in rcu_report_qs_rsp().  However, if the rcu_node\n\thierarchy contains only one rcu_node, then in theory the code\n\tpreceding the quiescent state could leak into the critical\n\tsection.  We therefore precede the update of -\u003ecompleted with a\n\tmemory barrier.  All CPUs will therefore agree that any updates\n\tpreceding any report of a quiescent state will have happened\n\tbefore the update of -\u003ecompleted.\n\n5.\tRegardless of whether a new grace period is needed, rcu_start_gp()\n\twill propagate the new value of -\u003ecompleted to all of the leaf\n\trcu_node structures, under the protection of each rcu_node\u0027s -\u003elock.\n\tIf a new grace period is needed immediately, this propagation\n\twill occur in the same critical section that -\u003ecompleted was\n\tset in, but courtesy of the memory barrier in #4 above, is still\n\tseen to follow any pre-quiescent-state activity.\n\n6.\tWhen a given CPU invokes __rcu_process_gp_end(), it becomes\n\taware of the end of the old grace period and therefore makes\n\tany RCU callbacks that were waiting on that grace period eligible\n\tfor invocation.\n\n\tIf this CPU is the same one that detected the end of the grace\n\tperiod, and if there is but a single rcu_node in the hierarchy,\n\twe will still be in the single critical section.  In this case,\n\tthe memory barrier in step #4 guarantees that all callbacks will\n\tbe seen to execute after each CPU\u0027s quiescent state.\n\n\tOn the other hand, if this is a different CPU, it will acquire\n\tthe leaf rcu_node\u0027s -\u003elock, and will again be serialized after\n\teach CPU\u0027s quiescent state for the old grace period.\n\nOn the strength of this proof, this commit therefore removes the memory\nbarriers from rcu_process_callbacks() and adds one to rcu_report_qs_rsp().\nThe effect is to reduce the number of memory barriers by one and to\nreduce the frequency of execution from about once per scheduling tick\nper CPU to once per grace period.\n\nThis was reverted do to hangs found during testing by Yinghai Lu and\nIngo Molnar.  Frederic Weisbecker supplied Yinghai with tracing that\nlocated the underlying problem, and Frederic also provided the fix.\n\nThe underlying problem was that the HARDIRQ_ENTER() macro from\nlib/locking-selftest.c invoked irq_enter(), which in turn invokes\nrcu_irq_enter(), but HARDIRQ_EXIT() invoked __irq_exit(), which\ndoes not invoke rcu_irq_exit().  This situation resulted in calls\nto rcu_irq_enter() that were not balanced by the required calls to\nrcu_irq_exit().  Therefore, after these locking selftests completed,\nRCU\u0027s dyntick-idle nesting count was a large number (for example,\n72), which caused RCU to to conclude that the affected CPU was not in\ndyntick-idle mode when in fact it was.\n\nRCU would therefore incorrectly wait for this dyntick-idle CPU, resulting\nin hangs.\n\nIn contrast, with Frederic\u0027s patch, which replaces the irq_enter()\nin HARDIRQ_ENTER() with an __irq_enter(), these tests don\u0027t ever call\neither rcu_irq_enter() or rcu_irq_exit(), which works because the CPU\nrunning the test is already marked as not being in dyntick-idle mode.\nThis means that the rcu_irq_enter() and rcu_irq_exit() calls and RCU\nthen has no problem working out which CPUs are in dyntick-idle mode and\nwhich are not.\n\nThe reason that the imbalance was not noticed before the barrier patch\nwas applied is that the old implementation of rcu_enter_nohz() ignored\nthe nesting depth.  This could still result in delays, but much shorter\nones.  Whenever there was a delay, RCU would IPI the CPU with the\nunbalanced nesting level, which would eventually result in rcu_enter_nohz()\nbeing called, which in turn would force RCU to see that the CPU was in\ndyntick-idle mode.\n\nThe reason that very few people noticed the problem is that the mismatched\nirq_enter() vs. __irq_exit() occured only when the kernel was built with\nCONFIG_DEBUG_LOCKING_API_SELFTESTS.\n\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nReviewed-by: Josh Triplett \u003cjosh@joshtriplett.org\u003e\n"
    },
    {
      "commit": "4305ce7894dd38b0633bfc8978437320119223bd",
      "tree": "eafe4497236f8dd4ddfdf90fe06a5377912a9c35",
      "parents": [
        "b5904090c754327ed6c2ecaefed4f7d473df393f"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Mon May 16 14:27:31 2011 -0700"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Thu May 26 09:42:22 2011 -0700"
      },
      "message": "rcu: Make rcu_enter_nohz() pay attention to nesting\n\nThe old version of rcu_enter_nohz() forced RCU into nohz mode even if\nthe nesting count was non-zero.  This change causes rcu_enter_nohz()\nto hold off for non-zero nesting counts.\n\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "b5904090c754327ed6c2ecaefed4f7d473df393f",
      "tree": "46cf53f98413171d92de3b5e11c9327309f240b7",
      "parents": [
        "1135633bddcf7a819a1490c18d04965c490bcc1e"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Mon May 16 02:52:04 2011 -0700"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Thu May 26 09:42:21 2011 -0700"
      },
      "message": "rcu: Don\u0027t do reschedule unless in irq\n\nCondition the set_need_resched() in rcu_irq_exit() on in_irq().  This\nshould be a no-op, because rcu_irq_exit() should only be called from irq.\n\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "1135633bddcf7a819a1490c18d04965c490bcc1e",
      "tree": "99facc2b3416a7c00cf042d2f782a87859e30d26",
      "parents": [
        "0bbcc529fcea9c7de5e2e7243f9913b8f7302a8c"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Mon May 16 02:44:06 2011 -0700"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Thu May 26 09:42:21 2011 -0700"
      },
      "message": "rcu: Remove old memory barriers from rcu_process_callbacks()\n\nSecond step of partitioning of commit e59fb3120b.\n\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "0bbcc529fcea9c7de5e2e7243f9913b8f7302a8c",
      "tree": "22403b7c9bf3b87818c3a8a606a1bc33dd12bd1a",
      "parents": [
        "ba9f207c9f82115aba4ce04b22e0081af0ae300f"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Mon May 16 02:24:04 2011 -0700"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Thu May 26 09:42:20 2011 -0700"
      },
      "message": "rcu: Add memory barriers\n\nAdd the memory barriers added by e59fb3120b.\n\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "1102c660dd35725a11c7ca9365c237f2f42f6b30",
      "tree": "cd32d3053b30050182218e0d36b4aed7459c48de",
      "parents": [
        "6e9101aeec39961308176e0f59e73ac5d37d243a",
        "4db70f73e56961b9bcdfd0c36c62847a18b7dbb5"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu May 26 13:48:30 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu May 26 13:48:39 2011 +0200"
      },
      "message": "Merge branch \u0027linus\u0027 into perf/urgent\n\nMerge reason: Linus applied an overlapping commit:\n\n  5f2e8e2b0bf0: kernel/watchdog.c: Use proper ANSI C prototypes\n\nSo merge it in to make sure we can iterate the file without conflicts.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "def945eeb920b94e710574454043f080831aefe5",
      "tree": "3ab084b62973e172b98ab731b80b19666eac30e7",
      "parents": [
        "4db70f73e56961b9bcdfd0c36c62847a18b7dbb5"
      ],
      "author": {
        "name": "Yinghai Lu",
        "email": "yinghai@kernel.org",
        "time": "Wed May 25 22:09:40 2011 -0700"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Thu May 26 13:15:28 2011 +0200"
      },
      "message": "irq: Remove smp_affinity_list when unregister irq proc\n\ncommit 4b06042(bitmap, irq: add smp_affinity_list interface to\n/proc/irq) causes the following warning:\n\n[  274.239500] WARNING: at fs/proc/generic.c:850 remove_proc_entry+0x24c/0x27a()\n[  274.251761] remove_proc_entry: removing non-empty directory \u0027irq/184\u0027,\n    \t       leaking at least \u0027smp_affinity_list\u0027\n\nRemove the new file in the exit path.\n\nSigned-off-by: Yinghai Lu \u003cyinghai@kernel.org\u003e\nCc: Mike Travis \u003ctravis@sgi.com\u003e\nLink: http://lkml.kernel.org/r/4DDDE094.6050505@kernel.org\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "b1cff0ad1062621ae63cb6c5dc4165191fe2e9f1",
      "tree": "81c35a8fe57b1a139416aac637b0fc198f67199d",
      "parents": [
        "7f34b746f79c1e1f8fd6d09799d133263ae7a504"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed May 25 14:27:43 2011 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed May 25 22:13:49 2011 -0400"
      },
      "message": "ftrace: Add internal recursive checks\n\nWitold reported a reboot caused by the selftests of the dynamic function\ntracer. He sent me a config and I used ktest to do a config_bisect on it\n(as my config did not cause the crash). It pointed out that the problem\nconfig was CONFIG_PROVE_RCU.\n\nWhat happened was that if multiple callbacks are attached to the\nfunction tracer, we iterate a list of callbacks. Because the list is\nmanaged by synchronize_sched() and preempt_disable, the access to the\npointers uses rcu_dereference_raw().\n\nWhen PROVE_RCU is enabled, the rcu_dereference_raw() calls some\ndebugging functions, which happen to be traced. The tracing of the debug\nfunction would then call rcu_dereference_raw() which would then call the\ndebug function and then... well you get the idea.\n\nI first wrote two different patches to solve this bug.\n\n1) add a __rcu_dereference_raw() that would not do any checks.\n2) add notrace to the offending debug functions.\n\nBoth of these patches worked.\n\nTalking with Paul McKenney on IRC, he suggested to add recursion\ndetection instead. This seemed to be a better solution, so I decided to\nimplement it. As the task_struct already has a trace_recursion to detect\nrecursion in the ring buffer, and that has a very small number it\nallows, I decided to use that same variable to add flags that can detect\nthe recursion inside the infrastructure of the function tracer.\n\nI plan to change it so that the task struct bit can be checked in\nmcount, but as that requires changes to all archs, I will hold that off\nto the next merge window.\n\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nLink: http://lkml.kernel.org/r/1306348063.1465.116.camel@gandalf.stny.rr.com\nReported-by: Witold Baryluk \u003cbaryluk@smp.if.uj.edu.pl\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    }
  ],
  "next": "2fc1b6f0d0a719e1e2a30bf076a3a799feaf6af2"
}
