)]}'
{
  "log": [
    {
      "commit": "7ec9df1fdd1ebbca765d82eeed7dda11e052b294",
      "tree": "b8689f4e74d21ac78f42d0cc840a13a775d41d65",
      "parents": [
        "56a32fec794e088244241868de1c01f2f5bbc0ea"
      ],
      "author": {
        "name": "Kaushal Kumar",
        "email": "kaushalk@codeaurora.org",
        "time": "Thu May 15 19:19:04 2014 +0530"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Wed Aug 10 16:36:08 2016 -0500"
      },
      "message": "sched: Remove synchronize rcu/sched calls from _cpu_down\n\nThere is no need for sync_sched() in _cpu_down as stop_machine()\nprovides that barrier implicitly. Removing it also helps improve\nhot-unplug latency.\n\nThe sync_sched/rcu were earlier removed for the same reason by the\ncommit 9ee349ad6d32 (\"sched: Fix set_cpu_active() in cpu_down()\"),\nbut recently got added as part of commit 6acce3ef8452 (\"sched:\nRemove get_online_cpus() usage.\").\n\nCRs-Fixed: 667325\nChange-Id: I97763004454d082d3cc2d9d9dbef7da923608600\nSigned-off-by: Kaushal Kumar \u003ckaushalk@codeaurora.org\u003e\n[mattw@codeaurora.org: fix-up commit hashes in commit text]\nSigned-off-by: Matt Wagantall \u003cmattw@codeaurora.org\u003e\n"
    },
    {
      "commit": "56a32fec794e088244241868de1c01f2f5bbc0ea",
      "tree": "aaf9518752eebc8d333828590aa2e8401ee91e03",
      "parents": [
        "db7eb0fa96d255d6d5905f9777f2a85afcd99dee"
      ],
      "author": {
        "name": "Michael wang",
        "email": "wangyun@linux.vnet.ibm.com",
        "time": "Wed Nov 13 11:10:56 2013 +0800"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Wed Aug 10 16:36:02 2016 -0500"
      },
      "message": "sched: Fix endless sync_sched/rcu() loop inside _cpu_down()\n\nCommit 6acce3ef8:\n\n\tsched: Remove get_online_cpus() usage\n\ntries to do sync_sched/rcu() inside _cpu_down() but triggers:\n\n\tINFO: task swapper/0:1 blocked for more than 120 seconds.\n\t...\n\t[\u003cffffffff811263dc\u003e] synchronize_rcu+0x2c/0x30\n\t[\u003cffffffff81d1bd82\u003e] _cpu_down+0x2b2/0x340\n\t...\n\nIt was caused by that in the rcu boost case we rely on smpboot thread to\nfinish the rcu callback, which has already been parked before sync in here\nand leads to the endless sync_sched/rcu().\n\nThis patch exchanges the sequence of smpboot_park_threads() and\nsync_sched/rcu() to fix the bug.\n\nCRs-fixed: 647141\nChange-Id: Ia8b325d7c3c778f428d9fb51271977c849df32ad\nReported-by: Fengguang Wu \u003cfengguang.wu@intel.com\u003e\nTested-by: Fengguang Wu \u003cfengguang.wu@intel.com\u003e\nSigned-off-by: Michael Wang \u003cwangyun@linux.vnet.ibm.com\u003e\nSigned-off-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nLink: http://lkml.kernel.org/r/5282EDC0.6060003@linux.vnet.ibm.com\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\nGit-commit: 106dd5afde3cd10db7e1370b6ddc77f0b2496a75\nGit-repo: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git\nSigned-off-by: Kaushal Kumar \u003ckaushalk@codeaurora.org\u003e\n"
    },
    {
      "commit": "efeac5e81fadd63d38142a555375265640d155cc",
      "tree": "788bb9c6fac4cee222e58fe3a6cffd1384375ccc",
      "parents": [
        "106cf7e2a55ad474d05fe63bd4831821d35f42e2"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "peterz@infradead.org",
        "time": "Fri Oct 11 14:38:20 2013 +0200"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Wed Aug 10 16:35:49 2016 -0500"
      },
      "message": "sched: Remove get_online_cpus() usage\n\nRemove get_online_cpus() usage from the scheduler; there\u0027s 4 sites that\nuse it:\n\n - sched_init_smp(); where its completely superfluous since we\u0027re in\n   \u0027early\u0027 boot and there simply cannot be any hotplugging.\n\n - sched_getaffinity(); we already take a raw spinlock to protect the\n   task cpus_allowed mask, this disables preemption and therefore\n   also stabilizes cpu_online_mask as that\u0027s modified using\n   stop_machine. However switch to active mask for symmetry with\n   sched_setaffinity()/set_cpus_allowed_ptr(). We guarantee active\n   mask stability by inserting sync_rcu/sched() into _cpu_down.\n\n - sched_setaffinity(); we don\u0027t appear to need get_online_cpus()\n   either, there\u0027s two sites where hotplug appears relevant:\n    * cpuset_cpus_allowed(); for the !cpuset case we use possible_mask,\n      for the cpuset case we hold task_lock, which is a spinlock and\n      thus for mainline disables preemption (might cause pain on RT).\n    * set_cpus_allowed_ptr(); Holds all scheduler locks and thus has\n      preemption properly disabled; also it already deals with hotplug\n      races explicitly where it releases them.\n\n - migrate_swap(); we can make stop_two_cpus() do the heavy lifting for\n   us with a little trickery. By adding a sync_sched/rcu() after the\n   CPU_DOWN_PREPARE notifier we can provide preempt/rcu guarantees for\n   cpu_active_mask. Use these to validate that both our cpus are active\n   when queueing the stop work before we queue the stop_machine works\n   for take_cpu_down().\n\nCRs-fixed: 647141\nChange-Id: Id41e66659574f716de0e7c29f477e56a86db9404\nSigned-off-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: \"Srivatsa S. Bhat\" \u003csrivatsa.bhat@linux.vnet.ibm.com\u003e\nCc: Paul McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nLink: http://lkml.kernel.org/r/20131011123820.GV3081@twins.programming.kicks-ass.net\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\nGit-commit: 6acce3ef84520537f8a09a12c9ddbe814a584dd2\nGit-repo: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git\n[kaushalk@codeaurora.org: get_online_cpus has only 3 sites of usage in\n kernel/sched/core.c of msm-3.10 so migrate_swap changes are not\n applicable here. stop_two_cpus related change is not applicable to\n msm-3.10, so skip it.]\nSigned-off-by: Kaushal Kumar \u003ckaushalk@codeaurora.org\u003e\n"
    },
    {
      "commit": "2a41c3c44d04dd7805f0881e830f123dd4bb95fb",
      "tree": "35af8b677f980a68c7297ca50ecf393cc495a59c",
      "parents": [
        "2bf1c8f66507fde33516820264638a101420329b"
      ],
      "author": {
        "name": "Srivatsa S. Bhat",
        "email": "srivatsa.bhat@linux.vnet.ibm.com",
        "time": "Mon Oct 08 23:28:20 2012 +0000"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Wed Aug 10 16:34:29 2016 -0500"
      },
      "message": "CPU hotplug, debug: detect imbalance between get_online_cpus() and put_online_cpus()\n\nThe synchronization between CPU hotplug readers and writers is achieved\nby means of refcounting, safeguarded by the cpu_hotplug.lock.\n\nget_online_cpus() increments the refcount, whereas put_online_cpus()\ndecrements it.  If we ever hit an imbalance between the two, we end up\ncompromising the guarantees of the hotplug synchronization i.e, for\nexample, an extra call to put_online_cpus() can end up allowing a\nhotplug reader to execute concurrently with a hotplug writer.\n\nSo, add a WARN_ON() in put_online_cpus() to detect such cases where the\nrefcount can go negative, and also attempt to fix it up, so that we can\ncontinue to run.\n\nChange-Id: I144efeaa5899a2e8a3cddd21f010679cbaaa2459\nSigned-off-by: Srivatsa S. Bhat \u003csrivatsa.bhat@linux.vnet.ibm.com\u003e\nReviewed-by: Yasuaki Ishimatsu \u003cisimatu.yasuaki@jp.fujitsu.com\u003e\nCc: Jiri Kosina \u003cjkosina@suse.cz\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Ingo Molnar \u003cmingo@kernel.org\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nGit-commit: 075663d19885eb3738fd2d7dbdb8947e12563b68\nGit-repo: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git\nSigned-off-by: Osvaldo Banuelos \u003cosvaldob@codeaurora.org\u003e\n"
    },
    {
      "commit": "1dc72590e398501cd6e28f53b18b94a3eef0b1a6",
      "tree": "ef9609674478312b3b1f956fa142fa1c2495b468",
      "parents": [
        "f21320b9195694f87dfb530eec511a2d4436d71a"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Wed Apr 15 12:45:41 2015 +0300"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Wed Aug 10 16:28:48 2016 -0500"
      },
      "message": "cpu: Handle smpboot_unpark_threads() uniformly\n\nCommit 8d33fe6 (cpu: Defer smpboot kthread unparking until CPU known\nto scheduler) put the online path\u0027s call to smpboot_unpark_threads()\ninto a CPU-hotplug notifier.  This commit places the offline-failure\npaths call into the same notifier for the sake of uniformity.\n\nNote that it is not currently possible to place the offline path\u0027s call to\nsmpboot_park_threads() into an existing notifier because the CPU_DYING\nnotifiers run in a restricted environment, and the CPU_UP_PREPARE\nnotifiers run too soon.\n\nChange-Id: I43546fdab4cb921f8210bad39da56e85e72a2122\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "f21320b9195694f87dfb530eec511a2d4436d71a",
      "tree": "d17b9d73d0ae425f917cee536d74672c11c5cb97",
      "parents": [
        "e0cdcf8dc3c926e44406624aaf70924b58d90f3c"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Sun Apr 12 08:06:55 2015 -0700"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Wed Aug 10 16:28:42 2016 -0500"
      },
      "message": "cpu: Defer smpboot kthread unparking until CPU known to scheduler\n\nCurrently, smpboot_unpark_threads() is invoked before the incoming CPU\nhas been added to the scheduler\u0027s runqueue structures.  This might\npotentially cause the unparked kthread to run on the wrong CPU, since the\ncorrect CPU isn\u0027t fully set up yet.\n\nThat causes a sporadic, hard to debug boot crash triggering on some\nsystems, reported by Borislav Petkov, and bisected down to:\n\n  2a442c9c6453 (\"x86: Use common outgoing-CPU-notification code\")\n\nThis patch places smpboot_unpark_threads() in a CPU hotplug\nnotifier with priority set so that these kthreads are unparked just after\nthe CPU has been added to the runqueues.\n\nChange-Id: I8921987de9c2a2f475cc63dc82662d6ebf6e8725\nReported-and-tested-by: Borislav Petkov \u003cbp@suse.de\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: linux-kernel@vger.kernel.org\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\nGit-commit: 00df35f991914db6b8bde8cf09808e19a9cffc3d\nGit-repo: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git\nSigned-off-by: Matt Wagantall \u003cmattw@codeaurora.org\u003e\n"
    },
    {
      "commit": "1097d78180e1a2916c2bcdb15cb90ba131af9cd8",
      "tree": "5910f8fc0dcb85c71011ccccee18895769699390",
      "parents": [
        "3ded4adc97887ddde3c1855f29f062e015d19425",
        "7fd7a446b1c2b96252e4389746e5419eae04faef"
      ],
      "author": {
        "name": "Paul",
        "email": "javelinanddart@gmail.com",
        "time": "Sun Jan 11 17:15:40 2015 -0800"
      },
      "committer": {
        "name": "Ethan Chen",
        "email": "intervigil@gmail.com",
        "time": "Sun Jan 11 17:20:45 2015 -0800"
      },
      "message": "Merge tag \u0027v3.4.105\u0027 into cm-12.0\n\nThis is the 3.4.105 stable release\n\nConflicts:\n\tarch/arm/mm/proc-v7.S\n\tdrivers/bluetooth/hci_ldisc.c\n\tdrivers/media/dvb/dvb-core/dmxdev.c\n\tdrivers/usb/core/driver.c\n\tdrivers/usb/dwc3/core.c\n\tdrivers/usb/host/xhci-hub.c\n\tdrivers/usb/host/xhci.c\n\tdrivers/usb/serial/qcserial.c\n\tdrivers/usb/serial/usb_wwan.c\n\tkernel/events/core.c\n\tkernel/time/tick-sched.ck\n\tkernel/futex.c\n\tmm/memory_hotplug.c\n\tmm/vmscan.c\n\tnet/bluetooth/hci_conn.c\n\tnet/bluetooth/hci_event.c\n\tnet/bluetooth/l2cap_core.c\n\tnet/ipv4/ping.c\n\tnet/wireless/nl80211.c\n\tsound/soc/soc-core.c\n\nChange-Id: Id09da84afb427ba1a32ff26e74f2bb86458d4a2e\n"
    },
    {
      "commit": "d6e81d4f7b4e8cea2817c7568e3756798cd29aae",
      "tree": "0f9ff9d27bcba2a3278122bb4834a33a4da02266",
      "parents": [
        "ee40d72c3e6fc7e6cd5241eb84fa104b61dc8ec3"
      ],
      "author": {
        "name": "Lai Jiangshan",
        "email": "laijs@cn.fujitsu.com",
        "time": "Fri May 16 11:50:42 2014 +0800"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Wed Jun 11 12:04:11 2014 -0700"
      },
      "message": "sched: Fix hotplug vs. set_cpus_allowed_ptr()\n\ncommit 6acbfb96976fc3350e30d964acb1dbbdf876d55e upstream.\n\nLai found that:\n\n  WARNING: CPU: 1 PID: 13 at arch/x86/kernel/smp.c:124 native_smp_send_reschedule+0x2d/0x4b()\n  ...\n  migration_cpu_stop+0x1d/0x22\n\nwas caused by set_cpus_allowed_ptr() assuming that cpu_active_mask is\nalways a sub-set of cpu_online_mask.\n\nThis isn\u0027t true since 5fbd036b552f (\"sched: Cleanup cpu_active madness\").\n\nSo set active and online at the same time to avoid this particular\nproblem.\n\nFixes: 5fbd036b552f (\"sched: Cleanup cpu_active madness\")\nSigned-off-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nSigned-off-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Gautham R. Shenoy \u003cego@linux.vnet.ibm.com\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Michael wang \u003cwangyun@linux.vnet.ibm.com\u003e\nCc: Paul Gortmaker \u003cpaul.gortmaker@windriver.com\u003e\nCc: Rafael J. Wysocki \u003crafael.j.wysocki@intel.com\u003e\nCc: Srivatsa S. Bhat \u003csrivatsa.bhat@linux.vnet.ibm.com\u003e\nCc: Toshi Kani \u003ctoshi.kani@hp.com\u003e\nLink: http://lkml.kernel.org/r/53758B12.8060609@cn.fujitsu.com\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "b0de7572f02ecc18dd73e653e4f46bf68ed1a21f",
      "tree": "0ee0d8708edfbdfccb3ebb13ff927e7f1f0fbc3c",
      "parents": [
        "1cc5b19aa3e32f9b0c6a7663fa3ffb1f22652595"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Thu Jan 31 12:11:14 2013 +0000"
      },
      "committer": {
        "name": "Ethan Chen",
        "email": "intervigil@gmail.com",
        "time": "Sat Mar 29 00:49:57 2014 -0700"
      },
      "message": "stop_machine: Use smpboot threads\n\nUse the smpboot thread infrastructure. Mark the stopper thread\nselfparking and park it after it has finished the take_cpu_down()\nwork.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Paul McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: Srivatsa S. Bhat \u003csrivatsa.bhat@linux.vnet.ibm.com\u003e\nCc: Arjan van de Veen \u003carjan@infradead.org\u003e\nCc: Paul Turner \u003cpjt@google.com\u003e\nCc: Richard Weinberger \u003crw@linutronix.de\u003e\nCc: Magnus Damm \u003cmagnus.damm@gmail.com\u003e\nLink: http://lkml.kernel.org/r/20130131120741.686315164@linutronix.de\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n\nChange-Id: I30771810f2cbb2a64ca090864156edc79d338dfd\n"
    },
    {
      "commit": "a63b4ccf0332e6ddea65fa473dc0912e8433432f",
      "tree": "f96709aa87d8ea7a4bf81d9c0e54ffa151cb6180",
      "parents": [
        "20bdb6ed0478fc5d79e1fb3f9ae97808a2670fee"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Jul 16 10:42:36 2012 +0000"
      },
      "committer": {
        "name": "Ethan Chen",
        "email": "intervigil@gmail.com",
        "time": "Sat Mar 29 00:49:55 2014 -0700"
      },
      "message": "smpboot: Provide infrastructure for percpu hotplug threads\n\nProvide a generic interface for setting up and tearing down percpu\nthreads.\n\nOn registration the threads for already online cpus are created and\nstarted. On deregistration (modules) the threads are stoppped.\n\nDuring hotplug operations the threads are created, started, parked and\nunparked. The datastructure for registration provides a pointer to\npercpu storage space and optional setup, cleanup, park, unpark\nfunctions. These functions are called when the thread state changes.\n\nEach implementation has to provide a function which is queried and\nreturns whether the thread should run and the thread function itself.\n\nThe core code handles all state transitions and avoids duplicated code\nin the call sites.\n\n[ paulmck: Preemption leak fix ]\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nReviewed-by: Srivatsa S. Bhat \u003csrivatsa.bhat@linux.vnet.ibm.com\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nReviewed-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: Namhyung Kim \u003cnamhyung@kernel.org\u003e\nLink: http://lkml.kernel.org/r/20120716103948.352501068@linutronix.de\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n\nChange-Id: Ib2ac667cd13cf26a042d65c1b3f20fe7e4b02423\n"
    },
    {
      "commit": "ad6a2c704a934a832a9e90fdfa15cc7c2f144437",
      "tree": "c5523330b69324738f7c3d79265415f937074fec",
      "parents": [
        "c5989bd43645dbb5d48197b02397565d1ceffa29"
      ],
      "author": {
        "name": "Suresh Siddha",
        "email": "suresh.b.siddha@intel.com",
        "time": "Fri Apr 20 17:08:50 2012 -0700"
      },
      "committer": {
        "name": "Ethan Chen",
        "email": "intervigil@gmail.com",
        "time": "Sat Mar 29 00:49:53 2014 -0700"
      },
      "message": "smp, idle: Allocate idle thread for each possible cpu during boot\n\npercpu areas are already allocated during boot for each possible cpu.\npercpu idle threads can be considered as an extension of the percpu areas,\nand allocate them for each possible cpu during boot.\n\nThis will eliminate the need for workqueue based idle thread allocation.\nIn future we can move the idle thread area into the percpu area too.\n\n[ tglx: Moved the loop into smpboot.c and added an error check when\n  the init code failed to allocate an idle thread for a cpu which\n  should be onlined ]\n\nSigned-off-by: Suresh Siddha \u003csuresh.b.siddha@intel.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: Srivatsa S. Bhat \u003csrivatsa.bhat@linux.vnet.ibm.com\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: venki@google.com\nLink: http://lkml.kernel.org/r/1334966930.28674.245.camel@sbsiddha-desk.sc.intel.com\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n\nChange-Id: I36828165fc08b7c0a8a0fe6a2aa24d358e623dd2\n"
    },
    {
      "commit": "33d588d0d93e7bf0af4b05420585bfc5df474e63",
      "tree": "3f8cd716316674e2f68e3e4717cb2b2f6a37b5e7",
      "parents": [
        "2e418308459c3a9171f345ba1769bdd0969be97f"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri Apr 20 13:05:44 2012 +0000"
      },
      "committer": {
        "name": "Ethan Chen",
        "email": "intervigil@gmail.com",
        "time": "Sat Mar 29 00:49:52 2014 -0700"
      },
      "message": "smp: Add generic smpboot facility\n\nStart a new file, which will hold SMP and CPU hotplug related generic\ninfrastructure.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: Srivatsa S. Bhat \u003csrivatsa.bhat@linux.vnet.ibm.com\u003e\nCc: Matt Turner \u003cmattst88@gmail.com\u003e\nCc: Russell King \u003clinux@arm.linux.org.uk\u003e\nCc: Mike Frysinger \u003cvapier@gentoo.org\u003e\nCc: Jesper Nilsson \u003cjesper.nilsson@axis.com\u003e\nCc: Richard Kuo \u003crkuo@codeaurora.org\u003e\nCc: Tony Luck \u003ctony.luck@intel.com\u003e\nCc: Hirokazu Takata \u003ctakata@linux-m32r.org\u003e\nCc: Ralf Baechle \u003cralf@linux-mips.org\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: James E.J. Bottomley \u003cjejb@parisc-linux.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: David S. Miller \u003cdavem@davemloft.net\u003e\nCc: Chris Metcalf \u003ccmetcalf@tilera.com\u003e\nCc: Richard Weinberger \u003crichard@nod.at\u003e\nCc: x86@kernel.org\nLink: http://lkml.kernel.org/r/20120420124557.035417523@linutronix.de\n\nChange-Id: Ia1ad435435aa12c47ac0d381ae031ebf6edcff1f\n"
    },
    {
      "commit": "67bed6808090539cefdc0ecd2738e12ba8bc037e",
      "tree": "554f4cf1f7d9ec8997ffbbf74d0a5284f98cd17c",
      "parents": [
        "1bee7b9b43a3b5530c62523d582aef7c3f7028ca"
      ],
      "author": {
        "name": "Arun Bharadwaj",
        "email": "abharadw@codeaurora.org",
        "time": "Wed Jul 03 10:35:02 2013 -0700"
      },
      "committer": {
        "name": "Ethan Chen",
        "email": "intervigil@gmail.com",
        "time": "Fri Jan 17 22:12:13 2014 -0800"
      },
      "message": "tracing/sched: Add trace events to track cpu hotplug.\n\nAdd ftrace event trace_sched_cpu_hotplug to track cpu\nhot-add and hot-remove events.\n\nThis is useful in a variety of power, performance and\ndebug analysis scenarios.\n\nChange-Id: I5d202c7a229ffacc3aafb7cf9afee0b0ee7b0931\nSigned-off-by: Arun Bharadwaj \u003cabharadw@codeaurora.org\u003e\n"
    },
    {
      "commit": "2a38ada0f1ab9f894eea4428731ebc811b51c3f3",
      "tree": "759c765808a23a3a35e4ba10d8306c847c0205b7",
      "parents": [
        "19218e895cefdd389c96af12c93c89e7276bbaad",
        "44d19f5a04ae4e433548ba2f25e4d2ccfcac765e"
      ],
      "author": {
        "name": "Ethan Chen",
        "email": "intervigil@gmail.com",
        "time": "Sun Dec 08 12:50:38 2013 -0800"
      },
      "committer": {
        "name": "Ethan Chen",
        "email": "intervigil@gmail.com",
        "time": "Sun Dec 08 12:50:38 2013 -0800"
      },
      "message": "Merge tag \u0027v3.4.72\u0027 into tmp\n\nThis is the 3.4.72 stable release\n\nConflicts:\n\tarch/arm/Kconfig\n\tarch/arm/include/asm/mutex.h\n\tarch/arm/kernel/perf_event.c\n\tarch/arm/kernel/traps.c\n\tarch/arm/mm/dma-mapping.c\n\tdrivers/base/power/main.c\n\tdrivers/bluetooth/ath3k.c\n\tdrivers/bluetooth/btusb.c\n\tdrivers/gpu/drm/radeon/radeon_mode.h\n\tdrivers/mmc/card/block.c\n\tdrivers/mmc/host/sdhci.c\n\tdrivers/usb/core/message.c\n\tdrivers/usb/host/xhci-plat.c\n\tdrivers/usb/host/xhci.h\n\tdrivers/virtio/virtio_ring.c\n\tfs/ubifs/dir.c\n\tinclude/linux/freezer.h\n\tinclude/linux/virtio.h\n\tinclude/media/v4l2-ctrls.h\n\tinclude/net/bluetooth/hci_core.h\n\tinclude/net/bluetooth/mgmt.h\n\tkernel/cgroup.c\n\tkernel/futex.c\n\tkernel/signal.c\n\tnet/bluetooth/hci_conn.c\n\tnet/bluetooth/hci_core.c\n\tnet/bluetooth/hci_event.c\n\tnet/bluetooth/l2cap_core.c\n\tnet/bluetooth/mgmt.c\n\tnet/bluetooth/rfcomm/sock.c\n\tnet/bluetooth/smp.c\n\nChange-Id: I4fb0d5de74ca76f933d95d98e1a9c2c859402f34\n"
    },
    {
      "commit": "f8fed45b504cb8c716c8684a1018217e7ac74e9d",
      "tree": "b298d9750fd5bee70c1ece4a777d7484bb7d39de",
      "parents": [
        "4f158a61fd1de13f4a77c48c40e4f13bf35a7703"
      ],
      "author": {
        "name": "Anil kumar mamidala",
        "email": "amami@codeaurora.org",
        "time": "Fri Oct 25 14:04:34 2013 +0530"
      },
      "committer": {
        "name": "Ethan Chen",
        "email": "intervigil@gmail.com",
        "time": "Fri Nov 01 11:42:29 2013 -0700"
      },
      "message": "msm:pm: Fix for race condition of starting cpu1 when cpu0 in PC.\n\nThere is a window where core sends ipi to secondary core and\nwait for it to come online for 1 second. This would allow\ncore0 to go power collapse in a rare condition where core1\nstarted booting and doesn\u0027t become online yet.\n\nFix this by not allowing power collapse on core0\nif hot plug operation is in progress.\n\nCRs-fixed: 545714.\nChange-Id: I1ca503a2f09cd9a65c2fdcd41eb54466a1e486c5\nSigned-off-by: Anil kumar mamidala \u003camami@codeaurora.org\u003e\n"
    },
    {
      "commit": "b3cba474228862814480d40554f77e98483f41ed",
      "tree": "ac70cc8e20df21d9f64b27bd5f2318964b204cd1",
      "parents": [
        "91c930674642f4b849d64398db261ad13c3ab354"
      ],
      "author": {
        "name": "Srivatsa S. Bhat",
        "email": "srivatsa.bhat@linux.vnet.ibm.com",
        "time": "Wed Jun 12 14:04:36 2013 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Thu Jun 20 11:58:44 2013 -0700"
      },
      "message": "CPU hotplug: provide a generic helper to disable/enable CPU hotplug\n\ncommit 16e53dbf10a2d7e228709a7286310e629ede5e45 upstream.\n\nThere are instances in the kernel where we would like to disable CPU\nhotplug (from sysfs) during some important operation.  Today the freezer\ncode depends on this and the code to do it was kinda tailor-made for\nthat.\n\nRestructure the code and make it generic enough to be useful for other\nusecases too.\n\nSigned-off-by: Srivatsa S. Bhat \u003csrivatsa.bhat@linux.vnet.ibm.com\u003e\nSigned-off-by: Robin Holt \u003cholt@sgi.com\u003e\nCc: H. Peter Anvin \u003chpa@zytor.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Russ Anderson \u003crja@sgi.com\u003e\nCc: Robin Holt \u003cholt@sgi.com\u003e\nCc: Russell King \u003clinux@arm.linux.org.uk\u003e\nCc: Guan Xuetao \u003cgxt@mprc.pku.edu.cn\u003e\nCc: Shawn Guo \u003cshawn.guo@linaro.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "a12d59168233eb1ef96732c4ee45890e96fa5550",
      "tree": "6d9c94aa5bcc5eda4a1717a30de462e86d636165",
      "parents": [
        "72d2ba19373c045d53c14605a73fef3d237d5f70"
      ],
      "author": {
        "name": "Todd Poynor",
        "email": "toddpoynor@google.com",
        "time": "Wed Jun 15 17:21:57 2011 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Mon Apr 09 13:57:52 2012 -0700"
      },
      "message": "Move x86_64 idle notifiers to generic\n\nMove the x86_64 idle notifiers originally by Andi Kleen and Venkatesh\nPallipadi to generic.\n\nChange-Id: Idf29cda15be151f494ff245933c12462643388d5\nAcked-by: Nicolas Pitre \u003cnicolas.pitre@linaro.org\u003e\nSigned-off-by: Todd Poynor \u003ctoddpoynor@google.com\u003e\n"
    },
    {
      "commit": "eb59c505f8a5906ad2e053d14fab50eb8574fd6f",
      "tree": "c6e875adc12b481b916e847e8f80b8881a0fb02c",
      "parents": [
        "1619ed8f60959829d070d8f39cd2f8ca0e7135ce",
        "c233523b3d392e530033a7587d7970dc62a02361"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jan 08 13:10:57 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jan 08 13:10:57 2012 -0800"
      },
      "message": "Merge branch \u0027pm-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm\n\n* \u0027pm-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (76 commits)\n  PM / Hibernate: Implement compat_ioctl for /dev/snapshot\n  PM / Freezer: fix return value of freezable_schedule_timeout_killable()\n  PM / shmobile: Allow the A4R domain to be turned off at run time\n  PM / input / touchscreen: Make st1232 use device PM QoS constraints\n  PM / QoS: Introduce dev_pm_qos_add_ancestor_request()\n  PM / shmobile: Remove the stay_on flag from SH7372\u0027s PM domains\n  PM / shmobile: Don\u0027t include SH7372\u0027s INTCS in syscore suspend/resume\n  PM / shmobile: Add support for the sh7372 A4S power domain / sleep mode\n  PM: Drop generic_subsys_pm_ops\n  PM / Sleep: Remove forward-only callbacks from AMBA bus type\n  PM / Sleep: Remove forward-only callbacks from platform bus type\n  PM: Run the driver callback directly if the subsystem one is not there\n  PM / Sleep: Make pm_op() and pm_noirq_op() return callback pointers\n  PM/Devfreq: Add Exynos4-bus device DVFS driver for Exynos4210/4212/4412.\n  PM / Sleep: Merge internal functions in generic_ops.c\n  PM / Sleep: Simplify generic system suspend callbacks\n  PM / Hibernate: Remove deprecated hibernation snapshot ioctls\n  PM / Sleep: Fix freezer failures due to racy usermodehelper_is_disabled()\n  ARM: S3C64XX: Implement basic power domain support\n  PM / shmobile: Use common always on power domain governor\n  ...\n\nFix up trivial conflict in fs/xfs/xfs_buf.c due to removal of unused\nXBT_FORCE_SLEEP bit\n"
    },
    {
      "commit": "0db49b72bce26341274b74fd968501489a361ae3",
      "tree": "cdb076827aefb38d719d4c42f8ef291c36072fa8",
      "parents": [
        "35b740e4662ef386f0c60e1b60aaf5b44db9914c",
        "1ac9bc6943edf7d181b4b1cc734981350d4f6bae"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 06 08:33:28 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 06 08:44:54 2012 -0800"
      },
      "message": "Merge branch \u0027sched-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\n* \u0027sched-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (40 commits)\n  sched/tracing: Add a new tracepoint for sleeptime\n  sched: Disable scheduler warnings during oopses\n  sched: Fix cgroup movement of waking process\n  sched: Fix cgroup movement of newly created process\n  sched: Fix cgroup movement of forking process\n  sched: Remove cfs bandwidth period check in tg_set_cfs_period()\n  sched: Fix load-balance lock-breaking\n  sched: Replace all_pinned with a generic flags field\n  sched: Only queue remote wakeups when crossing cache boundaries\n  sched: Add missing rcu_dereference() around -\u003ereal_parent usage\n  [S390] fix cputime overflow in uptime_proc_show\n  [S390] cputime: add sparse checking and cleanup\n  sched: Mark parent and real_parent as __rcu\n  sched, nohz: Fix missing RCU read lock\n  sched, nohz: Set the NOHZ_BALANCE_KICK flag for idle load balancer\n  sched, nohz: Fix the idle cpu check in nohz_idle_balance\n  sched: Use jump_labels for sched_feat\n  sched/accounting: Fix parameter passing in task_group_account_field\n  sched/accounting: Fix user/system tick double accounting\n  sched/accounting: Re-use scheduler statistics for the root cgroup\n  ...\n\nFix up conflicts in\n - arch/ia64/include/asm/cputime.h, include/asm-generic/cputime.h\n\tusecs_to_cputime64() vs the sparse cleanups\n - kernel/sched/fair.c, kernel/time/tick-sched.c\n\tscheduler changes in multiple branches\n"
    },
    {
      "commit": "648616343cdbe904c585a6c12e323d3b3c72e46f",
      "tree": "514bce1b52663db4ab5662b637c764cf3c2ed1eb",
      "parents": [
        "55b02d2f4445ad625213817a1736bf2884d32547"
      ],
      "author": {
        "name": "Martin Schwidefsky",
        "email": "schwidefsky@de.ibm.com",
        "time": "Thu Dec 15 14:56:09 2011 +0100"
      },
      "committer": {
        "name": "Martin Schwidefsky",
        "email": "schwidefsky@de.ibm.com",
        "time": "Thu Dec 15 14:56:19 2011 +0100"
      },
      "message": "[S390] cputime: add sparse checking and cleanup\n\nMake cputime_t and cputime64_t nocast to enable sparse checking to\ndetect incorrect use of cputime. Drop the cputime macros for simple\nscalar operations. The conversion macros are still needed.\n\nSigned-off-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\n"
    },
    {
      "commit": "a513f6bab0939800dcf1e7c075e733420cf967c5",
      "tree": "ee3013ec805b01dc9bf553adcc286f013ab6de92",
      "parents": [
        "4f89b336fd1edf0c88875d0b7fcdc288c7de903d"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paul.mckenney@linaro.org",
        "time": "Sun Dec 11 21:54:45 2011 -0800"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Mon Dec 12 15:55:15 2011 -0800"
      },
      "message": "cpu: Export cpu_up()\n\nBuilding rcutorture as a module requires cpu_up() as well as cpu_down()\nexported, so apply EXPORT_SYMBOL_GPL().\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": "d7268a31c8aabc5a29ccc7f76de84383e5f38737",
      "tree": "6d72a54974849c5b6ba7c1b85e6122610a4b8d55",
      "parents": [
        "5307427a31c50041cc4d18c49e9cce1a9303ea04"
      ],
      "author": {
        "name": "Fenghua Yu",
        "email": "fenghua.yu@intel.com",
        "time": "Tue Nov 15 21:59:31 2011 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Wed Nov 23 21:15:20 2011 +0100"
      },
      "message": "CPU: Add right qualifiers for alloc_frozen_cpus() and cpu_hotplug_pm_sync_init()\n\nAdd __init for functions alloc_frozen_cpus() and cpu_hotplug_pm_sync_init()\nbecause they are only called during boot time.\n\nAdd static for function cpu_hotplug_pm_sync_init() because its scope is limited\nin this file only.\n\nSigned-off-by: Fenghua Yu \u003cfenghua.yu@intel.com\u003e\nAcked-by: Srivatsa S. Bhat \u003csrivatsa.bhat@linux.vnet.ibm.com\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "32aaeffbd4a7457bf2f7448b33b5946ff2a960eb",
      "tree": "faf7ad871d87176423ff9ed1d1ba4d9c688fc23f",
      "parents": [
        "208bca0860406d16398145ddd950036a737c3c9d",
        "67b84999b1a8b1af5625b1eabe92146c5eb42932"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Nov 06 19:44:47 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Nov 06 19:44:47 2011 -0800"
      },
      "message": "Merge branch \u0027modsplit-Oct31_2011\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux\n\n* \u0027modsplit-Oct31_2011\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux: (230 commits)\n  Revert \"tracing: Include module.h in define_trace.h\"\n  irq: don\u0027t put module.h into irq.h for tracking irqgen modules.\n  bluetooth: macroize two small inlines to avoid module.h\n  ip_vs.h: fix implicit use of module_get/module_put from module.h\n  nf_conntrack.h: fix up fallout from implicit moduleparam.h presence\n  include: replace linux/module.h with \"struct module\" wherever possible\n  include: convert various register fcns to macros to avoid include chaining\n  crypto.h: remove unused crypto_tfm_alg_modname() inline\n  uwb.h: fix implicit use of asm/page.h for PAGE_SIZE\n  pm_runtime.h: explicitly requires notifier.h\n  linux/dmaengine.h: fix implicit use of bitmap.h and asm/page.h\n  miscdevice.h: fix up implicit use of lists and types\n  stop_machine.h: fix implicit use of smp.h for smp_processor_id\n  of: fix implicit use of errno.h in include/linux/of.h\n  of_platform.h: delete needless include \u003clinux/module.h\u003e\n  acpi: remove module.h include from platform/aclinux.h\n  miscdevice.h: delete unnecessary inclusion of module.h\n  device_cgroup.h: delete needless include \u003clinux/module.h\u003e\n  net: sch_generic remove redundant use of \u003clinux/module.h\u003e\n  net: inet_timewait_sock doesnt need \u003clinux/module.h\u003e\n  ...\n\nFix up trivial conflicts (other header files, and  removal of the ab3550 mfd driver) in\n - drivers/media/dvb/frontends/dibx000_common.c\n - drivers/media/video/{mt9m111.c,ov6650.c}\n - drivers/mfd/ab3550-core.c\n - include/linux/dmaengine.h\n"
    },
    {
      "commit": "79cfbdfa87e84992d509e6c1648a18e1d7e68c20",
      "tree": "cc82be9bc890aa0b2b635ceff06db2ed9056460d",
      "parents": [
        "ddf6ce45a7b1193f3cf20ad234f35af3b998b8f8"
      ],
      "author": {
        "name": "Srivatsa S. Bhat",
        "email": "srivatsa.bhat@linux.vnet.ibm.com",
        "time": "Thu Nov 03 00:59:25 2011 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Fri Nov 04 22:28:09 2011 +0100"
      },
      "message": "PM / Sleep: Fix race between CPU hotplug and freezer\n\nThe CPU hotplug notifications sent out by the _cpu_up() and _cpu_down()\nfunctions depend on the value of the \u0027tasks_frozen\u0027 argument passed to them\n(which indicates whether tasks have been frozen or not).\n(Examples for such CPU hotplug notifications: CPU_ONLINE, CPU_ONLINE_FROZEN,\nCPU_DEAD, CPU_DEAD_FROZEN).\n\nThus, it is essential that while the callbacks for those notifications are\nrunning, the state of the system with respect to the tasks being frozen or\nnot remains unchanged, *throughout that duration*. Hence there is a need for\nsynchronizing the CPU hotplug code with the freezer subsystem.\n\nSince the freezer is involved only in the Suspend/Hibernate call paths, this\npatch hooks the CPU hotplug code to the suspend/hibernate notifiers\nPM_[SUSPEND|HIBERNATE]_PREPARE and PM_POST_[SUSPEND|HIBERNATE] to prevent\nthe race between CPU hotplug and freezer, thus ensuring that CPU hotplug\nnotifications will always be run with the state of the system really being\nwhat the notifications indicate, _throughout_ their execution time.\n\nSigned-off-by: Srivatsa S. Bhat \u003csrivatsa.bhat@linux.vnet.ibm.com\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "9984de1a5a8a96275fcab818f7419af5a3c86e71",
      "tree": "1935d411752707a1621c5caf64f75dfe105beb3a",
      "parents": [
        "7c77509c542927ee2a3c8812fad84957e51bf67d"
      ],
      "author": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Mon May 23 14:51:41 2011 -0400"
      },
      "committer": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Mon Oct 31 09:20:12 2011 -0400"
      },
      "message": "kernel: Map most files to use export.h instead of module.h\n\nThe changed files were only including linux/module.h for the\nEXPORT_SYMBOL infrastructure, and nothing else.  Revector them\nonto the isolated export header for faster compile times.\n\nNothing to see here but a whole lot of instances of:\n\n  -#include \u003clinux/module.h\u003e\n  +#include \u003clinux/export.h\u003e\n\nThis commit is only changing the kernel dir; next targets\nwill probably be mm, fs, the arch dirs, etc.\n\nSigned-off-by: Paul Gortmaker \u003cpaul.gortmaker@windriver.com\u003e\n"
    },
    {
      "commit": "25985edcedea6396277003854657b5f3cb31a628",
      "tree": "f026e810210a2ee7290caeb737c23cb6472b7c38",
      "parents": [
        "6aba74f2791287ec407e0f92487a725a25908067"
      ],
      "author": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@profusion.mobi",
        "time": "Wed Mar 30 22:57:33 2011 -0300"
      },
      "committer": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@profusion.mobi",
        "time": "Thu Mar 31 11:26:23 2011 -0300"
      },
      "message": "Fix common misspellings\n\nFixes generated by \u0027codespell\u0027 and manually reviewed.\n\nSigned-off-by: Lucas De Marchi \u003clucas.demarchi@profusion.mobi\u003e\n"
    },
    {
      "commit": "4d51985e484dd11d9047dfcd1278ec9ccfb435d5",
      "tree": "6316b48bd1b99fcc793892a07f7bba56b1621b8f",
      "parents": [
        "34db18a054c600b6f81787165669dc572fe4de25"
      ],
      "author": {
        "name": "Michael Rodriguez",
        "email": "dkingston02@gmail.com",
        "time": "Tue Mar 22 16:34:07 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:11 2011 -0700"
      },
      "message": "kernel/cpu.c: fix many errors related to style.\n\nChange the printk() calls to have the KERN_INFO/KERN_ERROR stuff, and\nfixes other coding style errors.  Not _all_ of them are gone, though.\n\n[akpm@linux-foundation.org: revert the bits I disagree with]\nSigned-off-by: Michael Rodriguez \u003cdkingston02@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": "47935a731b7b850a4c6c0e55ed0741e3dd25d889",
      "tree": "6f5a97961f8e73e325d2bc1d6fb1899ad8f7d8e9",
      "parents": [
        "77a0dd54ba3c86b00ab7079bc3be5d82395ecab2",
        "3fb82d56ad003e804923185316236f26b30dfdd5",
        "fd35fbcdd1b2579a6e00a1545f7124e4005d0474",
        "9e76a97efd31a08cb19d0ba12013b8fb4ad3e474",
        "c8217b8305e5e75c23617f2f4cd262527d952c0a",
        "3cf9b85b474e656a0856b88290c7a289ac5ea247",
        "f6cd24777513fcc673d432cc29ef59881d3e4df1"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 06 11:11:50 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 06 11:11:50 2011 -0800"
      },
      "message": "Merge branches \u0027x86-alternatives-for-linus\u0027, \u0027x86-fpu-for-linus\u0027, \u0027x86-hwmon-for-linus\u0027, \u0027x86-paravirt-for-linus\u0027, \u0027core-locking-for-linus\u0027 and \u0027irq-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027x86-alternatives-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  x86, suspend: Avoid unnecessary smp alternatives switch during suspend/resume\n\n* \u0027x86-fpu-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  x86-64, asm: Use fxsaveq/fxrestorq in more places\n\n* \u0027x86-hwmon-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  x86, hwmon: Add core threshold notification to therm_throt.c\n\n* \u0027x86-paravirt-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  x86, paravirt: Use native_halt on a halt, not native_safe_halt\n\n* \u0027core-locking-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  locking, lockdep: Convert sprintf_symbol to %pS\n\n* \u0027irq-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  irq: Better struct irqaction layout\n"
    },
    {
      "commit": "3fb82d56ad003e804923185316236f26b30dfdd5",
      "tree": "3ee08bef7cdc0f0ed3b69be5609b53c44299a229",
      "parents": [
        "cf7d7e5a1980d1116ee152d25dac382b112b9c17"
      ],
      "author": {
        "name": "Suresh Siddha",
        "email": "suresh.b.siddha@intel.com",
        "time": "Tue Nov 23 16:11:40 2010 -0800"
      },
      "committer": {
        "name": "H. Peter Anvin",
        "email": "hpa@linux.intel.com",
        "time": "Mon Dec 13 16:23:56 2010 -0800"
      },
      "message": "x86, suspend: Avoid unnecessary smp alternatives switch during suspend/resume\n\nDuring suspend, we disable all the non boot cpus. And during resume we bring\nthem all back again. So no need to do alternatives_smp_switch() in between.\n\nOn my core 2 based laptop, this speeds up the suspend path by 15msec and the\nresume path by 5 msec (suspend/resume speed up differences can be attributed\nto the different P-states that the cpu is in during suspend/resume).\n\nSigned-off-by: Suresh Siddha \u003csuresh.b.siddha@intel.com\u003e\nLKML-Reference: \u003c1290557500.4946.8.camel@sbsiddha-MOBL3.sc.intel.com\u003e\nCc: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nSigned-off-by: H. Peter Anvin \u003chpa@linux.intel.com\u003e\n"
    },
    {
      "commit": "51a96c77815e7f139892a6e9c8275a50e9baebdf",
      "tree": "64388fce480b43d0588d108da9e4c526421486cf",
      "parents": [
        "2e01f4740a874b6085da6ebf541e7ffde9a72bf2"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Nov 19 20:37:53 2010 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Nov 23 10:29:08 2010 +0100"
      },
      "message": "cpu: Remove incorrect BUG_ON\n\nOleg mentioned that there is no actual guarantee the dying cpu\u0027s\nmigration thread is actually finished running when we get there, so\nreplace the BUG_ON() with a spinloop waiting for it.\n\nReported-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "2e01f4740a874b6085da6ebf541e7ffde9a72bf2",
      "tree": "ec040f4b5fe064042ad5ef81cdd4fa0c70d18178",
      "parents": [
        "70caf8a6c13c2279b35f2ad6b644815533d6c476"
      ],
      "author": {
        "name": "Dhaval Giani",
        "email": "dhaval.giani@gmail.com",
        "time": "Thu Nov 18 15:44:54 2010 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Nov 23 10:29:07 2010 +0100"
      },
      "message": "cpu: Remove unused variable\n\nGCC warns us about:\n\n kernel/cpu.c: In function ‘take_cpu_down’:\n kernel/cpu.c:200:15: warning: unused variable ‘cpu’\n\nThis variable is unused since param-\u003ehcpu is directly\nused later on in cpu_notify.\n\nSigned-off-by: Dhaval Giani \u003cdhaval_giani@gmail.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1290091494.1145.5.camel@gondor.retis\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "48c5ccae88dcd989d9de507e8510313c6cbd352b",
      "tree": "06fe8ce2ac28e9f5844de8bc32ecbef97e40d68b",
      "parents": [
        "92fd4d4d67b945c0766416284d4ab236b31542c4"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Sat Nov 13 19:32:29 2010 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Nov 18 13:27:46 2010 +0100"
      },
      "message": "sched: Simplify cpu-hot-unplug task migration\n\nWhile discussing the need for sched_idle_next(), Oleg remarked that\nsince try_to_wake_up() ensures sleeping tasks will end up running on a\nsane cpu, we can do away with migrate_live_tasks().\n\nIf we then extend the existing hack of migrating current from\nCPU_DYING to migrating the full rq worth of tasks from CPU_DYING, the\nneed for the sched_idle_next() abomination disappears as well, since\nidle will be the only possible thread left after the migration thread\nstops.\n\nThis greatly simplifies the hot-unplug task migration path, as can be\nseen from the resulting code reduction (and about half the new lines\nare comments).\n\nSuggested-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1289851597.2109.547.camel@laptop\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "3a101d0548e925ab16ca6aaa8cf4f767d322ddb0",
      "tree": "b90d8c5f2efe30fcfa49a00fdea037567c6cd46f",
      "parents": [
        "50a323b73069b169385a8ac65633dee837a7d13f"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Jun 08 21:40:36 2010 +0200"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Jun 08 21:40:36 2010 +0200"
      },
      "message": "sched: adjust when cpu_active and cpuset configurations are updated during cpu on/offlining\n\nCurrently, when a cpu goes down, cpu_active is cleared before\nCPU_DOWN_PREPARE starts and cpuset configuration is updated from a\ndefault priority cpu notifier.  When a cpu is coming up, it\u0027s set\nbefore CPU_ONLINE but cpuset configuration again is updated from the\nsame cpu notifier.\n\nFor cpu notifiers, this presents an inconsistent state.  Threads which\na CPU_DOWN_PREPARE notifier expects to be bound to the CPU can be\nmigrated to other cpus because the cpu is no more inactive.\n\nFix it by updating cpu_active in the highest priority cpu notifier and\ncpuset configuration in the second highest when a cpu is coming up.\nDown path is updated similarly.  This guarantees that all other cpu\nnotifiers see consistent cpu_active and cpuset configuration.\n\ncpuset_track_online_cpus() notifier is converted to\ncpuset_update_active_cpus() which just updates the configuration and\nnow called from cpuset_cpu_[in]active() notifiers registered from\nsched_init_smp().  If cpuset is disabled, cpuset_update_active_cpus()\ndegenerates into partition_sched_domains() making separate notifier\nfor !CONFIG_CPUSETS unnecessary.\n\nThis problem is triggered by cmwq.  During CPU_DOWN_PREPARE, hotplug\ncallback creates a kthread and kthread_bind()s it to the target cpu,\nand the thread is expected to run on that cpu.\n\n* Ingo\u0027s test discovered __cpuinit/exit markups were incorrect.\n  Fixed.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\n"
    },
    {
      "commit": "5c113fbeed7a5a192d8431a768965f8a45c16475",
      "tree": "af33ad559690221cc1b015c50ff804fd51c5da2b",
      "parents": [
        "1f73897861b8ef0be64ff4b801f8d6f830f683b5"
      ],
      "author": {
        "name": "Daniel J Blueman",
        "email": "daniel.blueman@gmail.com",
        "time": "Tue Jun 01 12:15:11 2010 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 01 09:22:50 2010 -0700"
      },
      "message": "fix cpu_chain section mismatch...\n\nIn commit e9fb7631ebcd (\"cpu-hotplug: introduce cpu_notify(),\n__cpu_notify(), cpu_notify_nofail()\") the new helper functions access\ncpu_chain.  As a result, it shouldn\u0027t be marked __cpuinitdata (via\nsection mismatch warning).\n\nAlternatively, the helper functions should be forced inline, or marked\n__ref or __cpuinit.  In the meantime, this patch silences the warning\nthe trivial way.\n\nSigned-off-by: Daniel J Blueman \u003cdaniel.blueman@gmail.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e9a5f426b85e429bffaee4e0b086b1e742a39fa6",
      "tree": "65ba763309c5d771c1f179af5b36fce996742b1c",
      "parents": [
        "97ef6f7449da6ceddf9a90fa8851f607b67283dd"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Thu May 27 22:16:22 2010 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun May 30 09:06:00 2010 -0700"
      },
      "message": "CPU: Avoid using unititialized error variable in disable_nonboot_cpus()\n\nIf there\u0027s only one CPU online when disable_nonboot_cpus() is called,\nthe error variable will not be initialized and that may lead to\nerroneous behavior.  Fix this issue by initializing error in\ndisable_nonboot_cpus() as appropriate.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "00b9b0af5887fed54e899e3b7f5c2ccf5e739def",
      "tree": "088cd96759cf4c1b2365c0e434dc95a8410b547c",
      "parents": [
        "e2e2400bd4faee24d11872134b7ae5bd363749c0"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 10:32:08 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 10:32:08 2010 -0700"
      },
      "message": "Avoid warning when CPU hotplug isn\u0027t enabled\n\nCommit e9fb7631ebcd (\"cpu-hotplug: introduce cpu_notify(),\n__cpu_notify(), cpu_notify_nofail()\") also introduced this annoying\nwarning:\n\n  kernel/cpu.c:157: warning: \u0027cpu_notify_nofail\u0027 defined but not used\n\nwhen CONFIG_HOTPLUG_CPU wasn\u0027t set.\n\nSo move that helper inside the #ifdef CONFIG_HOTPLUG_CPU region, and\nsimplify it while at it.\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "79a6cdeb7eb54e3d2d4bb9fc5f0231b057882a87",
      "tree": "2a80342946cf206002ce5dcf32f097320f64fdd1",
      "parents": [
        "c9d221f86e43d9fb16260fe18a8cd6767f36c8a5"
      ],
      "author": {
        "name": "Lai Jiangshan",
        "email": "laijs@cn.fujitsu.com",
        "time": "Wed May 26 14:43:36 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:48 2010 -0700"
      },
      "message": "cpuhotplug: do not need cpu_hotplug_begin() when CONFIG_HOTPLUG_CPU\u003dn\n\nSince when CONFIG_HOTPLUG_CPU\u003dn, get_online_cpus() do nothing, so we don\u0027t\nneed cpu_hotplug_begin() either.\n\nThis patch moves cpu_hotplug_begin()/cpu_hotplug_done() into the code\nblock of CONFIG_HOTPLUG_CPU\u003dy.\n\nSigned-off-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nCc: Gautham R Shenoy \u003cego@in.ibm.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\n\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e6bde73b07edeb703d4c89c1daabc09c303de11f",
      "tree": "9b60a3fc2ce002b26e46611357cb5529795e7ac5",
      "parents": [
        "e9fb7631ebcdc9467cbb736337546a42f7b7f28e"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Wed May 26 14:43:29 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:47 2010 -0700"
      },
      "message": "cpu-hotplug: return better errno on cpu hotplug failure\n\nCurrently, onlining or offlining a CPU failure by one of the cpu notifiers\nerror always cause -EINVAL error.  (i.e.  writing 0 or 1 to\n/sys/devices/system/cpu/cpuX/online gets EINVAL)\n\nTo get better error reporting rather than always getting -EINVAL, This\nchanges cpu_notify() to return -errno value with notifier_to_errno() and\nfix the callers.  Now that cpu notifiers can return encapsulate errno\nvalue.\n\nCurrently, all cpu hotplug notifiers return NOTIFY_OK, NOTIFY_BAD, or\nNOTIFY_DONE.  So cpu_notify() can returns 0 or -EPERM with this change for\nnow.\n\n(notifier_to_errno(NOTIFY_OK) \u003d\u003d 0, notifier_to_errno(NOTIFY_DONE) \u003d\u003d 0,\nnotifier_to_errno(NOTIFY_BAD) \u003d\u003d -EPERM)\n\nForthcoming patches convert several cpu notifiers to return encapsulate\nerrno value with notifier_from_errno().\n\nSigned-off-by: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e9fb7631ebcdc9467cbb736337546a42f7b7f28e",
      "tree": "1887c2a8dc858d966c3b0bd63d9026908e5eb572",
      "parents": [
        "36e15263aa5dcf3b72f1f88437e69497782b7ab8"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Wed May 26 14:43:28 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:47 2010 -0700"
      },
      "message": "cpu-hotplug: introduce cpu_notify(), __cpu_notify(), cpu_notify_nofail()\n\nNo functional change.  These are just wrappers of\nraw_cpu_notifier_call_chain.\n\nSigned-off-by: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4eaf3f64397c3db3c5785eee508270d62a9fabd9",
      "tree": "bfd986a7e974876755ea6fe0de394199c68e2e36",
      "parents": [
        "1f522509c77a5dea8dc384b735314f03908a6415"
      ],
      "author": {
        "name": "Haicheng Li",
        "email": "haicheng.li@linux.intel.com",
        "time": "Mon May 24 14:32:52 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 25 08:07:02 2010 -0700"
      },
      "message": "mem-hotplug: fix potential race while building zonelist for new populated zone\n\nAdd global mutex zonelists_mutex to fix the possible race:\n\n     CPU0                                  CPU1                    CPU2\n(1) zone-\u003epresent_pages +\u003d online_pages;\n(2)                                       build_all_zonelists();\n(3)                                                               alloc_page();\n(4)                                                               free_page();\n(5) build_all_zonelists();\n(6)   __build_all_zonelists();\n(7)     zone-\u003epageset \u003d alloc_percpu();\n\nIn step (3,4), zone-\u003epageset still points to boot_pageset, so bad\nthings may happen if 2+ nodes are in this state. Even if only 1 node\nis accessing the boot_pageset, (3) may still consume too much memory\nto fail the memory allocations in step (7).\n\nBesides, atomic operation ensures alloc_percpu() in step (7) will never fail\nsince there is a new fresh memory block added in step(6).\n\n[haicheng.li@linux.intel.com: hold zonelists_mutex when build_all_zonelists]\nSigned-off-by: Haicheng Li \u003chaicheng.li@linux.intel.com\u003e\nSigned-off-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nReviewed-by: Andi Kleen \u003candi.kleen@intel.com\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Tejun Heo \u003ctj@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": "1f522509c77a5dea8dc384b735314f03908a6415",
      "tree": "4b848527b90877a8a64c46e8e2d76723405c319d",
      "parents": [
        "319774e25fa4b7641bdc3b0a464dd84e62103347"
      ],
      "author": {
        "name": "Haicheng Li",
        "email": "haicheng.li@linux.intel.com",
        "time": "Mon May 24 14:32:51 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 25 08:07:01 2010 -0700"
      },
      "message": "mem-hotplug: avoid multiple zones sharing same boot strapping boot_pageset\n\nFor each new populated zone of hotadded node, need to update its pagesets\nwith dynamically allocated per_cpu_pageset struct for all possible CPUs:\n\n    1) Detach zone-\u003epageset from the shared boot_pageset\n       at end of __build_all_zonelists().\n\n    2) Use mutex to protect zone-\u003epageset when it\u0027s still\n       shared in onlined_pages()\n\nOtherwises, multiple zones of different nodes would share same boot strapping\nboot_pageset for same CPU, which will finally cause below kernel panic:\n\n  ------------[ cut here ]------------\n  kernel BUG at mm/page_alloc.c:1239!\n  invalid opcode: 0000 [#1] SMP\n  ...\n  Call Trace:\n   [\u003cffffffff811300c1\u003e] __alloc_pages_nodemask+0x131/0x7b0\n   [\u003cffffffff81162e67\u003e] alloc_pages_current+0x87/0xd0\n   [\u003cffffffff81128407\u003e] __page_cache_alloc+0x67/0x70\n   [\u003cffffffff811325f0\u003e] __do_page_cache_readahead+0x120/0x260\n   [\u003cffffffff81132751\u003e] ra_submit+0x21/0x30\n   [\u003cffffffff811329c6\u003e] ondemand_readahead+0x166/0x2c0\n   [\u003cffffffff81132ba0\u003e] page_cache_async_readahead+0x80/0xa0\n   [\u003cffffffff8112a0e4\u003e] generic_file_aio_read+0x364/0x670\n   [\u003cffffffff81266cfa\u003e] nfs_file_read+0xca/0x130\n   [\u003cffffffff8117b20a\u003e] do_sync_read+0xfa/0x140\n   [\u003cffffffff8117bf75\u003e] vfs_read+0xb5/0x1a0\n   [\u003cffffffff8117c151\u003e] sys_read+0x51/0x80\n   [\u003cffffffff8103c032\u003e] system_call_fastpath+0x16/0x1b\n  RIP  [\u003cffffffff8112ff13\u003e] get_page_from_freelist+0x883/0x900\n   RSP \u003cffff88000d1e78a8\u003e\n  ---[ end trace 4bda28328b9990db ]\n\n[akpm@linux-foundation.org: merge fix]\nSigned-off-by: Haicheng Li \u003chaicheng.li@linux.intel.com\u003e\nSigned-off-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nReviewed-by: Andi Kleen \u003candi.kleen@intel.com\u003e\nReviewed-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Tejun Heo \u003ctj@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": "cf23422b9d76215316855253da491d4c9f294372",
      "tree": "5663d2519d83d830d24dffdf2571d58d3e55d3f6",
      "parents": [
        "8b25c6d2231b978ccce9c401e771932bde79aa9f"
      ],
      "author": {
        "name": "minskey guo",
        "email": "chaohong_guo@linux.intel.com",
        "time": "Mon May 24 14:32:41 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 25 08:07:00 2010 -0700"
      },
      "message": "cpu/mem hotplug: enable CPUs online before local memory online\n\nEnable users to online CPUs even if the CPUs belongs to a numa node which\ndoesn\u0027t have onlined local memory.\n\nThe zonlists(pg_data_t.node_zonelists[]) of a numa node are created either\nin system boot/init period, or at the time of local memory online.  For a\nnuma node without onlined local memory, its zonelists are not initialized\nat present.  As a result, any memory allocation operations executed by\nCPUs within this node will fail.  In fact, an out-of-memory error is\ntriggered when attempt to online CPUs before memory comes to online.\n\nThis patch tries to create zonelists for such numa nodes, so that the\nmemory allocation for this node can be fallback\u0027ed to other nodes.\n\n[akpm@linux-foundation.org: remove unneeded export]\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: minskey guo\u003cchaohong.guo@intel.com\u003e\nCc: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: Yasunori Goto \u003cy-goto@jp.fujitsu.com\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Tejun Heo \u003ctj@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": "3fc1f1e27a5b807791d72e5d992aa33b668a6626",
      "tree": "396c2f49909c506c3ad53fd6a9bdddf6c24f7860",
      "parents": [
        "1142d810298e694754498dbb4983fcb6cb7fd884"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu May 06 18:49:20 2010 +0200"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu May 06 18:49:20 2010 +0200"
      },
      "message": "stop_machine: reimplement using cpu_stop\n\nReimplement stop_machine using cpu_stop.  As cpu stoppers are\nguaranteed to be available for all online cpus,\nstop_machine_create/destroy() are no longer necessary and removed.\n\nWith resource management and synchronization handled by cpu_stop, the\nnew implementation is much simpler.  Asking the cpu_stop to execute\nthe stop_cpu() state machine on all online cpus with cpu hotplug\ndisabled is enough.\n\nstop_machine itself doesn\u0027t need to manage any global resources\nanymore, so all per-instance information is rolled into struct\nstop_machine_data and the mutex and all static data variables are\nremoved.\n\nThe previous implementation created and destroyed RT workqueues as\nnecessary which made stop_machine() calls highly expensive on very\nlarge machines.  According to Dimitri Sivanich, preventing the dynamic\ncreation/destruction makes booting faster more than twice on very\nlarge machines.  cpu_stop resources are preallocated for all online\ncpus and should have the same effect.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nAcked-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nAcked-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Dimitri Sivanich \u003csivanich@sgi.com\u003e\n"
    },
    {
      "commit": "b257c14ceb1194a6181144210056d38f22127189",
      "tree": "c803925f1d5bf2237e7495d306bf43929df0c952",
      "parents": [
        "371fd7e7a56a5c136d31aa980011bd2f131c3ef5",
        "2ba3abd8186f24c7fb418927025b4e2120e3a362"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Apr 15 09:35:24 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Apr 15 09:36:16 2010 +0200"
      },
      "message": "Merge branch \u0027linus\u0027 into sched/core\n\nMerge reason: merge the latest fixes, update to -rc4.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "6a1bdc1b577ebcb65f6603c57f8347309bc4ab13",
      "tree": "516130eedf782dd14505bd111e06bcfad9923b07",
      "parents": [
        "30da688ef6b76e01969b00608202fff1eed2accc"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Mon Mar 15 10:10:23 2010 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Apr 02 20:12:03 2010 +0200"
      },
      "message": "sched: _cpu_down(): Don\u0027t play with current-\u003ecpus_allowed\n\n_cpu_down() changes the current task\u0027s affinity and then recovers it at\nthe end. The problems are well known: we can\u0027t restore old_allowed if it\nwas bound to the now-dead-cpu, and we can race with the userspace which\ncan change cpu-affinity during unplug.\n\n_cpu_down() should not play with current-\u003ecpus_allowed at all. Instead,\ntake_cpu_down() can migrate the caller of _cpu_down() after __cpu_disable()\nremoves the dying cpu from cpu_online_mask.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c20100315091023.GA9148@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "5a0e3ad6af8660be21ca98a971cd00f331318c05",
      "tree": "5bfb7be11a03176a87296a43ac6647975c00a1d1",
      "parents": [
        "ed391f4ebf8f701d3566423ce8f17e614cde9806"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Mar 24 17:04:11 2010 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Mar 30 22:02:32 2010 +0900"
      },
      "message": "include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h\n\npercpu.h is included by sched.h and module.h and thus ends up being\nincluded when building most .c files.  percpu.h includes slab.h which\nin turn includes gfp.h making everything defined by the two files\nuniversally available and complicating inclusion dependencies.\n\npercpu.h -\u003e slab.h dependency is about to be removed.  Prepare for\nthis change by updating users of gfp and slab facilities include those\nheaders directly instead of assuming availability.  As this conversion\nneeds to touch large number of source files, the following script is\nused as the basis of conversion.\n\n  http://userweb.kernel.org/~tj/misc/slabh-sweep.py\n\nThe script does the followings.\n\n* Scan files for gfp and slab usages and update includes such that\n  only the necessary includes are there.  ie. if only gfp is used,\n  gfp.h, if slab is used, slab.h.\n\n* When the script inserts a new include, it looks at the include\n  blocks and try to put the new include such that its order conforms\n  to its surrounding.  It\u0027s put in the include block which contains\n  core kernel includes, in the same order that the rest are ordered -\n  alphabetical, Christmas tree, rev-Xmas-tree or at the end if there\n  doesn\u0027t seem to be any matching order.\n\n* If the script can\u0027t find a place to put a new include (mostly\n  because the file doesn\u0027t have fitting include block), it prints out\n  an error message indicating which .h file needs to be added to the\n  file.\n\nThe conversion was done in the following steps.\n\n1. The initial automatic conversion of all .c files updated slightly\n   over 4000 files, deleting around 700 includes and adding ~480 gfp.h\n   and ~3000 slab.h inclusions.  The script emitted errors for ~400\n   files.\n\n2. Each error was manually checked.  Some didn\u0027t need the inclusion,\n   some needed manual addition while adding it to implementation .h or\n   embedding .c file was more appropriate for others.  This step added\n   inclusions to around 150 files.\n\n3. The script was run again and the output was compared to the edits\n   from #2 to make sure no file was left behind.\n\n4. Several build tests were done and a couple of problems were fixed.\n   e.g. lib/decompress_*.c used malloc/free() wrappers around slab\n   APIs requiring slab.h to be added manually.\n\n5. The script was run on all .h files but without automatically\n   editing them as sprinkling gfp.h and slab.h inclusions around .h\n   files could easily lead to inclusion dependency hell.  Most gfp.h\n   inclusion directives were ignored as stuff from gfp.h was usually\n   wildly available and often used in preprocessor macros.  Each\n   slab.h inclusion directive was examined and added manually as\n   necessary.\n\n6. percpu.h was updated not to include slab.h.\n\n7. Build test were done on the following configurations and failures\n   were fixed.  CONFIG_GCOV_KERNEL was turned off for all tests (as my\n   distributed build env didn\u0027t work with gcov compiles) and a few\n   more options had to be turned off depending on archs to make things\n   build (like ipr on powerpc/64 which failed due to missing writeq).\n\n   * x86 and x86_64 UP and SMP allmodconfig and a custom test config.\n   * powerpc and powerpc64 SMP allmodconfig\n   * sparc and sparc64 SMP allmodconfig\n   * ia64 SMP allmodconfig\n   * s390 SMP allmodconfig\n   * alpha SMP allmodconfig\n   * um on x86_64 SMP allmodconfig\n\n8. percpu.h modifications were reverted so that it could be applied as\n   a separate patch and serve as bisection point.\n\nGiven the fact that I had only a couple of failures from tests on step\n6, I\u0027m fairly confident about the coverage of this conversion patch.\nIf there is a breakage, it\u0027s likely to be something in one of the arch\nheaders which should be easily discoverable easily on most builds of\nthe specific arch.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nGuess-its-ok-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: Lee Schermerhorn \u003cLee.Schermerhorn@hp.com\u003e\n"
    },
    {
      "commit": "87d5e0236d9d688fb575e9e12232764ac617617c",
      "tree": "1b174abac310f2a5ac63181b483c55fe93756133",
      "parents": [
        "9c8f05c2837b06bb2739e85204c0d34009fb6494"
      ],
      "author": {
        "name": "Chen Gong",
        "email": "gong.chen@linux.intel.com",
        "time": "Fri Mar 05 13:42:38 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 06 11:26:28 2010 -0800"
      },
      "message": "kernel/cpu.c: delete deprecated definition in cpu_up()\n\nAdditional_cpus is only supported for IA64 now.  X86_64 should not be\nincluded.\n\nSigned-off-by: Chen Gong \u003cgong.chen@linux.intel.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9d3cfc4c1d17c6d3bc1373e3b954c56b92607755",
      "tree": "7e9f748cd920ced68fc51e21f761155d3c7d94ec",
      "parents": [
        "11854247e2c851e7ff9ce138e501c6cffc5a4217"
      ],
      "author": {
        "name": "Frans Pop",
        "email": "elendil@planet.nl",
        "time": "Mon Jan 25 14:56:34 2010 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Jan 28 06:59:55 2010 +0100"
      },
      "message": "sched: Correct printk whitespace in warning from cpu down task check\n\nDue to an incorrect line break the output currently contains tabs.\nAlso remove trailing space.\n\nThe actual output that logcheck sent me looked like this:\n Task events/1 (pid \u003d 10) is on cpu 1^I^I^I^I(state \u003d 1, flags \u003d 84208040)\n\nAfter this patch it becomes:\n Task events/1 (pid \u003d 10) is on cpu 1 (state \u003d 1, flags \u003d 84208040)\n\nSigned-off-by: Frans Pop \u003celendilplanet.nl\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c201001251456.34996.elendil@planet.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "11854247e2c851e7ff9ce138e501c6cffc5a4217",
      "tree": "281c12176055279558b31b4b059e32e59229f486",
      "parents": [
        "fabf318e5e4bda0aca2b0d617b191884fda62703"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "peterz@infradead.org",
        "time": "Thu Jan 21 16:34:27 2010 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Jan 28 06:59:51 2010 +0100"
      },
      "message": "sched: Fix incorrect sanity check\n\nWe moved to migrate on wakeup, which means that sleeping tasks could\nstill be present on offline cpus. Amend the check to only test running\ntasks.\n\nReported-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "9ee349ad6d326df3633d43f54202427295999c47",
      "tree": "06f4795cb1b3f493b2421b65af0fd870875c8168",
      "parents": [
        "933b0618d8b2a59c7a0742e43836544e02f1e9bd"
      ],
      "author": {
        "name": "Xiaotian Feng",
        "email": "dfeng@redhat.com",
        "time": "Wed Dec 16 18:04:32 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Dec 16 19:01:53 2009 +0100"
      },
      "message": "sched: Fix set_cpu_active() in cpu_down()\n\nSachin found cpu hotplug test failures on powerpc, which made\nthe kernel hang on his POWER box.\n\nThe problem is that we fail to re-activate a cpu when a\nhot-unplug fails. Fix this by moving the de-activation into\n_cpu_down after doing the initial checks.\n\nRemove the synchronize_sched() calls and rely on those implied\nby rebuilding the sched domains using the new mask.\n\nReported-by: Sachin Sant \u003csachinp@in.ibm.com\u003e\nSigned-off-by: Xiaotian Feng \u003cdfeng@redhat.com\u003e\nTested-by: Sachin Sant \u003csachinp@in.ibm.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nLKML-Reference: \u003c20091216170517.500272612@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "702a7c7609bec3a940b6a46b0d6ab9ce45274580",
      "tree": "6c169691449259410b9b51a146acb0e837dae96a",
      "parents": [
        "053fe57ac249a9531c396175778160d9e9509399",
        "b9889ed1ddeca5a3f3569c8de7354e9e97d803ae"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Dec 12 11:34:10 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Dec 12 11:34:10 2009 -0800"
      },
      "message": "Merge branch \u0027sched-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027sched-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (21 commits)\n  sched: Remove forced2_migrations stats\n  sched: Fix memory leak in two error corner cases\n  sched: Fix build warning in get_update_sysctl_factor()\n  sched: Update normalized values on user updates via proc\n  sched: Make tunable scaling style configurable\n  sched: Fix missing sched tunable recalculation on cpu add/remove\n  sched: Fix task priority bug\n  sched: cgroup: Implement different treatment for idle shares\n  sched: Remove unnecessary RCU exclusion\n  sched: Discard some old bits\n  sched: Clean up check_preempt_wakeup()\n  sched: Move update_curr() in check_preempt_wakeup() to avoid redundant call\n  sched: Sanitize fork() handling\n  sched: Clean up ttwu() rq locking\n  sched: Remove rq-\u003eclock coupling from set_task_cpu()\n  sched: Consolidate select_task_rq() callers\n  sched: Remove sysctl.sched_features\n  sched: Protect sched_rr_get_param() access to task-\u003esched_class\n  sched: Protect task-\u003ecpus_allowed access in sched_getaffinity()\n  sched: Fix balance vs hotplug race\n  ...\n\nFixed up conflicts in kernel/sysctl.c (due to sysctl cleanup)\n"
    },
    {
      "commit": "6ad4c18884e864cf4c77f9074d3d1816063f99cd",
      "tree": "f09643f6148b576fa2d23bf7d4b37d082d94e267",
      "parents": [
        "e1b8090bdf125f8b2e192149547fead7f302a89c"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Wed Nov 25 13:31:39 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Dec 06 21:10:56 2009 +0100"
      },
      "message": "sched: Fix balance vs hotplug race\n\nSince (e761b77: cpu hotplug, sched: Introduce cpu_active_map and redo\nsched domain managment) we have cpu_active_mask which is suppose to rule\nscheduler migration and load-balancing, except it never (fully) did.\n\nThe particular problem being solved here is a crash in try_to_wake_up()\nwhere select_task_rq() ends up selecting an offline cpu because\nselect_task_rq_fair() trusts the sched_domain tree to reflect the\ncurrent state of affairs, similarly select_task_rq_rt() trusts the\nroot_domain.\n\nHowever, the sched_domains are updated from CPU_DEAD, which is after the\ncpu is taken offline and after stop_machine is done. Therefore it can\nrace perfectly well with code assuming the domains are right.\n\nCure this by building the domains from cpu_active_mask on\nCPU_DOWN_PREPARE.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "feae3203d711db0a9965300ee6d592257fdaae4f",
      "tree": "747f1223ed4afb9dbb4c79ceff1d06cb4da61984",
      "parents": [
        "ba5ea951d0b5e5896180e21fe07f228d2b3b0e63"
      ],
      "author": {
        "name": "Mike Travis",
        "email": "travis@sgi.com",
        "time": "Tue Nov 17 18:22:13 2009 -0600"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Nov 26 10:18:42 2009 +0100"
      },
      "message": "timers, init: Limit the number of per cpu calibration bootup messages\n\nLimit the number of per cpu calibration messages by only\nprinting out results for the first cpu to boot.\n\nAlso, don\u0027t print \"CPUx is down\" as this is expected, and we\ndon\u0027t need 4096 reminders... ;-)\n\nSigned-off-by: Mike Travis \u003ctravis@sgi.com\u003e\nCc: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nCc: Roland Dreier \u003crdreier@cisco.com\u003e\nCc: Randy Dunlap \u003crdunlap@xenotime.net\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nCc: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\nCc: Yinghai Lu \u003cyhlu.kernel@gmail.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Hidetoshi Seto \u003cseto.hidetoshi@jp.fujitsu.com\u003e\nCc: Jack Steiner \u003csteiner@sgi.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nLKML-Reference: \u003c20091118002219.889552000@alcatraz.americas.sgi.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "227423904c709a8e60245c97081bbeb4fb500655",
      "tree": "97db1b8df1e4518334aea2fdf60363e0a691eb1e",
      "parents": [
        "1aaf2e59135fd67321f47c11c64a54aac27014e9",
        "fa526d0d641b5365676a1fb821ce359e217c9b85"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 15 09:19:38 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 15 09:19:38 2009 -0700"
      },
      "message": "Merge branch \u0027x86-pat-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027x86-pat-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  x86, pat: Fix cacheflush address in change_page_attr_set_clr()\n  mm: remove !NUMA condition from PAGEFLAGS_EXTENDED condition set\n  x86: Fix earlyprintk\u003ddbgp for machines without NX\n  x86, pat: Sanity check remap_pfn_range for RAM region\n  x86, pat: Lookup the protection from memtype list on vm_insert_pfn()\n  x86, pat: Add lookup_memtype to get the current memtype of a paddr\n  x86, pat: Use page flags to track memtypes of RAM pages\n  x86, pat: Generalize the use of page flag PG_uncached\n  x86, pat: Add rbtree to do quick lookup in memtype tracking\n  x86, pat: Add PAT reserve free to io_mapping* APIs\n  x86, pat: New i/f for driver to request memtype for IO regions\n  x86, pat: ioremap to follow same PAT restrictions as other PAT users\n  x86, pat: Keep identity maps consistent with mmaps even when pat_disabled\n  x86, mtrr: make mtrr_aps_delayed_init static bool\n  x86, pat/mtrr: Rendezvous all the cpus for MTRR/PAT init\n  generic-ipi: Allow cpus not yet online to call smp_call_function with irqs disabled\n  x86: Fix an incorrect argument of reserve_bootmem()\n  x86: Fix system crash when loading with \"reservetop\" parameter\n"
    },
    {
      "commit": "69575d388603365f2afbf4166df93152df59b165",
      "tree": "ca3d66668c8ec47befc0adbfa62cf135229bda59",
      "parents": [
        "62a3207b8cf3de35368cdc3822b30b82d59eea95"
      ],
      "author": {
        "name": "Shane Wang",
        "email": "shane.wang@intel.com",
        "time": "Tue Sep 01 18:25:07 2009 -0700"
      },
      "committer": {
        "name": "H. Peter Anvin",
        "email": "hpa@zytor.com",
        "time": "Tue Sep 01 18:25:07 2009 -0700"
      },
      "message": "x86, intel_txt: clean up the impact on generic code, unbreak non-x86\n\nMove tboot.h from asm to linux to fix the build errors of intel_txt\npatch on non-X86 platforms. Remove the tboot code from generic code\ninit/main.c and kernel/cpu.c.\n\nSigned-off-by: Shane Wang \u003cshane.wang@intel.com\u003e\nSigned-off-by: H. Peter Anvin \u003chpa@zytor.com\u003e\n"
    },
    {
      "commit": "d0af9eed5aa91b6b7b5049cae69e5ea956fd85c3",
      "tree": "b9214db00ba734e5b943165082c30336f7a8425a",
      "parents": [
        "269c861baa2fe7c114c3bc7831292758d29eb336"
      ],
      "author": {
        "name": "Suresh Siddha",
        "email": "suresh.b.siddha@intel.com",
        "time": "Wed Aug 19 18:05:36 2009 -0700"
      },
      "committer": {
        "name": "H. Peter Anvin",
        "email": "hpa@zytor.com",
        "time": "Fri Aug 21 16:25:55 2009 -0700"
      },
      "message": "x86, pat/mtrr: Rendezvous all the cpus for MTRR/PAT init\n\nSDM Vol 3a section titled \"MTRR considerations in MP systems\" specifies\nthe need for synchronizing the logical cpu\u0027s while initializing/updating\nMTRR.\n\nCurrently Linux kernel does the synchronization of all cpu\u0027s only when\na single MTRR register is programmed/updated. During an AP online\n(during boot/cpu-online/resume)  where we initialize all the MTRR/PAT registers,\nwe don\u0027t follow this synchronization algorithm.\n\nThis can lead to scenarios where during a dynamic cpu online, that logical cpu\nis initializing MTRR/PAT with cache disabled (cr0.cd\u003d1) etc while other logical\nHT sibling continue to run (also with cache disabled because of cr0.cd\u003d1\non its sibling).\n\nStarting from Westmere, VMX transitions with cr0.cd\u003d1 don\u0027t work properly\n(because of some VMX performance optimizations) and the above scenario\n(with one logical cpu doing VMX activity and another logical cpu coming online)\ncan result in system crash.\n\nFix the MTRR initialization by doing rendezvous of all the cpus. During\nboot and resume, we delay the MTRR/PAT init for APs till all the\nlogical cpu\u0027s come online and the rendezvous process at the end of AP\u0027s bringup,\nwill initialize the MTRR/PAT for all AP\u0027s.\n\nFor dynamic single cpu online, we synchronize all the logical cpus and\ndo the MTRR/PAT init on the AP that is coming online.\n\nSigned-off-by: Suresh Siddha \u003csuresh.b.siddha@intel.com\u003e\nSigned-off-by: H. Peter Anvin \u003chpa@zytor.com\u003e\n"
    },
    {
      "commit": "86886e55b273f565935491816c7c96b82469d4f8",
      "tree": "0045d68e4720f545f546e216c71104ab31d9d80c",
      "parents": [
        "840c2baf2d4cdf35ecc3b7fcbba7740f97de30a4"
      ],
      "author": {
        "name": "Joseph Cihula",
        "email": "joseph.cihula@intel.com",
        "time": "Tue Jun 30 19:31:07 2009 -0700"
      },
      "committer": {
        "name": "H. Peter Anvin",
        "email": "hpa@zytor.com",
        "time": "Tue Jul 21 11:50:04 2009 -0700"
      },
      "message": "x86, intel_txt: Intel TXT Sx shutdown support\n\nSupport for graceful handling of sleep states (S3/S4/S5) after an Intel(R) TXT launch.\n\nWithout this patch, attempting to place the system in one of the ACPI sleep\nstates (S3/S4/S5) will cause the TXT hardware to treat this as an attack and\nwill cause a system reset, with memory locked.  Not only may the subsequent\nmemory scrub take some time, but the platform will be unable to enter the\nrequested power state.\n\nThis patch calls back into the tboot so that it may properly and securely clean\nup system state and clear the secrets-in-memory flag, after which it will place\nthe system into the requested sleep state using ACPI information passed by the kernel.\n\n arch/x86/kernel/smpboot.c     |    2 ++\n drivers/acpi/acpica/hwsleep.c |    3 +++\n kernel/cpu.c                  |    7 ++++++-\n 3 files changed, 11 insertions(+), 1 deletion(-)\n\nSigned-off-by: Joseph Cihula \u003cjoseph.cihula@intel.com\u003e\nSigned-off-by: Shane Wang \u003cshane.wang@intel.com\u003e\nSigned-off-by: H. Peter Anvin \u003chpa@zytor.com\u003e\n"
    },
    {
      "commit": "31950eb66ff47c946fd9c65c2f8c94b6b7ba13fc",
      "tree": "1ab1e09bbe7a0b33bbf19dd725172827bac5bb88",
      "parents": [
        "ac1b7c378ef26fba6694d5f118fe7fc16fee2fe2"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jun 22 21:18:12 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jun 22 21:18:12 2009 -0700"
      },
      "message": "mm/init: cpu_hotplug_init() must be initialized before SLAB\n\nSLAB uses get/put_online_cpus() which use a mutex which is itself only\ninitialized when cpu_hotplug_init() is called.  Currently we hang suring\nboot in SLAB due to doing that too late.\n\nReported by James Bottomley and Sachin Sant (and possibly others).\nDebugged by Benjamin Herrenschmidt.\n\nThis just removes the dynamic initialization of the data structures, and\nreplaces it with a static one, avoiding this dependency entirely, and\nremoving one unnecessary special initcall.\n\nTested-by: Sachin Sant \u003csachinp@in.ibm.com\u003e\nTested-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\nTested-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2b17fa506c418e9fb02bbbc7f426d2bbb5b247a6",
      "tree": "bc010d85f71ff6f6f8fa3e7038d8ad5eb3526aec",
      "parents": [
        "0451fb2ebc4f65c265bb51d71a2fc986ebf20218"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Mon Mar 30 22:05:12 2009 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Mon Mar 30 22:05:12 2009 +1030"
      },
      "message": "cpumask: use set_cpu_active in init/main.c\n\ncpu_active_map is deprecated in favor of cpu_active_mask, which is\nconst for safety: we use accessors now (set_cpu_active) is we really\nwant to make a change.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "a0e280e0f33f6c859a235fb69a875ed8f3420388",
      "tree": "c41b0ad22c4195bef2bfdd36437e20d232b9586b",
      "parents": [
        "30aafdba6f78619274a977d67283a681bedbcbbd"
      ],
      "author": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Wed Jan 07 16:19:46 2009 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jan 07 11:36:14 2009 -0800"
      },
      "message": "stop_machine/cpu hotplug: fix disable_nonboot_cpus\n\ndisable_nonboot_cpus calls _cpu_down. But _cpu_down requires that the\ncaller already created the stop_machine workqueue (like cpu_down does).\nOtherwise a call to stop_machine will lead to accesses to random memory\nregions.\n\nWhen introducing this new interface (9ea09af3bd3090e8349ca2899ca2011bd94cda85\n\"stop_machine: introduce stop_machine_create/destroy\") I missed the second\ncall site of _cpu_down.\nSo add the missing stop_machine_create/destroy calls to disable_nonboot_cpus\nas well.\n\nFixes suspend-to-ram/disk and also this bug:\n\n[  286.547348] BUG: unable to handle kernel paging request at 6b6b6b6b\n[  286.548940] IP: [\u003cc0150ca4\u003e] __stop_machine+0x88/0xe3\n[  286.550598] Oops: 0002 [#1] SMP\n[  286.560580] Pid: 3273, comm: halt Not tainted (2.6.28-06127-g238c6d5\n[  286.560580] EIP: is at __stop_machine+0x88/0xe3\n[  286.560580] Process halt (pid: 3273, ti\u003df1a28000 task\u003df4530f30\n[  286.560580] Call Trace:\n[  286.560580]  [\u003cc03d04e4\u003e] ? _cpu_down+0x10f/0x234\n[  286.560580]  [\u003cc012a57e\u003e] ? disable_nonboot_cpus+0x58/0xdc\n[  286.560580]  [\u003cc01360c0\u003e] ? kernel_poweroff+0x22/0x39\n[  286.560580]  [\u003cc0136301\u003e] ? sys_reboot+0xde/0x14c\n[  286.560580]  [\u003cc01331b2\u003e] ? complete_signal+0x179/0x191\n[  286.560580]  [\u003cc0133396\u003e] ? send_signal+0x1cc/0x1e1\n[  286.560580]  [\u003cc03de418\u003e] ? _spin_unlock_irqrestore+0x2d/0x3c\n[  286.560580]  [\u003cc0133b65\u003e] ? group_send_signal_info+0x58/0x61\n[  286.560580]  [\u003cc0133b9e\u003e] ? kill_pid_info+0x30/0x3a\n[  286.560580]  [\u003cc0133d49\u003e] ? sys_kill+0x75/0x13a\n[  286.560580]  [\u003cc01a06cb\u003e] ? mntput_no_expire+ox1f/0x101\n[  286.560580]  [\u003cc019b3b3\u003e] ? dput+0x1e/0x105\n[  286.560580]  [\u003cc018ef87\u003e] ?  __fput+0x150/0x158\n[  286.560580]  [\u003cc0157abf\u003e] ? audit_syscall_entry+0x137/0x159\n[  286.560580]  [\u003cc010329f\u003e] ? sysenter_do_call+0x12/0x34\n\nReported-and-tested-by: \"Justin P. Mattock\" \u003cjustinmattock@gmail.com\u003e\nReviewed-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nSigned-off-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nTested-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9ea09af3bd3090e8349ca2899ca2011bd94cda85",
      "tree": "36396347bb750a6aecb0771cfebf9887aaaae492",
      "parents": [
        "c298be74492bece102f3379d14015638f1fd1fac"
      ],
      "author": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Mon Dec 22 12:36:30 2008 +0100"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Mon Jan 05 08:40:14 2009 +1030"
      },
      "message": "stop_machine: introduce stop_machine_create/destroy.\n\nIntroduce stop_machine_create/destroy. With this interface subsystems\nthat need a non-failing stop_machine environment can create the\nstop_machine machine threads before actually calling stop_machine.\nWhen the threads aren\u0027t needed anymore they can be killed with\nstop_machine_destroy again.\n\nWhen stop_machine gets called and the threads aren\u0027t present they\nwill be created and destroyed automatically. This restores the old\nbehaviour of stop_machine.\n\nThis patch also converts cpu hotplug to the new interface since it\nis special: cpu_down calls __stop_machine instead of stop_machine.\nHowever the kstop threads will only be created when stop_machine\ngets called.\n\nChanging the code so that the threads would be created automatically\non __stop_machine is currently not possible: when __stop_machine gets\ncalled we hold cpu_add_remove_lock, which is the same lock that\ncreate_rt_workqueue would take. So the workqueue needs to be created\nbefore the cpu hotplug code locks cpu_add_remove_lock.\n\nSigned-off-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "e0b582ec56f1a1d8b30ebf340a7b91fb09f26c8c",
      "tree": "d96b9b657eda13b902a712dfb4f95321133caf1c",
      "parents": [
        "c309b917cab55799ea489d7b5f1b77025d9f8462"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Jan 01 10:12:28 2009 +1030"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Jan 01 10:12:28 2009 +1030"
      },
      "message": "cpumask: convert kernel/cpu.c\n\nImpact: Reduce kernel stack and memory usage, use new cpumask API.\n\nUse cpumask_var_t for take_cpu_down() stack var, and frozen_cpus.\n\nNote that notify_cpu_starting() can be called before core_initcall\nallocates frozen_cpus, but the NULL check is optimized out by gcc for\nthe CONFIG_CPUMASK_OFFSTACK\u003dn case.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "3fa41520696fec2815e2d88fbcccdda77ba4d693",
      "tree": "418c698535189083b9cbed28bc30e895bda147e3",
      "parents": [
        "ae7a47e72e1a0b5e2b46d1596bc2c22942a73023"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Dec 30 09:05:16 2008 +1030"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Dec 30 09:05:16 2008 +1030"
      },
      "message": "cpumask: make set_cpu_*/init_cpu_* out-of-line\n\nThey\u0027re only for use in boot/cpu hotplug code anyway, and this avoids\nthe use of deprecated cpu_*_map.\n\nStephen Rothwell points out that gcc 4.2.4 (on powerpc at least)\ndidn\u0027t like the cast away of const anyway:\n\n  include/linux/cpumask.h: In function \u0027set_cpu_possible\u0027:\n  include/linux/cpumask.h:1052: warning: passing argument 2 of \u0027cpumask_set_cpu\u0027 discards qualifiers from pointer target type\n\nSo this kills two birds with one stone.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "b3199c025d1646e25e7d1d640dd605db251dccf8",
      "tree": "752bd257f2db6b4d39bf9cdce18ca25ade5e63a9",
      "parents": [
        "cb78a0ce69fad2026825f957e24e2d9cda1ec9f1"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Dec 30 09:05:14 2008 +1030"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Dec 30 09:05:14 2008 +1030"
      },
      "message": "cpumask: switch over to cpu_online/possible/active/present_mask: core\n\nImpact: cleanup\n\nThis implements the obsolescent cpu_online_map in terms of\ncpu_online_mask, rather than the other way around.  Same for the other\nmaps.\n\nThe documentation comments are also updated to refer to _mask rather\nthan _map.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Mike Travis \u003ctravis@sgi.com\u003e\n"
    },
    {
      "commit": "98a79d6a50181ca1ecf7400eda01d5dc1bc0dbf0",
      "tree": "e8829ee975b77745da153b9d23601e3a1497ad68",
      "parents": [
        "6c34bc2976b30dc8b56392c020e25bae1f363cab"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Sat Dec 13 21:19:41 2008 +1030"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Sat Dec 13 21:19:41 2008 +1030"
      },
      "message": "cpumask: centralize cpu_online_map and cpu_possible_map\n\nImpact: cleanup\n\nEach SMP arch defines these themselves.  Move them to a central\nlocation.\n\nTwists:\n1) Some archs (m32, parisc, s390) set possible_map to all 1, so we add a\n   CONFIG_INIT_ALL_POSSIBLE for this rather than break them.\n\n2) mips and sparc32 \u0027#define cpu_possible_map phys_cpu_present_map\u0027.\n   Those archs simply have phys_cpu_present_map replaced everywhere.\n\n3) Alpha defined cpu_possible_map to cpu_present_map; this is tricky\n   so I just manipulate them both in sync.\n\n4) IA64, cris and m32r have gratuitous \u0027extern cpumask_t cpu_possible_map\u0027\n   declarations.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nReviewed-by: Grant Grundler \u003cgrundler@parisc-linux.org\u003e\nTested-by: Tony Luck \u003ctony.luck@intel.com\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Mike Travis \u003ctravis@sgi.com\u003e\nCc: ink@jurassic.park.msu.ru\nCc: rmk@arm.linux.org.uk\nCc: starvik@axis.com\nCc: tony.luck@intel.com\nCc: takata@linux-m32r.org\nCc: ralf@linux-mips.org\nCc: grundler@parisc-linux.org\nCc: paulus@samba.org\nCc: schwidefsky@de.ibm.com\nCc: lethal@linux-sh.org\nCc: wli@holomorphy.com\nCc: davem@davemloft.net\nCc: jdike@addtoit.com\nCc: mingo@redhat.com\n"
    },
    {
      "commit": "8419641450edc838a6ce7cdf0f99d262bf0af2d5",
      "tree": "1a396f0bafecd6ebcf15db23ca89b0cb8e33bda0",
      "parents": [
        "b0385146bcdd24b0390c2b60fd05a083888835db"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@ftp.linux.org.uk",
        "time": "Sat Nov 22 17:36:44 2008 +0000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Nov 30 10:03:37 2008 -0800"
      },
      "message": "cpuinit fixes in kernel/*\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2d3854a37e8b767a51aba38ed6d22817b0631e33",
      "tree": "3b55cc93720b2e525460216b196ed20298ae985b",
      "parents": [
        "75fa67706cce5272bcfc51ed646f2da21f3bdb6e"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Wed Nov 05 13:39:10 2008 +1100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Nov 06 09:05:33 2008 +0100"
      },
      "message": "cpumask: introduce new API, without changing anything\n\nImpact: introduce new APIs\n\nWe want to deprecate cpumasks on the stack, as we are headed for\ngynormous numbers of CPUs.  Eventually, we want to head towards an\nundefined \u0027struct cpumask\u0027 so they can never be declared on stack.\n\n1) New cpumask functions which take pointers instead of copies.\n   (cpus_* -\u003e cpumask_*)\n\n2) Several new helpers to reduce requirements for temporary cpumasks\n   (cpumask_first_and, cpumask_next_and, cpumask_any_and)\n\n3) Helpers for declaring cpumasks on or offstack for large NR_CPUS\n   (cpumask_var_t, alloc_cpumask_var and free_cpumask_var)\n\n4) \u0027struct cpumask\u0027 for explicitness and to mark new-style code.\n\n5) Make iterator functions stop at nr_cpu_ids (a runtime constant),\n   not NR_CPUS for time efficiency and for smaller dynamic allocations\n   in future.\n\n6) cpumask_copy() so we can allocate less than a full cpumask eventually\n   (for alloc_cpumask_var), and so we can eliminate the \u0027struct cpumask\u0027\n   definition eventually.\n\n7) work_on_cpu() helper for doing task on a CPU, rather than saving old\n   cpumask for current thread and manipulating it.\n\n8) smp_call_function_many() which is smp_call_function_mask() except\n   taking a cpumask pointer.\n\nNote that this patch simply introduces the new functions and leaves\nthe obsolescent ones in place.  This is to simplify the transition\npatches.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "990d0f2ced23052abc7efa09bd05bff34e00cf73",
      "tree": "df9f3fe5c0417102586087cec63e1d813a8f29cb",
      "parents": [
        "85ba94ba0592296053f7f2846812173424afe1cb",
        "34b3ede2353604ec9861c1d900b2a835ff85de47",
        "e545a6140b698b2494daf0b32107bdcc5e901390",
        "d294eb83d8d39a29f01dad391f15fc3a29aa04f9"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Oct 08 11:31:02 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Oct 08 11:31:02 2008 +0200"
      },
      "message": "Merge branches \u0027sched/devel\u0027, \u0027sched/cpu-hotplug\u0027, \u0027sched/cpusets\u0027 and \u0027sched/urgent\u0027 into sched/core\n"
    },
    {
      "commit": "e545a6140b698b2494daf0b32107bdcc5e901390",
      "tree": "63f302e25ba7a0705bbf051f3817fac8f8b98aba",
      "parents": [
        "7686ad5606f08d9dfb33a2087a36c8366366015b"
      ],
      "author": {
        "name": "Manfred Spraul",
        "email": "manfred@colorfullife.com",
        "time": "Sun Sep 07 16:57:22 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Sep 08 19:25:24 2008 +0200"
      },
      "message": "kernel/cpu.c: create a CPU_STARTING cpu_chain notifier\n\nRight now, there is no notifier that is called on a new cpu, before the new\ncpu begins processing interrupts/softirqs.\nVarious kernel function would need that notification, e.g. kvm works around\nby calling smp_call_function_single(), rcu polls cpu_online_map.\n\nThe patch adds a CPU_STARTING notification. It also adds a helper function\nthat sends the message to all cpu_chain handlers.\n\nTested on x86-64.\nAll other archs are untested. Especially on sparc, I\u0027m not sure if I got\nit right.\n\nSigned-off-by: Manfred Spraul \u003cmanfred@colorfullife.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "3ba35573ad9a149a3af19625b502679283382f6b",
      "tree": "01e19ef5be3a247e310745c09134837b990dda77",
      "parents": [
        "38736f475071b80b66be28af7b44c854073699cc"
      ],
      "author": {
        "name": "Manfred Spraul",
        "email": "manfred@colorfullife.com",
        "time": "Sun Aug 31 19:58:49 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Sep 06 19:13:59 2008 +0200"
      },
      "message": "kernel/cpu.c: Move the CPU_DYING notifiers\n\nWhen a cpu is taken offline, the CPU_DYING notifiers are called on the\ndying cpu. According to \u003clinux/notifiers.h\u003e, the cpu should be \"not\nrunning any task, not handling interrupts, soon dead\".\n\nFor the current implementation, this is not true:\n- __cpu_disable can fail. If it fails, then the cpu will remain alive\n  and happy.\n- At least on x86, __cpu_disable() briefly enables the local interrupts\n  to handle any outstanding interrupts.\n\nWhat about moving CPU_DYING down a few lines, behind the __cpu_disable()\nline?\nThere are only two CPU_DYING handlers in the kernel right now: one in\nkvm, one in the scheduler. Both should work with the patch applied\n[and: I\u0027m not sure if either one handles a failing __cpu_disable()]\n\nThe patch survives simple offlining a cpu. kvm untested due to lack\nof a test setup.\n\nSigned-off-By: Manfred Spraul \u003cmanfred@colorfullife.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "3ee1062b4ee82a56294808a065b64f4bc6781a56",
      "tree": "6524b1df35cf4be3fd66d767a5b1a4c170be63d8",
      "parents": [
        "74768ed833344bb0f82b97cee46320a3d7f09ecd"
      ],
      "author": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Tue Aug 12 15:08:40 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Aug 12 16:07:28 2008 -0700"
      },
      "message": "cpu hotplug: s390 doesn\u0027t support additional_cpus anymore.\n\ns390 doesn\u0027t support the additional_cpus kernel parameter anymore since a\nlong time.  So we better update the code and documentation to reflect\nthat.\n\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nSigned-off-by: Heiko Carstens \u003cheiko.carstens@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": "279ef6bbb8308488398c8f33b04c760148428378",
      "tree": "bc2b925ce5ed3f943d57a2adc99324cf308712e7",
      "parents": [
        "77ae651347bdd46830da8b28b1efc5e4a9d7cbd0"
      ],
      "author": {
        "name": "Dmitry Adamushko",
        "email": "dmitry.adamushko@gmail.com",
        "time": "Wed Jul 30 12:34:04 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Aug 11 16:32:41 2008 +0200"
      },
      "message": "sched, cpu hotplug: fix set_cpus_allowed() use in hotplug callbacks\n\nMark Langsdorf reported:\n\n\u003e One of my co-workers noticed that the powernow-k8\n\u003e driver no longer restarts when a CPU core is\n\u003e hot-disabled and then hot-enabled on AMD quad-core\n\u003e systems.\n\u003e\n\u003e The following comands work fine on 2.6.26 and fail\n\u003e on 2.6.27-rc1:\n\u003e\n\u003e echo 0 \u003e /sys/devices/system/cpu/cpu3/online\n\u003e echo 1 \u003e /sys/devices/system/cpu/cpu3/online\n\u003e find /sys -name cpufreq\n\u003e\n\u003e For 2.6.26, the find will return a cpufreq\n\u003e directory for each processor.  In 2.6.27-rc1,\n\u003e the cpu3 directory is missing.\n\u003e\n\u003e After digging through the code, the following\n\u003e logic is failing when the core is hot-enabled\n\u003e at runtime.  The code works during the boot\n\u003e sequence.\n\u003e\n\u003e       cpumask_t \u003d current-\u003ecpus_allowed;\n\u003e       set_cpus_allowed_ptr(current, \u0026cpumask_of_cpu(cpu));\n\u003e       if (smp_processor_id() !\u003d cpu)\n\u003e               return -ENODEV;\n\nSo set the CPU active before calling the CPU_ONLINE notifier chain,\nthere are a handful of notifiers that use set_cpus_allowed().\n\nThis fix also solves the problem with x86-microcode. I\u0027ve sent\nalternative patches for microcode, but as this \"rely on\nset_cpus_allowed_ptr() being workable in cpu-hotplug(CPU_ONLINE, ...)\"\nassumption seems to be more broad than what we thought, perhaps this fix\nshould be applied.\n\nWith this patch we define that by the moment CPU_ONLINE is being sent,\na \u0027cpu\u0027 is online and ready for tasks to be migrated onto it.\n\nSigned-off-by: Dmitry Adamushko \u003cdmitry.adamushko@gmail.com\u003e\nReported-by: Mark Langsdorf \u003cmark.langsdorf@amd.com\u003e\nTested-by: Mark Langsdorf \u003cmark.langsdorf@amd.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "9e3ee1c39c0cc71222f9980ccbf87fe072897eef",
      "tree": "99462000e6f0d4f907cb2fc690f19d4d441ba0f3",
      "parents": [
        "e56b3bc7942982ac2589c942fb345e38bc7a341a",
        "f934fb19ef34730263e6afc01e8ec27a8a71470f"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jul 28 23:32:00 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jul 28 23:32:00 2008 +0200"
      },
      "message": "Merge branch \u0027linus\u0027 into cpus4096\n\nConflicts:\n\n\tkernel/stop_machine.c\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "e56b3bc7942982ac2589c942fb345e38bc7a341a",
      "tree": "8130492904f5bb9cff061f62ebb1c5d6eed3308b",
      "parents": [
        "414f746d232d41ed6ae8632c4495ae795373c44b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 28 11:32:33 2008 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jul 28 22:20:41 2008 +0200"
      },
      "message": "cpu masks: optimize and clean up cpumask_of_cpu()\n\nClean up and optimize cpumask_of_cpu(), by sharing all the zero words.\n\nInstead of stupidly generating all possible i\u003d0...NR_CPUS 2^i patterns\ncreating a huge array of constant bitmasks, realize that the zero words\ncan be shared.\n\nIn other words, on a 64-bit architecture, we only ever need 64 of these\narrays - with a different bit set in one single world (with enough zero\nwords around it so that we can create any bitmask by just offsetting in\nthat big array). And then we just put enough zeroes around it that we\ncan point every single cpumask to be one of those things.\n\nSo when we have 4k CPU\u0027s, instead of having 4k arrays (of 4k bits each,\nwith one bit set in each array - 2MB memory total), we have exactly 64\narrays instead, each 8k bits in size (64kB total).\n\nAnd then we just point cpumask(n) to the right position (which we can\ncalculate dynamically). Once we have the right arrays, getting\n\"cpumask(n)\" ends up being:\n\n  static inline const cpumask_t *get_cpu_mask(unsigned int cpu)\n  {\n          const unsigned long *p \u003d cpu_bit_bitmap[1 + cpu % BITS_PER_LONG];\n          p -\u003d cpu / BITS_PER_LONG;\n          return (const cpumask_t *)p;\n  }\n\nThis brings other advantages and simplifications as well:\n\n - we are not wasting memory that is just filled with a single bit in\n   various different places\n\n - we don\u0027t need all those games to re-create the arrays in some dense\n   format, because they\u0027re already going to be dense enough.\n\nif we compile a kernel for up to 4k CPU\u0027s, \"wasting\" that 64kB of memory\nis a non-issue (especially since by doing this \"overlapping\" trick we\nprobably get better cache behaviour anyway).\n\n[ mingo@elte.hu:\n\n  Converted Linus\u0027s mails into a commit. See:\n\n     http://lkml.org/lkml/2008/7/27/156\n     http://lkml.org/lkml/2008/7/28/320\n\n  Also applied a family filter - which also has the side-effect of leaving\n  out the bits where Linus calls me an idio... Oh, never mind ;-)\n]\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Al Viro \u003cviro@ZenIV.linux.org.uk\u003e\nCc: Mike Travis \u003ctravis@sgi.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "eeec4fad963490821348a331cca6102ae1c4a7a3",
      "tree": "163a7d9414d719fccac096d1ba822416f705b397",
      "parents": [
        "04321587584272f4e8b9818f319f40caf8eeee13"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Mon Jul 28 12:16:30 2008 -0500"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Mon Jul 28 12:16:30 2008 +1000"
      },
      "message": "stop_machine(): stop_machine_run() changed to use cpu mask\n\nInstead of a \"cpu\" arg with magic values NR_CPUS (any cpu) and ~0 (all\ncpus), pass a cpumask_t.  Allow NULL for the common case (where we\ndon\u0027t care which CPU the function is run on): temporary cpumask_t\u0027s\nare usually considered bad for stack space.\n\nThis deprecates stop_machine_run, to be removed soon when all the\ncallers are dead.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "04321587584272f4e8b9818f319f40caf8eeee13",
      "tree": "5bf00c36a182644cc2c4fe2577b14e050a49418b",
      "parents": [
        "ffdb5976c47609c862917d4c186ecbb5706d2dda"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Mon Jul 28 12:16:29 2008 -0500"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Mon Jul 28 12:16:29 2008 +1000"
      },
      "message": "Hotplug CPU: don\u0027t check cpu_online after take_cpu_down\n\nAkinobu points out that if take_cpu_down() succeeds, the cpu must be offline.\nRemove the cpu_online() check, and put a BUG_ON().\n\nQuoting Akinobu Mita:\n   Actually the cpu_online() check was necessary before appling this\n   stop_machine: simplify patch.\n\n   With old __stop_machine_run(), __stop_machine_run() could succeed\n   (return !IS_ERR(p) value) even if take_cpu_down() returned non-zero value.\n   The return value of take_cpu_down() was obtained through kthread_stop()..\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: \"Akinobu Mita\" \u003cakinobu.mita@gmail.com\u003e\n"
    },
    {
      "commit": "ffdb5976c47609c862917d4c186ecbb5706d2dda",
      "tree": "7a8485260922290080094adc25f3cbebd4ad506b",
      "parents": [
        "5c2aed622571ac7c3c6ec182d6d3c318e4b45c8b"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Mon Jul 28 12:16:28 2008 -0500"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Mon Jul 28 12:16:29 2008 +1000"
      },
      "message": "Simplify stop_machine\n\nstop_machine creates a kthread which creates kernel threads.  We can\ncreate those threads directly and simplify things a little.  Some care\nmust be taken with CPU hotunplug, which has special needs, but that code\nseems more robust than it was in the past.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nAcked-by: Christian Borntraeger \u003cborntraeger@de.ibm.com\u003e\n"
    },
    {
      "commit": "5a7a201c51c324876d00a54e7208af6af12d1ca4",
      "tree": "c996456a44722bc8bd58661c5d869e9d9d1d2ea5",
      "parents": [
        "0bc3cc03fa6e1c20aecb5a33356bcaae410640b9"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Jul 26 16:50:47 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Jul 26 16:48:59 2008 +0200"
      },
      "message": "cpumask: export cpumask_of_cpu_map\n\nfix:\n\n ERROR: \"cpumask_of_cpu_map\" [drivers/acpi/processor.ko] undefined!\n ERROR: \"cpumask_of_cpu_map\" [arch/x86/kernel/microcode.ko] undefined!\n ERROR: \"cpumask_of_cpu_map\" [arch/x86/kernel/cpu/cpufreq/speedstep-ich.ko] undefined!\n ERROR: \"cpumask_of_cpu_map\" [arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.ko] undefined!\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "6524d938b3360504b43a1278b5a8403e85383d1a",
      "tree": "8edbe9e88883e992f63c68ca0f1ea3ab4594ebb9",
      "parents": [
        "b8d317d10cca76cabe6b03ebfeb23cc99118b731"
      ],
      "author": {
        "name": "Mike Travis",
        "email": "travis@sgi.com",
        "time": "Thu Jul 24 18:21:30 2008 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Jul 26 16:40:33 2008 +0200"
      },
      "message": "cpumask: put cpumask_of_cpu_map in the initdata section\n\n  * Create the cpumask_of_cpu_map statically in the init data section\n    using NR_CPUS but replace it during boot up with one sized by\n    nr_cpu_ids (num possible cpus).\n\nSigned-off-by: Mike Travis \u003ctravis@sgi.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Jack Steiner \u003csteiner@sgi.com\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "b8d317d10cca76cabe6b03ebfeb23cc99118b731",
      "tree": "a997d21960099095822ffbfe8be4d3f6176f33a9",
      "parents": [
        "024e8ac04453b3525448c31ef39848cf675ba6db"
      ],
      "author": {
        "name": "Mike Travis",
        "email": "travis@sgi.com",
        "time": "Thu Jul 24 18:21:29 2008 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Jul 26 16:40:32 2008 +0200"
      },
      "message": "cpumask: make cpumask_of_cpu_map generic\n\nIf an arch doesn\u0027t define cpumask_of_cpu_map, create a generic\nstatically-initialized one for them.  This allows removal of the buggy\ncpumask_of_cpu() macro (\u0026cpumask_of_cpu() gives address of\nout-of-scope var).\n\nAn arch with NR_CPUS of 4096 probably wants to allocate this itself\nbased on the actual number of CPUs, since otherwise they\u0027re using 2MB\nof rodata (1024 cpus means 128k).  That\u0027s what\nCONFIG_HAVE_CPUMASK_OF_CPU_MAP is for (only x86/64 does so at the\nmoment).\n\nIn future as we support more CPUs, we\u0027ll need to resort to a\nget_cpu_map()/put_cpu_map() allocation scheme.\n\nSigned-off-by: Mike Travis \u003ctravis@sgi.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Jack Steiner \u003csteiner@sgi.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "3da1c84c00c7e5fa8348336bd8c342f9128b0f14",
      "tree": "af960c65a670319fa86846a493a6d97f9fb37cd9",
      "parents": [
        "8616a89ab761239c963eea3a63be383f127cc7e8"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Fri Jul 25 01:47:50 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:40 2008 -0700"
      },
      "message": "workqueues: make get_online_cpus() useable for work-\u003efunc()\n\nworkqueue_cpu_callback(CPU_DEAD) flushes cwq-\u003ethread under\ncpu_maps_update_begin().  This means that the multithreaded workqueues\ncan\u0027t use get_online_cpus() due to the possible deadlock, very bad and\nvery old problem.\n\nIntroduce the new state, CPU_POST_DEAD, which is called after\ncpu_hotplug_done() but before cpu_maps_update_done().\n\nChange workqueue_cpu_callback() to use CPU_POST_DEAD instead of CPU_DEAD.\nThis means that create/destroy functions can\u0027t rely on get_online_cpus()\nany longer and should take cpu_add_remove_lock instead.\n\n[akpm@linux-foundation.org: fix CONFIG_SMP\u003dn]\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nAcked-by: Gautham R Shenoy \u003cego@in.ibm.com\u003e\nCc: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nCc: Max Krasnyansky \u003cmaxk@qualcomm.com\u003e\nCc: Paul Jackson \u003cpj@sgi.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Vegard Nossum \u003cvegard.nossum@gmail.com\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7f9dce38378f0a4a298e885553d6bb7121376376",
      "tree": "5bfd688c9f356f7216bbc3cef3b4c10153de334b",
      "parents": [
        "26dcce0fabbef75ae426461edf21b5030bad60f3",
        "ba42059fbd0aa1ac91b582412b5fedb1258f241f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jul 23 19:36:53 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jul 23 19:36:53 2008 -0700"
      },
      "message": "Merge branch \u0027sched/for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027sched/for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  sched: hrtick_enabled() should use cpu_active()\n  sched, x86: clean up hrtick implementation\n  sched: fix build error, provide partition_sched_domains() unconditionally\n  sched: fix warning in inc_rt_tasks() to not declare variable \u0027rq\u0027 if it\u0027s not needed\n  cpu hotplug: Make cpu_active_map synchronization dependency clear\n  cpu hotplug, sched: Introduce cpu_active_map and redo sched domain managment (take 2)\n  sched: rework of \"prioritize non-migratable tasks over migratable ones\"\n  sched: reduce stack size in isolated_cpu_setup()\n  Revert parts of \"ftrace: do not trace scheduler functions\"\n\nFixed up conflicts in include/asm-x86/thread_info.h (due to the\nTIF_SINGLESTEP unification vs TIF_HRTICK_RESCHED removal) and\nkernel/sched_fair.c (due to cpu_active_map vs for_each_cpu_mask_nr()\nintroduction).\n"
    },
    {
      "commit": "bb2c018b09b681d43f5e08124b83e362647ea82b",
      "tree": "d794902c78f9fdd04ed88a4b8d451ed6f9292ec0",
      "parents": [
        "82638844d9a8581bbf33201cc209a14876eca167",
        "5b664cb235e97afbf34db9c4d77f08ebd725335e"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jul 18 22:00:54 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jul 18 22:00:54 2008 +0200"
      },
      "message": "Merge branch \u0027linus\u0027 into cpus4096\n\nConflicts:\n\n\tdrivers/acpi/processor_throttling.c\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "39b0fad7121eace85770e7a4c6dc35dfd2879768",
      "tree": "a5d85b06fd656ccb26c906c237fb45dccd46e18c",
      "parents": [
        "e761b7725234276a802322549cee5255305a0930"
      ],
      "author": {
        "name": "Max Krasnyansky",
        "email": "maxk@qualcomm.com",
        "time": "Tue Jul 15 20:56:26 2008 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jul 18 13:23:18 2008 +0200"
      },
      "message": "cpu hotplug: Make cpu_active_map synchronization dependency clear\n\nThis goes on top of the cpu_active_map (take 2) patch.\n\nCurrently we depend on the stop_machine to provide nescessesary\nsynchronization for the cpu_active_map updates.\nAs Dmitry Adamushko pointed this is fragile and is not much clearer\nthan the previous scheme. In other words we do not want to depend on\nthe internal stop machine operation here.\nSo make the synchronization rules clear by doing synchronize_sched()\nafter clearing out cpu active bit.\n\nTested on quad-Core2 with:\n\n   while true; do\n      for i in 1 2 3; do\n        echo 0 \u003e /sys/devices/system/cpu/cpu$i/online\n      done\n      for i in 1 2 3; do\n        echo 1 \u003e /sys/devices/system/cpu/cpu$i/online\n      done\n   done\nand\n   stress -c 200\n\nNo lockdep, preempt or other complaints.\n\nSigned-off-by: Max Krasnyansky \u003cmaxk@qualcomm.com\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "e761b7725234276a802322549cee5255305a0930",
      "tree": "27b351a7d5fc9a93590e0effce1c5adb1bfcebc0",
      "parents": [
        "7ebefa8ceefed44cc321be70afc54a585a68ac0b"
      ],
      "author": {
        "name": "Max Krasnyansky",
        "email": "maxk@qualcomm.com",
        "time": "Tue Jul 15 04:43:49 2008 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jul 18 13:22:25 2008 +0200"
      },
      "message": "cpu hotplug, sched: Introduce cpu_active_map and redo sched domain managment (take 2)\n\nThis is based on Linus\u0027 idea of creating cpu_active_map that prevents\nscheduler load balancer from migrating tasks to the cpu that is going\ndown.\n\nIt allows us to simplify domain management code and avoid unecessary\ndomain rebuilds during cpu hotplug event handling.\n\nPlease ignore the cpusets part for now. It needs some more work in order\nto avoid crazy lock nesting. Although I did simplfy and unify domain\nreinitialization logic. We now simply call partition_sched_domains() in\nall the cases. This means that we\u0027re using exact same code paths as in\ncpusets case and hence the test below cover cpusets too.\nCpuset changes to make rebuild_sched_domains() callable from various\ncontexts are in the separate patch (right next after this one).\n\nThis not only boots but also easily handles\n\twhile true; do make clean; make -j 8; done\nand\n\twhile true; do on-off-cpu 1; done\nat the same time.\n(on-off-cpu 1 simple does echo 0/1 \u003e /sys/.../cpu1/online thing).\n\nSuprisingly the box (dual-core Core2) is quite usable. In fact I\u0027m typing\nthis on right now in gnome-terminal and things are moving just fine.\n\nAlso this is running with most of the debug features enabled (lockdep,\nmutex, etc) no BUG_ONs or lockdep complaints so far.\n\nI believe I addressed all of the Dmitry\u0027s comments for original Linus\u0027\nversion. I changed both fair and rt balancer to mask out non-active cpus.\nAnd replaced cpu_is_offline() with !cpu_active() in the main scheduler\ncode where it made sense (to me).\n\nSigned-off-by: Max Krasnyanskiy \u003cmaxk@qualcomm.com\u003e\nAcked-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nAcked-by: Gregory Haskins \u003cghaskins@novell.com\u003e\nCc: dmitry.adamushko@gmail.com\nCc: pj@sgi.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "b62b8ef906cdf7115af579ce7378886ce3e0ce00",
      "tree": "9017eff86e7a8d22a88d92df88021f01162d7e0e",
      "parents": [
        "26d46867b7d27f68a446b073dac7817721ae4c8f"
      ],
      "author": {
        "name": "Zhang Rui",
        "email": "rui.zhang@intel.com",
        "time": "Tue Apr 29 02:35:56 2008 -0400"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "andi@basil.nowhere.org",
        "time": "Wed Jul 16 23:27:01 2008 +0200"
      },
      "message": "force offline the processor during hot-removal\n\nThe ACPI device node for the cpu has already been unregistered\nwhen acpi_processor_handle_eject is called.\nThus we should offline the cpu and continue, rather than a failure here.\nhttp://bugzilla.kernel.org/show_bug.cgi?id\u003d9772\n\nSigned-off-by: Zhang Rui \u003crui.zhang@intel.com\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\n"
    },
    {
      "commit": "82638844d9a8581bbf33201cc209a14876eca167",
      "tree": "961d7f9360194421a71aa644a9d0c176a960ce49",
      "parents": [
        "9982fbface82893e77d211fbabfbd229da6bdde6",
        "63cf13b77ab785e87c867defa8545e6d4a989774"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jul 16 00:29:07 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jul 16 00:29:07 2008 +0200"
      },
      "message": "Merge branch \u0027linus\u0027 into cpus4096\n\nConflicts:\n\n\tarch/x86/xen/smp.c\n\tkernel/sched_rt.c\n\tnet/iucv/iucv.c\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "68f4f1ec08e3d95730a2693b99df8260aa0d06ae",
      "tree": "c5deab621f545eac80fcec6608d68cddf6705032",
      "parents": [
        "5c8e1ed1d204a6770ca2854cd3b3597070fe7e5a"
      ],
      "author": {
        "name": "Max Krasnyansky",
        "email": "maxk@qualcomm.com",
        "time": "Thu May 29 11:17:02 2008 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jun 06 15:25:01 2008 +0200"
      },
      "message": "sched: Move cpu masks from kernel/sched.c into kernel/cpu.c\n\nkernel/cpu.c seems a more logical place for those maps since they do not really\nhave much to do with the scheduler these days.\n\nkernel/cpu.c is now built for the UP kernel too, but it does not affect the size\nthe kernel sections.\n\n$ size vmlinux\n\nbefore\n   text       data        bss        dec        hex    filename\n3313797     307060     310352    3931209     3bfc49    vmlinux\n\nafter\n   text       data        bss        dec        hex    filename\n3313797     307060     310352    3931209     3bfc49    vmlinux\n\nSigned-off-by: Max Krasnyansky \u003cmaxk@qualcomm.com\u003e\nCc: pj@sgi.com\nCc: menage@google.com\nCc: rostedt@goodmis.org\nCc: mingo@elte.hu\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "363ab6f1424cdea63e5d182312d60e19077b892a",
      "tree": "e200197412691015ca8de083155985e7e460ecfc",
      "parents": [
        "068b12772a64c2440ef2f64ac5d780688c06576f"
      ],
      "author": {
        "name": "Mike Travis",
        "email": "travis@sgi.com",
        "time": "Mon May 12 21:21:13 2008 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri May 23 18:35:12 2008 +0200"
      },
      "message": "core: use performance variant for_each_cpu_mask_nr\n\nChange references from for_each_cpu_mask to for_each_cpu_mask_nr\nwhere appropriate\n\nReviewed-by: Paul Jackson \u003cpj@sgi.com\u003e\nReviewed-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Mike Travis \u003ctravis@sgi.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n\n"
    },
    {
      "commit": "af1f16d08f38ab6f17b5760e6ec9d2b7d3a5ff1a",
      "tree": "7d03fc171300efd43634d2e28d913fd508ab7474",
      "parents": [
        "d40cee245ff6ad05d3448401d7320be82c1c5af1"
      ],
      "author": {
        "name": "Harvey Harrison",
        "email": "harvey.harrison@gmail.com",
        "time": "Wed Apr 30 00:55:08 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 30 08:29:54 2008 -0700"
      },
      "message": "kernel: replace remaining __FUNCTION__ occurrences\n\n__FUNCTION__ is gcc-specific, use __func__\n\nSigned-off-by: Harvey Harrison \u003charvey.harrison@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d2ba7e2ae206e9ab24e8937d99d0d5513bfd08e5",
      "tree": "4cdd43bbf03885705fed5c80e982d19d397afaeb",
      "parents": [
        "1e35eaa2d86419470f3f3aed9acd85b8addff25c"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Tue Apr 29 01:00:29 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 29 08:06:11 2008 -0700"
      },
      "message": "simplify cpu_hotplug_begin()/put_online_cpus()\n\ncpu_hotplug_begin() must be always called under cpu_add_remove_lock, this\nmeans that only one process can be cpu_hotplug.active_writer.  So we don\u0027t\nneed the cpu_hotplug.writer_queue, we can wake up the -\u003eactive_writer\ndirectly.\n\nAlso, fix the comment.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Dipankar Sarma \u003cdipankar@in.ibm.com\u003e\nAcked-by: Gautham R Shenoy \u003cego@in.ibm.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Srivatsa Vaddagiri \u003cvatsa@in.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": "f7b16c108fd044adc422ff21b5d6c16022462fd0",
      "tree": "dbc64c60bd7c1d3f046ac230fdb415b7ab7af4bf",
      "parents": [
        "514a20a5da99aef8e667cc395841a5c4e5f9e8c1"
      ],
      "author": {
        "name": "Sam Ravnborg",
        "email": "sam@ravnborg.org",
        "time": "Tue Apr 29 00:58:51 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 29 08:06:00 2008 -0700"
      },
      "message": "cpu: fix section mismatch warning in reference to register_cpu_notifier\n\nFix following warnings:\nWARNING: vmlinux.o(.text+0xc60): Section mismatch in reference from the function kvm_init() to the function .cpuinit.text:register_cpu_notifier()\nWARNING: vmlinux.o(.text+0x33869a): Section mismatch in reference from the function xfs_icsb_init_counters() to the function .cpuinit.text:register_cpu_notifier()\nWARNING: vmlinux.o(.text+0x5556a1): Section mismatch in reference from the function acpi_processor_install_hotplug_notify() to the function .cpuinit.text:register_cpu_notifier()\nWARNING: vmlinux.o(.text+0xfe6b28): Section mismatch in reference from the function cpufreq_register_driver() to the function .cpuinit.text:register_cpu_notifier()\n\nregister_cpu_notifier() are only really defined when HOTPLUG_CPU is enabled.\nSo references to the function are OK.\n\nAnnotate it with __ref so we do not get warnings from callers and do not get\nwarnings for the functions/data used by register_cpu_notifier().\n\nSigned-off-by: Sam Ravnborg \u003csam@ravnborg.org\u003e\nCc: Gautham R Shenoy \u003cego@in.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": "514a20a5da99aef8e667cc395841a5c4e5f9e8c1",
      "tree": "c95ee722fb4cfc58ebb2fcad5ec7971abc3884de",
      "parents": [
        "9647155ffbce9dffed8a9a4768c8994334b609db"
      ],
      "author": {
        "name": "Sam Ravnborg",
        "email": "sam@ravnborg.org",
        "time": "Tue Apr 29 00:58:50 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 29 08:06:00 2008 -0700"
      },
      "message": "cpu: fix section mismatch warnings in *cpu_down\n\nFix following warnings:\nWARNING: vmlinux.o(.text+0x75c8d): Section mismatch in reference from the function take_cpu_down() to the variable .cpuinit.data:cpu_chain\nWARNING: vmlinux.o(.text+0x75d2a): Section mismatch in reference from the function _cpu_down() to the variable .cpuinit.data:cpu_chain\nWARNING: vmlinux.o(.text+0x75d4d): Section mismatch in reference from the function _cpu_down() to the variable .cpuinit.data:cpu_chain\nWARNING: vmlinux.o(.text+0x75de4): Section mismatch in reference from the function _cpu_down() to the variable .cpuinit.data:cpu_chain\nWARNING: vmlinux.o(.text+0x75e33): Section mismatch in reference from the function _cpu_down() to the variable .cpuinit.data:cpu_chain\n\ncpu_down is only used from code surrounded by HOTPLUG_CPU so any references to\n__cpuinit is OK.\n\nAdd a few __ref to tech modpost to ignore the references.\n\nThis is just papering over the fact that the cpu hotplug code is fragile with\nrespect to use of HOTPLUG_CPU and in many cases rely on __cpuinit to get rid\nof code when HOTPLUG_CPU is not enabled.  For now this is the least invasive\nchange.\n\nSigned-off-by: Sam Ravnborg \u003csam@ravnborg.org\u003e\nCc: Gautham R Shenoy \u003cego@in.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": "9647155ffbce9dffed8a9a4768c8994334b609db",
      "tree": "da905e9965a2f5932fb56be66836b1b8804b5f3f",
      "parents": [
        "f718e31819857825315300ea3c2dbc3f26ff3b0e"
      ],
      "author": {
        "name": "Sam Ravnborg",
        "email": "sam@ravnborg.org",
        "time": "Tue Apr 29 00:58:48 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 29 08:05:59 2008 -0700"
      },
      "message": "cpu: fix section mismatch warning in unregister_cpu_notifier\n\nFix following warning:\nWARNING: vmlinux.o(.text+0x75f4e): Section mismatch in reference from the function unregister_cpu_notifier() to the variable .cpuinit.data:cpu_chain\n\nWe know that unregister_cpu_notifier is using HOTPLUG_CPU\nstuff - so ignore these references.\nAnnotating unregister_cpu_notifier had been another option\nbut this caused far more warnings since not all callers were\nannotated __cpuinit.\n\nSigned-off-by: Sam Ravnborg \u003csam@ravnborg.org\u003e\nCc: Gautham R Shenoy \u003cego@in.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": "f70316dace2bb99730800d47044acb818c6735f6",
      "tree": "03c0178c8d6c0213a82b800f4a3e00c2da9a4d5c",
      "parents": [
        "fc0e474840d1fd96f28fbd76d4f36b80e7ad1cc3"
      ],
      "author": {
        "name": "Mike Travis",
        "email": "travis@sgi.com",
        "time": "Fri Apr 04 18:11:06 2008 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Apr 19 19:44:58 2008 +0200"
      },
      "message": "generic: use new set_cpus_allowed_ptr function\n\n  * Use new set_cpus_allowed_ptr() function added by previous patch,\n    which instead of passing the \"newly allowed cpus\" cpumask_t arg\n    by value,  pass it by pointer:\n\n    -int set_cpus_allowed(struct task_struct *p, cpumask_t new_mask)\n    +int set_cpus_allowed_ptr(struct task_struct *p, const cpumask_t *new_mask)\n\n  * Modify CPU_MASK_ALL\n\nDepends on:\n\t[sched-devel]: sched: add new set_cpus_allowed_ptr function\n\nSigned-off-by: Mike Travis \u003ctravis@sgi.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "fa7303e22c829a3364b5b7227aec9ed2d8623b2c",
      "tree": "6080eeec19aa52720dd20f3237ad3ca5aef9a82a",
      "parents": [
        "13d8bcd263cf96c67bd4071ad13cd056dca7b0fb"
      ],
      "author": {
        "name": "Sam Ravnborg",
        "email": "sam@ravnborg.org",
        "time": "Fri Feb 08 04:21:55 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:41 2008 -0800"
      },
      "message": "cpu: fix section mismatch warnings for enable_nonboot_cpus\n\nFix following warning:\nWARNING: o-x86_64/kernel/built-in.o(.text+0x36d8b): Section mismatch in reference from the function enable_nonboot_cpus() to the function .cpuinit.text:_cpu_up()\n\nenable_nonboot_cpus() are used solely from CONFIG_CONFIG_PM_SLEEP_SMP\u003dy\nand PM_SLEEP_SMP imply HOTPLUG_CPU therefore the reference\nto _cpu_up() is valid.\nAnnotate enable_nonboot_cpus() with __ref to silence modpost.\n\nSigned-off-by: Sam Ravnborg \u003csam@ravnborg.org\u003e\nCc: Gautham R Shenoy \u003cego@in.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": "95402b3829010fe1e208f44e4a158ccade88969a",
      "tree": "3b9895b47623b4673e3c11121980e5171af76bbe",
      "parents": [
        "86ef5c9a8edd78e6bf92879f32329d89b2d55b5a"
      ],
      "author": {
        "name": "Gautham R Shenoy",
        "email": "ego@in.ibm.com",
        "time": "Fri Jan 25 21:08:02 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:02 2008 +0100"
      },
      "message": "cpu-hotplug: replace per-subsystem mutexes with get_online_cpus()\n\nThis patch converts the known per-subsystem mutexes to get_online_cpus\nput_online_cpus. It also eliminates the CPU_LOCK_ACQUIRE and\nCPU_LOCK_RELEASE hotplug notification events.\n\nSigned-off-by: Gautham  R Shenoy \u003cego@in.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "86ef5c9a8edd78e6bf92879f32329d89b2d55b5a",
      "tree": "7bf46885326a6fdbb0c3596855408e9a5634dd3a",
      "parents": [
        "d221938c049f4845da13c8593132595a6b9222a8"
      ],
      "author": {
        "name": "Gautham R Shenoy",
        "email": "ego@in.ibm.com",
        "time": "Fri Jan 25 21:08:02 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:02 2008 +0100"
      },
      "message": "cpu-hotplug: replace lock_cpu_hotplug() with get_online_cpus()\n\nReplace all lock_cpu_hotplug/unlock_cpu_hotplug from the kernel and use\nget_online_cpus and put_online_cpus instead as it highlights the\nrefcount semantics in these operations.\n\nThe new API guarantees protection against the cpu-hotplug operation, but\nit doesn\u0027t guarantee serialized access to any of the local data\nstructures. Hence the changes needs to be reviewed.\n\nIn case of pseries_add_processor/pseries_remove_processor, use\ncpu_maps_update_begin()/cpu_maps_update_done() as we\u0027re modifying the\ncpu_present_map there.\n\nSigned-off-by: Gautham R Shenoy \u003cego@in.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "d221938c049f4845da13c8593132595a6b9222a8",
      "tree": "8eae6c7095a3d7d31d7435befc30019540a4d13e",
      "parents": [
        "6b2d7700266b9402e12824e11e0099ae6a4a6a79"
      ],
      "author": {
        "name": "Gautham R Shenoy",
        "email": "ego@in.ibm.com",
        "time": "Fri Jan 25 21:08:01 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:01 2008 +0100"
      },
      "message": "cpu-hotplug: refcount based cpu hotplug\n\nThis patch implements a Refcount + Waitqueue based model for\ncpu-hotplug.\n\nNow, a thread which wants to prevent cpu-hotplug, will bump up a global\nrefcount and the thread which wants to perform a cpu-hotplug operation\nwill block till the global refcount goes to zero.\n\nThe readers, if any, during an ongoing cpu-hotplug operation are blocked\nuntil the cpu-hotplug operation is over.\n\nSigned-off-by: Gautham R Shenoy \u003cego@in.ibm.com\u003e\nSigned-off-by: Paul Jackson \u003cpj@sgi.com\u003e [For !CONFIG_HOTPLUG_CPU ]\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "73e753a50dcac7d6d4fa8b9552203ef544a70d77",
      "tree": "7e8569cb99f6792bb436a07ec5ea45632b9c4ecf",
      "parents": [
        "470fd646444c65a5d062a371f5ec8dcedee61239"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Thu Oct 18 23:40:47 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 19 11:53:44 2007 -0700"
      },
      "message": "CPU HOTPLUG: avoid hotadd when proper possible_map isn\u0027t specified\n\ncpu-hot-add should be fail if cpu is not set in cpu_possible_map.  If go\nahead, the system will panic soon.\n\nEspecially, arch which requires additional_cpus\u003d parameter should handle\nthis.  Tested on ia64.\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    }
  ],
  "next": "ba25f9dcc4ea6e30839fcab5a5516f2176d5bfed"
}
