)]}'
{
  "log": [
    {
      "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": "fc390cde362309f6892bb719194f242c466a978b",
      "tree": "07bfb72fb4eff28cc515a0ff5b2d1571db4f4b69",
      "parents": [
        "cc631fb732b8ccd6a0cc45557475ea09b0c21a68"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Thu May 06 11:42:52 2010 -0700"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Fri May 07 07:23:21 2010 +0200"
      },
      "message": "rcu: need barrier() in UP synchronize_sched_expedited()\n\nIf synchronize_sched_expedited() is ever to be called from within\nkernel/sched.c in a !SMP PREEMPT kernel, the !SMP implementation needs\na barrier().\n\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\n"
    },
    {
      "commit": "cc631fb732b8ccd6a0cc45557475ea09b0c21a68",
      "tree": "37e8c84f227a21d628a9d3a96dbbf5fedd506db1",
      "parents": [
        "94458d5ecb3da844823cc191e73e5c5ead98a464"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "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: correctly place paranioa memory barriers in synchronize_sched_expedited()\n\nThe memory barriers must be in the SMP case, not in the !SMP case.\nAlso add a barrier after the atomic_inc() in order to ensure that\nother CPUs see post-synchronize_sched_expedited() actions as following\nthe expedited grace period.\n\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\n"
    },
    {
      "commit": "94458d5ecb3da844823cc191e73e5c5ead98a464",
      "tree": "866f0ed3b4e522d98664cb4b2603cd0d34cfde0d",
      "parents": [
        "969c79215a35b06e5e3efe69b9412f858df7856c"
      ],
      "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: kill paranoia check in synchronize_sched_expedited()\n\nThe paranoid check which verifies that the cpu_stop callback is\nactually called on all online cpus is completely superflous.  It\u0027s\nguaranteed by cpu_stop facility and if it didn\u0027t work as advertised\nother things would go horribly wrong and trying to recover using\nsynchronize_sched() wouldn\u0027t be very meaningful.\n\nKill the paranoid check.  Removal of this feature is done as a\nseparate step so that it can serve as a bisection point if something\nactually goes wrong.\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": "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": "99bd5e2f245d8cd17d040c82d40becdb3efd9b69",
      "tree": "9dbfd8d1a9148bad45e5c3c067a05f414134083b",
      "parents": [
        "669c55e9f99b90e46eaa0f98a67ec53d46dc969a"
      ],
      "author": {
        "name": "Suresh Siddha",
        "email": "suresh.b.siddha@intel.com",
        "time": "Wed Mar 31 16:47:45 2010 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Apr 23 11:02:02 2010 +0200"
      },
      "message": "sched: Fix select_idle_sibling() logic in select_task_rq_fair()\n\nIssues in the current select_idle_sibling() logic in select_task_rq_fair()\nin the context of a task wake-up:\n\na) Once we select the idle sibling, we use that domain (spanning the cpu that\n   the task is currently woken-up and the idle sibling that we found) in our\n   wake_affine() decisions. This domain is completely different from the\n   domain(we are supposed to use) that spans the cpu that the task currently\n   woken-up and the cpu where the task previously ran.\n\nb) We do select_idle_sibling() check only for the cpu that the task is\n   currently woken-up on. If select_task_rq_fair() selects the previously run\n   cpu for waking the task, doing a select_idle_sibling() check\n   for that cpu also helps and we don\u0027t do this currently.\n\nc) In the scenarios where the cpu that the task is woken-up is busy but\n   with its HT siblings are idle, we are selecting the task be woken-up\n   on the idle HT sibling instead of a core that it previously ran\n   and currently completely idle. i.e., we are not taking decisions based on\n   wake_affine() but directly selecting an idle sibling that can cause\n   an imbalance at the SMT/MC level which will be later corrected by the\n   periodic load balancer.\n\nFix this by first going through the load imbalance calculations using\nwake_affine() and once we make a decision of woken-up cpu vs previously-ran cpu,\nthen choose a possible idle sibling for waking up the task on.\n\nSigned-off-by: Suresh Siddha \u003csuresh.b.siddha@intel.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1270079265.7835.8.camel@sbs-t61.sc.intel.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "669c55e9f99b90e46eaa0f98a67ec53d46dc969a",
      "tree": "9f60bcf779e5ec786c05b8053b59e091edcb418c",
      "parents": [
        "74f5187ac873042f502227701ed1727e7c5fbfa9"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Apr 16 14:59:29 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Apr 23 11:02:02 2010 +0200"
      },
      "message": "sched: Pre-compute cpumask_weight(sched_domain_span(sd))\n\nDave reported that his large SPARC machines spend lots of time in\nhweight64(), try and optimize some of those needless cpumask_weight()\ninvocations (esp. with the large offstack cpumasks these are very\nexpensive indeed).\n\nReported-by: David Miller \u003cdavem@davemloft.net\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": "74f5187ac873042f502227701ed1727e7c5fbfa9",
      "tree": "b200960d04b0a955aaf9a101d6f0a4ed34f07bb2",
      "parents": [
        "09a40af5240de02d848247ab82440ad75b31ab11"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Thu Apr 22 21:50:19 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Apr 23 11:02:02 2010 +0200"
      },
      "message": "sched: Cure load average vs NO_HZ woes\n\nChase reported that due to us decrementing calc_load_task prematurely\n(before the next LOAD_FREQ sample), the load average could be scewed\nby as much as the number of CPUs in the machine.\n\nThis patch, based on Chase\u0027s patch, cures the problem by keeping the\ndelta of the CPU going into NO_HZ idle separately and folding that in\non the next LOAD_FREQ update.\n\nThis restores the balance and we get strict LOAD_FREQ period samples.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nAcked-by: Chase Douglas \u003cchase.douglas@canonical.com\u003e\nLKML-Reference: \u003c1271934490.1776.343.camel@laptop\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "09a40af5240de02d848247ab82440ad75b31ab11",
      "tree": "1f0fa5e5c391d8fbf76587f687d131f9b7ae4609",
      "parents": [
        "b257c14ceb1194a6181144210056d38f22127189"
      ],
      "author": {
        "name": "Mike Galbraith",
        "email": "efault@gmx.de",
        "time": "Thu Apr 15 07:29:59 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Apr 15 09:36:47 2010 +0200"
      },
      "message": "sched: Fix UP update_avg() build warning\n\nupdate_avg() is only used for SMP builds, move it to the nearest\nSMP block.\n\nReported-by: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\nSigned-off-by: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nLKML-Reference: \u003c1271309399.14779.17.camel@marge.simson.net\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\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": "d88d4050dcaf09e417aaa9a5024dd9449ef71b2e",
      "tree": "5156b4821fdb1a3c13cb9577c93b2eb6acb48814",
      "parents": [
        "0eddb519b9127c73d53db4bf3ec1d45b13f844d1"
      ],
      "author": {
        "name": "Jiri Slaby",
        "email": "jslaby@suse.cz",
        "time": "Sat Apr 10 22:28:56 2010 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sat Apr 10 22:28:56 2010 +0200"
      },
      "message": "PM / Hibernate: user.c, fix SNAPSHOT_SET_SWAP_AREA handling\n\nWhen CONFIG_DEBUG_BLOCK_EXT_DEVT is set we decode the device\nimproperly by old_decode_dev and it results in an error while\nhibernating with s2disk.\n\nAll users already pass the new device number, so switch to\nnew_decode_dev().\n\nSigned-off-by: Jiri Slaby \u003cjslaby@suse.cz\u003e\nReported-and-tested-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\nSigned-off-by: \"Rafael J. Wysocki\" \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "2aedd192f799c362ccefc3c316f0c4bd5154126b",
      "tree": "080ead7bd2c4ae496ef82e9633eadc1d1af28946",
      "parents": [
        "cf90bfe2ebaf9d32f37acbebb7425c280fd6cd30",
        "84fba5ec91f11c0efb27d0ed6098f7447491f0df"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 08 08:37:05 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 08 08:37:05 2010 -0700"
      },
      "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:\n  sched: Fix sched_getaffinity()\n"
    },
    {
      "commit": "a3a2e76c77fa22b114e421ac11dec0c56c3503fb",
      "tree": "cc67bbd8d5d364e55ea7a00d0b5ad68d5eac08ac",
      "parents": [
        "b01d0942c2b7a3026d2b7d38b5773d3d00420e06"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Tue Apr 06 14:34:42 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 07 08:38:02 2010 -0700"
      },
      "message": "mm: avoid null-pointer deref in sync_mm_rss()\n\n- We weren\u0027t zeroing p-\u003erss_stat[] at fork()\n\n- Consequently sync_mm_rss() was dereferencing tsk-\u003emm for kernel\n  threads and was oopsing.\n\n- Make __sync_task_rss_stat() static, too.\n\nAddresses https://bugzilla.kernel.org/show_bug.cgi?id\u003d15648\n\n[akpm@linux-foundation.org: remove the BUG_ON(!mm-\u003erss)]\nReported-by: Troels Liebe Bentsen \u003ctlb@rapanden.dk\u003e\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\n\"Michael S. Tsirkin\" \u003cmst@redhat.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Minchan Kim \u003cminchan.kim@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": "94c4fcec0144e032ef7d4ec761ab81d570b0bc2a",
      "tree": "b67880526801ce7af4c6bc847fcb1742569dc0f9",
      "parents": [
        "14e71e4fb94c340273534a6d7f210aa82a3ca717",
        "753649dbc49345a73a2454c770a3f2d54d11aec6"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 06 13:03:22 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 06 13:03:22 2010 -0700"
      },
      "message": "Merge branch \u0027irq-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027irq-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  genirq: Force MSI irq handlers to run with interrupts disabled\n"
    },
    {
      "commit": "84fba5ec91f11c0efb27d0ed6098f7447491f0df",
      "tree": "ca48cd8f7baddf29c2bcfc3cc0c7853298449f7b",
      "parents": [
        "db217dece3003df0841bacf9556b5c06aa097dae"
      ],
      "author": {
        "name": "Anton Blanchard",
        "email": "anton@samba.org",
        "time": "Tue Apr 06 17:02:19 2010 +1000"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Apr 06 10:01:35 2010 +0200"
      },
      "message": "sched: Fix sched_getaffinity()\n\ntaskset on 2.6.34-rc3 fails on one of my ppc64 test boxes with\nthe following error:\n\n  sched_getaffinity(0, 16, 0x10029650030) \u003d -1 EINVAL (Invalid argument)\n\nThis box has 128 threads and 16 bytes is enough to cover it.\n\nCommit cd3d8031eb4311e516329aee03c79a08333141f1 (sched:\nsched_getaffinity(): Allow less than NR_CPUS length) is\ncomparing this 16 bytes agains nr_cpu_ids.\n\nFix it by comparing nr_cpu_ids to the number of bits in the\ncpumask we pass in.\n\nSigned-off-by: Anton Blanchard \u003canton@samba.org\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Sharyathi Nagesh \u003csharyath@in.ibm.com\u003e\nCc: Ulrich Drepper \u003cdrepper@redhat.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Jack Steiner \u003csteiner@sgi.com\u003e\nCc: Russ Anderson \u003crja@sgi.com\u003e\nCc: Mike Travis \u003ctravis@sgi.com\u003e\nLKML-Reference: \u003c20100406070218.GM5594@kryten\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "5fbfb18d7a5b846946d52c4a10e3aaa213ec31b6",
      "tree": "bcfa13dec8cb2527c3007b3e5f957cb50e571c64",
      "parents": [
        "7da23b86e14b77c094b11a9fa5ef5b3758fc9193"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Thu Apr 01 19:09:40 2010 +1100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 05 19:50:02 2010 -0700"
      },
      "message": "Fix up possibly racy module refcounting\n\nModule refcounting is implemented with a per-cpu counter for speed.\nHowever there is a race when tallying the counter where a reference may\nbe taken by one CPU and released by another.  Reference count summation\nmay then see the decrement without having seen the previous increment,\nleading to lower than expected count.  A module which never has its\nactual reference drop below 1 may return a reference count of 0 due to\nthis race.\n\nModule removal generally runs under stop_machine, which prevents this\nrace causing bugs due to removal of in-use modules.  However there are\nother real bugs in module.c code and driver code (module_refcount is\nexported) where the callers do not run under stop_machine.\n\nFix this by maintaining running per-cpu counters for the number of\nmodule refcount increments and the number of refcount decrements.  The\nincrements are tallied after the decrements, so any decrement seen will\nalways have its corresponding increment counted.  The final refcount is\nthe difference of the total increments and decrements, preventing a\nlow-refcount from being returned.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nAcked-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "449cedf099b23a250e7d61982e35555ccb871182",
      "tree": "75c205a2a44146196f916cbc4ec282751f7dad34",
      "parents": [
        "b66696e3c0d8fc01efdbc701eba1276618332cb3"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Mon Apr 05 16:16:26 2010 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 05 13:19:45 2010 -0700"
      },
      "message": "audit: preface audit printk with audit\n\nThere have been a number of reports of people seeing the message:\n\"name_count maxed, losing inode data: dev\u003d00:05, inode\u003d3185\"\nin dmesg.  These usually lead to people reporting problems to the filesystem\ngroup who are in turn clueless what they mean.\n\nEventually someone finds me and I explain what is going on and that\nthese come from the audit system.  The basics of the problem is that the\naudit subsystem never expects a single syscall to \u0027interact\u0027 (for some\nwish washy meaning of interact) with more than 20 inodes.  But in fact\nsome operations like loading kernel modules can cause changes to lots of\ninodes in debugfs.\n\nThere are a couple real fixes being bandied about including removing the\nfixed compile time limit of 20 or not auditing changes in debugfs (or\nboth) but neither are small and obvious so I am not sending them for\nimmediate inclusion (I hope Al forwards a real solution next devel\nwindow).\n\nIn the meantime this patch simply adds \u0027audit\u0027 to the beginning of the\ncrap message so if a user sees it, they come blame me first and we can\ntalk about what it means and make sure we understand all of the reasons\nit can happen and make sure this gets solved correctly in the long run.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b66696e3c0d8fc01efdbc701eba1276618332cb3",
      "tree": "3094ef42787b8e0c900bce1f2391ced081ed1ba4",
      "parents": [
        "9e74e7c81a24aee66024fc477786bd1de84e293b",
        "a32f3926632e71c8aa23ce32fe2625f8d5f792c2"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 05 09:39:11 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 05 09:39:11 2010 -0700"
      },
      "message": "Merge branch \u0027slabh\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/misc\n\n* \u0027slabh\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/misc:\n  eeepc-wmi: include slab.h\n  staging/otus: include slab.h from usbdrv.h\n  percpu: don\u0027t implicitly include slab.h from percpu.h\n  kmemcheck: Fix build errors due to missing slab.h\n  include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h\n  iwlwifi: don\u0027t include iwl-dev.h from iwl-devtrace.h\n  x86: don\u0027t include slab.h from arch/x86/include/asm/pgtable_32.h\n\nFix up trivial conflicts in include/linux/percpu.h due to\nis_kernel_percpu_address() having been introduced since the slab.h\ncleanup with the percpu_up.c splitup.\n"
    },
    {
      "commit": "9e74e7c81a24aee66024fc477786bd1de84e293b",
      "tree": "8f172b7e5a86fe6b51e46f1d219e9c0707beab60",
      "parents": [
        "4946d54cb55e86a156216fcfeed5568514b0830f",
        "d5e50daf92df8afcb701fd717b301985691e802f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 05 09:16:37 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 05 09:16:37 2010 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu:\n  module: add stub for is_module_percpu_address\n  percpu, module: implement and use is_kernel/module_percpu_address()\n  module: encapsulate percpu handling better and record percpu_size\n"
    },
    {
      "commit": "336f5899d287f06d8329e208fc14ce50f7ec9698",
      "tree": "9b762d450d5eb248a6ff8317badb7e223d93ed58",
      "parents": [
        "a4ab2773205e8b94c18625455f85e3b6bb9d7ad6",
        "db217dece3003df0841bacf9556b5c06aa097dae"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Apr 05 11:37:28 2010 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Apr 05 11:37:28 2010 +0900"
      },
      "message": "Merge branch \u0027master\u0027 into export-slabh\n"
    },
    {
      "commit": "8ce42c8b7fdf4fc008a6fc7349beb8f4dd5cb774",
      "tree": "bc05326ed8ade9137e3ce5fb5b1d439dcdce266f",
      "parents": [
        "0121b0c771f929bb5298554b70843ab46280c298",
        "6e03bb5ad363fdbe4e1e227cfb78f7978c662e18"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Apr 04 12:13:10 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Apr 04 12:13:10 2010 -0700"
      },
      "message": "Merge branch \u0027perf-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027perf-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  perf: Always build the powerpc perf_arch_fetch_caller_regs version\n  perf: Always build the stub perf_arch_fetch_caller_regs version\n  perf, probe-finder: Build fix on Debian\n  perf/scripts: Tuple was set from long in both branches in python_process_event()\n  perf: Fix \u0027perf sched record\u0027 deadlock\n  perf, x86: Fix callgraphs of 32-bit processes on 64-bit kernels\n  perf, x86: Fix AMD hotplug \u0026 constraint initialization\n  x86: Move notify_cpu_starting() callback to a later stage\n  x86,kgdb: Always initialize the hw breakpoint attribute\n  perf: Use hot regs with software sched switch/migrate events\n  perf: Correctly align perf event tracing buffer\n"
    },
    {
      "commit": "0121b0c771f929bb5298554b70843ab46280c298",
      "tree": "f6d9f9102eeffdc8231a08c95444136f402ebf5b",
      "parents": [
        "a8941b0ed0f1e39a4d41560c3a2e7ee37d5b6e10",
        "47a70985e5c093ae03d8ccf633c70a93761d86f2"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Apr 04 12:12:31 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Apr 04 12:12:31 2010 -0700"
      },
      "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:\n  sched: set_cpus_allowed_ptr(): Don\u0027t use rq-\u003emigration_thread after unlock\n  sched: Fix proc_sched_set_task()\n"
    },
    {
      "commit": "a8941b0ed0f1e39a4d41560c3a2e7ee37d5b6e10",
      "tree": "cf1a15d5dfc7e1552c12b4a3ec04fa9ee92581ef",
      "parents": [
        "d82ef020cf31504c816803b1def94eb5ff173363",
        "292f60c0c4ab44aa2d589ba03c12e64a3b3c5e38"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Apr 04 12:12:19 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Apr 04 12:12:19 2010 -0700"
      },
      "message": "Merge branch \u0027tracing-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027tracing-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  ring-buffer: Add missing unlock\n  tracing: Fix lockdep warning in global_clock()\n"
    },
    {
      "commit": "26d80aa782e708c380a47601779d42d30bf016d6",
      "tree": "0d4c1357fa600123d1173d536537a88c8316e031",
      "parents": [
        "b0f86f5a169c758a82b0e23eef6795356f6d5a25"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Sat Apr 03 12:22:05 2010 +0200"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Sat Apr 03 12:22:05 2010 +0200"
      },
      "message": "perf: Always build the stub perf_arch_fetch_caller_regs version\n\nNow that software events use perf_arch_fetch_caller_regs() too, we\nneed the stub version to be always built in for archs that don\u0027t\nimplement it.\n\nFixes the following build error in PARISC:\n\n\tkernel/built-in.o: In function `perf_event_task_sched_out\u0027:\n\t(.text.perf_event_task_sched_out+0x54): undefined reference to `perf_arch_fetch_caller_regs\u0027\n\nReported-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\n"
    },
    {
      "commit": "5e123e5d9bf8c4ae44121ffe5e844adeb30ff21b",
      "tree": "55545dab00ec8d15ba75764f80459944b6fd204a",
      "parents": [
        "24b99d1576e6e330c2eba534a793b6e6dcb37f6b",
        "4da75b9ceac6939cd76830ec9581bef5bb398ad3"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Apr 02 19:45:05 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Apr 02 19:45:05 2010 -0700"
      },
      "message": "Merge branch \u0027kgdb-fixes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jwessel/linux-2.6-kgdb\n\n* \u0027kgdb-fixes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jwessel/linux-2.6-kgdb:\n  kgdb: Turn off tracing while in the debugger\n  kgdb: use atomic_inc and atomic_dec instead of atomic_set\n  kgdb: eliminate kgdb_wait(), all cpus enter the same way\n  kgdbts,sh: Add in breakpoint pc offset for superh\n  kgdb: have ebin2mem call probe_kernel_write once\n"
    },
    {
      "commit": "24b99d1576e6e330c2eba534a793b6e6dcb37f6b",
      "tree": "c8ad2d4ad7e06161d1b12013e91bf34d5eb9f556",
      "parents": [
        "6da8d866d0d39e9509ff826660f6a86a6757c966",
        "5a7aadfe2fcb0f69e2acc1fbefe22a096e792fc9"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Apr 02 19:44:42 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Apr 02 19:44:42 2010 -0700"
      },
      "message": "Merge branch \u0027pm-fixes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/suspend-2.6\n\n* \u0027pm-fixes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/suspend-2.6:\n  Freezer: Fix buggy resume test for tasks frozen with cgroup freezer\n  Freezer: Only show the state of tasks refusing to freeze\n"
    },
    {
      "commit": "4da75b9ceac6939cd76830ec9581bef5bb398ad3",
      "tree": "5b4880b07563d13bd17753d0891aae8d8fe77e4d",
      "parents": [
        "ae6bf53e0255c8ab04b6fe31806e318432570e3c"
      ],
      "author": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Fri Apr 02 11:57:18 2010 -0500"
      },
      "committer": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Fri Apr 02 14:58:19 2010 -0500"
      },
      "message": "kgdb: Turn off tracing while in the debugger\n\nThe kernel debugger should turn off kernel tracing any time the\ndebugger is active and restore it on resume.\n\nSigned-off-by: Jason Wessel \u003cjason.wessel@windriver.com\u003e\nReviewed-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "ae6bf53e0255c8ab04b6fe31806e318432570e3c",
      "tree": "d4726e48bfe5e0dd6ce4061551af3d0518efbe83",
      "parents": [
        "62fae312197a8fbcd3727261d59f5a6bd0dbf158"
      ],
      "author": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Fri Apr 02 14:58:18 2010 -0500"
      },
      "committer": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Fri Apr 02 14:58:18 2010 -0500"
      },
      "message": "kgdb: use atomic_inc and atomic_dec instead of atomic_set\n\nMemory barriers should be used for the kgdb cpu synchronization.  The\natomic_set() does not imply a memory barrier.\n\nReported-by: Will Deacon \u003cwill.deacon@arm.com\u003e\nSigned-off-by: Jason Wessel \u003cjason.wessel@windriver.com\u003e\n"
    },
    {
      "commit": "62fae312197a8fbcd3727261d59f5a6bd0dbf158",
      "tree": "aa5166126f2735545326fe8af8a76627f5760191",
      "parents": [
        "cad08acebf4b7d993b0cefb9af67208c48fb9a5e"
      ],
      "author": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Fri Apr 02 11:47:02 2010 -0500"
      },
      "committer": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Fri Apr 02 14:58:18 2010 -0500"
      },
      "message": "kgdb: eliminate kgdb_wait(), all cpus enter the same way\n\nThis is a kgdb architectural change to have all the cpus (master or\nslave) enter the same function.\n\nA cpu that hits an exception (wants to be the master cpu) will call\nkgdb_handle_exception() from the trap handler and then invoke a\nkgdb_roundup_cpu() to synchronize the other cpus and bring them into\nthe kgdb_handle_exception() as well.\n\nA slave cpu will enter kgdb_handle_exception() from the\nkgdb_nmicallback() and set the exception state to note that the\nprocessor is a slave.\n\nPreviously the salve cpu would have called kgdb_wait().  This change\nallows the debug core to change cpus without resuming the system in\norder to inspect arch specific cpu information.\n\nSigned-off-by: Jason Wessel \u003cjason.wessel@windriver.com\u003e\n"
    },
    {
      "commit": "a0279bd58060ccedbd414edf97d50cfa3778c370",
      "tree": "af70474c8f284ce4a0429b22417699fa7b40e9a5",
      "parents": [
        "42be79e37e264557f12860fa4cc84b4de3685954"
      ],
      "author": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Fri Apr 02 11:33:29 2010 -0500"
      },
      "committer": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Fri Apr 02 14:58:17 2010 -0500"
      },
      "message": "kgdb: have ebin2mem call probe_kernel_write once\n\nRather than call probe_kernel_write() one byte at a time, process the\nwhole buffer locally and pass the entire result in one go.  This way,\narchitectures that need to do special handling based on the length can\ndo so, or we only end up calling memcpy() once.\n\n[sonic.zhang@analog.com: Reported original problem and preliminary patch]\n\nSigned-off-by: Jason Wessel \u003cjason.wessel@windriver.com\u003e\nSigned-off-by: Sonic Zhang \u003csonic.zhang@analog.com\u003e\nSigned-off-by: Mike Frysinger \u003cvapier@gentoo.org\u003e\n"
    },
    {
      "commit": "371fd7e7a56a5c136d31aa980011bd2f131c3ef5",
      "tree": "cf52014018e8258acd8bcfd486d855f098a02c03",
      "parents": [
        "cc87f76a601d2d256118f7bab15e35254356ae21"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Wed Mar 24 16:38:48 2010 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Apr 02 20:12:05 2010 +0200"
      },
      "message": "sched: Add enqueue/dequeue flags\n\nIn order to reduce the dependency on TASK_WAKING rework the enqueue\ninterface to support a proper flags field.\n\nReplace the int wakeup, bool head arguments with an int flags argument\nand create the following flags:\n\n  ENQUEUE_WAKEUP - the enqueue is a wakeup of a sleeping task,\n  ENQUEUE_WAKING - the enqueue has relative vruntime due to\n                   having sched_class::task_waking() called,\n  ENQUEUE_HEAD - the waking task should be places on the head\n                 of the priority queue (where appropriate).\n\nFor symmetry also convert sched_class::dequeue() to a flags scheme.\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": "cc87f76a601d2d256118f7bab15e35254356ae21",
      "tree": "1fea5a4ad226e030cdeb14c82f12dc8e766be8b2",
      "parents": [
        "65cc8e4859ff29a9ddc989c88557d6059834c2a2"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Mar 26 12:22:14 2010 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Apr 02 20:12:04 2010 +0200"
      },
      "message": "sched: Fix nr_uninterruptible count\n\nThe cpuload calculation in calc_load_account_active() assumes\nrq-\u003enr_uninterruptible will not change on an offline cpu after\nmigrate_nr_uninterruptible(). However the recent migrate on wakeup\nchanges broke that and would result in decrementing the offline cpu\u0027s\nrq-\u003enr_uninterruptible.\n\nFix this by accounting the nr_uninterruptible on the waking cpu.\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": "65cc8e4859ff29a9ddc989c88557d6059834c2a2",
      "tree": "7f12c2532a92d607b5c52fa71c1799631a7a91ff",
      "parents": [
        "0017d735092844118bef006696a750a0e4ef6ebd"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Thu Mar 25 21:05:16 2010 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Apr 02 20:12:04 2010 +0200"
      },
      "message": "sched: Optimize task_rq_lock()\n\nNow that we hold the rq-\u003elock over set_task_cpu() again, we can do\naway with most of the TASK_WAKING checks and reduce them again to\nset_cpus_allowed_ptr().\n\nRemoves some conditionals from scheduling hot-paths.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "0017d735092844118bef006696a750a0e4ef6ebd",
      "tree": "8ed1540aaeb63da726f93da12950a8eaa0e0a3e0",
      "parents": [
        "9084bb8246ea935b98320554229e2f371f7f52fa"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Wed Mar 24 18:34:10 2010 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Apr 02 20:12:03 2010 +0200"
      },
      "message": "sched: Fix TASK_WAKING vs fork deadlock\n\nOleg noticed a few races with the TASK_WAKING usage on fork.\n\n - since TASK_WAKING is basically a spinlock, it should be IRQ safe\n - since we set TASK_WAKING (*) without holding rq-\u003elock it could\n   be there still is a rq-\u003elock holder, thereby not actually\n   providing full serialization.\n\n(*) in fact we clear PF_STARTING, which in effect enables TASK_WAKING.\n\nCure the second issue by not setting TASK_WAKING in sched_fork(), but\nonly temporarily in wake_up_new_task() while calling select_task_rq().\n\nCure the first by holding rq-\u003elock around the select_task_rq() call,\nthis will disable IRQs, this however requires that we push down the\nrq-\u003elock release into select_task_rq_fair()\u0027s cgroup stuff.\n\nBecause select_task_rq_fair() still needs to drop the rq-\u003elock we\ncannot fully get rid of TASK_WAKING.\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": "9084bb8246ea935b98320554229e2f371f7f52fa",
      "tree": "8478d18125e3b4a7e0a31d702647dee1830d23ef",
      "parents": [
        "6a1bdc1b577ebcb65f6603c57f8347309bc4ab13"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Mon Mar 15 10:10:27 2010 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Apr 02 20:12:03 2010 +0200"
      },
      "message": "sched: Make select_fallback_rq() cpuset friendly\n\nIntroduce cpuset_cpus_allowed_fallback() helper to fix the cpuset problems\nwith select_fallback_rq(). It can be called from any context and can\u0027t use\nany cpuset locks including task_lock(). It is called when the task doesn\u0027t\nhave online cpus in -\u003ecpus_allowed but ttwu/etc must be able to find a\nsuitable cpu.\n\nI am not proud of this patch. Everything which needs such a fat comment\ncan\u0027t be good even if correct. But I\u0027d prefer to not change the locking\nrules in the code I hardly understand, and in any case I believe this\nsimple change make the code much more correct compared to deadlocks we\ncurrently have.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c20100315091027.GA9155@redhat.com\u003e\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": "30da688ef6b76e01969b00608202fff1eed2accc",
      "tree": "f4068cb8cf29f1d93d8489b162f41b7ac15a3d0c",
      "parents": [
        "c1804d547dc098363443667609c272d1e4d15ee8"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Mon Mar 15 10:10:19 2010 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Apr 02 20:12:02 2010 +0200"
      },
      "message": "sched: sched_exec(): Remove the select_fallback_rq() logic\n\nsched_exec()-\u003eselect_task_rq() reads/updates -\u003ecpus_allowed lockless.\nThis can race with other CPUs updating our -\u003ecpus_allowed, and this\nlooks meaningless to me.\n\nThe task is current and running, it must have online cpus in -\u003ecpus_allowed,\nthe fallback mode is bogus. And, if -\u003esched_class returns the \"wrong\" cpu,\nthis likely means we raced with set_cpus_allowed() which was called\nfor reason, why should sched_exec() retry and call -\u003eselect_task_rq()\nagain?\n\nChange the code to call sched_class-\u003eselect_task_rq() directly and do\nnothing if the returned cpu is wrong after re-checking under rq-\u003elock.\n\nFrom now task_struct-\u003ecpus_allowed is always stable under TASK_WAKING,\nselect_fallback_rq() is always called under rq-lock or the caller or\nthe caller owns TASK_WAKING (select_task_rq).\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c20100315091019.GA9141@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "c1804d547dc098363443667609c272d1e4d15ee8",
      "tree": "c05ecb82cfb14b550c8d2242f5b0d4ad7e87bc52",
      "parents": [
        "1445c08d06c5594895b4fae952ef8a457e89c390"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Mon Mar 15 10:10:14 2010 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Apr 02 20:12:02 2010 +0200"
      },
      "message": "sched: move_task_off_dead_cpu(): Remove retry logic\n\nThe previous patch preserved the retry logic, but it looks unneeded.\n\n__migrate_task() can only fail if we raced with migration after we dropped\nthe lock, but in this case the caller of set_cpus_allowed/etc must initiate\nmigration itself if -\u003eon_rq \u003d\u003d T.\n\nWe already fixed p-\u003ecpus_allowed, the changes in active/online masks must\nbe visible to racer, it should migrate the task to online cpu correctly.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c20100315091014.GA9138@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "1445c08d06c5594895b4fae952ef8a457e89c390",
      "tree": "e6fe92454d978ec8b7b84511661c7c5965307bf8",
      "parents": [
        "897f0b3c3ff40b443c84e271bef19bd6ae885195"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Mon Mar 15 10:10:10 2010 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Apr 02 20:12:01 2010 +0200"
      },
      "message": "sched: move_task_off_dead_cpu(): Take rq-\u003elock around select_fallback_rq()\n\nmove_task_off_dead_cpu()-\u003eselect_fallback_rq() reads/updates -\u003ecpus_allowed\nlockless. We can race with set_cpus_allowed() running in parallel.\n\nChange it to take rq-\u003elock around select_fallback_rq(). Note that it is not\ntrivial to move this spin_lock() into select_fallback_rq(), we must recheck\nthe task was not migrated after we take the lock and other callers do not\nneed this lock.\n\nTo avoid the races with other callers of select_fallback_rq() which rely on\nTASK_WAKING, we also check p-\u003estate !\u003d TASK_WAKING and do nothing otherwise.\nThe owner of TASK_WAKING must update -\u003ecpus_allowed and choose the correct\nCPU anyway, and the subsequent __migrate_task() is just meaningless because\np-\u003ese.on_rq must be false.\n\nAlternatively, we could change select_task_rq() to take rq-\u003elock right\nafter it calls sched_class-\u003eselect_task_rq(), but this looks a bit ugly.\n\nAlso, change it to not assume irqs are disabled and absorb __migrate_task_irq().\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c20100315091010.GA9131@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "897f0b3c3ff40b443c84e271bef19bd6ae885195",
      "tree": "6b969149bb59591a1c9485de405639db6c4208d6",
      "parents": [
        "25c2d55c00c6097e6792ebf21e31342f23b9b768"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Mon Mar 15 10:10:03 2010 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Apr 02 20:12:01 2010 +0200"
      },
      "message": "sched: Kill the broken and deadlockable cpuset_lock/cpuset_cpus_allowed_locked code\n\nThis patch just states the fact the cpusets/cpuhotplug interaction is\nbroken and removes the deadlockable code which only pretends to work.\n\n- cpuset_lock() doesn\u0027t really work. It is needed for\n  cpuset_cpus_allowed_locked() but we can\u0027t take this lock in\n  try_to_wake_up()-\u003eselect_fallback_rq() path.\n\n- cpuset_lock() is deadlockable. Suppose that a task T bound to CPU takes\n  callback_mutex. If cpu_down(CPU) happens before T drops callback_mutex\n  stop_machine() preempts T, then migration_call(CPU_DEAD) tries to take\n  cpuset_lock() and hangs forever because CPU is already dead and thus\n  T can\u0027t be scheduled.\n\n- cpuset_cpus_allowed_locked() is deadlockable too. It takes task_lock()\n  which is not irq-safe, but try_to_wake_up() can be called from irq.\n\nKill them, and change select_fallback_rq() to use cpu_possible_mask, like\nwe currently do without CONFIG_CPUSETS.\n\nAlso, with or without this patch, with or without CONFIG_CPUSETS, the\ncallers of select_fallback_rq() can race with each other or with\nset_cpus_allowed() pathes.\n\nThe subsequent patches try to to fix these problems.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c20100315091003.GA9123@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "32bd7eb5a7f4596c8440dd9440322fe9e686634d",
      "tree": "f1d0c0a215c1305aec0a8f407b431a975f7ad072",
      "parents": [
        "c9494727cf293ae2ec66af57547a3e79c724fec2"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Wed Mar 24 13:17:19 2010 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Apr 02 20:12:00 2010 +0200"
      },
      "message": "sched: Remove remaining USER_SCHED code\n\nThis is left over from commit 7c9414385e (\"sched: Remove USER_SCHED\"\")\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nAcked-by: Dhaval Giani \u003cdhaval.giani@gmail.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nLKML-Reference: \u003c4BA9A05F.7010407@cn.fujitsu.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "47a70985e5c093ae03d8ccf633c70a93761d86f2",
      "tree": "cabda69d97cd880d9b3de382d41b6b7736575a8f",
      "parents": [
        "269484a492d9177072ee11ec8c9bff71d256837a"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Tue Mar 30 18:58:29 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Apr 02 20:11:05 2010 +0200"
      },
      "message": "sched: set_cpus_allowed_ptr(): Don\u0027t use rq-\u003emigration_thread after unlock\n\nTrivial typo fix. rq-\u003emigration_thread can be NULL after\ntask_rq_unlock(), this is why we have \"mt\" which should be\n used instead.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c20100330165829.GA18284@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "269484a492d9177072ee11ec8c9bff71d256837a",
      "tree": "4910c802ac71e70a6e722d7f0bd5119962304f80",
      "parents": [
        "42be79e37e264557f12860fa4cc84b4de3685954"
      ],
      "author": {
        "name": "Mike Galbraith",
        "email": "efault@gmx.de",
        "time": "Tue Mar 30 11:09:53 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Apr 02 20:06:40 2010 +0200"
      },
      "message": "sched: Fix proc_sched_set_task()\n\nLatencytop clearing sum_exec_runtime via proc_sched_set_task() breaks\ntask_times().  Other places in kernel use nvcsw and nivcsw, which are\nbeing cleared as well,  Clear task statistics only.\n\nReported-by: Török Edwin \u003cedwintorok@gmail.com\u003e\nSigned-off-by: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Hidetoshi Seto \u003cseto.hidetoshi@jp.fujitsu.com\u003e\nCc: Arjan van de Ven \u003carjan@infradead.org\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1269940193.19286.14.camel@marge.simson.net\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "c9494727cf293ae2ec66af57547a3e79c724fec2",
      "tree": "44ae197b64fa7530ee695a90ad31326dda06f1e1",
      "parents": [
        "6427462bfa50f50dc6c088c07037264fcc73eca1",
        "42be79e37e264557f12860fa4cc84b4de3685954"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Apr 02 20:02:55 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Apr 02 20:03:08 2010 +0200"
      },
      "message": "Merge branch \u0027linus\u0027 into sched/core\n\nMerge reason: update to latest upstream\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "8bb39f9aa068262732fe44b965d7a6eb5a5a7d67",
      "tree": "820af25532c62179f518bda83ea27b6b21ee736b",
      "parents": [
        "257ef9d21f1b008a6c7425544b36641c4325a922"
      ],
      "author": {
        "name": "Mike Galbraith",
        "email": "efault@gmx.de",
        "time": "Fri Mar 26 11:11:33 2010 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Apr 02 19:30:05 2010 +0200"
      },
      "message": "perf: Fix \u0027perf sched record\u0027 deadlock\n\nperf sched record can deadlock a box should the holder of\nhandle-\u003edata-\u003elock take an interrupt, and then attempt to\nacquire an rq lock held by a CPU trying to acquire the\nsame lock. Disable interrupts.\n\n   CPU0                            CPU1\n   sched event with rq-\u003elock held\n                                   grab handle-\u003edata-\u003elock\n   spin on handle-\u003edata-\u003elock\n                                   interrupt\n                                   try to grab rq-\u003elock\n\nReported-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nSigned-off-by: Mike Galbraith \u003cefault@gmx.de\u003e\nTested-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nLKML-Reference: \u003c1269598293.6174.8.camel@marge.simson.net\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "50d11d190afa4e21284b735bb0a092036f298f0b",
      "tree": "098257e5933d1b1a5cbbc3470cef20a4cb856836",
      "parents": [
        "42be79e37e264557f12860fa4cc84b4de3685954",
        "ab310b5edb8b601bcb02491ed6f7676da4fd1757"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Apr 02 19:29:17 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Apr 02 19:29:17 2010 +0200"
      },
      "message": "Merge branch \u0027perf/urgent\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/frederic/random-tracing into perf/urgent\n"
    },
    {
      "commit": "e49a5bd38159dfb1928fd25b173bc9de4bbadb21",
      "tree": "85c7c5fcce6df6a6ab6c119c40f6652d7783ec0b",
      "parents": [
        "eb1e79611cc9bfe21978230e3521e77ea2d7874a"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Mon Mar 22 19:40:03 2010 +0100"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Thu Apr 01 08:26:31 2010 +0200"
      },
      "message": "perf: Use hot regs with software sched switch/migrate events\n\nScheduler\u0027s task migration events don\u0027t work because they always\npass NULL regs perf_sw_event(). The event hence gets filtered\nin perf_swevent_add().\n\nScheduler\u0027s context switches events use task_pt_regs() to get\nthe context when the event occured which is a wrong thing to\ndo as this won\u0027t give us the place in the kernel where we went\nto sleep but the place where we left userspace. The result is\neven more wrong if we switch from a kernel thread.\n\nUse the hot regs snapshot for both events as they belong to the\nnon-interrupt/exception based events family. Unlike page faults\nor so that provide the regs matching the exact origin of the event,\nwe need to save the current context.\n\nThis makes the task migration event working and fix the context\nswitch callchains and origin ip.\n\nExample: perf record -a -e cs\n\nBefore:\n\n    10.91%      ksoftirqd/0                  0  [k] 0000000000000000\n                |\n                --- (nil)\n                    perf_callchain\n                    perf_prepare_sample\n                    __perf_event_overflow\n                    perf_swevent_overflow\n                    perf_swevent_add\n                    perf_swevent_ctx_event\n                    do_perf_sw_event\n                    __perf_sw_event\n                    perf_event_task_sched_out\n                    schedule\n                    run_ksoftirqd\n                    kthread\n                    kernel_thread_helper\n\nAfter:\n\n    23.77%  hald-addon-stor  [kernel.kallsyms]  [k] schedule\n            |\n            --- schedule\n               |\n               |--60.00%-- schedule_timeout\n               |          wait_for_common\n               |          wait_for_completion\n               |          blk_execute_rq\n               |          scsi_execute\n               |          scsi_execute_req\n               |          sr_test_unit_ready\n               |          |\n               |          |--66.67%-- sr_media_change\n               |          |          media_changed\n               |          |          cdrom_media_changed\n               |          |          sr_block_media_changed\n               |          |          check_disk_change\n               |          |          cdrom_open\n\nv2: Always build perf_arch_fetch_caller_regs() now that software\nevents need that too. They don\u0027t need it from modules, unlike trace\nevents, so we keep the EXPORT_SYMBOL in trace_event_perf.c\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: David Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "eb1e79611cc9bfe21978230e3521e77ea2d7874a",
      "tree": "0d5ebdb4a0b178fcd524d3b725da3e8a3cd6151e",
      "parents": [
        "b72c40949b0f04728f2993a1434598d3bad094ea"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Tue Mar 23 00:08:59 2010 +0100"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Thu Apr 01 08:26:30 2010 +0200"
      },
      "message": "perf: Correctly align perf event tracing buffer\n\nThe trace event buffer used by perf to record raw sample events\nis typed as an array of char and may then not be aligned to 8\nby alloc_percpu().\n\nBut we need it to be aligned to 8 in sparc64 because we cast\nthis buffer into a random structure type built by the TRACE_EVENT()\nmacro to store the traces. So if a random 64 bits field is accessed\ninside, it may be not under an expected good alignment.\n\nUse an array of long instead to force the appropriate alignment, and\nperform a compile time check to ensure the size in byte of the buffer\nis a multiple of sizeof(long) so that its actual size doesn\u0027t get\nshrinked under us.\n\nThis fixes unaligned accesses reported while using perf lock\nin sparc 64.\n\nSuggested-by: David Miller \u003cdavem@davemloft.net\u003e\nSuggested-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: David Miller \u003cdavem@davemloft.net\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "753649dbc49345a73a2454c770a3f2d54d11aec6",
      "tree": "7489a4f883a1281a4874817826ebf369f7d019f0",
      "parents": [
        "2eaa9cfdf33b8d7fb7aff27792192e0019ae8fc6"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Wed Mar 31 13:30:19 2010 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Wed Mar 31 15:48:38 2010 +0200"
      },
      "message": "genirq: Force MSI irq handlers to run with interrupts disabled\n\nNetwork folks reported that directing all MSI-X vectors of their multi\nqueue NICs to a single core can cause interrupt stack overflows when\nenough interrupts fire at the same time.\n\nThis is caused by the fact that we run interrupt handlers by default\nwith interrupts enabled unless the driver reuqests the interrupt with\nthe IRQF_DISABLED set. The NIC handlers do not set this flag, so\nsimultaneous interrupts can nest unlimited and cause the stack\noverflow.\n\nThe only safe counter measure is to run the interrupt handlers with\ninterrupts disabled. We can\u0027t switch to this mode in general right\nnow, but it is safe to do so for MSI interrupts.\n\nForce IRQF_DISABLED for MSI interrupt handlers.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nCc: Linus Torvalds \u003ctorvalds@osdl.org\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nCc: David Miller \u003cdavem@davemloft.net\u003e\nCc: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "246750ffa1b26335df4e485b4e4d28d83756ac43",
      "tree": "8c28306f1b66bd89713c9dfe8738097d56056d06",
      "parents": [
        "4660d3d240ac6c92cd3ad33657ca302026bdc24b",
        "570b8fb505896e007fd3bb07573ba6640e51851d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 30 07:26:30 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 30 07:26:30 2010 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/security-testing-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/security-testing-2.6:\n  CRED: Fix memory leak in error handling\n"
    },
    {
      "commit": "be3fd3cc7c2142c46d5dcfec05e6031990d1f2ca",
      "tree": "606074b5c60ef823ad86174e408904c563eab38d",
      "parents": [
        "9623e5a23724d09283c238960946ec6f65733afe",
        "eed63519e3e74d515d2007ecd895338d0ba2a85c"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 30 07:22:38 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 30 07:22:38 2010 -0700"
      },
      "message": "Merge branch \u0027x86-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027x86-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  x86: Do not free zero sized per cpu areas\n  x86: Make sure free_init_pages() frees pages on page boundary\n  x86: Make smp_locks end with page alignment\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": "570b8fb505896e007fd3bb07573ba6640e51851d",
      "tree": "fd36f685aa2028628605733708bbf7d1af62f3ec",
      "parents": [
        "9623e5a23724d09283c238960946ec6f65733afe"
      ],
      "author": {
        "name": "Mathieu Desnoyers",
        "email": "mathieu.desnoyers@efficios.com",
        "time": "Tue Mar 30 00:04:00 2010 +0100"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Tue Mar 30 17:15:38 2010 +1100"
      },
      "message": "CRED: Fix memory leak in error handling\n\nFix a memory leak on an OOM condition in prepare_usermodehelper_creds().\n\nSigned-off-by: Mathieu Desnoyers \u003cmathieu.desnoyers@efficios.com\u003e\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "292f60c0c4ab44aa2d589ba03c12e64a3b3c5e38",
      "tree": "0c33c9b23202a27c768dee45776503c9ec6b8306",
      "parents": [
        "e36673ec5126f15a8cddf6049aede7bdcf484c26"
      ],
      "author": {
        "name": "Julia Lawall",
        "email": "julia@diku.dk",
        "time": "Mon Mar 29 17:37:02 2010 +0200"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon Mar 29 15:23:24 2010 -0400"
      },
      "message": "ring-buffer: Add missing unlock\n\nIn some error handling cases the lock is not unlocked.  The return is\nconverted to a goto, to share the unlock at the end of the function.\n\nA simplified version of the semantic patch that finds this problem is as\nfollows: (http://coccinelle.lip6.fr/)\n\n// \u003csmpl\u003e\n@r exists@\nexpression E1;\nidentifier f;\n@@\n\nf (...) { \u003c+...\n* spin_lock_irq (E1,...);\n... when !\u003d E1\n* return ...;\n...+\u003e }\n// \u003c/smpl\u003e\n\nSigned-off-by: Julia Lawall \u003cjulia@diku.dk\u003e\nLKML-Reference: \u003cPine.LNX.4.64.1003291736440.21896@ask.diku.dk\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "e36673ec5126f15a8cddf6049aede7bdcf484c26",
      "tree": "020070456e2875bc2293c36b4fb7415e4d717199",
      "parents": [
        "b72c40949b0f04728f2993a1434598d3bad094ea"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Wed Mar 24 10:57:37 2010 +0800"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon Mar 29 15:16:44 2010 -0400"
      },
      "message": "tracing: Fix lockdep warning in global_clock()\n\n# echo 1 \u003e events/enable\n # echo global \u003e trace_clock\n\n------------[ cut here ]------------\nWARNING: at kernel/lockdep.c:3162 check_flags+0xb2/0x190()\n...\n---[ end trace 3f86734a89416623 ]---\npossible reason: unannotated irqs-on.\n...\n\nThere\u0027s no reason to use the raw_local_irq_save() in trace_clock_global.\nThe local_irq_save() version is fine, and does not cause the bug in lockdep.\n\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nLKML-Reference: \u003c4BA97FA1.7030606@cn.fujitsu.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "eed63519e3e74d515d2007ecd895338d0ba2a85c",
      "tree": "4b33f284ab39080293b287316d18745c770058e2",
      "parents": [
        "c967da6a0ba837f762042e931d4afcf72045547c"
      ],
      "author": {
        "name": "Ian Campbell",
        "email": "ian.campbell@citrix.com",
        "time": "Sun Mar 28 19:42:56 2010 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Mar 29 18:55:40 2010 +0200"
      },
      "message": "x86: Do not free zero sized per cpu areas\n\nThis avoids an infinite loop in free_early_partial().\n\nAdd a warning to free_early_partial() to catch future problems.\n\n-v5: put back start \u003e end back into WARN_ONCE()\n-v6: use one line for warning, suggested by Linus\n-v7: more tests\n-v8: remove the function name as suggested by Johannes\n     WARN_ONCE() will print out that function name.\n\nSigned-off-by: Ian Campbell \u003cian.campbell@citrix.com\u003e\nSigned-off-by: Yinghai Lu \u003cyinghai@kernel.org\u003e\nTested-by: Konrad Rzeszutek Wilk \u003ckonrad.wilk@oracle.com\u003e\nTested-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nTested-by: Stanislaw Gruszka \u003csgruszka@redhat.com\u003e\nAcked-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: David Miller \u003cdavem@davemloft.net\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nLKML-Reference: \u003c1269830604-26214-4-git-send-email-yinghai@kernel.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "a53f4f9efaeb1d87cfae066346979d4d70e1abe9",
      "tree": "d774e3c010b96bc71226d5aedd1df04462629db5",
      "parents": [
        "88be12c440cfa2fa3f5be83507360aac9ea1c54e"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Mon Mar 29 13:08:52 2010 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 29 09:14:47 2010 -0700"
      },
      "message": "SLOW_WORK: CONFIG_SLOW_WORK_PROC should be CONFIG_SLOW_WORK_DEBUG\n\nCONFIG_SLOW_WORK_PROC was changed to CONFIG_SLOW_WORK_DEBUG, but not in all\ninstances.  Change the remaining instances.  This makes the debugfs file\ndisplay the time mark and the owner\u0027s description again.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "88be12c440cfa2fa3f5be83507360aac9ea1c54e",
      "tree": "ec8593b4f626debde062eda917355afc35573684",
      "parents": [
        "376a21ff42ba71167afe7a47aeb1ca19470cf580"
      ],
      "author": {
        "name": "Dave Airlie",
        "email": "airlied@redhat.com",
        "time": "Mon Mar 29 12:01:50 2010 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 29 09:13:30 2010 -0700"
      },
      "message": "slow-work: use get_ref wrapper instead of directly calling get_ref\n\nOtherwise we can get an oops if the user has no get_ref/put_ref\nrequirement.\n\nSigned-off-by: Dave Airlie \u003cairlied@redhat.com\u003e\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "10fad5e46f6c7bdfb01b1a012380a38e3c6ab346",
      "tree": "9ec6e3955e7f879f64ea79812cf5ecd41baa6939",
      "parents": [
        "259354deaaf03d49a02dbb9975d6ec2a54675672"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Mar 10 18:57:54 2010 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Mar 29 23:07:12 2010 +0900"
      },
      "message": "percpu, module: implement and use is_kernel/module_percpu_address()\n\nlockdep has custom code to check whether a pointer belongs to static\npercpu area which is somewhat broken.  Implement proper\nis_kernel/module_percpu_address() and replace the custom code.\n\nOn UP, percpu variables are regular static variables and can\u0027t be\ndistinguished from them.  Always return %false on UP.\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@redhat.com\u003e\n"
    },
    {
      "commit": "259354deaaf03d49a02dbb9975d6ec2a54675672",
      "tree": "a05fbdfecfa5c2924235ce2fb7618b3acdecaa16",
      "parents": [
        "b72c40949b0f04728f2993a1434598d3bad094ea"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Mar 10 18:56:10 2010 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Mar 29 23:07:12 2010 +0900"
      },
      "message": "module: encapsulate percpu handling better and record percpu_size\n\nBetter encapsulate module static percpu area handling so that code\noutsidef of CONFIG_SMP ifdef doesn\u0027t deal with mod-\u003epercpu directly\nand add mod-\u003epercpu_size and record percpu_size in it.  Both percpu\nfields are compiled out on UP.  While at it, mark mod-\u003epercpu w/\n__percpu.\n\nThis is to prepare for is_module_percpu_address().\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nAcked-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "b72c40949b0f04728f2993a1434598d3bad094ea",
      "tree": "612b99ceac1f713d15cb288d370578e138537e49",
      "parents": [
        "e4d50423d773fb8d5b714430ba5358e8a1b87c14",
        "d558b483d5a73f5718705b270cb2090f66ea48c8"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 26 16:34:29 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 26 16:34:29 2010 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci-2.6:\n  x86/PCI: truncate _CRS windows with _LEN \u003e _MAX - _MIN + 1\n  x86/PCI: for host bridge address space collisions, show conflicting resource\n  frv/PCI: remove redundant warnings\n  x86/PCI: remove redundant warnings\n  PCI: don\u0027t say we claimed a resource if we failed\n  PCI quirk: Disable MSI on VIA K8T890 systems\n  PCI quirk: RS780/RS880: work around missing MSI initialization\n  PCI quirk: only apply CX700 PCI bus parking quirk if external VT6212L is present\n  PCI: complain about devices that seem to be broken\n  PCI: print resources consistently with %pR\n  PCI: make disabled window printk style match the enabled ones\n  PCI: break out primary/secondary/subordinate for readability\n  PCI: for address space collisions, show conflicting resource\n  resources: add interfaces that return conflict information\n  PCI: cleanup error return for pcix get and set mmrbc functions\n  PCI: fix access of PCI_X_CMD by pcix get and set mmrbc functions\n  PCI: kill off pci_register_set_vga_state() symbol export.\n  PCI: fix return value from pcix_get_max_mmrbc()\n"
    },
    {
      "commit": "5a7aadfe2fcb0f69e2acc1fbefe22a096e792fc9",
      "tree": "dc1b649fc6aa05ecd25cab23e464894e660830d5",
      "parents": [
        "4f598458ea4450f53e8ed929ee4e66b3404a7286"
      ],
      "author": {
        "name": "Matt Helsley",
        "email": "matthltc@us.ibm.com",
        "time": "Fri Mar 26 23:51:44 2010 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Fri Mar 26 23:51:44 2010 +0100"
      },
      "message": "Freezer: Fix buggy resume test for tasks frozen with cgroup freezer\n\nWhen the cgroup freezer is used to freeze tasks we do not want to thaw\nthose tasks during resume. Currently we test the cgroup freezer\nstate of the resuming tasks to see if the cgroup is FROZEN.  If so\nthen we don\u0027t thaw the task. However, the FREEZING state also indicates\nthat the task should remain frozen.\n\nThis also avoids a problem pointed out by Oren Ladaan: the freezer state\ntransition from FREEZING to FROZEN is updated lazily when userspace reads\nor writes the freezer.state file in the cgroup filesystem. This means that\nresume will thaw tasks in cgroups which should be in the FROZEN state if\nthere is no read/write of the freezer.state file to trigger this\ntransition before suspend.\n\nNOTE: Another \"simple\" solution would be to always update the cgroup\nfreezer state during resume. However it\u0027s a bad choice for several reasons:\nUpdating the cgroup freezer state is somewhat expensive because it requires\nwalking all the tasks in the cgroup and checking if they are each frozen.\nWorse, this could easily make resume run in N^2 time where N is the number\nof tasks in the cgroup. Finally, updating the freezer state from this code\npath requires trickier locking because of the way locks must be ordered.\n\nInstead of updating the freezer state we rely on the fact that lazy\nupdates only manage the transition from FREEZING to FROZEN. We know that\na cgroup with the FREEZING state may actually be FROZEN so test for that\nstate too. This makes sense in the resume path even for partially-frozen\ncgroups -- those that really are FREEZING but not FROZEN.\n\nReported-by: Oren Ladaan \u003corenl@cs.columbia.edu\u003e\nSigned-off-by: Matt Helsley \u003cmatthltc@us.ibm.com\u003e\nCc: stable@kernel.org\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "4f598458ea4450f53e8ed929ee4e66b3404a7286",
      "tree": "7947a560c241edc3320436406b13cdbb464bb202",
      "parents": [
        "e1ee65d85904c5dd4b9cea1b15d5e85e20eae8a1"
      ],
      "author": {
        "name": "Xiaotian Feng",
        "email": "dfeng@redhat.com",
        "time": "Wed Mar 10 22:59:13 2010 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Fri Mar 26 23:51:13 2010 +0100"
      },
      "message": "Freezer: Only show the state of tasks refusing to freeze\n\nshow_state will dump all tasks state, so if freezer failed to freeze\nany task, kernel will dump all tasks state and flood the dmesg log.\nThis patch makes freezer only show state of tasks refusing to freeze.\n\nSigned-off-by: Xiaotian Feng \u003cdfeng@redhat.com\u003e\nAcked-by: Pavel Machek \u003cpavel@ucw.cz\u003e\nAcked-by: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "054319b5e255c0671012a5a89b344a7d55cda80c",
      "tree": "5f815e837eacb11504f19c00e155befcecdf0903",
      "parents": [
        "833961d81f0ece46b7884f988cc65509e2c49646",
        "830ec0458c390f29c6c99e1ff7feab9e36368d12"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 26 15:10:38 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 26 15:10:38 2010 -0700"
      },
      "message": "Merge branch \u0027timers-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027timers-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  time: Fix accumulation bug triggered by long delay.\n  posix-cpu-timers: Reset expire cache when no timer is running\n  timer stats: Fix del_timer_sync() and try_to_del_timer_sync()\n  clockevents: Sanitize min_delta_ns adjustment and prevent overflows\n"
    },
    {
      "commit": "833961d81f0ece46b7884f988cc65509e2c49646",
      "tree": "4c4bef2e8ec7d8510de827d83010b0fe76c4924f",
      "parents": [
        "3cacf42462c8c97e045a07a5fc92aa357489c8b5",
        "2271048d1b3b0aabf83d25b29c20646dcabedc05"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 26 15:10:13 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 26 15:10:13 2010 -0700"
      },
      "message": "Merge branch \u0027tracing-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027tracing-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  ring-buffer: Do 8 byte alignment for 64 bit that can not handle 4 byte align\n"
    },
    {
      "commit": "3cacf42462c8c97e045a07a5fc92aa357489c8b5",
      "tree": "32ed28929899a93c2a3cf9ba5d051d01ed798a7d",
      "parents": [
        "6fa41366c1c5e8b9640baba22d2b90ec9035a889",
        "8bc037fb89bb3104b9ae290d18c877624cd7d9cc"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 26 15:09:59 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 26 15:09:59 2010 -0700"
      },
      "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:\n  sched: Use proper type in sched_getaffinity()\n  kernel/sched.c: Suppress unused var warning\n  sched: sched_getaffinity(): Allow less than NR_CPUS length\n"
    },
    {
      "commit": "309d1dcb5b73ab1f8212aff3037a7bcb46afe819",
      "tree": "af8ccaeb98051504db8f44a32f56945382f67271",
      "parents": [
        "8128f55a0bc60cf3779135a1f837c4323e77c582",
        "860652bfb890bd861c999ec39fcffabe5b712f85"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 26 15:09:06 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 26 15:09:06 2010 -0700"
      },
      "message": "Merge branch \u0027irq-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027irq-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  genirq: Move two IRQ functions from .init.text to .text\n  genirq: Protect access to irq_desc-\u003eaction in can_request_irq()\n  genirq: Prevent oneshot irq thread race\n"
    },
    {
      "commit": "8128f55a0bc60cf3779135a1f837c4323e77c582",
      "tree": "a6f23d18496049651617f5c5cbe21648fa521f4e",
      "parents": [
        "50da56706b989b99edb20f9c03172df193240c78",
        "c26f91a3df1999ec1b3298372d73f90cbab81106"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 26 15:08:31 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 26 15:08:31 2010 -0700"
      },
      "message": "Merge branch \u0027core-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027core-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  x86: Remove excessive early_res debug output\n  softlockup: Stop spurious softlockup messages due to overflow\n  rcu: Fix local_irq_disable() CONFIG_PROVE_RCU\u003dy false positives\n  rcu: Fix tracepoints \u0026 lockdep false positive\n  rcu: Make rcu_read_lock_bh_held() allow for disabled BH\n"
    },
    {
      "commit": "53feb29767c29c877f9d47dcfe14211b5b0f7ebd",
      "tree": "0416744ece6b7fd667bef355434ed9157fe67b2a",
      "parents": [
        "5ab116c9349ef52d6fbd2e2917a53f13194b048e"
      ],
      "author": {
        "name": "Miao Xie",
        "email": "miaox@cn.fujitsu.com",
        "time": "Tue Mar 23 13:35:35 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 24 16:31:21 2010 -0700"
      },
      "message": "cpuset: alloc nodemask_t on the heap rather than the stack\n\nSigned-off-by: Miao Xie \u003cmiaox@cn.fujitsu.com\u003e\nAcked-by: David Rientjes \u003crientjes@google.com\u003e\nCc: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.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": "5ab116c9349ef52d6fbd2e2917a53f13194b048e",
      "tree": "636a6cf02d5ca47c6da5d4935b07ddf08666a09c",
      "parents": [
        "5574169613b40b85d6f4c67208fa4846b897a0a1"
      ],
      "author": {
        "name": "Miao Xie",
        "email": "miaox@cn.fujitsu.com",
        "time": "Tue Mar 23 13:35:34 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 24 16:31:21 2010 -0700"
      },
      "message": "cpuset: fix the problem that cpuset_mem_spread_node() returns an offline node\n\ncpuset_mem_spread_node() returns an offline node, and causes an oops.\n\nThis patch fixes it by initializing task-\u003emems_allowed to\nnode_states[N_HIGH_MEMORY], and updating task-\u003emems_allowed when doing\nmemory hotplug.\n\nSigned-off-by: Miao Xie \u003cmiaox@cn.fujitsu.com\u003e\nAcked-by: David Rientjes \u003crientjes@google.com\u003e\nReported-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nTested-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9d34706f42f9b8c15185423d9af98d37ba21d011",
      "tree": "beee69581a5deec172854fcc9517dfa42602e73b",
      "parents": [
        "5cfb80a73b5a52fb19d8b0611203e4dd58e8e9a2"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Tue Mar 23 13:35:12 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 24 16:31:19 2010 -0700"
      },
      "message": "cgroups: remove duplicate include\n\ncommit e6a1105b (\"cgroups: subsystem module loading interface\") and commit\nc50cc752 (\"sched, cgroups: Fix module export\") result in duplicate\nincluding of module.h\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nAcked-by: Paul Menage \u003cmenage@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "860652bfb890bd861c999ec39fcffabe5b712f85",
      "tree": "9a266245973217e00533039d7aa707bf09b09e55",
      "parents": [
        "cc8c3b78433222e5dbc1fdfcfdde29e1743f181a"
      ],
      "author": {
        "name": "Henrik Kretzschmar",
        "email": "henne@nachtwindheim.de",
        "time": "Wed Mar 24 12:59:20 2010 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Wed Mar 24 14:38:23 2010 +0100"
      },
      "message": "genirq: Move two IRQ functions from .init.text to .text\n\nBoth functions should not be marked as __init, since they be called\nfrom modules after the init section is freed.\n\nSigned-off-by: Henrik Kretzschmar \u003chenne@nachtwindheim.de\u003e\nCc: Yinghai Lu \u003cyinghai@kernel.org\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Jiri Kosina \u003cjkosina@suse.cz\u003e\nLKML-Reference: \u003c1269431961-5731-1-git-send-email-henne@nachtwindheim.de\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "cc8c3b78433222e5dbc1fdfcfdde29e1743f181a",
      "tree": "7efe13d87d7d92b1ff409455e65c85129bc30121",
      "parents": [
        "0b1adaa031a55e44f5dd942f234bf09d28e8a0d6"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Mar 23 22:40:53 2010 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Wed Mar 24 14:38:23 2010 +0100"
      },
      "message": "genirq: Protect access to irq_desc-\u003eaction in can_request_irq()\n\ncan_request_irq() accesses and dereferences irq_desc-\u003eaction w/o\nholding irq_desc-\u003elock. So action can be freed on another CPU before\nit\u0027s dereferenced. Unlikely, but ...\n\nProtect it with desc-\u003elock.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "66f1207bce10fd80ee8ce99b67d617644612f05e",
      "tree": "3031bb74dce8c54af69dcd4aa7e566f40a5511ce",
      "parents": [
        "7c9e2b1c4784c6e574f69dbd904b2822f2e04d6e"
      ],
      "author": {
        "name": "Bjorn Helgaas",
        "email": "bjorn.helgaas@hp.com",
        "time": "Thu Mar 11 17:01:09 2010 -0700"
      },
      "committer": {
        "name": "Jesse Barnes",
        "email": "jbarnes@virtuousgeek.org",
        "time": "Tue Mar 23 13:33:50 2010 -0700"
      },
      "message": "resources: add interfaces that return conflict information\n\nrequest_resource() and insert_resource() only return success or failure,\nwhich no information about what existing resource conflicted with the\nproposed new reservation.  This patch adds request_resource_conflict()\nand insert_resource_conflict(), which return the conflicting resource.\n\nCallers may use this for better error messages or to adjust the new\nresource and retry the request.\n\nSigned-off-by: Bjorn Helgaas \u003cbjorn.helgaas@hp.com\u003e\nSigned-off-by: Jesse Barnes \u003cjbarnes@virtuousgeek.org\u003e\n"
    },
    {
      "commit": "830ec0458c390f29c6c99e1ff7feab9e36368d12",
      "tree": "81a344892bd7696a42d87b76189b59f4e1af71ef",
      "parents": [
        "15365c108ea27598e265f8c13e7051d99ca5b0b9"
      ],
      "author": {
        "name": "John Stultz",
        "email": "johnstul@us.ibm.com",
        "time": "Thu Mar 18 14:47:30 2010 -0700"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Mar 23 16:41:01 2010 +0100"
      },
      "message": "time: Fix accumulation bug triggered by long delay.\n\nThe logarithmic accumulation done in the timekeeping has some overflow\nprotection that limits the max shift value. That means it will take\nmore then shift loops to accumulate all of the cycles. This causes\nthe shift decrement to underflow, which causes the loop to never exit.\n\nThe simplest fix would be simply to do a:\n\tif (shift)\n\t\tshift--;\n\nHowever that is not optimal, as we know the cycle offset is larger\nthen the interval \u003c\u003c shift, the above would make shift drop to zero,\nthen we would be spinning for quite awhile accumulating at interval\nchunks at a time.\n\nInstead, this patch only decreases shift if the offset is smaller\nthen cycle_interval \u003c\u003c shift.  This makes sure we accumulate using\nthe largest chunks possible without overflowing tick_length, and limits\nthe number of iterations through the loop.\n\nThis issue was found and reported by Sonic Zhang, who also tested the fix.\nMany thanks your explanation and testing!\n\nReported-by: Sonic Zhang \u003csonic.adi@gmail.com\u003e\nSigned-off-by: John Stultz \u003cjohnstul@us.ibm.com\u003e\nTested-by: Sonic Zhang \u003csonic.adi@gmail.com\u003e\nLKML-Reference: \u003c1268948850-5225-1-git-send-email-johnstul@us.ibm.com\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "8c2eb4805d422bdbf60ba00ff233c794d23c3c00",
      "tree": "add5be0a86cb9453d7d8c6d08847013137a98806",
      "parents": [
        "0cff810f54b3b52075c27f7a7021d5b195264b6c"
      ],
      "author": {
        "name": "Colin Ian King",
        "email": "colin.king@canonical.com",
        "time": "Fri Mar 19 10:28:02 2010 +0000"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Mar 21 19:30:13 2010 +0100"
      },
      "message": "softlockup: Stop spurious softlockup messages due to overflow\n\nEnsure additions on touch_ts do not overflow.  This can occur\nwhen the top 32 bits of the TSC reach 0xffffffff causing\nadditions to touch_ts to overflow and this in turn generates\nspurious softlockup warnings.\n\nSigned-off-by: Colin Ian King \u003ccolin.king@canonical.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nCc: \u003cstable@kernel.org\u003e\nLKML-Reference: \u003c1268994482.1798.6.camel@lenovo\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "2271048d1b3b0aabf83d25b29c20646dcabedc05",
      "tree": "4d20fa61a1d6fc2542b283b45c2a7a374fb2c3f5",
      "parents": [
        "a3d3203e4bb40f253b1541e310dc0f9305be7c84"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu Mar 18 17:54:19 2010 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu Mar 18 23:11:35 2010 -0400"
      },
      "message": "ring-buffer: Do 8 byte alignment for 64 bit that can not handle 4 byte align\n\nThe ring buffer uses 4 byte alignment while recording events into the\nbuffer, even on 64bit machines. This saves space when there are lots\nof events being recorded at 4 byte boundaries.\n\nThe ring buffer has a zero copy method to write into the buffer, with\nthe reserving of space and then committing it. This may cause problems\nwhen writing an 8 byte word into a 4 byte alignment (not 8). For x86 and\nPPC this is not an issue, but on some architectures this would cause an\nout-of-alignment exception.\n\nThis patch uses CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS to determine\nif it is OK to use 4 byte alignments on 64 bit machines. If it is not,\nit forces the ring buffer event header to be 8 bytes and not 4,\nand will align the length of the data to be 8 byte aligned.\nThis keeps the data payload at 8 byte alignments and will allow these\nmachines to run without issue.\n\nThe trick to this is that the header can be either 4 bytes or 8 bytes\ndepending on the length of the data payload. The 4 byte header\nhas a length field that supports up to 112 bytes. If the length of\nthe data is more than 112, the length field is set to zero, and the actual\nlength is stored in the next 4 bytes after the header.\n\nWhen CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS is not set, the code forces\nzero in the 4 byte header forcing the length to be stored in the 4 byte\narray, even with a small data load. It also forces the length of the\ndata load to be 8 byte aligned. The combination of these two guarantee\nthat the data is always at 8 byte alignment.\n\nTested-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\n           (on sparc64)\nReported-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nAcked-by: David S. Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "f82c37e7bb4c4d9b6a476c642d5c2d2efbd6f240",
      "tree": "09fc553c2fb6f527962048d139159dc139e04afc",
      "parents": [
        "c6b9e73f2fee8bb86058f296de808b326473456b",
        "dcd5c1662db59a6b82942f47fb6ac9dd63f6d3dd"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 18 16:52:46 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 18 16:52:46 2010 -0700"
      },
      "message": "Merge branch \u0027perf-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027perf-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (35 commits)\n  perf: Fix unexported generic perf_arch_fetch_caller_regs\n  perf record: Don\u0027t try to find buildids in a zero sized file\n  perf: export perf_trace_regs and perf_arch_fetch_caller_regs\n  perf, x86: Fix hw_perf_enable() event assignment\n  perf, ppc: Fix compile error due to new cpu notifiers\n  perf: Make the install relative to DESTDIR if specified\n  kprobes: Calculate the index correctly when freeing the out-of-line execution slot\n  perf tools: Fix sparse CPU numbering related bugs\n  perf_event: Fix oops triggered by cpu offline/online\n  perf: Drop the obsolete profile naming for trace events\n  perf: Take a hot regs snapshot for trace events\n  perf: Introduce new perf_fetch_caller_regs() for hot regs snapshot\n  perf/x86-64: Use frame pointer to walk on irq and process stacks\n  lockdep: Move lock events under lockdep recursion protection\n  perf report: Print the map table just after samples for which no map was found\n  perf report: Add multiple event support\n  perf session: Change perf_session post processing functions to take histogram tree\n  perf session: Add storage for seperating event types in report\n  perf session: Change add_hist_entry to take the tree root instead of session\n  perf record: Add ID and to recorded event data when recording multiple events\n  ...\n"
    },
    {
      "commit": "dcd5c1662db59a6b82942f47fb6ac9dd63f6d3dd",
      "tree": "432f0d89d45fc62d666d46e591ffe109f111cb1e",
      "parents": [
        "9f591fd76afdc0e5192e9ed00a36f8efc0b4dfe6"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Tue Mar 16 01:05:02 2010 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Mar 17 12:26:49 2010 +0100"
      },
      "message": "perf: Fix unexported generic perf_arch_fetch_caller_regs\n\nperf_arch_fetch_caller_regs() is exported for the overriden x86\nversion, but not for the generic weak version.\n\nAs a general rule, weak functions should not have their symbol\nexported in the same file they are defined.\n\nSo let\u0027s export it on trace_event_perf.c as it is used by trace\nevents only.\n\nThis fixes:\n\n\tERROR: \".perf_arch_fetch_caller_regs\" [fs/xfs/xfs.ko] undefined!\n\tERROR: \".perf_arch_fetch_caller_regs\" [arch/powerpc/platforms/cell/spufs/spufs.ko] undefined!\n\n-v2: And also only build it if trace events are enabled.\n-v3: Fix changelog mistake\n\nReported-by: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Xiao Guangrong \u003cxiaoguangrong@cn.fujitsu.com\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nLKML-Reference: \u003c1268697902-9518-1-git-send-regression-fweisbec@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "8bc037fb89bb3104b9ae290d18c877624cd7d9cc",
      "tree": "33a95e7bf529ea6bdb28d1dda86f49450f9dc883",
      "parents": [
        "c890692bf37671b5b78a1870d55d6d87e1c8a509"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Wed Mar 17 09:36:58 2010 +0900"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Mar 17 10:48:49 2010 +0100"
      },
      "message": "sched: Use proper type in sched_getaffinity()\n\nUsing the proper type fixes the following compiler warning:\n\n  kernel/sched.c:4850: warning: comparison of distinct pointer types lacks a cast\n\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: torvalds@linux-foundation.org\nCc: travis@sgi.com\nCc: peterz@infradead.org\nCc: drepper@redhat.com\nCc: rja@sgi.com\nCc: sharyath@in.ibm.com\nCc: steiner@sgi.com\nLKML-Reference: \u003c20100317090046.4C79.A69D9226@jp.fujitsu.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "c890692bf37671b5b78a1870d55d6d87e1c8a509",
      "tree": "70ffb80cf62eabaeabf334d08ae88aa63eccb5be",
      "parents": [
        "cd3d8031eb4311e516329aee03c79a08333141f1"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Thu Mar 11 14:08:43 2010 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Mar 16 11:13:42 2010 +0100"
      },
      "message": "kernel/sched.c: Suppress unused var warning\n\nOn UP:\n\n  kernel/sched.c: In function \u0027wake_up_new_task\u0027:\n  kernel/sched.c:2631: warning: unused variable \u0027cpu\u0027\n\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "6427462bfa50f50dc6c088c07037264fcc73eca1",
      "tree": "c0c2746b123acfec4332d259fae02918d4a80385",
      "parents": [
        "beac4c7e4a1cc6d57801f690e5e82fa2c9c245c8"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "error27@gmail.com",
        "time": "Mon Mar 15 11:21:48 2010 +0300"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Mar 16 11:05:44 2010 +0100"
      },
      "message": "sched: Remove some dead code\n\nThis was left over from \"7c9414385e sched: Remove USER_SCHED\"\n\nSigned-off-by: Dan Carpenter \u003cerror27@gmail.com\u003e\nAcked-by: Dhaval Giani \u003cdhaval.giani@gmail.com\u003e\nCc: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nCc: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\nLKML-Reference: \u003c20100315082148.GD18181@bicker\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "e3818b8dce2a934cd1521dbc4827e5238d8f45d8",
      "tree": "871d73c67a9bfd84b7ed7c49e9d4027eac7e577f",
      "parents": [
        "a3d3203e4bb40f253b1541e310dc0f9305be7c84"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Mon Mar 15 17:03:43 2010 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Mar 16 09:57:49 2010 +0100"
      },
      "message": "rcu: Make rcu_read_lock_bh_held() allow for disabled BH\n\nDisabling BH can stand in for rcu_read_lock_bh(), and this patch\nupdates rcu_read_lock_bh_held() to allow for this.  In order to\navoid include-file hell, this function is moved out of line to\nkernel/rcupdate.c.\n\nThis fixes a false positive RCU warning.\n\nReported-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nReported-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nAcked-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nCc: dipankar@in.ibm.com\nCc: mathieu.desnoyers@polymtl.ca\nCc: josh@joshtriplett.org\nCc: dvhltc@us.ibm.com\nCc: niv@us.ibm.com\nCc: peterz@infradead.org\nCc: rostedt@goodmis.org\nCc: Valdis.Kletnieks@vt.edu\nCc: dhowells@redhat.com\nLKML-Reference: \u003c20100316000343.GA25857@linux.vnet.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "cd3d8031eb4311e516329aee03c79a08333141f1",
      "tree": "b01d378aa94300acdbeef84c01f81ef405505bb1",
      "parents": [
        "a3d3203e4bb40f253b1541e310dc0f9305be7c84"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Fri Mar 12 16:15:36 2010 +0900"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Mar 15 08:28:44 2010 +0100"
      },
      "message": "sched: sched_getaffinity(): Allow less than NR_CPUS length\n\n[ Note, this commit changes the syscall ABI for \u003e 1024 CPUs systems. ]\n\nRecently, some distro decided to use NR_CPUS\u003d4096 for mysterious reasons.\nUnfortunately, glibc sched interface has the following definition:\n\n\t# define __CPU_SETSIZE  1024\n\t# define __NCPUBITS     (8 * sizeof (__cpu_mask))\n\ttypedef unsigned long int __cpu_mask;\n\ttypedef struct\n\t{\n\t  __cpu_mask __bits[__CPU_SETSIZE / __NCPUBITS];\n\t} cpu_set_t;\n\nIt mean, if NR_CPUS is bigger than 1024, cpu_set_t makes an\nABI issue ...\n\nMore recently, Sharyathi Nagesh reported following test program makes\nmisterious syscall failure:\n\n -----------------------------------------------------------------------\n #define _GNU_SOURCE\n #include\u003cstdio.h\u003e\n #include\u003cerrno.h\u003e\n #include\u003csched.h\u003e\n\n int main()\n {\n     cpu_set_t set;\n     if (sched_getaffinity(0, sizeof(cpu_set_t), \u0026set) \u003c 0)\n         printf(\"\\n Call is failing with:%d\", errno);\n }\n -----------------------------------------------------------------------\n\nBecause the kernel assumes len argument of sched_getaffinity() is bigger\nthan NR_CPUS. But now it is not correct.\n\nNow we are faced with the following annoying dilemma, due to\nthe limitations of the glibc interface built in years ago:\n\n (1) if we change glibc\u0027s __CPU_SETSIZE definition, we lost\n     binary compatibility of _all_ application.\n\n (2) if we don\u0027t change it, we also lost binary compatibility of\n     Sharyathi\u0027s use case.\n\nThen, I would propse to change the rule of the len argument of\nsched_getaffinity().\n\nOld:\n\tlen should be bigger than NR_CPUS\nNew:\n\tlen should be bigger than maximum possible cpu id\n\nThis creates the following behavior:\n\n (A) In the real 4096 cpus machine, the above test program still\n     return -EINVAL.\n\n (B) NR_CPUS\u003d4096 but the machine have less than 1024 cpus (almost\n     all machines in the world), the above can run successfully.\n\nFortunatelly, BIG SGI machine is mainly used for HPC use case. It means\nthey can rebuild their programs.\n\nIOW we hope they are not annoyed by this issue ...\n\nReported-by: Sharyathi Nagesh \u003csharyath@in.ibm.com\u003e\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nAcked-by: Ulrich Drepper \u003cdrepper@redhat.com\u003e\nAcked-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Jack Steiner \u003csteiner@sgi.com\u003e\nCc: Russ Anderson \u003crja@sgi.com\u003e\nCc: Mike Travis \u003ctravis@sgi.com\u003e\nLKML-Reference: \u003c20100312161316.9520.A69D9226@jp.fujitsu.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "80a186074e72e2cd61f6716d90cf32ce54981a56",
      "tree": "c5f75a83498df0ea2109067b797ec7986479dda0",
      "parents": [
        "15c989d4d14b82f43cae7efc6a7794cdd556f274",
        "3d07467b7aa91623b31d7b5888a123a2c8c8e9cc"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 13 14:46:18 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 13 14:46:18 2010 -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:\n  sched: Fix pick_next_highest_task_rt() for cgroups\n  sched: Cleanup: remove unused variable in try_to_wake_up()\n  x86: Fix sched_clock_cpu for systems with unsynchronized TSC\n"
    },
    {
      "commit": "4e3eaddd142e2142c048c5052a0a9d2604fccfc6",
      "tree": "5bc45a286502e54e790c54948f22364c5afd9d89",
      "parents": [
        "8655e7e3ddec60603c4f6c14cdf642e2ba198df8",
        "b97c4bc16734a2e597dac7f91ee9eb78f4aeef9a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 13 14:43:01 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 13 14:43:01 2010 -0800"
      },
      "message": "Merge branch \u0027core-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027core-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  locking: Make sparse work with inline spinlocks and rwlocks\n  x86/mce: Fix RCU lockdep splats\n  rcu: Increase RCU CPU stall timeouts if PROVE_RCU\n  ftrace: Replace read_barrier_depends() with rcu_dereference_raw()\n  rcu: Suppress RCU lockdep warnings during early boot\n  rcu, ftrace: Fix RCU lockdep splat in ftrace_perf_buf_prepare()\n  rcu: Suppress __mpol_dup() false positive from RCU lockdep\n  rcu: Make rcu_read_lock_sched_held() handle !PREEMPT\n  rcu: Add control variables to lockdep_rcu_dereference() diagnostics\n  rcu, cgroup: Relax the check in task_subsys_state() as early boot is now handled by lockdep-RCU\n  rcu: Use wrapper function instead of exporting tasklist_lock\n  sched, rcu: Fix rcu_dereference() for RCU-lockdep\n  rcu: Make task_subsys_state() RCU-lockdep checks handle boot-time use\n  rcu: Fix holdoff for accelerated GPs for last non-dynticked CPU\n  x86/gart: Unexport gart_iommu_aperture\n\nFix trivial conflicts in kernel/trace/ftrace.c\n"
    },
    {
      "commit": "8655e7e3ddec60603c4f6c14cdf642e2ba198df8",
      "tree": "711b6da2a665e26940c59b9db493c59d879f6cc6",
      "parents": [
        "461d208cfbd1f0af26027b2c35ded515e54b1ee6",
        "b6345879ccbd9b92864fbd7eb8ac48acdb4d6b15"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 13 14:40:50 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 13 14:40:50 2010 -0800"
      },
      "message": "Merge branch \u0027tracing-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027tracing-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  tracing: Do not record user stack trace from NMI context\n  tracing: Disable buffer switching when starting or stopping trace\n  tracing: Use same local variable when resetting the ring buffer\n  function-graph: Init curr_ret_stack with ret_stack\n  ring-buffer: Move disabled check into preempt disable section\n  function-graph: Add tracing_thresh support to function_graph tracer\n  tracing: Update the comm field in the right variable in update_max_tr\n  function-graph: Use comment notation for func names of dangling \u0027}\u0027\n  function-graph: Fix unused reference to ftrace_set_func()\n  tracing: Fix warning in s_next of trace file ops\n  tracing: Include irqflags headers from trace clock\n"
    },
    {
      "commit": "9fdfbc2bff587f454dd95e2caa6d147c9abe39e4",
      "tree": "2feaee47cbcfb57dd0d5cf23509e22011541e717",
      "parents": [
        "8cea4eb642890a1de58980e7e1617d1765ef8f7c",
        "dc1d628a67a8f042e711ea5accc0beedc3ef0092"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 13 14:39:42 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 13 14:39:42 2010 -0800"
      },
      "message": "Merge branch \u0027perf-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027perf-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  perf: Provide generic perf_sample_data initialization\n  MAINTAINERS: Add Arnaldo as tools/perf/ co-maintainer\n  perf trace: Don\u0027t use pager if scripting\n  perf trace/scripting: Remove extraneous header read\n  perf, ARM: Modify kuser rmb() call to compile for Thumb-2\n  x86/stacktrace: Don\u0027t dereference bad frame pointers\n  perf archive: Don\u0027t try to collect files without a build-id\n  perf_events, x86: Fixup fixed counter constraints\n  perf, x86: Restrict the ANY flag\n  perf, x86: rename macro in ARCH_PERFMON_EVENTSEL_ENABLE\n  perf, x86: add some IBS macros to perf_event.h\n  perf, x86: make IBS macros available in perf_event.h\n  hw-breakpoints: Remove stub unthrottle callback\n  x86/hw-breakpoints: Remove the name field\n  perf: Remove pointless breakpoint union\n  perf lock: Drop the buffers multiplexing dependency\n  perf lock: Fix and add misc documentally things\n  percpu: Add __percpu sparse annotations to hw_breakpoint\n"
    },
    {
      "commit": "b6345879ccbd9b92864fbd7eb8ac48acdb4d6b15",
      "tree": "5f7d831ab4de8f8c3577230ba8b15e0681eef52f",
      "parents": [
        "a2f8071428ed9a0f06865f417c962421c9a6b488"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri Mar 12 20:03:30 2010 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Fri Mar 12 20:31:49 2010 -0500"
      },
      "message": "tracing: Do not record user stack trace from NMI context\n\nA bug was found with Li Zefan\u0027s ftrace_stress_test that caused applications\nto segfault during the test.\n\nPlacing a tracing_off() in the segfault code, and examining several\ntraces, I found that the following was always the case. The lock tracer\nwas enabled (lockdep being required) and userstack was enabled. Testing\nthis out, I just enabled the two, but that was not good enough. I needed\nto run something else that could trigger it. Running a load like hackbench\ndid not work, but executing a new program would. The following would\ntrigger the segfault within seconds:\n\n  # echo 1 \u003e /debug/tracing/options/userstacktrace\n  # echo 1 \u003e /debug/tracing/events/lock/enable\n  # while :; do ls \u003e /dev/null ; done\n\nEnabling the function graph tracer and looking at what was happening\nI finally noticed that all cashes happened just after an NMI.\n\n 1)               |    copy_user_handle_tail() {\n 1)               |      bad_area_nosemaphore() {\n 1)               |        __bad_area_nosemaphore() {\n 1)               |          no_context() {\n 1)               |            fixup_exception() {\n 1)   0.319 us    |              search_exception_tables();\n 1)   0.873 us    |            }\n[...]\n 1)   0.314 us    |  __rcu_read_unlock();\n 1)   0.325 us    |    native_apic_mem_write();\n 1)   0.943 us    |  }\n 1)   0.304 us    |  rcu_nmi_exit();\n[...]\n 1)   0.479 us    |  find_vma();\n 1)               |  bad_area() {\n 1)               |    __bad_area() {\n\nAfter capturing several traces of failures, all of them happened\nafter an NMI. Curious about this, I added a trace_printk() to the NMI\nhandler to read the regs-\u003eip to see where the NMI happened. In which I\nfound out it was here:\n\nffffffff8135b660 \u003cpage_fault\u003e:\nffffffff8135b660:       48 83 ec 78             sub    $0x78,%rsp\nffffffff8135b664:       e8 97 01 00 00          callq  ffffffff8135b800 \u003cerror_entry\u003e\n\nWhat was happening is that the NMI would happen at the place that a page\nfault occurred. It would call rcu_read_lock() which was traced by\nthe lock events, and the user_stack_trace would run. This would trigger\na page fault inside the NMI. I do not see where the CR2 register is\nsaved or restored in NMI handling. This means that it would corrupt\nthe page fault handling that the NMI interrupted.\n\nThe reason the while loop of ls helped trigger the bug, was that\neach execution of ls would cause lots of pages to be faulted in, and\nincrease the chances of the race happening.\n\nThe simple solution is to not allow user stack traces in NMI context.\nAfter this patch, I ran the above \"ls\" test for a couple of hours\nwithout any issues. Without this patch, the bug would trigger in less\nthan a minute.\n\nCc: stable@kernel.org\nReported-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "a2f8071428ed9a0f06865f417c962421c9a6b488",
      "tree": "731d1e4f684fa5e5e27b56f1ed5f74d5945b20bd",
      "parents": [
        "283740c619d211e34572cc93c8cdba92ccbdb9cc"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri Mar 12 19:56:00 2010 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Fri Mar 12 20:30:21 2010 -0500"
      },
      "message": "tracing: Disable buffer switching when starting or stopping trace\n\nWhen the trace iterator is read, tracing_start() and tracing_stop()\nis called to stop tracing while the iterator is processing the trace\noutput.\n\nThese functions disable both the standard buffer and the max latency\nbuffer. But if the wakeup tracer is running, it can switch these\nbuffers between the two disables:\n\n  buffer \u003d global_trace.buffer;\n  if (buffer)\n      ring_buffer_record_disable(buffer);\n\n      \u003c\u003c\u003c--------- swap happens here\n\n  buffer \u003d max_tr.buffer;\n  if (buffer)\n      ring_buffer_record_disable(buffer);\n\nWhat happens is that we disabled the same buffer twice. On tracing_start()\nwe can enable the same buffer twice. All ring_buffer_record_disable()\nmust be matched with a ring_buffer_record_enable() or the buffer\ncan be disable permanently, or enable prematurely, and cause a bug\nwhere a reset happens while a trace is commiting.\n\nThis patch protects these two by taking the ftrace_max_lock to prevent\na switch from occurring.\n\nFound with Li Zefan\u0027s ftrace_stress_test.\n\nCc: stable@kernel.org\nReported-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "283740c619d211e34572cc93c8cdba92ccbdb9cc",
      "tree": "3bdce475017ff9a5fe82c6d214d27b27e555320c",
      "parents": [
        "ea14eb714041d40fcc5180b5a586034503650149"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri Mar 12 19:48:41 2010 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Fri Mar 12 20:29:20 2010 -0500"
      },
      "message": "tracing: Use same local variable when resetting the ring buffer\n\nIn the ftrace code that resets the ring buffer it references the\nbuffer with a local variable, but then uses the tr-\u003ebuffer as the\nparameter to reset. If the wakeup tracer is running, which can\nswitch the tr-\u003ebuffer with the max saved buffer, this can break\nthe requirement of disabling the buffer before the reset.\n\n   buffer \u003d tr-\u003ebuffer;\n   ring_buffer_record_disable(buffer);\n   synchronize_sched();\n   __tracing_reset(tr-\u003ebuffer, cpu);\n\nIf the tr-\u003ebuffer is swapped, then the reset is not happening to the\nbuffer that was disabled. This will cause the ring buffer to fail.\n\nFound with Li Zefan\u0027s ftrace_stress_test.\n\nCc: stable@kernel.org\nReported-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "ea14eb714041d40fcc5180b5a586034503650149",
      "tree": "a7cb72753c85cf79ac6fa31863d65d2f081e0823",
      "parents": [
        "52fbe9cde7fdb5c6fac196d7ebd2d92d05ef3cd4"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri Mar 12 19:41:23 2010 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Fri Mar 12 20:28:02 2010 -0500"
      },
      "message": "function-graph: Init curr_ret_stack with ret_stack\n\nIf the graph tracer is active, and a task is forked but the allocating of\nthe processes graph stack fails, it can cause crash later on.\n\nThis is due to the temporary stack being NULL, but the curr_ret_stack\nvariable is copied from the parent. If it is not -1, then in\nftrace_graph_probe_sched_switch() the following:\n\n\tfor (index \u003d next-\u003ecurr_ret_stack; index \u003e\u003d 0; index--)\n\t\tnext-\u003eret_stack[index].calltime +\u003d timestamp;\n\nWill cause a kernel OOPS.\n\nFound with Li Zefan\u0027s ftrace_stress_test.\n\nCc: stable@kernel.org\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "52fbe9cde7fdb5c6fac196d7ebd2d92d05ef3cd4",
      "tree": "77ec9beecf7a58ed06f59c589f122caf87ec4f0b",
      "parents": [
        "915a0b575fdb2376135ed9334b3ccb1eb51db622"
      ],
      "author": {
        "name": "Lai Jiangshan",
        "email": "laijs@cn.fujitsu.com",
        "time": "Mon Mar 08 14:50:43 2010 +0800"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Fri Mar 12 20:26:56 2010 -0500"
      },
      "message": "ring-buffer: Move disabled check into preempt disable section\n\nThe ring buffer resizing and resetting relies on a schedule RCU\naction. The buffers are disabled, a synchronize_sched() is called\nand then the resize or reset takes place.\n\nBut this only works if the disabling of the buffers are within the\npreempt disabled section, otherwise a window exists that the buffers\ncan be written to while a reset or resize takes place.\n\nCc: stable@kernel.org\nReported-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nSigned-off-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nLKML-Reference: \u003c4B949E43.2010906@cn.fujitsu.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "64d5aea30062ce9f3ce7c62be8ae65e776cbfee2",
      "tree": "7020f4b8533d7fcf5eb24494453515ee672dd172",
      "parents": [
        "3836a03d978e68b0ae00d3589089343c998cd4ff",
        "ad6759fbf35d104dbf573cd6f4c6784ad6823f7e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 12 16:27:08 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 12 16:27:08 2010 -0800"
      },
      "message": "Merge branch \u0027timers-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027timers-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  timekeeping: Prevent oops when GENERIC_TIME\u003dn\n"
    },
    {
      "commit": "c32da02342b7521df25fefc2ef20aee0e61cf887",
      "tree": "7e38f664fa3e13602c357d37f77d8adcf82fccc2",
      "parents": [
        "dca1d9f6d7ae428c193f32bd3e9a4ca13176648b",
        "318ae2edc3b29216abd8a2510f3f80b764f06858"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 12 16:04:50 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 12 16:04:50 2010 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (56 commits)\n  doc: fix typo in comment explaining rb_tree usage\n  Remove fs/ntfs/ChangeLog\n  doc: fix console doc typo\n  doc: cpuset: Update the cpuset flag file\n  Fix of spelling in arch/sparc/kernel/leon_kernel.c no longer needed\n  Remove drivers/parport/ChangeLog\n  Remove drivers/char/ChangeLog\n  doc: typo - Table 1-2 should refer to \"status\", not \"statm\"\n  tree-wide: fix typos \"ass?o[sc]iac?te\" -\u003e \"associate\" in comments\n  No need to patch AMD-provided drivers/gpu/drm/radeon/atombios.h\n  devres/irq: Fix devm_irq_match comment\n  Remove reference to kthread_create_on_cpu\n  tree-wide: Assorted spelling fixes\n  tree-wide: fix \u0027lenght\u0027 typo in comments and code\n  drm/kms: fix spelling in error message\n  doc: capitalization and other minor fixes in pnp doc\n  devres: typo fix s/dev/devm/\n  Remove redundant trailing semicolons from macros\n  fix typo \"definetly\" -\u003e \"definitely\" in comment\n  tree-wide: s/widht/width/g typo in comments\n  ...\n\nFix trivial conflict in Documentation/laptops/00-INDEX\n"
    },
    {
      "commit": "2edf5e49800846a2b2b6461d99cdae18067c440f",
      "tree": "a03fc295676a23c30ae467ba96a1efaf5762dd90",
      "parents": [
        "4f0e056fdebc15d3f4724ebc7bbf323158add1d7"
      ],
      "author": {
        "name": "Dave Young",
        "email": "hidave.darkstar@gmail.com",
        "time": "Wed Mar 10 15:24:10 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 12 15:53:10 2010 -0800"
      },
      "message": "sysctl extern cleanup: lockdep\n\nExtern declarations in sysctl.c should be moved to their own header file,\nand then include them in relavant .c files.\n\nMove lockdep extern declarations to linux/lockdep.h\n\nSigned-off-by: Dave Young \u003chidave.darkstar@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4f0e056fdebc15d3f4724ebc7bbf323158add1d7",
      "tree": "79823a3e71a696fa9d4148a2ad0709c5deb07805",
      "parents": [
        "c55b7c3e82d0ad58f35a0785faaaf2f70b9b6cd3"
      ],
      "author": {
        "name": "Dave Young",
        "email": "hidave.darkstar@gmail.com",
        "time": "Wed Mar 10 15:24:09 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 12 15:53:10 2010 -0800"
      },
      "message": "sysctl extern cleanup: rtmutex\n\nExtern declarations in sysctl.c should be moved to their own header file,\nand then include them in relavant .c files.\n\nMove max_lock_depth extern declaration to linux/rtmutex.h\n\nSigned-off-by: Dave Young \u003chidave.darkstar@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c55b7c3e82d0ad58f35a0785faaaf2f70b9b6cd3",
      "tree": "5672da5b62c6c8e0c806a6b235de5131f7b974c8",
      "parents": [
        "15485a4682d1d3bfee2aa78b4b1a5d36f5746b64"
      ],
      "author": {
        "name": "Dave Young",
        "email": "hidave.darkstar@gmail.com",
        "time": "Wed Mar 10 15:24:08 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 12 15:53:10 2010 -0800"
      },
      "message": "sysctl extern cleanup: acct\n\nExtern declarations in sysctl.c should be moved to their own header file,\nand then include them in relavant .c files.\n\nMove acct_parm extern declaration to linux/acct.h\n\nSigned-off-by: Dave Young \u003chidave.darkstar@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    }
  ],
  "next": "15485a4682d1d3bfee2aa78b4b1a5d36f5746b64"
}
