)]}'
{
  "log": [
    {
      "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": "f445027e4e692bd885118460b292d08027fd5501",
      "tree": "e7791443970d45ffede0f23018676d508a1f1149",
      "parents": [
        "aaaa287b89a09f22573dc57fcbb6a7dc7d25c8ed"
      ],
      "author": {
        "name": "Jeremy Fitzhardinge",
        "email": "jeremy.fitzhardinge@citrix.com",
        "time": "Mon Oct 31 17:11:15 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 31 17:30:53 2011 -0700"
      },
      "message": "stop_machine: make stop_machine safe and efficient to call early\n\nMake stop_machine() safe to call early in boot, before SMP has been set\nup, by simply calling the callback function directly if there\u0027s only one\nCPU online.\n\n[ Fixes from AKPM:\n   - add comment\n   - local_irq_flags, not save_flags\n   - also call hard_irq_disable() for systems which need it\n\n  Tejun suggested using an explicit flag rather than just looking at\n  the online cpu count. ]\n\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nAcked-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: H. Peter Anvin \u003chpa@linux.intel.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nAcked-by: Tejun Heo \u003chtejun@gmail.com\u003e\nCc: Konrad Rzeszutek Wilk \u003ckonrad.wilk@oracle.com\u003e\nSigned-off-by: Jeremy Fitzhardinge \u003cjeremy.fitzhardinge@citrix.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\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": "60063497a95e716c9a689af3be2687d261f115b4",
      "tree": "6ce0d68db76982c53df46aee5f29f944ebf2c320",
      "parents": [
        "148817ba092f9f6edd35bad3c6c6b8e8f90fe2ed"
      ],
      "author": {
        "name": "Arun Sharma",
        "email": "asharma@fb.com",
        "time": "Tue Jul 26 16:09:06 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 26 16:49:47 2011 -0700"
      },
      "message": "atomic: use \u003clinux/atomic.h\u003e\n\nThis allows us to move duplicated code in \u003casm/atomic.h\u003e\n(atomic_inc_not_zero() for now) to \u003clinux/atomic.h\u003e\n\nSigned-off-by: Arun Sharma \u003casharma@fb.com\u003e\nReviewed-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: David Miller \u003cdavem@davemloft.net\u003e\nCc: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nAcked-by: Mike Frysinger \u003cvapier@gentoo.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "192d8857427dd23707d5f0b86ca990c3af6f2d74",
      "tree": "1de33c7a3adbe14863f9bbdaf57a8b76c6144f62",
      "parents": [
        "f740e6cd0cb5e7468e46831aeb4d9c30e03d5ebc"
      ],
      "author": {
        "name": "Suresh Siddha",
        "email": "suresh.b.siddha@intel.com",
        "time": "Thu Jun 23 11:19:29 2011 -0700"
      },
      "committer": {
        "name": "H. Peter Anvin",
        "email": "hpa@linux.intel.com",
        "time": "Mon Jun 27 15:17:13 2011 -0700"
      },
      "message": "x86, mtrr: use stop_machine APIs for doing MTRR rendezvous\n\nMTRR rendezvous sequence is not implemened using stop_machine() before, as this\ngets called both from the process context aswell as the cpu online paths\n(where the cpu has not come online and the interrupts are disabled etc).\n\nNow that we have a new stop_machine_from_inactive_cpu() API, use it for\nrendezvous during mtrr init of a logical processor that is coming online.\n\nFor the rest (runtime MTRR modification, system boot, resume paths), use\nstop_machine() to implement the rendezvous sequence. This will consolidate and\ncleanup the code.\n\nSigned-off-by: Suresh Siddha \u003csuresh.b.siddha@intel.com\u003e\nLink: http://lkml.kernel.org/r/20110623182057.076997177@sbsiddha-MOBL3.sc.intel.com\nSigned-off-by: H. Peter Anvin \u003chpa@linux.intel.com\u003e\n"
    },
    {
      "commit": "f740e6cd0cb5e7468e46831aeb4d9c30e03d5ebc",
      "tree": "83d81928de5d3ebc3b325f633dddd77a0e6ad662",
      "parents": [
        "fd7355ba1e936487f5aae6fc058c6cb300e44a64"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Jun 23 11:19:28 2011 -0700"
      },
      "committer": {
        "name": "H. Peter Anvin",
        "email": "hpa@linux.intel.com",
        "time": "Mon Jun 27 15:17:08 2011 -0700"
      },
      "message": "stop_machine: implement stop_machine_from_inactive_cpu()\n\nCurrently, mtrr wants stop_machine functionality while a CPU is being\nbrought up.  As stop_machine() requires the calling CPU to be active,\nmtrr implements its own stop_machine using stop_one_cpu() on each\nonline CPU.  This doesn\u0027t only unnecessarily duplicate complex logic\nbut also introduces a possibility of deadlock when it races against\nthe generic stop_machine().\n\nThis patch implements stop_machine_from_inactive_cpu() to serve such\nuse cases.  Its functionality is basically the same as stop_machine();\nhowever, it should be called from a CPU which isn\u0027t active and doesn\u0027t\ndepend on working scheduling on the calling CPU.\n\nThis is achieved by using busy loops for synchronization and\nopen-coding stop_cpus queuing and waiting with direct invocation of\nfn() for local CPU inbetween.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nLink: http://lkml.kernel.org/r/20110623182056.982526827@sbsiddha-MOBL3.sc.intel.com\nSigned-off-by: Suresh Siddha \u003csuresh.b.siddha@intel.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: H. Peter Anvin \u003chpa@linux.intel.com\u003e\n"
    },
    {
      "commit": "fd7355ba1e936487f5aae6fc058c6cb300e44a64",
      "tree": "1f9292a0e34a14c5e47758d96b17f1d2d398b63a",
      "parents": [
        "6d3321e8e2b3bf6a5892e2ef673c7bf536e3f904"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Jun 23 11:19:27 2011 -0700"
      },
      "committer": {
        "name": "H. Peter Anvin",
        "email": "hpa@linux.intel.com",
        "time": "Mon Jun 27 15:17:07 2011 -0700"
      },
      "message": "stop_machine: reorganize stop_cpus() implementation\n\nRefactor the queuing part of the stop cpus work from __stop_cpus() into\nqueue_stop_cpus_work().\n\nThe reorganization is to help future improvements to stop_machine()\nand doesn\u0027t introduce any behavior difference.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nLink: http://lkml.kernel.org/r/20110623182056.897818337@sbsiddha-MOBL3.sc.intel.com\nSigned-off-by: Suresh Siddha \u003csuresh.b.siddha@intel.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: H. Peter Anvin \u003chpa@linux.intel.com\u003e\n"
    },
    {
      "commit": "6d3321e8e2b3bf6a5892e2ef673c7bf536e3f904",
      "tree": "4c911f90934bd755ac12f11cc2dc9070e1aead80",
      "parents": [
        "4699d4423c07a1db35ea9453eac3a07e818338f9"
      ],
      "author": {
        "name": "Suresh Siddha",
        "email": "suresh.b.siddha@intel.com",
        "time": "Thu Jun 23 11:19:26 2011 -0700"
      },
      "committer": {
        "name": "H. Peter Anvin",
        "email": "hpa@linux.intel.com",
        "time": "Mon Jun 27 14:00:46 2011 -0700"
      },
      "message": "x86, mtrr: lock stop machine during MTRR rendezvous sequence\n\nMTRR rendezvous sequence using stop_one_cpu_nowait() can potentially\nhappen in parallel with another system wide rendezvous using\nstop_machine(). This can lead to deadlock (The order in which\nworks are queued can be different on different cpu\u0027s. Some cpu\u0027s\nwill be running the first rendezvous handler and others will be running\nthe second rendezvous handler. Each set waiting for the other set to join\nfor the system wide rendezvous, leading to a deadlock).\n\nMTRR rendezvous sequence is not implemented using stop_machine() as this\ngets called both from the process context aswell as the cpu online paths\n(where the cpu has not come online and the interrupts are disabled etc).\nstop_machine() works with only online cpus.\n\nFor now, take the stop_machine mutex in the MTRR rendezvous sequence that\ngets called from an online cpu (here we are in the process context\nand can potentially sleep while taking the mutex). And the MTRR rendezvous\nthat gets triggered during cpu online doesn\u0027t need to take this stop_machine\nlock (as the stop_machine() already ensures that there is no cpu hotplug\ngoing on in parallel by doing get_online_cpus())\n\n    TBD: Pursue a cleaner solution of extending the stop_machine()\n         infrastructure to handle the case where the calling cpu is\n         still not online and use this for MTRR rendezvous sequence.\n\nfixes: https://bugzilla.novell.com/show_bug.cgi?id\u003d672008\n\nReported-by: Vadim Kotelnikov \u003cvadimuzzz@inbox.ru\u003e\nSigned-off-by: Suresh Siddha \u003csuresh.b.siddha@intel.com\u003e\nLink: http://lkml.kernel.org/r/20110623182056.807230326@sbsiddha-MOBL3.sc.intel.com\nCc: stable@kernel.org # 2.6.35+, backport a week or two after this gets more testing in mainline\nSigned-off-by: H. Peter Anvin \u003chpa@linux.intel.com\u003e\n"
    },
    {
      "commit": "94dcf29a11b3d20a28790598d701f98484a969da",
      "tree": "21c65f6634dcde739bb85cbc019ee273f1427f90",
      "parents": [
        "207205a2ba2655652fe46a60b49838af6c16a919"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Tue Mar 22 16:30:45 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:01 2011 -0700"
      },
      "message": "kthread: use kthread_create_on_node()\n\nksoftirqd, kworker, migration, and pktgend kthreads can be created with\nkthread_create_on_node(), to get proper NUMA affinities for their stack and\ntask_struct.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nAcked-by: David S. Miller \u003cdavem@davemloft.net\u003e\nReviewed-by: Andi Kleen \u003cak@linux.intel.com\u003e\nAcked-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nAcked-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Tony Luck \u003ctony.luck@intel.com\u003e\nCc: Fenghua Yu \u003cfenghua.yu@intel.com\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: \u003clinux-arch@vger.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": "4ce6494dbd8909718840bb88d5a699ef6ce5c212",
      "tree": "7803fc3f194969a736ae3a12b51e2cada7b98fbd",
      "parents": [
        "ca51c5a76345b28c6f1b742f9f5f0a6fc9afd9ca"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Tue Oct 26 14:22:45 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 16:52:15 2010 -0700"
      },
      "message": "stop_machine: convert cpu notifier to return encapsulate errno value\n\nIn commit e6bde73b07edeb703d4c89c1daabc09c303de11f (\"cpu-hotplug: return\nbetter errno on cpu hotplug failure\"), the cpu notifier can return an\nencapsulated errno value.\n\nThis converts the cpu notifier to return an encapsulated errno value for\nstop_machine().\n\nSigned-off-by: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\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": "ca51c5a76345b28c6f1b742f9f5f0a6fc9afd9ca",
      "tree": "2165800008473681383c565031b5f3fedb729d09",
      "parents": [
        "518de9b39e854542de59bfb8b9f61c8f7ecf808b"
      ],
      "author": {
        "name": "Rakib Mullick",
        "email": "rakib.mullick@gmail.com",
        "time": "Tue Oct 26 14:22:44 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 16:52:15 2010 -0700"
      },
      "message": "kernel/stop_machine.c: fix unused variable warning\n\nkernel/stop_machine.c: In function `cpu_stopper_thread\u0027:\nkernel/stop_machine.c:265: warning: unused variable `ksym_buf\u0027\n\nksym_buf[] is unused if WARN_ON() is a no-op.\n\nSigned-off-by: Rakib Mullick \u003crakib.mullick@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": "34f971f6f7988be4d014eec3e3526bee6d007ffa",
      "tree": "a662e0701f81f019418b55aa1354f833277b9c40",
      "parents": [
        "4924627423d5e286136ad2520f5be536345ae590"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Wed Sep 22 13:53:15 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Oct 18 18:41:58 2010 +0200"
      },
      "message": "sched: Create special class for stop/migrate work\n\nIn order to separate the stop/migrate work thread from the SCHED_FIFO\nimplementation, create a special class for it that is of higher priority than\nSCHED_FIFO itself.\n\nThis currently solves a problem where cpu-hotplug consumes so much cpu-time\nthat the SCHED_FIFO class gets throttled, but has the bandwidth replenishment\ntimer pending on the now dead cpu.\n\nIt is also required for when we add the planned deadline scheduling class above\nSCHED_FIFO, as the stop/migrate thread still needs to transcent those tasks.\n\nTested-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1285165776.2275.1022.camel@laptop\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "878ae1274944908e1863b06b03a2c94907afaa20",
      "tree": "35030101311d4c3e092e59da5ef0210229a81a00",
      "parents": [
        "d7a7c573936a86474c4a5090a45a4bc6e680c117"
      ],
      "author": {
        "name": "Richard Kennedy",
        "email": "richard@rsk.demon.co.uk",
        "time": "Mon Aug 09 17:20:34 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 09 20:45:06 2010 -0700"
      },
      "message": "stop_machine: struct cpu_stopper, remove alignment padding on 64 bits\n\nReorder elements in structure cpu_stopper to remove alignment padding on\n64 bit builds, this shrinks its size from 40 to 32 bytes saving 8 bytes\nper cpu.\n\nSigned-off-by: Richard Kennedy \u003crichard@rsk.demon.co.uk\u003e\nAcked-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\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": "54e88fad223c4e1d94289611a90c7fe3ebe5631b",
      "tree": "c9c9f27bf4e1e9851ee75145960607f194b3313b",
      "parents": [
        "67a3e12b05e055c0415c556a315a3d3eb637e29e"
      ],
      "author": {
        "name": "Amit K. Arora",
        "email": "aarora@linux.vnet.ibm.com",
        "time": "Tue May 25 18:53:46 2010 +0530"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon May 31 08:37:44 2010 +0200"
      },
      "message": "sched: Make sure timers have migrated before killing the migration_thread\n\nProblem: In a stress test where some heavy tests were running along with\nregular CPU offlining and onlining, a hang was observed. The system seems\nto be hung at a point where migration_call() tries to kill the\nmigration_thread of the dying CPU, which just got moved to the current\nCPU. This migration thread does not get a chance to run (and die) since\nrt_throttled is set to 1 on current, and it doesn\u0027t get cleared as the\nhrtimer which is supposed to reset the rt bandwidth\n(sched_rt_period_timer) is tied to the CPU which we just marked dead!\n\nSolution: This patch pushes the killing of migration thread to\n\"CPU_POST_DEAD\" event. By then all the timers (including\nsched_rt_period_timer) should have got migrated (along with other\ncallbacks).\n\nSigned-off-by: Amit Arora \u003caarora@in.ibm.com\u003e\nSigned-off-by: Gautham R Shenoy \u003cego@in.ibm.com\u003e\nAcked-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nLKML-Reference: \u003c20100525132346.GA14986@amitarora.in.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "9c6f7e43b4e02c161b53e97ba913855246876c61",
      "tree": "f305ceacff1af61d53bcdd403fced5fef54a7ef0",
      "parents": [
        "a93d2f1744206827ccf416e2cdc5018aa503314e"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue May 18 00:17:44 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue May 18 00:17:44 2010 +0200"
      },
      "message": "stop_machine: Move local variable closer to the usage site in cpu_stop_cpu_callback()\n\nThis addresses the following compiler warning:\n\n kernel/stop_machine.c: In function \u0027cpu_stop_cpu_callback\u0027:\n kernel/stop_machine.c:297: warning: unused variable \u0027work\u0027\n\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003ctip-3fc1f1e27a5b807791d72e5d992aa33b668a6626@git.kernel.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "bbf1bb3eee86f2eef2baa14e600be454d09109ee",
      "tree": "f7c200742a2d6ce20e72ad976b66d30d1aa6a04d",
      "parents": [
        "fc390cde362309f6892bb719194f242c466a978b"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Sat May 08 16:20:53 2010 +0200"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Sat May 08 17:12:33 2010 +0200"
      },
      "message": "cpu_stop: add dummy implementation for UP\n\nWhen !CONFIG_SMP, cpu_stop functions weren\u0027t defined at all which\ncould lead to build failures if UP code uses cpu_stop facility.  Add\ndummy cpu_stop implementation for UP.  The waiting variants execute\nthe work function directly with preempt disabled and\nstop_one_cpu_nowait() schedules a workqueue work.\n\nMakefile and ifdefs around stop_machine implementation are updated to\naccomodate CONFIG_SMP \u0026\u0026 !CONFIG_STOP_MACHINE case.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nReported-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "969c79215a35b06e5e3efe69b9412f858df7856c",
      "tree": "4256378687c8bc2011ec35a3e28bc3b6473e912c",
      "parents": [
        "3fc1f1e27a5b807791d72e5d992aa33b668a6626"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu May 06 18:49:21 2010 +0200"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu May 06 18:49:21 2010 +0200"
      },
      "message": "sched: replace migration_thread with cpu_stop\n\nCurrently migration_thread is serving three purposes - migration\npusher, context to execute active_load_balance() and forced context\nswitcher for expedited RCU synchronize_sched.  All three roles are\nhardcoded into migration_thread() and determining which job is\nscheduled is slightly messy.\n\nThis patch kills migration_thread and replaces all three uses with\ncpu_stop.  The three different roles of migration_thread() are\nsplitted into three separate cpu_stop callbacks -\nmigration_cpu_stop(), active_load_balance_cpu_stop() and\nsynchronize_sched_expedited_cpu_stop() - and each use case now simply\nasks cpu_stop to execute the callback as necessary.\n\nsynchronize_sched_expedited() was implemented with private\npreallocated resources and custom multi-cpu queueing and waiting\nlogic, both of which are provided by cpu_stop.\nsynchronize_sched_expedited_count is made atomic and all other shared\nresources along with the mutex are dropped.\n\nsynchronize_sched_expedited() also implemented a check to detect cases\nwhere not all the callback got executed on their assigned cpus and\nfall back to synchronize_sched().  If called with cpu hotplug blocked,\ncpu_stop already guarantees that and the condition cannot happen;\notherwise, stop_machine() would break.  However, this patch preserves\nthe paranoid check using a cpumask to record on which cpus the stopper\nran so that it can serve as a bisection point if something actually\ngoes wrong theree.\n\nBecause the internal execution state is no longer visible,\nrcu_expedited_torture_stats() is removed.\n\nThis patch also renames cpu_stop threads to from \"stopper/%d\" to\n\"migration/%d\".  The names of these threads ultimately don\u0027t matter\nand there\u0027s no reason to make unnecessary userland visible changes.\n\nWith this patch applied, stop_machine() and sched now share the same\nresources.  stop_machine() is faster without wasting any resources and\nsched migration users are much cleaner.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nAcked-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Dipankar Sarma \u003cdipankar@in.ibm.com\u003e\nCc: Josh Triplett \u003cjosh@freedesktop.org\u003e\nCc: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Dimitri Sivanich \u003csivanich@sgi.com\u003e\n"
    },
    {
      "commit": "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": "1142d810298e694754498dbb4983fcb6cb7fd884",
      "tree": "8c5d23b76f129e23d9d967182aa434795e44af5c",
      "parents": [
        "99bd5e2f245d8cd17d040c82d40becdb3efd9b69"
      ],
      "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": "cpu_stop: implement stop_cpu[s]()\n\nImplement a simplistic per-cpu maximum priority cpu monopolization\nmechanism.  A non-sleeping callback can be scheduled to run on one or\nmultiple cpus with maximum priority monopolozing those cpus.  This is\nprimarily to replace and unify RT workqueue usage in stop_machine and\nscheduler migration_thread which currently is serving multiple\npurposes.\n\nFour functions are provided - stop_one_cpu(), stop_one_cpu_nowait(),\nstop_cpus() and try_stop_cpus().\n\nThis is to allow clean sharing of resources among stop_cpu and all the\nmigration thread users.  One stopper thread per cpu is created which\nis currently named \"stopper/CPU\".  This will eventually replace the\nmigration thread and take on its name.\n\n* This facility was originally named cpuhog and lived in separate\n  files but Peter Zijlstra nacked the name and thus got renamed to\n  cpu_stop and moved into stop_machine.c.\n\n* Better reporting of preemption leak as per Peter\u0027s suggestion.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\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": "43cf38eb5cea91245502df3fcee4dbfc1c74dd1c",
      "tree": "a58ea87af1f07b8aed4941db074f44103f321f6e",
      "parents": [
        "ab386128f20c44c458a90039ab1bdc265ac474c9"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Feb 02 14:38:57 2010 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Feb 17 11:17:38 2010 +0900"
      },
      "message": "percpu: add __percpu sparse annotations to core kernel subsystems\n\nAdd __percpu sparse annotations to core subsystems.\n\nThese annotations are to make sparse consider percpu variables to be\nin a different address space and warn if accessed without going\nthrough percpu accessors.  This patch doesn\u0027t affect normal builds.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nReviewed-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nAcked-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: Jens Axboe \u003caxboe@kernel.dk\u003e\nCc: linux-mm@kvack.org\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Dipankar Sarma \u003cdipankar@in.ibm.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Eric Biederman \u003cebiederm@xmission.com\u003e\n"
    },
    {
      "commit": "612a726faf8486fa48b34fa37115ce1e7421d383",
      "tree": "3448dd7e8129218401eac69b24a6116b06437b4f",
      "parents": [
        "73d0a4b107d58908305f272bfae9bd17f74a2c81"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Mon Mar 30 22:05:16 2009 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Mon Mar 30 22:05:17 2009 +1030"
      },
      "message": "cpumask: remove cpumask_t from core\n\nImpact: cleanup\n\nstruct cpumask is nicer, and we use it to make where we\u0027ve made code\nsafe for CONFIG_CPUMASK_OFFSTACK\u003dy.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "b36128c830a8f5bd7d4981f5b0b69950f5928ee6",
      "tree": "c1cec2c2b374b53372ab2e0592321aae9f5ba245",
      "parents": [
        "6b588c18f8dacfa6d7957c33c5ff832096e752d3"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Fri Feb 20 16:29:08 2009 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Fri Feb 20 16:29:08 2009 +0900"
      },
      "message": "alloc_percpu: change percpu_ptr to per_cpu_ptr\n\nImpact: cleanup\n\nThere are two allocated per-cpu accessor macros with almost identical\nspelling.  The original and far more popular is per_cpu_ptr (44\nfiles), so change over the other 4 files.\n\ntj: kill percpu_ptr() and update UP too\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: mingo@redhat.com\nCc: lenb@kernel.org\nCc: cpufreq@vger.kernel.org\nSigned-off-by: Tejun Heo \u003ctj@kernel.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": "41c7bb9588904eb060a95bcad47bd3804a1ece25",
      "tree": "ccae4bd3cb26be171fad9e26147ef8839405f298",
      "parents": [
        "e0b582ec56f1a1d8b30ebf340a7b91fb09f26c8c"
      ],
      "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 rest of files in kernel/\n\nImpact: Reduce stack usage, use new cpumask API.\n\nMainly changing cpumask_t to \u0027struct cpumask\u0027 and similar simple API\nconversion.  Two conversions worth mentioning:\n\n1) we use cpumask_any_but to avoid a temporary in kernel/softlockup.c,\n2) Use cpumask_var_t in taskstats_user_cmd().\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Mike Travis \u003ctravis@sgi.com\u003e\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\n"
    },
    {
      "commit": "e14c8bf86350f6c39186a139c5c584a6111b2f01",
      "tree": "c1e0b08fc5b8efff001aecf5e6fb803423bd1c71",
      "parents": [
        "5c06fe772da43db63b053addcd2c267f76d0be91"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Mon Nov 17 08:22:18 2008 +1030"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Nov 16 15:09:52 2008 -0800"
      },
      "message": "stop_machine: fix race with return value (fixes Bug #11989)\n\nBug #11989: Suspend failure on NForce4-based boards due to chanes in\nstop_machine\n\nWe should not access active.fnret outside the lock; in theory the next\nstop_machine could overwrite it.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nTested-by: \"Rafael J. Wysocki\" \u003crjw@sisk.pl\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4403b406d4369a275d483ece6ddee0088cc0d592",
      "tree": "caefd6b7aabc1c517942be1abf25d841b181f323",
      "parents": [
        "e013e13bf605b9e6b702adffbe2853cfc60e7806"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Oct 25 19:53:38 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Oct 25 19:53:38 2008 -0700"
      },
      "message": "Revert \"Call init_workqueues before pre smp initcalls.\"\n\nThis reverts commit a802dd0eb5fc97a50cf1abb1f788a8f6cc5db635 by moving\nthe call to init_workqueues() back where it belongs - after SMP has been\ninitialized.\n\nIt also moves stop_machine_init() - which needs workqueues - to a later\nphase using a core_initcall() instead of early_initcall().  That should\nsatisfy all ordering requirements, and was apparently the reason why\ninit_workqueues() was moved to be too early.\n\nCc: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8163bcac779f62c6bf847caed9bce905db0693fb",
      "tree": "8fcf397c504fadbebecde09901aacef06b4551d8",
      "parents": [
        "c9583e55fa2b08a230c549bd1e3c0bde6c50d9cc"
      ],
      "author": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Wed Oct 22 10:00:26 2008 -0500"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Wed Oct 22 10:00:26 2008 +1100"
      },
      "message": "stop_machine: fix error code handling on multiple cpus\n\nUsing |\u003d for updating a value which might be updated on several cpus\nconcurrently will not always work since we need to make sure that the\nupdate happens atomically.\nTo fix this just use a write if the called function returns an error\ncode on a cpu. We end up writing the error code of an arbitrary cpu\nif multiple ones fail but that should be sufficient.\n\nSigned-off-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "c9583e55fa2b08a230c549bd1e3c0bde6c50d9cc",
      "tree": "ec535aced7cdf7390290a4bf61402346b166c07b",
      "parents": [
        "0d557dc97f4bb501f086a03d0f00b99a7855d794"
      ],
      "author": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Mon Oct 13 23:50:10 2008 +0200"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Wed Oct 22 10:00:26 2008 +1100"
      },
      "message": "stop_machine: use workqueues instead of kernel threads\n\nConvert stop_machine to a workqueue based approach. Instead of using kernel\nthreads for stop_machine we now use a an rt workqueue to synchronize all\ncpus.\nThis has the advantage that all needed per cpu threads are already created\nwhen stop_machine gets called. And therefore a call to stop_machine won\u0027t\nfail anymore. This is needed for s390 which needs a mechanism to synchronize\nall cpus without allocating any memory.\nAs Rusty pointed out free_module() needs a non-failing stop_machine interface\nas well.\n\nAs a side effect the stop_machine code gets simplified.\n\nSigned-off-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "ed6d68763b8b589c0ae9d231cbd72bd01f6685c5",
      "tree": "df2ad85df56c40013eea6f0bd5806d1f94e0b8b7",
      "parents": [
        "59f9415ffb9759e950d775f4c400f747b332cc02"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Thu Jul 31 10:31:02 2008 +0800"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Aug 12 17:52:55 2008 +1000"
      },
      "message": "stop_machine: remove unused variable\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\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": "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": "5c2aed622571ac7c3c6ec182d6d3c318e4b45c8b",
      "tree": "0a3b422b16cd0725eebbe5047fd5482583279d8a",
      "parents": [
        "15bba37d62351749c3915add81f673b256952ee1"
      ],
      "author": {
        "name": "Jason Baron",
        "email": "jbaron@redhat.com",
        "time": "Thu Feb 28 11:33:03 2008 -0500"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Mon Jul 28 12:16:28 2008 +1000"
      },
      "message": "stop_machine: add ALL_CPUS option\n\n-allow stop_mahcine_run() to call a function on all cpus. Calling\n stop_machine_run() with a \u0027ALL_CPUS\u0027 invokes this new behavior.\n stop_machine_run() proceeds as normal until the calling cpu has\n invoked \u0027fn\u0027. Then, we tell all the other cpus to call \u0027fn\u0027.\n\nSigned-off-by: Jason Baron \u003cjbaron@redhat.com\u003e\nSigned-off-by: Mathieu Desnoyers \u003cmathieu.desnoyers@polymtl.ca\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCC: Adrian Bunk \u003cbunk@stusta.de\u003e\nCC: Andi Kleen \u003candi@firstfloor.org\u003e\nCC: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCC: Christoph Hellwig \u003chch@infradead.org\u003e\nCC: mingo@elte.hu\nCC: akpm@osdl.org\n"
    },
    {
      "commit": "65c011845316d3c1381f478ca0d8265c43b3b039",
      "tree": "a7e29e92a1ad0440ef5fe16dc16d73e8bf7983d2",
      "parents": [
        "bb2c018b09b681d43f5e08124b83e362647ea82b"
      ],
      "author": {
        "name": "Mike Travis",
        "email": "travis@sgi.com",
        "time": "Tue Jul 15 14:14:30 2008 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jul 18 22:02:57 2008 +0200"
      },
      "message": "cpumask: Replace cpumask_of_cpu with cpumask_of_cpu_ptr\n\n  * This patch replaces the dangerous lvalue version of cpumask_of_cpu\n    with new cpumask_of_cpu_ptr macros.  These are patterned after the\n    node_to_cpumask_ptr macros.\n\n    In general terms, if there is a cpumask_of_cpu_map[] then a pointer to\n    the cpumask_of_cpu_map[cpu] entry is used.  The cpumask_of_cpu_map\n    is provided when there is a large NR_CPUS count, reducing\n    greatly the amount of code generated and stack space used for\n    cpumask_of_cpu().  The pointer to the cpumask_t value is needed for\n    calling set_cpus_allowed_ptr() to reduce the amount of stack space\n    needed to pass the cpumask_t value.\n\n    If there isn\u0027t a cpumask_of_cpu_map[], then a temporary variable is\n    declared and filled in with value from cpumask_of_cpu(cpu) as well as\n    a pointer variable pointing to this temporary variable.  Afterwards,\n    the pointer is used to reference the cpumask value.  The compiler\n    will optimize out the extra dereference through the pointer as well\n    as the stack space used for the pointer, resulting in identical code.\n\n    A good example of the orthogonal usages is in net/sunrpc/svc.c:\n\n\tcase SVC_POOL_PERCPU:\n\t{\n\t\tunsigned int cpu \u003d m-\u003epool_to[pidx];\n\t\tcpumask_of_cpu_ptr(cpumask, cpu);\n\n\t\t*oldmask \u003d current-\u003ecpus_allowed;\n\t\tset_cpus_allowed_ptr(current, cpumask);\n\t\treturn 1;\n\t}\n\tcase SVC_POOL_PERNODE:\n\t{\n\t\tunsigned int node \u003d m-\u003epool_to[pidx];\n\t\tnode_to_cpumask_ptr(nodecpumask, node);\n\n\t\t*oldmask \u003d current-\u003ecpus_allowed;\n\t\tset_cpus_allowed_ptr(current, nodecpumask);\n\t\treturn 1;\n\t}\n\nSigned-off-by: Mike Travis \u003ctravis@sgi.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "961ccddd59d627b89bd3dc284b6517833bbdf25d",
      "tree": "4d755085845b8beeaa0bbc3d3ee66e1ccc4156a8",
      "parents": [
        "481c5346d0981940ee63037eb53e4e37b0735c10"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Mon Jun 23 13:55:38 2008 +1000"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jun 23 22:57:56 2008 +0200"
      },
      "message": "sched: add new API sched_setscheduler_nocheck: add a flag to control access checks\n\nHidehiro Kawai noticed that sched_setscheduler() can fail in\nstop_machine: it calls sched_setscheduler() from insmod, which can\nhave CAP_SYS_MODULE without CAP_SYS_NICE.\n\nTwo cases could have failed, so are changed to sched_setscheduler_nocheck:\n  kernel/softirq.c:cpu_callback()\n\t- CPU hotplug callback\n  kernel/stop_machine.c:__stop_machine_run()\n\t- Called from various places, including modprobe()\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Jeremy Fitzhardinge \u003cjeremy@goop.org\u003e\nCc: Hidehiro Kawai \u003chidehiro.kawai.ez@hitachi.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: linux-mm@kvack.org\nCc: sugita \u003cyumiko.sugita.yf@hitachi.com\u003e\nCc: Satoshi OSHIMA \u003csatoshi.oshima.fk@hitachi.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "3401a61e16a5b852d4e353c8850c857105a67a9c",
      "tree": "5e05731a790c48512c7fe41c5fc83b0fee6081e3",
      "parents": [
        "4d2e7d0d77e4e1e8a21cc990c607985fdba20e66"
      ],
      "author": {
        "name": "Christian Borntraeger",
        "email": "borntraeger@de.ibm.com",
        "time": "Thu May 08 15:20:38 2008 +0200"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Fri May 23 13:09:34 2008 +1000"
      },
      "message": "stop_machine: make stop_machine_run more virtualization friendly\n\nOn kvm I have seen some rare hangs in stop_machine when I used more guest\ncpus than hosts cpus. e.g. 32 guest cpus on 1 host cpu triggered the\nhang quite often. I could also reproduce the problem on a 4 way z/VM host with\na 64 way guest.\n\nIt turned out that the guest was consuming all available cpus mostly for\nspinning on scheduler locks like rq-\u003elock. This is expected as the threads are\ncalling yield all the time.\nThe problem is now, that the host scheduling decisings together with the guest\nscheduling decisions and spinlocks not being fair managed to create an\ninteresting scenario similar to a live lock. (Sometimes the hang resolved\nitself after some minutes)\n\nChanging stop_machine to yield the cpu to the hypervisor when yielding inside\nthe guest fixed the problem for me. While I am not completely happy with this\npatch, I think it causes no harm and it really improves the situation for me.\n\nI used cpu_relax for yielding to the hypervisor, does that work on all\narchitectures?\n\np.s.: If you want to reproduce the problem, cpu hotplug and kprobes use\nstop_machine_run and both triggered the problem after some retries.\n\nSigned-off-by: Christian Borntraeger \u003cborntraeger@de.ibm.com\u003e\nCC: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "e9b62693ae0a1e13ccc97a6792d9a7770c8d1b5b",
      "tree": "c676609730533fc1b7c5e01992e46b6eaf75f99b",
      "parents": [
        "548453fd107f789f5f1bc2dc13cc432ceb3b5efd",
        "838cb6aba4cebcf4fcd06b90e2adf890bef884ac"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 21 16:36:46 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 21 16:36:46 2008 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/juhl/trivial\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/juhl/trivial: (24 commits)\n  DOC:  A couple corrections and clarifications in USB doc.\n  Generate a slightly more informative error msg for bad HZ\n  fix typo \"is\" -\u003e \"if\" in Makefile\n  ext*: spelling fix prefered -\u003e preferred\n  DOCUMENTATION:  Use newer DEFINE_SPINLOCK macro in docs.\n  KEYS:  Fix the comment to match the file name in rxrpc-type.h.\n  RAID: remove trailing space from printk line\n  DMA engine: typo fixes\n  Remove unused MAX_NODES_SHIFT\n  MAINTAINERS: Clarify access to OCFS2 development mailing list.\n  V4L: Storage class should be before const qualifier (sn9c102)\n  V4L: Storage class should be before const qualifier\n  sonypi: Storage class should be before const qualifier\n  intel_menlow: Storage class should be before const qualifier\n  DVB: Storage class should be before const qualifier\n  arm: Storage class should be before const qualifier\n  ALSA: Storage class should be before const qualifier\n  acpi: Storage class should be before const qualifier\n  firmware_sample_driver.c: fix coding style\n  MAINTAINERS: Add ati_remote2 driver\n  ...\n\nFixed up trivial conflicts in firmware_sample_driver.c\n"
    },
    {
      "commit": "429f731dea577bdd43693940cdca524135287e6a",
      "tree": "932337b7d23dd736612c6b6e6601c50bc24cfc5f",
      "parents": [
        "85b375a613085b78531ec86369a51c2f3b922f95",
        "d2f5e80862d33a7746a40569840248a592dbc395"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 21 15:41:27 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 21 15:41:27 2008 -0700"
      },
      "message": "Merge branch \u0027semaphore\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/willy/misc\n\n* \u0027semaphore\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/willy/misc:\n  Deprecate the asm/semaphore.h files in feature-removal-schedule.\n  Convert asm/semaphore.h users to linux/semaphore.h\n  security: Remove unnecessary inclusions of asm/semaphore.h\n  lib: Remove unnecessary inclusions of asm/semaphore.h\n  kernel: Remove unnecessary inclusions of asm/semaphore.h\n  include: Remove unnecessary inclusions of asm/semaphore.h\n  fs: Remove unnecessary inclusions of asm/semaphore.h\n  drivers: Remove unnecessary inclusions of asm/semaphore.h\n  net: Remove unnecessary inclusions of asm/semaphore.h\n  arch: Remove unnecessary inclusions of asm/semaphore.h\n"
    },
    {
      "commit": "f5264481c8049673e2cc8c7aca410931f571ba2d",
      "tree": "cfe54747b75be1c83d2102d9e7f80c650602fcdc",
      "parents": [
        "1fb7c6e4cba35b5e7cef88b58d0a2ad164d801a5"
      ],
      "author": {
        "name": "Pavel Machek",
        "email": "pavel@suse.cz",
        "time": "Mon Apr 21 22:15:06 2008 +0000"
      },
      "committer": {
        "name": "Jesper Juhl",
        "email": "juhl@hera.kernel.org",
        "time": "Mon Apr 21 22:15:06 2008 +0000"
      },
      "message": "trivial: small cleanups\n\nThese are small cleanups all over the tree.\n\nTrivial style and comment changes to\n  fs/select.c, kernel/signal.c, kernel/stop_machine.c \u0026 mm/pdflush.c\n\nSigned-off-by: Pavel Machek \u003cpavel@suse.cz\u003e\nSigned-off-by: Jesper Juhl \u003cjesper.juhl@gmail.com\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": "a6550207538619bc9b90bac2e1d5e54902a432ad",
      "tree": "cc9bb9b5153810b544c2afcc7721353ff5ce957d",
      "parents": [
        "5a6483feb0c5193519625d0ea8c4254364d423cc"
      ],
      "author": {
        "name": "Matthew Wilcox",
        "email": "matthew@wil.cx",
        "time": "Tue Feb 26 10:47:18 2008 -0500"
      },
      "committer": {
        "name": "Matthew Wilcox",
        "email": "willy@linux.intel.com",
        "time": "Fri Apr 18 22:17:04 2008 -0400"
      },
      "message": "kernel: Remove unnecessary inclusions of asm/semaphore.h\n\nNone of these files use any of the functionality promised by\nasm/semaphore.h.\n\nSigned-off-by: Matthew Wilcox \u003cwilly@linux.intel.com\u003e\n"
    },
    {
      "commit": "6c6080f74c8d83a83a1e36bce803de15c0633898",
      "tree": "fd017cd3697ca30a169572018e88bf628983509b",
      "parents": [
        "bcf11cbeccd7d981d68567942ba6ec184890bc29"
      ],
      "author": {
        "name": "Daniel Walker",
        "email": "dwalker@mvista.com",
        "time": "Wed Feb 06 01:37:41 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Feb 06 10:41:08 2008 -0800"
      },
      "message": "stopmachine: semaphore to mutex\n\n[akpm@linux-foundation.org: cleanup]\nSigned-off-by: Daniel Walker \u003cdwalker@mvista.com\u003e\nAcked-by: 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": "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": "85653af7d488702165eba72c6c1dd0250fae4e70",
      "tree": "f2e1340e3c19eda7c28b1c73c1f9f39c13e381a1",
      "parents": [
        "647bd61a5f3a51a38c670f91af9d861ad66149a3"
      ],
      "author": {
        "name": "Satoru Takeuchi",
        "email": "takeuchi_satoru@jp.fujitsu.com",
        "time": "Sun Jul 15 23:39:47 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Jul 16 09:05:41 2007 -0700"
      },
      "message": "Fix stop_machine_run problem with naughty real time process\n\nstop_machine_run() does its work on \"kstopmachine\" thread having max\npriority.  However that thread get such priority after woken up.\nTherefore, in the following case ...\n\n  - \"kstopmachine\" try to run on CPU1\n\n  - There is a real time process which doesn\u0027t relinquish CPU time\n    voluntary on CPU1\n\n...  \"kstopmachine\" can\u0027t start to run and the CPU on which\n    stop_machine_run() is runing hangs up.  To fix this problem, call\n    sched_setscheduler() before waking up that thread.\n\nSigned-off-by: Satoru Takeuchi \u003ctakeuchi_satoru@jp.fujitsu.com\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Ashok Raj \u003cashok.raj@intel.com\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": "a12bb44471b819c7f33d8a83044e7116c124e3d5",
      "tree": "cdf3fee16c535d70659fd343d11b3578941f3596",
      "parents": [
        "2d3fbbb391e280724f7f7804ab00ff61cf1b6a4c"
      ],
      "author": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Thu May 10 22:22:47 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri May 11 08:29:34 2007 -0700"
      },
      "message": "stop_machine() now uses hard_irq_disable\n\nAdd a call to hard_irq_disable() to stop_machine so that we make sure IRQs are\nreally disabled and not only lazy-disabled on archs like powerpc as some users\nof stop_machine() may rely on that.\n\n[akpm@linux-foundation.org: build fix]\nSigned-off-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nAcked-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ee527cd3a20c2aeaac17d939e5d011f7a76d69f5",
      "tree": "113e8dd439c5a3656be07058f055e6340ad41623",
      "parents": [
        "616883df78bd4b3fcdb6ddc39bd3d4cb902bfa32"
      ],
      "author": {
        "name": "Prarit Bhargava",
        "email": "prarit@redhat.com",
        "time": "Tue May 08 00:25:08 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:00 2007 -0700"
      },
      "message": "Use stop_machine_run in the Intel RNG driver\n\nReplace call_smp_function with stop_machine_run in the Intel RNG driver.\n\nCPU A has done read_lock(\u0026lock)\nCPU B has done write_lock_irq(\u0026lock) and is waiting for A to release the lock.\n\nA third CPU calls call_smp_function and issues the IPI.  CPU A takes CPU\nC\u0027s IPI.  CPU B is waiting with interrupts disabled and does not see the\nIPI.  CPU C is stuck waiting for CPU B to respond to the IPI.\n\nDeadlock.\n\nThe solution is to use stop_machine_run instead of call_smp_function\n(call_smp_function should not be called in situations where the CPUs may be\nsuspended).\n\n[haruo.tomita@toshiba.co.jp: fix a typo in mod_init()]\n[haruo.tomita@toshiba.co.jp: fix memory leak]\nSigned-off-by: Prarit Bhargava \u003cprarit@redhat.com\u003e\nCc: Jan Beulich \u003cjbeulich@novell.com\u003e\nCc: \"Tomita, Haruo\" \u003charuo.tomita@toshiba.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e5582ca21af82929d5cd3613321ac9233c492ebc",
      "tree": "33d2b5cc6a42efac04320c7b566c55ca5388dfe9",
      "parents": [
        "39f0247d3823e4e0bf8f6838a10362864b1e1053"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Fri Sep 29 02:01:35 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Sep 29 09:18:24 2006 -0700"
      },
      "message": "[PATCH] stop_machine.c copyright\n\nI had to look back: this code was extracted from the module.c code in 2005.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "4edb9a143e31d2e191c199262226e1a5923ff8f7",
      "tree": "c876dfb150124613dfb0564781de4fb2bf424d7c",
      "parents": [
        "ecdc63948763586e101108dfe1ba316ec069fe39"
      ],
      "author": {
        "name": "Yingchao Zhou",
        "email": "yingchao.zhou@gmail.com",
        "time": "Sun Aug 27 01:23:46 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Aug 27 11:01:31 2006 -0700"
      },
      "message": "[PATCH] Remove redundant up() in stop_machine()\n\nAn up() is called in kernel/stop_machine.c on failure, and also in the\ncaller (unconditionally).\n\nSigned-off-by: Zhou Yingchao \u003cyingchao.zhou@gmail.com\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "d8cb7c1ded6e5a80a7335716dde60784a0d51c1d",
      "tree": "e7c975ad049fa84549ef1c9fef45f9f96ccae829",
      "parents": [
        "38c54ee8d5338f49aca986081ea41a987c15cf9d"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Mon Jul 03 17:32:22 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jul 03 21:25:20 2006 -0700"
      },
      "message": "[PATCH] revert \"kthread: convert stop_machine into a kthread\"\n\nJiri reports that the stop_machin kthread conversion caused his machine to\nhang when suspending.  Hyperthreading is apparently involved.\n\nI don\u0027t see why that would be and I can\u0027t reproduce it.  Revert to the 2.6.17\ncode.\n\nCc: \"Serge E. Hallyn\" \u003cserue@us.ibm.com\u003e\nCc: Jiri Slaby \u003cjirislaby@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "8bdd1d1250d55afe403ac4affa6ccc5f9e60468f",
      "tree": "b7ffa764ccaa88e07753f9a75d837ea47ea9ea01",
      "parents": [
        "2b943cf09d75c0dfbfd22548988df48f6c24c727"
      ],
      "author": {
        "name": "Serge E. Hallyn",
        "email": "serue@us.ibm.com",
        "time": "Sun Jun 25 05:49:08 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jun 25 10:01:22 2006 -0700"
      },
      "message": "[PATCH] kthread: convert stop_machine into a kthread\n\n- Update stop_machine.c to spawn stop_machine as kthreads rather than the\n  deprecated kernel_threads.\n\n- Update stop_machine to use the more efficient kthread_bind() before\n  running task in place of set_cpus_allowed() after.\n\n[akpm@osdl.org: remove now-wrong set_cpus_allowed()]\nSigned-off-by: Serge E. Hallyn \u003cserue@us.ibm.com\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "ed653a640419cd9d1ad0f8dc176478e6634a694e",
      "tree": "9d7868679e51e7152e1fedfd34514b79ec3e4048",
      "parents": [
        "df2e71fb9115a8d4f721fb1464db09adc8332bc5"
      ],
      "author": {
        "name": "akpm@osdl.org",
        "email": "akpm@osdl.org",
        "time": "Mon Jan 09 20:51:38 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jan 10 08:01:25 2006 -0800"
      },
      "message": "[PATCH] Remove set_fs() in stop_machine()\n\n\r)\n\nFrom: Brian Gerst \u003cbgerst@didntduck.org\u003e\n\nCall sched_setscheduler() directly instead.\n\nSigned-off-by: Brian Gerst \u003cbgerst@didntduck.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "4557398f8cbaf9f254cff747534b4724c7f75c4f",
      "tree": "052b59279b1312a4fde83a76feb4a7a0c5cf7df1",
      "parents": [
        "c5b609797b8e212dbfaf23944da8bf8c53233d5c"
      ],
      "author": {
        "name": "Kirill Korotaev",
        "email": "dev@sw.ru",
        "time": "Sun Nov 13 16:07:30 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Nov 13 18:14:16 2005 -0800"
      },
      "message": "[PATCH] stop_machine() vs. synchronous IPI send deadlock\n\nThis fixes deadlock of stop_machine() vs.  synchronous IPI send.  The\nproblem is that stop_machine() disables interrupts before disabling\npreemption on other CPUs.  So if another CPU is preempted and then calls\nsomething like flush_tlb_all() it will deadlock with CPU doing\nstop_machine() and which can\u0027t process IPI due to disabled IRQs.\n\nI changed stop_machine() to do the same things exactly as it does on other\nCPUs, i.e.  it should disable preemption first on _all_ CPUs including\nitself and only after that disable IRQs.\n\nSigned-off-by: Kirill Korotaev \u003cdev@sw.ru\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: \"Andrey Savochkin\" \u003csaw@sawoct.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "39c715b71740c4a78ba4769fb54826929bac03cb",
      "tree": "94dd679dfc8e6c2db65971739aa8c8c6206f8174",
      "parents": [
        "84929801e14d968caeb84795bfbb88f04283fbd9"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Jun 21 17:14:34 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Tue Jun 21 18:46:13 2005 -0700"
      },
      "message": "[PATCH] smp_processor_id() cleanup\n\nThis patch implements a number of smp_processor_id() cleanup ideas that\nArjan van de Ven and I came up with.\n\nThe previous __smp_processor_id/_smp_processor_id/smp_processor_id API\nspaghetti was hard to follow both on the implementational and on the\nusage side.\n\nSome of the complexity arose from picking wrong names, some of the\ncomplexity comes from the fact that not all architectures defined\n__smp_processor_id.\n\nIn the new code, there are two externally visible symbols:\n\n - smp_processor_id(): debug variant.\n\n - raw_smp_processor_id(): nondebug variant. Replaces all existing\n   uses of _smp_processor_id() and __smp_processor_id(). Defined\n   by every SMP architecture in include/asm-*/smp.h.\n\nThere is one new internal symbol, dependent on DEBUG_PREEMPT:\n\n - debug_smp_processor_id(): internal debug variant, mapped to\n                             smp_processor_id().\n\nAlso, i moved debug_smp_processor_id() from lib/kernel_lock.c into a new\nlib/smp_processor_id.c file.  All related comments got updated and/or\nclarified.\n\nI have build/boot tested the following 8 .config combinations on x86:\n\n {SMP,UP} x {PREEMPT,!PREEMPT} x {DEBUG_PREEMPT,!DEBUG_PREEMPT}\n\nI have also build/boot tested x64 on UP/PREEMPT/DEBUG_PREEMPT.  (Other\narchitectures are untested, but should work just fine.)\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Arjan van de Ven \u003carjan@infradead.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "d59dd4620fb8d6422555a9e2b82a707718e68327",
      "tree": "78205657d24efcaa3f8314064951ac3814ed95a7",
      "parents": [
        "0d8d4d42f2d00eb65262b49f4edd4cf7ef4eb6fc"
      ],
      "author": {
        "name": "akpm@osdl.org",
        "email": "akpm@osdl.org",
        "time": "Sun May 01 08:58:47 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sun May 01 08:58:47 2005 -0700"
      },
      "message": "[PATCH] use smp_mb/wmb/rmb where possible\n\nReplace a number of memory barriers with smp_ variants.  This means we won\u0027t\ntake the unnecessary hit on UP machines.\n\nSigned-off-by: Anton Blanchard \u003canton@samba.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
      "tree": "0bba044c4ce775e45a88a51686b5d9f90697ea9d",
      "parents": [],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Apr 16 15:20:36 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Apr 16 15:20:36 2005 -0700"
      },
      "message": "Linux-2.6.12-rc2\n\nInitial git repository build. I\u0027m not bothering with the full history,\neven though we have it. We can create a separate \"historical\" git\narchive of that later if we want to, and in the meantime it\u0027s about\n3.2GB when imported into git - space that would just make the early\ngit days unnecessarily complicated, when we don\u0027t have a lot of good\ninfrastructure for it.\n\nLet it rip!\n"
    }
  ]
}
