)]}'
{
  "log": [
    {
      "commit": "37542b6a7e73e81f8c066a48e6911e476ee3b22f",
      "tree": "39da99d28803b18c223eebe45c3170992ee08b7e",
      "parents": [
        "c07724e5b868c603f2a65f3855c77b23454db3ed",
        "d4a6f3c32c39132318454e77d59ab14b06f6eb02"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 29 08:05:33 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 29 08:05:33 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_stat: Update sched_info_queue/dequeue() code comments\n  sched, cgroup: Fixup broken cgroup movement\n"
    },
    {
      "commit": "b2b5ce022acf5e9f52f7b78c5579994fdde191d4",
      "tree": "15e7d1742b530cdbe7b0734378e7f043b9a5faac",
      "parents": [
        "b7dadc38797584f6203386da1947ed5edf516646"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Oct 15 15:24:15 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Oct 22 14:16:45 2010 +0200"
      },
      "message": "sched, cgroup: Fixup broken cgroup movement\n\nDima noticed that we fail to correct the -\u003evruntime of sleeping tasks\nwhen we move them between cgroups.\n\nReported-by: Dima Zavin \u003cdima@android.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nTested-by: Mike Galbraith \u003cefault@gmx.de\u003e\nLKML-Reference: \u003c1287150604.29097.1513.camel@twins\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "bc4016f48161454a9a8e5eb209b0693c6cde9f62",
      "tree": "f470f5d711e975b152eec90282f5dd30a1d5dba5",
      "parents": [
        "5d70f79b5ef6ea2de4f72a37b2d96e2601e40a22",
        "b7dadc38797584f6203386da1947ed5edf516646"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 21 12:55:43 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 21 12:55:43 2010 -0700"
      },
      "message": "Merge branch \u0027sched-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027sched-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (29 commits)\n  sched: Export account_system_vtime()\n  sched: Call tick_check_idle before __irq_enter\n  sched: Remove irq time from available CPU power\n  sched: Do not account irq time to current task\n  x86: Add IRQ_TIME_ACCOUNTING\n  sched: Add IRQ_TIME_ACCOUNTING, finer accounting of irq time\n  sched: Add a PF flag for ksoftirqd identification\n  sched: Consolidate account_system_vtime extern declaration\n  sched: Fix softirq time accounting\n  sched: Drop group_capacity to 1 only if local group has extra capacity\n  sched: Force balancing on newidle balance if local group has capacity\n  sched: Set group_imb only a task can be pulled from the busiest cpu\n  sched: Do not consider SCHED_IDLE tasks to be cache hot\n  sched: Drop all load weight manipulation for RT tasks\n  sched: Create special class for stop/migrate work\n  sched: Unindent labels\n  sched: Comment updates: fix default latency and granularity numbers\n  tracing/sched: Add sched_pi_setprio tracepoint\n  sched: Give CPU bound RT tasks preference\n  sched: Try not to migrate higher priority RT tasks\n  ...\n"
    },
    {
      "commit": "5d70f79b5ef6ea2de4f72a37b2d96e2601e40a22",
      "tree": "a0d6de0930ba83ecf4629c2e2e261f5eaa2d8f33",
      "parents": [
        "888a6f77e0418b049f83d37547c209b904d30af4",
        "750ed158bf6c782d2813da1bca2c824365a0b777"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 21 12:54:49 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 21 12:54:49 2010 -0700"
      },
      "message": "Merge branch \u0027perf-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027perf-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (163 commits)\n  tracing: Fix compile issue for trace_sched_wakeup.c\n  [S390] hardirq: remove pointless header file includes\n  [IA64] Move local_softirq_pending() definition\n  perf, powerpc: Fix power_pmu_event_init to not use event-\u003ectx\n  ftrace: Remove recursion between recordmcount and scripts/mod/empty\n  jump_label: Add COND_STMT(), reducer wrappery\n  perf: Optimize sw events\n  perf: Use jump_labels to optimize the scheduler hooks\n  jump_label: Add atomic_t interface\n  jump_label: Use more consistent naming\n  perf, hw_breakpoint: Fix crash in hw_breakpoint creation\n  perf: Find task before event alloc\n  perf: Fix task refcount bugs\n  perf: Fix group moving\n  irq_work: Add generic hardirq context callbacks\n  perf_events: Fix transaction recovery in group_sched_in()\n  perf_events: Fix bogus AMD64 generic TLB events\n  perf_events: Fix bogus context time tracking\n  tracing: Remove parent recording in latency tracer graph options\n  tracing: Use one prologue for the preempt irqs off tracer function tracers\n  ...\n"
    },
    {
      "commit": "888a6f77e0418b049f83d37547c209b904d30af4",
      "tree": "42cdb9f781d2177e6b380e69a66a27ec7705f51f",
      "parents": [
        "31b7eab27a314b153d8fa07ba9e9ec00a98141e1",
        "6506cf6ce68d78a5470a8360c965dafe8e4b78e3"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 21 12:54:12 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 21 12:54:12 2010 -0700"
      },
      "message": "Merge branch \u0027core-rcu-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027core-rcu-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (52 commits)\n  sched: fix RCU lockdep splat from task_group()\n  rcu: using ACCESS_ONCE() to observe the jiffies_stall/rnp-\u003eqsmask value\n  sched: suppress RCU lockdep splat in task_fork_fair\n  net: suppress RCU lockdep false positive in sock_update_classid\n  rcu: move check from rcu_dereference_bh to rcu_read_lock_bh_held\n  rcu: Add advice to PROVE_RCU_REPEATEDLY kernel config parameter\n  rcu: Add tracing data to support queueing models\n  rcu: fix sparse errors in rcutorture.c\n  rcu: only one evaluation of arg in rcu_dereference_check() unless sparse\n  kernel: Remove undead ifdef CONFIG_DEBUG_LOCK_ALLOC\n  rcu: fix _oddness handling of verbose stall warnings\n  rcu: performance fixes to TINY_PREEMPT_RCU callback checking\n  rcu: upgrade stallwarn.txt documentation for CPU-bound RT processes\n  vhost: add __rcu annotations\n  rcu: add comment stating that list_empty() applies to RCU-protected lists\n  rcu: apply TINY_PREEMPT_RCU read-side speedup to TREE_PREEMPT_RCU\n  rcu: combine duplicate code, courtesy of CONFIG_PREEMPT_RCU\n  rcu: Upgrade srcu_read_lock() docbook about SRCU grace periods\n  rcu: document ways of stalling updates in low-memory situations\n  rcu: repair code-duplication FIXMEs\n  ...\n"
    },
    {
      "commit": "b0ae19811375031ae3b3fecc65b702a9c6e5cc28",
      "tree": "a765b71155fbed1ed3a3cff35c1044ad49a002ae",
      "parents": [
        "9b3056cca09529d34af2d81305b2a9c6b622ca1b"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Fri Oct 15 04:21:18 2010 +0900"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Thu Oct 21 10:12:44 2010 +1100"
      },
      "message": "security: remove unused parameter from security_task_setscheduler()\n\nAll security modules shouldn\u0027t change sched_param parameter of\nsecurity_task_setscheduler().  This is not only meaningless, but also\nmake a harmful result if caller pass a static variable.\n\nThis patch remove policy and sched_param parameter from\nsecurity_task_setscheduler() becuase none of security module is\nusing it.\n\nCc: James Morris \u003cjmorris@namei.org\u003e\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "b7dadc38797584f6203386da1947ed5edf516646",
      "tree": "7598dbfaa7b2515da697c740c87d0a98e950b8c7",
      "parents": [
        "d267f87fb8179c6dba03d08b91952e81bc3723c7"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Oct 18 20:00:37 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Oct 18 20:52:30 2010 +0200"
      },
      "message": "sched: Export account_system_vtime()\n\nKVM uses it for example:\n\n ERROR: \"account_system_vtime\" [arch/x86/kvm/kvm.ko] undefined!\n\nCc: Venkatesh Pallipadi \u003cvenki@google.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1286237003-12406-3-git-send-email-venki@google.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "d267f87fb8179c6dba03d08b91952e81bc3723c7",
      "tree": "ddcd2f7429964367fcb4ab1dd230a970452d72da",
      "parents": [
        "aa483808516ca5cacfa0e5849691f64fec25828e"
      ],
      "author": {
        "name": "Venkatesh Pallipadi",
        "email": "venki@google.com",
        "time": "Mon Oct 04 17:03:23 2010 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Oct 18 20:52:29 2010 +0200"
      },
      "message": "sched: Call tick_check_idle before __irq_enter\n\nWhen CPU is idle and on first interrupt, irq_enter calls tick_check_idle()\nto notify interruption from idle. But, there is a problem if this call\nis done after __irq_enter, as all routines in __irq_enter may find\nstale time due to yet to be done tick_check_idle.\n\nSpecifically, trace calls in __irq_enter when they use global clock and also\naccount_system_vtime change in this patch as it wants to use sched_clock_cpu()\nto do proper irq timing.\n\nBut, tick_check_idle was moved after __irq_enter intentionally to\nprevent problem of unneeded ksoftirqd wakeups by the commit ee5f80a:\n\n    irq: call __irq_enter() before calling the tick_idle_check\n    Impact: avoid spurious ksoftirqd wakeups\n\nMoving tick_check_idle() before __irq_enter and wrapping it with\nlocal_bh_enable/disable would solve both the problems.\n\nFixed-by: Yong Zhang \u003cyong.zhang0@gmail.com\u003e\nSigned-off-by: Venkatesh Pallipadi \u003cvenki@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1286237003-12406-9-git-send-email-venki@google.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "aa483808516ca5cacfa0e5849691f64fec25828e",
      "tree": "38a1d9f1cb1157bd68dc2475447bacbb4b63c64a",
      "parents": [
        "305e6835e05513406fa12820e40e4a8ecb63743c"
      ],
      "author": {
        "name": "Venkatesh Pallipadi",
        "email": "venki@google.com",
        "time": "Mon Oct 04 17:03:22 2010 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Oct 18 20:52:27 2010 +0200"
      },
      "message": "sched: Remove irq time from available CPU power\n\nThe idea was suggested by Peter Zijlstra here:\n\n  http://marc.info/?l\u003dlinux-kernel\u0026m\u003d127476934517534\u0026w\u003d2\n\nirq time is technically not available to the tasks running on the CPU.\nThis patch removes irq time from CPU power piggybacking on\nsched_rt_avg_update().\n\nTested this by keeping CPU X busy with a network intensive task having 75%\noa a single CPU irq processing (hard+soft) on a 4-way system. And start seven\ncycle soakers on the system. Without this change, there will be two tasks on\neach CPU. With this change, there is a single task on irq busy CPU X and\nremaining 7 tasks are spread around among other 3 CPUs.\n\nSigned-off-by: Venkatesh Pallipadi \u003cvenki@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1286237003-12406-8-git-send-email-venki@google.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "305e6835e05513406fa12820e40e4a8ecb63743c",
      "tree": "8b43703e27d26f4a7e743a99459e0b465cd1e5e1",
      "parents": [
        "e82b8e4ea4f3dffe6e7939f90e78da675fcc450e"
      ],
      "author": {
        "name": "Venkatesh Pallipadi",
        "email": "venki@google.com",
        "time": "Mon Oct 04 17:03:21 2010 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Oct 18 20:52:26 2010 +0200"
      },
      "message": "sched: Do not account irq time to current task\n\nScheduler accounts both softirq and interrupt processing times to the\ncurrently running task. This means, if the interrupt processing was\nfor some other task in the system, then the current task ends up being\npenalized as it gets shorter runtime than otherwise.\n\nChange sched task accounting to acoount only actual task time from\ncurrently running task. Now update_curr(), modifies the delta_exec to\ndepend on rq-\u003eclock_task.\n\nNote that this change only handles CONFIG_IRQ_TIME_ACCOUNTING case. We can\nextend this to CONFIG_VIRT_CPU_ACCOUNTING with minimal effort. But, thats\nfor later.\n\nThis change will impact scheduling behavior in interrupt heavy conditions.\n\nTested on a 4-way system with eth0 handled by CPU 2 and a network heavy\ntask (nc) running on CPU 3 (and no RSS/RFS). With that I have CPU 2\nspending 75%+ of its time in irq processing. CPU 3 spending around 35%\ntime running nc task.\n\nNow, if I run another CPU intensive task on CPU 2, without this change\n/proc/\u003cpid\u003e/schedstat shows 100% of time accounted to this task. With this\nchange, it rightly shows less than 25% accounted to this task as remaining\ntime is actually spent on irq processing.\n\nSigned-off-by: Venkatesh Pallipadi \u003cvenki@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1286237003-12406-7-git-send-email-venki@google.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "b52bfee445d315549d41eacf2fa7c156e7d153d5",
      "tree": "740f3aa24e2afad42772a662ceb460c555003c0f",
      "parents": [
        "6cdd5199daf0cb7b0fcc8dca941af08492612887"
      ],
      "author": {
        "name": "Venkatesh Pallipadi",
        "email": "venki@google.com",
        "time": "Mon Oct 04 17:03:19 2010 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Oct 18 20:52:24 2010 +0200"
      },
      "message": "sched: Add IRQ_TIME_ACCOUNTING, finer accounting of irq time\n\ns390/powerpc/ia64 have support for CONFIG_VIRT_CPU_ACCOUNTING which does\nthe fine granularity accounting of user, system, hardirq, softirq times.\nAdding that option on archs like x86 will be challenging however, given the\nstate of TSC reliability on various platforms and also the overhead it will\nadd in syscall entry exit.\n\nInstead, add a lighter variant that only does finer accounting of\nhardirq and softirq times, providing precise irq times (instead of timer tick\nbased samples). This accounting is added with a new config option\nCONFIG_IRQ_TIME_ACCOUNTING so that there won\u0027t be any overhead for users not\ninterested in paying the perf penalty.\n\nThis accounting is based on sched_clock, with the code being generic.\nSo, other archs may find it useful as well.\n\nThis patch just adds the core logic and does not enable this logic yet.\n\nSigned-off-by: Venkatesh Pallipadi \u003cvenki@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1286237003-12406-5-git-send-email-venki@google.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "75e1056f5c57050415b64cb761a3acc35d91f013",
      "tree": "e7cd483e38f9bf9131a3b212301a009890b8de49",
      "parents": [
        "75dd321d79d495a0ee579e6249ebc38ddbb2667f"
      ],
      "author": {
        "name": "Venkatesh Pallipadi",
        "email": "venki@google.com",
        "time": "Mon Oct 04 17:03:16 2010 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Oct 18 20:52:20 2010 +0200"
      },
      "message": "sched: Fix softirq time accounting\n\nPeter Zijlstra found a bug in the way softirq time is accounted in\nVIRT_CPU_ACCOUNTING on this thread:\n\n   http://lkml.indiana.edu/hypermail//linux/kernel/1009.2/01366.html\n\nThe problem is, softirq processing uses local_bh_disable internally. There\nis no way, later in the flow, to differentiate between whether softirq is\nbeing processed or is it just that bh has been disabled. So, a hardirq when bh\nis disabled results in time being wrongly accounted as softirq.\n\nLooking at the code a bit more, the problem exists in !VIRT_CPU_ACCOUNTING\nas well. As account_system_time() in normal tick based accouting also uses\nsoftirq_count, which will be set even when not in softirq with bh disabled.\n\nPeter also suggested solution of using 2*SOFTIRQ_OFFSET as irq count\nfor local_bh_{disable,enable} and using just SOFTIRQ_OFFSET while softirq\nprocessing. The patch below does that and adds API in_serving_softirq() which\nreturns whether we are currently processing softirq or not.\n\nAlso changes one of the usages of softirq_count in net/sched/cls_cgroup.c\nto in_serving_softirq.\n\nLooks like many usages of in_softirq really want in_serving_softirq. Those\nchanges can be made individually on a case by case basis.\n\nSigned-off-by: Venkatesh Pallipadi \u003cvenki@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1286237003-12406-2-git-send-email-venki@google.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "ef8002f6848236de5adc613063ebeabddea8a6fb",
      "tree": "3fd3411b2727e2ed784f6ab3fd3485c4527714c1",
      "parents": [
        "17bdcf949d03306b308c5fb694849cd35f119807"
      ],
      "author": {
        "name": "Nikhil Rao",
        "email": "ncrao@google.com",
        "time": "Wed Oct 13 12:09:35 2010 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Oct 18 20:52:15 2010 +0200"
      },
      "message": "sched: Do not consider SCHED_IDLE tasks to be cache hot\n\nThis patch adds a check in task_hot to return if the task has SCHED_IDLE\npolicy. SCHED_IDLE tasks have very low weight, and when run with regular\nworkloads, are typically scheduled many milliseconds apart. There is no\nneed to consider these tasks hot for load balancing.\n\nSigned-off-by: Nikhil Rao \u003cncrao@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1287173550-30365-2-git-send-email-ncrao@google.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "17bdcf949d03306b308c5fb694849cd35f119807",
      "tree": "5a84fcb6e691fb17b4c723fd8429e3ff2ce767e2",
      "parents": [
        "34f971f6f7988be4d014eec3e3526bee6d007ffa"
      ],
      "author": {
        "name": "Linus Walleij",
        "email": "linus.walleij@stericsson.com",
        "time": "Mon Oct 11 16:36:51 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Oct 18 18:41:59 2010 +0200"
      },
      "message": "sched: Drop all load weight manipulation for RT tasks\n\nLoad weights are for the CFS, they do not belong in the RT task. This makes all\nRT scheduling classes leave the CFS weights alone.\n\nThis fixes a real bug as well: I noticed the following phonomena: a process\nelevated to SCHED_RR forks with SCHED_RESET_ON_FORK set, and the child is\nindeed SCHED_OTHER, and the niceval is indeed reset to 0. However the weight\ninserted by set_load_weight() remains at 0, giving the task insignificat\npriority.\n\nWith this fix, the weight is reset to what the task had before being elevated\nto SCHED_RR/SCHED_FIFO.\n\nCc: Lennart Poettering \u003clennart@poettering.net\u003e\nCc: stable@kernel.org\nSigned-off-by: Linus Walleij \u003clinus.walleij@stericsson.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1286807811-10568-1-git-send-email-linus.walleij@stericsson.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "34f971f6f7988be4d014eec3e3526bee6d007ffa",
      "tree": "a662e0701f81f019418b55aa1354f833277b9c40",
      "parents": [
        "4924627423d5e286136ad2520f5be536345ae590"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Wed Sep 22 13:53:15 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Oct 18 18:41:58 2010 +0200"
      },
      "message": "sched: Create special class for stop/migrate work\n\nIn order to separate the stop/migrate work thread from the SCHED_FIFO\nimplementation, create a special class for it that is of higher priority than\nSCHED_FIFO itself.\n\nThis currently solves a problem where cpu-hotplug consumes so much cpu-time\nthat the SCHED_FIFO class gets throttled, but has the bandwidth replenishment\ntimer pending on the now dead cpu.\n\nIt is also required for when we add the planned deadline scheduling class above\nSCHED_FIFO, as the stop/migrate thread still needs to transcent those tasks.\n\nTested-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1285165776.2275.1022.camel@laptop\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "4924627423d5e286136ad2520f5be536345ae590",
      "tree": "0ad0151d0a359edb89d99fb5c5c1dfebd64e5a14",
      "parents": [
        "864616ee6785d9fac7a2cd80c01a2da89579f2e4"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Sun Oct 17 21:46:10 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Oct 18 18:41:56 2010 +0200"
      },
      "message": "sched: Unindent labels\n\nLabels should be on column 0.\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": "ed859ed3b0f9893c6bce3708e8928341c15699b9",
      "tree": "59c507f00bc13becb4accdd64fdc01ece08b4645",
      "parents": [
        "a8027073eb127cd207070891374b5c54c2ce3d23",
        "53eeb64e808971207350386121f4bab12fa2f45f"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Oct 14 09:11:43 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Oct 14 09:11:46 2010 +0200"
      },
      "message": "Merge branch \u0027linus\u0027 into sched/core\n\nMerge reason: update from -rc5 to -almost-final\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "6506cf6ce68d78a5470a8360c965dafe8e4b78e3",
      "tree": "0eefe27d016572f1def9cbc2ad042d42b8a5e74f",
      "parents": [
        "4ee0a603926cad973e4d384f48c5e279a0fd4118"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "peterz@infradead.org",
        "time": "Thu Sep 16 17:50:31 2010 +0200"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Thu Oct 07 10:41:07 2010 -0700"
      },
      "message": "sched: fix RCU lockdep splat from task_group()\n\nThis addresses the following RCU lockdep splat:\n\n[0.051203] CPU0: AMD QEMU Virtual CPU version 0.12.4 stepping 03\n[0.052999] lockdep: fixing up alternatives.\n[0.054105]\n[0.054106] \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n[0.054999] [ INFO: suspicious rcu_dereference_check() usage. ]\n[0.054999] ---------------------------------------------------\n[0.054999] kernel/sched.c:616 invoked rcu_dereference_check() without protection!\n[0.054999]\n[0.054999] other info that might help us debug this:\n[0.054999]\n[0.054999]\n[0.054999] rcu_scheduler_active \u003d 1, debug_locks \u003d 1\n[0.054999] 3 locks held by swapper/1:\n[0.054999]  #0:  (cpu_add_remove_lock){+.+.+.}, at: [\u003cffffffff814be933\u003e] cpu_up+0x42/0x6a\n[0.054999]  #1:  (cpu_hotplug.lock){+.+.+.}, at: [\u003cffffffff810400d8\u003e] cpu_hotplug_begin+0x2a/0x51\n[0.054999]  #2:  (\u0026rq-\u003elock){-.-...}, at: [\u003cffffffff814be2f7\u003e] init_idle+0x2f/0x113\n[0.054999]\n[0.054999] stack backtrace:\n[0.054999] Pid: 1, comm: swapper Not tainted 2.6.35 #1\n[0.054999] Call Trace:\n[0.054999]  [\u003cffffffff81068054\u003e] lockdep_rcu_dereference+0x9b/0xa3\n[0.054999]  [\u003cffffffff810325c3\u003e] task_group+0x7b/0x8a\n[0.054999]  [\u003cffffffff810325e5\u003e] set_task_rq+0x13/0x40\n[0.054999]  [\u003cffffffff814be39a\u003e] init_idle+0xd2/0x113\n[0.054999]  [\u003cffffffff814be78a\u003e] fork_idle+0xb8/0xc7\n[0.054999]  [\u003cffffffff81068717\u003e] ? mark_held_locks+0x4d/0x6b\n[0.054999]  [\u003cffffffff814bcebd\u003e] do_fork_idle+0x17/0x2b\n[0.054999]  [\u003cffffffff814bc89b\u003e] native_cpu_up+0x1c1/0x724\n[0.054999]  [\u003cffffffff814bcea6\u003e] ? do_fork_idle+0x0/0x2b\n[0.054999]  [\u003cffffffff814be876\u003e] _cpu_up+0xac/0x127\n[0.054999]  [\u003cffffffff814be946\u003e] cpu_up+0x55/0x6a\n[0.054999]  [\u003cffffffff81ab562a\u003e] kernel_init+0xe1/0x1ff\n[0.054999]  [\u003cffffffff81003854\u003e] kernel_thread_helper+0x4/0x10\n[0.054999]  [\u003cffffffff814c353c\u003e] ? restore_args+0x0/0x30\n[0.054999]  [\u003cffffffff81ab5549\u003e] ? kernel_init+0x0/0x1ff\n[0.054999]  [\u003cffffffff81003850\u003e] ? kernel_thread_helper+0x0/0x10\n[0.056074] Booting Node   0, Processors  #1lockdep: fixing up alternatives.\n[0.130045]  #2lockdep: fixing up alternatives.\n[0.203089]  #3 Ok.\n[0.275286] Brought up 4 CPUs\n[0.276005] Total of 4 processors activated (16017.17 BogoMIPS).\n\nThe cgroup_subsys_state structures referenced by idle tasks are never\nfreed, because the idle tasks should be part of the root cgroup,\nwhich is not removable.\n\nThe problem is that while we do in-fact hold rq-\u003elock, the newly spawned\nidle thread\u0027s cpu is not yet set to the correct cpu so the lockdep check\nin task_group():\n\n  lockdep_is_held(\u0026task_rq(p)-\u003elock)\n\nwill fail.\n\nBut this is a chicken and egg problem.  Setting the CPU\u0027s runqueue requires\nthat the CPU\u0027s runqueue already be set.  ;-)\n\nSo insert an RCU read-side critical section to avoid the complaint.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "90edf27fb89241917e91155bfdcc7c8e5a587222",
      "tree": "a2d1841cfe382f426a3b6ccb306b0665ad455885",
      "parents": [
        "41945f6ccf1e86f87fddf6b32db9cf431c05fb54",
        "8b15575cae7a93a784c3005c42b069edd9ba64dd"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Sep 22 18:45:01 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Sep 22 18:45:01 2010 +0200"
      },
      "message": "Merge branch \u0027linus\u0027 into perf/core\n\nConflicts:\n\tkernel/hw_breakpoint.c\n\nMerge reason: resolve the conflict.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "a8027073eb127cd207070891374b5c54c2ce3d23",
      "tree": "27f5dc8effe3b5636d4bab9c890a40aa20fa44e6",
      "parents": [
        "b3bc211cfe7d5fe94b310480d78e00bea96fbf2a"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon Sep 20 15:13:34 2010 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Sep 21 10:56:41 2010 -0400"
      },
      "message": "tracing/sched: Add sched_pi_setprio tracepoint\n\nAdd a tracepoint that shows the priority of a task being boosted\nvia priority inheritance.\n\nCc: Gregory Haskins \u003cghaskins@novell.com\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "cf84fd96323633be7d437e1de4505fc82ff2c11a",
      "tree": "094b7a7421945c9ea244f3605378065935f1c100",
      "parents": [
        "31915ab4cbf507aadab40847cf9989da5e88b090",
        "b30a3f6257ed2105259b404d419b4964e363928c"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Sep 21 13:56:43 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Sep 21 13:56:49 2010 +0200"
      },
      "message": "Merge commit \u0027v2.6.36-rc5\u0027 into sched/core\n\nMerge reason: Pick up the latest fixes in -rc5.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "e9d2b064149ff7ef4acbc65a1b9374ac8b218d3e",
      "tree": "6ce885c6052a6e05046b9937376107e4bcf378fe",
      "parents": [
        "917bdd1c9b7b0f4c22f2504c2f0c1074c8ab9df7"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Sep 17 11:28:50 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Sep 17 12:48:48 2010 +0200"
      },
      "message": "perf: Undo the per cpu-context timer stuff\n\nRevert the timer per cpu-context timers because of unfortunate\nnohz interaction. Fixing that would have been somewhat ugly, so\ngo back to driving things from the regular tick. Provide a\njiffies interval feature for people who want slower rotations.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Stephane Eranian \u003ceranian@google.com\u003e\nCc: Robert Richter \u003crobert.richter@amd.com\u003e\nCc: Yinghai Lu \u003cyinghai@kernel.org\u003e\nLKML-Reference: \u003c20100917093009.519845633@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "31915ab4cbf507aadab40847cf9989da5e88b090",
      "tree": "48f7f64cbfd82ee88cece1384e6eb949ef2cbed0",
      "parents": [
        "7740191cd909b75d75685fb08a5d1f54b8a9d28b"
      ],
      "author": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Thu Sep 16 14:42:25 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Sep 16 16:38:34 2010 +0200"
      },
      "message": "sched: Remove branch hints within context_switch()\n\nWith 710390d9 \"sched: Optimize branch hint in context_switch()\"\nthe branch hint logic within context_switch() got inversed.\n\nIn fact the hints \"if (likely(!mm))\" and \"if (likely(!prev-\u003emm))\"\nmean that it is likely that the previous and next task are kernel\nthreads.\n\nThat assumption is certainly counter intuitive, but Tim has shown\nthat at least with his workload this is true. Nevertheless the\ntruth is: it depends on the current workload. So just remove the\nannotations which also improves readability.\n\nReported-by: Tim Blechmann \u003ctim@klingt.org\u003e\nSigned-off-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nLKML-Reference: \u003c20100916124225.GA2209@osiris.boeblingen.de.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "e75e863dd5c7d96b91ebbd241da5328fc38a78cc",
      "tree": "b7b67512b6b610c8ee90149c9b48dbaeeb1e4910",
      "parents": [
        "9c03f1622af051004416dd3e24d8a0fa31e34178"
      ],
      "author": {
        "name": "Stanislaw Gruszka",
        "email": "sgruszka@redhat.com",
        "time": "Tue Sep 14 16:35:14 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Sep 15 10:41:36 2010 +0200"
      },
      "message": "sched: Fix user time incorrectly accounted as system time on 32-bit\n\nWe have 32-bit variable overflow possibility when multiply in\ntask_times() and thread_group_times() functions. When the\noverflow happens then the scaled utime value becomes erroneously\nsmall and the scaled stime becomes i erroneously big.\n\nReported here:\n\n https://bugzilla.redhat.com/show_bug.cgi?id\u003d633037\n https://bugzilla.kernel.org/show_bug.cgi?id\u003d16559\n\nReported-by: Michael Chapman \u003credhat-bugzilla@very.puzzling.org\u003e\nReported-by: Ciriaco Garcia de Celis \u003csysman@etherpilot.com\u003e\nSigned-off-by: Stanislaw Gruszka \u003csgruszka@redhat.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Hidetoshi Seto \u003cseto.hidetoshi@jp.fujitsu.com\u003e\nCc: \u003cstable@kernel.org\u003e  # 2.6.32.19+ (partially) and 2.6.33+\nLKML-Reference: \u003c20100914143513.GB8415@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "3aabae7d9dfaed60effe93662f02c19bafc18537",
      "tree": "af94cdd69add07601d9f3f5988dfc1dc255e3886",
      "parents": [
        "79e406d7b00ab2b261ae32a59f266fd3b7af6f29",
        "57c072c7113f54f9512624d6c665db6184448782"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Sep 15 10:27:31 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Sep 15 10:27:31 2010 +0200"
      },
      "message": "Merge branch \u0027tip/perf/core\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-2.6-trace into perf/core\n"
    },
    {
      "commit": "7740191cd909b75d75685fb08a5d1f54b8a9d28b",
      "tree": "6a45de73bc9958d46b638d9e031a2be85568f0a4",
      "parents": [
        "637bbdc5b83615ef9f45f50399d1c7f27473c713"
      ],
      "author": {
        "name": "Mathieu Desnoyers",
        "email": "mathieu.desnoyers@efficios.com",
        "time": "Mon Sep 13 17:47:00 2010 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Sep 14 13:23:45 2010 +0200"
      },
      "message": "sched: Fix string comparison in /proc/sched_features\n\nFix incorrect handling of the following case:\n\n INTERACTIVE\n INTERACTIVE_SOMETHING_ELSE\n\nThe comparison only checks up to each element\u0027s length.\n\nChangelog since v1:\n - Embellish using some Rostedtisms.\n  [ mingo:                 ^^ \u003d\u003d smaller and cleaner ]\n\nSigned-off-by: Mathieu Desnoyers \u003cmathieu.desnoyers@efficios.com\u003e\nReviewed-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: \u003cstable@kernel.org\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Tony Lindgren \u003ctony@atomide.com\u003e\nLKML-Reference: \u003c20100913214700.GB16118@Krystal\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "b5ab4cd563e7ab49b27957704112a8ecade54e1f",
      "tree": "a5d1194e001a1203c679e1f0014d3b40118a725d",
      "parents": [
        "b28ab83c595e767f2028276b7398d17f2253cec0"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Mon Sep 06 16:32:21 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Sep 09 20:46:32 2010 +0200"
      },
      "message": "perf: Per cpu-context rotation timer\n\nGive each cpu-context its own timer so that it is a self contained\nentity, this eases the way for per-pmu-per-cpu contexts as well as\nprovides the basic infrastructure to allow different rotation\ntimes per pmu.\n\nThings to look at:\n - folding the tick and these TICK_NSEC timers\n - separate task context rotation\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: paulus \u003cpaulus@samba.org\u003e\nCc: stephane eranian \u003ceranian@googlemail.com\u003e\nCc: Robert Richter \u003crobert.richter@amd.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Lin Ming \u003cming.m.lin@intel.com\u003e\nCc: Yanmin \u003cyanmin_zhang@linux.intel.com\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "01a08546af311c065f34727787dd0cc8dc0c216f",
      "tree": "759d8898d8714b587985433a189070497081828f",
      "parents": [
        "f269893c575167447cc9f6d1867e639fb5b6f0c5"
      ],
      "author": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Tue Aug 31 10:28:16 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Sep 09 20:41:20 2010 +0200"
      },
      "message": "sched: Add book scheduling domain\n\nOn top of the SMT and MC scheduling domains this adds the BOOK scheduling\ndomain. This is useful for NUMA like machines which do not have an interface\nwhich tells which piece of memory is attached to which node or where the\nhardware performs striping.\n\nSigned-off-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c20100831082844.253053798@de.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "f269893c575167447cc9f6d1867e639fb5b6f0c5",
      "tree": "948004a5365c688573fd5513160a1500f22f5131",
      "parents": [
        "ed2d372c0738386b8a184a6a6bea9c16df6ffb68"
      ],
      "author": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Tue Aug 31 10:28:15 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Sep 09 20:41:18 2010 +0200"
      },
      "message": "sched: Merge cpu_to_core_group functions\n\nMerge and simplify the two cpu_to_core_group variants so that the\nresulting function follows the same pattern like cpu_to_phys_group.\n\nSigned-off-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c20100831082843.953617555@de.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "da2b71edd8a7db44fe1746261410a981f3e03632",
      "tree": "4c84c8761590138cffb244eb54fb29263175a6cd",
      "parents": [
        "d56557af19867edb8c0e96f8e26399698a08857f"
      ],
      "author": {
        "name": "Suresh Siddha",
        "email": "suresh.b.siddha@intel.com",
        "time": "Mon Aug 23 13:42:51 2010 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Sep 09 20:39:33 2010 +0200"
      },
      "message": "sched: Move sched_avg_update() to update_cpu_load()\n\nCurrently sched_avg_update() (which updates rt_avg stats in the rq)\nis getting called from scale_rt_power() (in the load balance context)\nwhich doesn\u0027t take rq-\u003elock.\n\nFix it by moving the sched_avg_update() to more appropriate\nupdate_cpu_load() where the CFS load gets updated as well.\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: \u003c1282596171.2694.3.camel@sbsiddha-MOBL3\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "ed2d372c0738386b8a184a6a6bea9c16df6ffb68",
      "tree": "3b32a39f8bfe4bebcb5f05a6c03e433a1638b39d",
      "parents": [
        "2bfc96a127bc1cc94d26bfaa40159966064f9c8c"
      ],
      "author": {
        "name": "Christian Dietrich",
        "email": "qy03fugy@stud.informatik.uni-erlangen.de",
        "time": "Mon Sep 06 16:37:05 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Sep 08 08:14:20 2010 +0200"
      },
      "message": "sched: Remove unnecessary #ifdef CONFIG_SMP\n\nThe CONFIG_SMP ifdef isn\u0027t necessary at this point, because it\nis checked in an outer ifdef level already and has no effect\nhere.\n\nCleanup only, no functional effect.\n\nSigned-off-by: Christian Dietrich \u003cqy03fugy@stud.informatik.uni-erlangen.de\u003e\nCc: vamos-dev@i4.informatik.uni-erlangen.de\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nLKML-Reference: \u003c7a3a39ef3f765a4473cb026b1f204059568a7098.1283782701.git.qy03fugy@stud.informatik.uni-erlangen.de\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "9d0f4dcc5c4d1c5dd01172172684a45b5f49d740",
      "tree": "e24eb28059f983284c29851e0598667cd428e2a1",
      "parents": [
        "763008c4357b73c8d18396dfd8d79dc58fa3f99d"
      ],
      "author": {
        "name": "Tim Chen",
        "email": "tim.c.chen@linux.intel.com",
        "time": "Wed Aug 18 15:00:27 2010 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Aug 23 10:56:27 2010 +0200"
      },
      "message": "mutex: Improve the scalability of optimistic spinning\n\nThere is a scalability issue for current implementation of optimistic\nmutex spin in the kernel.  It is found on a 8 node 64 core Nehalem-EX\nsystem (HT mode).\n\nThe intention of the optimistic mutex spin is to busy wait and spin on a\nmutex if the owner of the mutex is running, in the hope that the mutex\nwill be released soon and be acquired, without the thread trying to\nacquire mutex going to sleep. However, when we have a large number of\nthreads, contending for the mutex, we could have the mutex grabbed by\nother thread, and then another ……, and we will keep spinning, wasting cpu\ncycles and adding to the contention.  One possible fix is to quit\nspinning and put the current thread on wait-list if mutex lock switch to\na new owner while we spin, indicating heavy contention (see the patch\nincluded).\n\nI did some testing on a 8 socket Nehalem-EX system with a total of 64\ncores. Using Ingo\u0027s test-mutex program that creates/delete files with 256\nthreads (http://lkml.org/lkml/2006/1/8/50) , I see the following speed up\nafter putting in the mutex spin fix:\n\n ./mutex-test V 256 10\n                 Ops/sec\n 2.6.34          62864\n With fix        197200\n\nRepeating the test with Aim7 fserver workload, again there is a speed up\nwith the fix:\n\n                 Jobs/min\n 2.6.34          91657\n With fix        149325\n\nTo look at the impact on the distribution of mutex acquisition time, I\ncollected the mutex acquisition time on Aim7 fserver workload with some\ninstrumentation.  The average acquisition time is reduced by 48% and\nnumber of contentions reduced by 32%.\n\n                 #contentions    Time to acquire mutex (cycles)\n 2.6.34          72973           44765791\n With fix        49210           23067129\n\nThe histogram of mutex acquisition time is listed below.  The acquisition\ntime is in 2^bin cycles.  We see that without the fix, the acquisition\ntime is mostly around 2^26 cycles.  With the fix, we the distribution get\nspread out a lot more towards the lower cycles, starting from 2^13.\nHowever, there is an increase of the tail distribution with the fix at\n2^28 and 2^29 cycles.  It seems a small price to pay for the reduced\naverage acquisition time and also getting the cpu to do useful work.\n\n Mutex acquisition time distribution (acq time \u003d 2^bin cycles):\n         2.6.34                  With Fix\n bin     #occurrence     %       #occurrence     %\n 11      2               0.00%   120             0.24%\n 12      10              0.01%   790             1.61%\n 13      14              0.02%   2058            4.18%\n 14      86              0.12%   3378            6.86%\n 15      393             0.54%   4831            9.82%\n 16      710             0.97%   4893            9.94%\n 17      815             1.12%   4667            9.48%\n 18      790             1.08%   5147            10.46%\n 19      580             0.80%   6250            12.70%\n 20      429             0.59%   6870            13.96%\n 21      311             0.43%   1809            3.68%\n 22      255             0.35%   2305            4.68%\n 23      317             0.44%   916             1.86%\n 24      610             0.84%   233             0.47%\n 25      3128            4.29%   95              0.19%\n 26      63902           87.69%  122             0.25%\n 27      619             0.85%   286             0.58%\n 28      0               0.00%   3536            7.19%\n 29      0               0.00%   903             1.83%\n 30      0               0.00%   0               0.00%\n\nI\u0027ve done similar experiments with 2.6.35 kernel on smaller boxes as\nwell.  One is on a dual-socket Westmere box (12 cores total, with HT).\nAnother experiment is on an old dual-socket Core 2 box (4 cores total, no\nHT)\n\nOn the 12-core Westmere box, I see a 250% increase for Ingo\u0027s mutex-test\nprogram with my mutex patch but no significant difference in aim7\u0027s\nfserver workload.\n\nOn the 4-core Core 2 box, I see the difference with the patch for both\nmutex-test and aim7 fserver are negligible.\n\nSo far, it seems like the patch has not caused regression on smaller\nsystems.\n\nSigned-off-by: Tim Chen \u003ctim.c.chen@linux.intel.com\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: \u003cstable@kernel.org\u003e # .35.x\nLKML-Reference: \u003c1282168827.9542.72.camel@schen9-DESK\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "c4efd6b569b2646e1346a08a4c40286f8bcb5f11",
      "tree": "bf33e8594ac4e628cc95f2ef25513788b8273601",
      "parents": [
        "4aed2fd8e3181fea7c09ba79cf64e7e3f4413bf9",
        "0bcfe75807944106a3aa655a54bb610d62f3a7f5"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 06 09:39:22 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 06 09:39:22 2010 -0700"
      },
      "message": "Merge branch \u0027sched-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027sched-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (27 commits)\n  sched: Use correct macro to display sched_child_runs_first in /proc/sched_debug\n  sched: No need for bootmem special cases\n  sched: Revert nohz_ratelimit() for now\n  sched: Reduce update_group_power() calls\n  sched: Update rq-\u003eclock for nohz balanced cpus\n  sched: Fix spelling of sibling\n  sched, cpuset: Drop __cpuexit from cpu hotplug callbacks\n  sched: Fix the racy usage of thread_group_cputimer() in fastpath_timer_check()\n  sched: run_posix_cpu_timers: Don\u0027t check -\u003eexit_state, use lock_task_sighand()\n  sched: thread_group_cputime: Simplify, document the \"alive\" check\n  sched: Remove the obsolete exit_state/signal hacks\n  sched: task_tick_rt: Remove the obsolete -\u003esignal !\u003d NULL check\n  sched: __sched_setscheduler: Read the RLIMIT_RTPRIO value lockless\n  sched: Fix comments to make them DocBook happy\n  sched: Fix fix_small_capacity\n  powerpc: Exclude arch_sd_sibiling_asym_packing() on UP\n  powerpc: Enable asymmetric SMT scheduling on POWER7\n  sched: Add asymmetric group packing option for sibling domain\n  sched: Fix capacity calculations for SMT4\n  sched: Change nohz idle load balancing logic to push model\n  ...\n"
    },
    {
      "commit": "0bcfe75807944106a3aa655a54bb610d62f3a7f5",
      "tree": "d48d848e09d1bf48fe7fa23e9226f38ef342eed4",
      "parents": [
        "eebef74695e1498e04e5f85be9c6f84bd2e7358a",
        "396e894d289d69bacf5acd983c97cd6e21a14c08"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Aug 05 09:46:29 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Aug 05 09:46:29 2010 +0200"
      },
      "message": "Merge branch \u0027sched/urgent\u0027 into sched/core\n\nConflicts:\n\tinclude/linux/sched.h\n\nMerge reason: Add the leftover .35 urgent bits, fix the conflict.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "dca45ad8af54963c005393a484ad117b8ba6150f",
      "tree": "7c9a6966283a6bb12b54e5680a67d203be292930",
      "parents": [
        "68c38fc3cb4e5a60f502ee9c45f3dfe70e5165ad",
        "cd5b8f8755a89a57fc8c408d284b8b613f090345"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jul 21 21:45:02 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jul 21 21:45:08 2010 +0200"
      },
      "message": "Merge branch \u0027linus\u0027 into sched/core\n\nMerge reason: Move from the -rc3 to the almost-rc6 base.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "68c38fc3cb4e5a60f502ee9c45f3dfe70e5165ad",
      "tree": "32293b2fd969c57032407294863c1f2ee6bf5996",
      "parents": [
        "bbc8cb5baead9607309583b20873ab0cc8d89eaf"
      ],
      "author": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Thu Jul 15 23:18:22 2010 +0300"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Jul 17 12:06:22 2010 +0200"
      },
      "message": "sched: No need for bootmem special cases\n\nAs of commit dcce284 (\"mm: Extend gfp masking to the page\nallocator\") and commit 7e85ee0 (\"slab,slub: don\u0027t enable\ninterrupts during early boot\"), the slab allocator makes\nsure we don\u0027t attempt to sleep during boot.\n\nTherefore, remove bootmem special cases from the scheduler\nand use plain GFP_KERNEL instead.\n\nSigned-off-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1279225102-2572-1-git-send-email-penberg@cs.helsinki.fi\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "396e894d289d69bacf5acd983c97cd6e21a14c08",
      "tree": "ec3e3ba19e332a799e1229f62663625d9c7583dd",
      "parents": [
        "f469461df6ff822f71b8737bda86eea20f16ff93"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Jul 09 15:12:27 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Jul 17 12:05:44 2010 +0200"
      },
      "message": "sched: Revert nohz_ratelimit() for now\n\nNorbert reported that nohz_ratelimit() causes his laptop to burn about\n4W (40%) extra. For now back out the change and see if we can adjust\nthe power management code to make better decisions.\n\nReported-by: Norbert Preining \u003cpreining@logic.at\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nAcked-by: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Arjan van de Ven \u003carjan@infradead.org\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "08f8ba07998ab1b9efcdd3f28dadf6866a605ddb",
      "tree": "8e09855446f7b0312bb729d4b539090756e57927",
      "parents": [
        "0879b100f3c187257729f36cba33d96ec2875766",
        "815c4163b6c8ebf8152f42b0a5fd015cfdcedc78"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jul 05 08:30:55 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jul 05 08:30:58 2010 +0200"
      },
      "message": "Merge commit \u0027v2.6.35-rc4\u0027 into perf/core\n\nMerge reason: Pick up the latest perf fixes\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "123f94f22e3d283dfe68742b269c245b0501ad82",
      "tree": "1d40043b0909f309cf77204ea87be9e61f143e79",
      "parents": [
        "4b78c119f0ba715b4e29b190bf4d7bce810ea0d6",
        "8c215bd3890c347dfb6a2db4779755f8b9c298a9"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 02 09:52:58 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 02 09:52:58 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: Cure nr_iowait_cpu() users\n  init: Fix comment\n  init, sched: Fix race between init and kthreadd\n"
    },
    {
      "commit": "8c215bd3890c347dfb6a2db4779755f8b9c298a9",
      "tree": "e6bd5de8a028babe9ec75f744977bd1424df106c",
      "parents": [
        "9715856922bf8475f5428c29b6f4a9eebc97d391"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "peterz@infradead.org",
        "time": "Thu Jul 01 09:07:17 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Jul 01 09:39:48 2010 +0200"
      },
      "message": "sched: Cure nr_iowait_cpu() users\n\nCommit 0224cf4c5e (sched: Intoduce get_cpu_iowait_time_us())\nbroke things by not making sure preemption was indeed disabled\nby the callers of nr_iowait_cpu() which took the iowait value of\nthe current cpu.\n\nThis resulted in a heap of preempt warnings. Cure this by making\nnr_iowait_cpu() take a cpu number and fix up the callers to pass\nin the right number.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Arjan van de Ven \u003carjan@infradead.org\u003e\nCc: Sergey Senozhatsky \u003csergey.senozhatsky@gmail.com\u003e\nCc: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nCc: Maxim Levitsky \u003cmaximlevitsky@gmail.com\u003e\nCc: Len Brown \u003clen.brown@intel.com\u003e\nCc: Pavel Machek \u003cpavel@ucw.cz\u003e\nCc: Jiri Slaby \u003cjslaby@suse.cz\u003e\nCc: linux-pm@lists.linux-foundation.org\nLKML-Reference: \u003c1277968037.1868.120.camel@laptop\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "f384c954c9fe3d3c6fce5ae66b67f2ddd947d098",
      "tree": "a38541b8083a2304435e9a153d408bd7cd44116e",
      "parents": [
        "9a15a07fe2175dc25cd928a354b3839f562ac8cc",
        "5904b3b81d25166e5e39b9727645bb47937618e3"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Jun 28 22:33:13 2010 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Jun 28 22:33:24 2010 +0200"
      },
      "message": "Merge branch \u0027linus\u0027 into perf/core\n\nReason: Further changes conflict with upstream fixes\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "f014d937d61f47761f961eba903feb2ffa1793aa",
      "tree": "4a6a9441b21711e34d567a8066950548935b9b3a",
      "parents": [
        "cf91b415c8419513ada650a932bfb32a526d4d98",
        "0d98bb2656e9bd2dfda2d089db1fe1dbdab41504"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jun 28 12:18:30 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jun 28 12:18:30 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: Prevent compiler from optimising the sched_avg_update() loop\n  sched: Fix over-scheduling bug\n  sched: Fix PROVE_RCU vs cpu_cgroup\n"
    },
    {
      "commit": "0d98bb2656e9bd2dfda2d089db1fe1dbdab41504",
      "tree": "2172bbdd7fb21640062b2a692ded3d9cebc2382c",
      "parents": [
        "3c93717cfa51316e4dbb471e7c0f9d243359d5f8"
      ],
      "author": {
        "name": "Will Deacon",
        "email": "will.deacon@arm.com",
        "time": "Mon May 24 12:11:43 2010 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jun 25 16:11:50 2010 +0200"
      },
      "message": "sched: Prevent compiler from optimising the sched_avg_update() loop\n\nGCC 4.4.1 on ARM has been observed to replace the while loop in\nsched_avg_update with a call to uldivmod, resulting in the\nfollowing build failure at link-time:\n\nkernel/built-in.o: In function `sched_avg_update\u0027:\n kernel/sched.c:1261: undefined reference to `__aeabi_uldivmod\u0027\n kernel/sched.c:1261: undefined reference to `__aeabi_uldivmod\u0027\nmake: *** [.tmp_vmlinux1] Error 1\n\nThis patch introduces a fake data hazard to the loop body to\nprevent the compiler optimising the loop away.\n\nSigned-off-by: Will Deacon \u003cwill.deacon@arm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nAcked-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Catalin Marinas \u003ccatalin.marinas@arm.com\u003e\nCc: Russell King \u003crmk@arm.linux.org.uk\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "8695159967957015f8dfb49315d6f88e111d90e0",
      "tree": "d575083d37a069be585d575ec036faa8765f1d0c",
      "parents": [
        "94bfa3b6692c7a3f6f119596724204ec975d3ef0"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "peterz@infradead.org",
        "time": "Tue Jun 22 11:44:53 2010 +0200"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Wed Jun 23 15:14:09 2010 -0700"
      },
      "message": "sched: silence PROVE_RCU in sched_fork()\n\nBecause cgroup_fork() is ran before sched_fork() [ from copy_process() ]\nand the child\u0027s pid is not yet visible the child is pinned to its\ncgroup. Therefore we can silence this warning.\n\nA nicer solution would be moving cgroup_fork() to right after\ndup_task_struct() and exclude PF_STARTING from task_subsys_state().\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nReviewed-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "0b2e918aa99fe6c3b8f163aa323a275ad8577828",
      "tree": "9e979e6ec865e31bbcc3cddf4f18751c48aa1934",
      "parents": [
        "8d1f431cbec115a780cd551ab1b4955c125f8d31"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Jun 21 23:53:31 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Jun 22 08:07:39 2010 +0200"
      },
      "message": "sched, cpuset: Drop __cpuexit from cpu hotplug callbacks\n\nCommit 3a101d05 (sched: adjust when cpu_active and cpuset\nconfigurations are updated during cpu on/offlining) added\nhotplug notifiers marked with __cpuexit; however, ia64 drops\ntext in __cpuexit during link unlike x86.\n\nThis means that functions which are referenced during init but used\nonly for cpu hot unplugging afterwards shouldn\u0027t be marked with\n__cpuexit. Drop __cpuexit from those functions.\n\nReported-by: Tony Luck \u003ctony.luck@intel.com\u003e\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nAcked-by: Tony Luck \u003ctony.luck@intel.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nLKML-Reference: \u003c4C1FDF5B.1040301@kernel.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "646b1db4956ba8bf748b835b5eba211133d91c2e",
      "tree": "061166d873d9da9cf83044a7593ad111787076c5",
      "parents": [
        "0f2c3de2ba110626515234d5d584fb1b0c0749a2",
        "7e27d6e778cd87b6f2415515d7127eba53fe5d02"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jun 18 10:53:12 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jun 18 10:53:19 2010 +0200"
      },
      "message": "Merge commit \u0027v2.6.35-rc3\u0027 into perf/core\n\nMerge reason: Go from -rc1 base to -rc3 base, merge in fixes.\n"
    },
    {
      "commit": "a44702e8858a071aa0f2365113ea4a2e51c8b575",
      "tree": "f43ffdfb4ba51a581b73d5386eac5ccf92584e62",
      "parents": [
        "b6b12294405e6ec029e627c49adf3193829a2685"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Fri Jun 11 01:09:44 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jun 18 10:46:55 2010 +0200"
      },
      "message": "sched: __sched_setscheduler: Read the RLIMIT_RTPRIO value lockless\n\n__sched_setscheduler() takes lock_task_sighand() to access task-\u003esignal.\nThis is not needed since ea6d290c, -\u003esignal can\u0027t go away.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c20100610230944.GA25903@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "3c93717cfa51316e4dbb471e7c0f9d243359d5f8",
      "tree": "0c37ea18287556b42d6264d41c7093dd07f052f5",
      "parents": [
        "dc61b1d65e353d638b2445f71fb8e5b5630f2415"
      ],
      "author": {
        "name": "Alex,Shi",
        "email": "alex.shi@intel.com",
        "time": "Thu Jun 17 14:08:13 2010 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jun 18 10:45:25 2010 +0200"
      },
      "message": "sched: Fix over-scheduling bug\n\nCommit e70971591 (\"sched: Optimize unused cgroup configuration\") introduced\nan imbalanced scheduling bug.\n\nIf we do not use CGROUP, function update_h_load won\u0027t update h_load. When the\nsystem has a large number of tasks far more than logical CPU number, the\nincorrect cfs_rq[cpu]-\u003eh_load value will cause load_balance() to pull too\nmany tasks to the local CPU from the busiest CPU. So the busiest CPU keeps\ngoing in a round robin. That will hurt performance.\n\nThe issue was found originally by a scientific calculation workload that\ndeveloped by Yanmin. With that commit, the workload performance drops\nabout 40%.\n\n CPU  before    after\n\n 00   : 2       : 7\n 01   : 1       : 7\n 02   : 11      : 6\n 03   : 12      : 7\n 04   : 6       : 6\n 05   : 11      : 7\n 06   : 10      : 6\n 07   : 12      : 7\n 08   : 11      : 6\n 09   : 12      : 6\n 10   : 1       : 6\n 11   : 1       : 6\n 12   : 6       : 6\n 13   : 2       : 6\n 14   : 2       : 6\n 15   : 1       : 6\n\nReviewed-by: Yanmin zhang \u003cyanmin.zhang@intel.com\u003e\nSigned-off-by: Alex Shi \u003calex.shi@intel.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1276754893.9452.5442.camel@debian\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "83cd4fe27ad8446619b2e030b171b858501de87d",
      "tree": "81c7d26f4f00139ae355017239371d91cc4b2aef",
      "parents": [
        "fdf3e95d3916f18bf8703fb065499fdbc4dfe34c"
      ],
      "author": {
        "name": "Venkatesh Pallipadi",
        "email": "venki@google.com",
        "time": "Fri May 21 17:09:41 2010 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jun 09 10:34:52 2010 +0200"
      },
      "message": "sched: Change nohz idle load balancing logic to push model\n\nIn the new push model, all idle CPUs indeed go into nohz mode. There is\nstill the concept of idle load balancer (performing the load balancing\non behalf of all the idle cpu\u0027s in the system). Busy CPU kicks the nohz\nbalancer when any of the nohz CPUs need idle load balancing.\nThe kickee CPU does the idle load balancing on behalf of all idle CPUs\ninstead of the normal idle balance.\n\nThis addresses the below two problems with the current nohz ilb logic:\n* the idle load balancer continued to have periodic ticks during idle and\n  wokeup frequently, even though it did not have any rebalancing to do on\n  behalf of any of the idle CPUs.\n* On x86 and CPUs that have APIC timer stoppage on idle CPUs, this\n  periodic wakeup can result in a periodic additional interrupt on a CPU\n  doing the timer broadcast.\n\nAlso currently we are migrating the unpinned timers from an idle to the cpu\ndoing idle load balancing (when all the cpus in the system are idle,\nthere is no idle load balancing cpu and timers get added to the same idle cpu\nwhere the request was made. So the existing optimization works only on semi idle\nsystem).\n\nAnd In semi idle system, we no longer have periodic ticks on the idle load\nbalancer CPU. Using that cpu will add more delays to the timers than intended\n(as that cpu\u0027s timer base may not be uptodate wrt jiffies etc). This was\ncausing mysterious slowdowns during boot etc.\n\nFor now, in the semi idle case, use the nearest busy cpu for migrating timers\nfrom an idle cpu.  This is good for power-savings anyway.\n\nSigned-off-by: Venkatesh Pallipadi \u003cvenki@google.com\u003e\nSigned-off-by: Suresh Siddha \u003csuresh.b.siddha@intel.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nLKML-Reference: \u003c1274486981.2840.46.camel@sbs-t61.sc.intel.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "fdf3e95d3916f18bf8703fb065499fdbc4dfe34c",
      "tree": "b9bfc0f78135502adf7c83313948a705fb19384b",
      "parents": [
        "246d86b51845063e4b06b27579990492dc5fa317"
      ],
      "author": {
        "name": "Venkatesh Pallipadi",
        "email": "venki@google.com",
        "time": "Mon May 17 18:14:43 2010 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jun 09 10:34:51 2010 +0200"
      },
      "message": "sched: Avoid side-effect of tickless idle on update_cpu_load\n\ntickless idle has a negative side effect on update_cpu_load(), which\nin turn can affect load balancing behavior.\n\nupdate_cpu_load() is supposed to be called every tick, to keep track\nof various load indicies. With tickless idle, there are no scheduler\nticks called on the idle CPUs. Idle CPUs may still do load balancing\n(with idle_load_balance CPU) using the stale cpu_load. It will also\ncause problems when all CPUs go idle for a while and become active\nagain. In this case loads would not degrade as expected.\n\nThis is how rq-\u003enr_load_updates change looks like under different\nconditions:\n\n\u003ccpu_num\u003e \u003cnr_load_updates change\u003e\nAll CPUS idle for 10 seconds (HZ\u003d1000)\n0 1621\n10 496\n11 139\n12 875\n13 1672\n14 12\n15 21\n1 1472\n2 2426\n3 1161\n4 2108\n5 1525\n6 701\n7 249\n8 766\n9 1967\n\nOne CPU busy rest idle for 10 seconds\n0 10003\n10 601\n11 95\n12 966\n13 1597\n14 114\n15 98\n1 3457\n2 93\n3 6679\n4 1425\n5 1479\n6 595\n7 193\n8 633\n9 1687\n\nAll CPUs busy for 10 seconds\n0 10026\n10 10026\n11 10026\n12 10026\n13 10025\n14 10025\n15 10025\n1 10026\n2 10026\n3 10026\n4 10026\n5 10026\n6 10026\n7 10026\n8 10026\n9 10026\n\nThat is update_cpu_load works properly only when all CPUs are busy.\nIf all are idle, all the CPUs get way lower updates.  And when few\nCPUs are busy and rest are idle, only busy and ilb CPU does proper\nupdates and rest of the idle CPUs will do lower updates.\n\nThe patch keeps track of when a last update was done and fixes up\nthe load avg based on current time.\n\nOn one of my test system SPECjbb with warehouse 1..numcpus, patch\nimproves throughput numbers by ~1% (average of 6 runs).  On another\ntest system (with different domain hierarchy) there is no noticable\nchange in perf.\n\nSigned-off-by: Venkatesh Pallipadi \u003cvenki@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nLKML-Reference: \u003cAANLkTilLtDWQsAUrIxJ6s04WTgmw9GuOODc5AOrYsaR5@mail.gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "246d86b51845063e4b06b27579990492dc5fa317",
      "tree": "3f60fc00b8cc587826cc76e31a1afb92353d08dd",
      "parents": [
        "c676329abb2b8359d9a5d734dec0c81779823fd6"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Wed May 19 14:57:11 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jun 09 10:34:50 2010 +0200"
      },
      "message": "sched: Simplify the reacquire_kernel_lock() logic\n\n- Contrary to what 6d558c3a says, there is no need to reload\n  prev \u003d rq-\u003ecurr after the context switch. You always schedule\n  back to where you came from, prev must be equal to current\n  even if cpu/rq was changed.\n\n- This also means reacquire_kernel_lock() can use prev instead\n  of current.\n\n- No need to reassign switch_count if reacquire_kernel_lock()\n  reports need_resched(), we can just move the initial assignment\n  down, under the \"need_resched_nonpreemptible:\" label.\n\n- Try to update the comment after context_switch().\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c20100519125711.GA30199@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "c676329abb2b8359d9a5d734dec0c81779823fd6",
      "tree": "b6c33715176221a87100228399c2a6f5049e44ea",
      "parents": [
        "95ae3c59fa8ad616c73745e21154b5af0fb10168"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue May 25 10:48:51 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jun 09 10:34:49 2010 +0200"
      },
      "message": "sched_clock: Add local_clock() API and improve documentation\n\nFor people who otherwise get to write: cpu_clock(smp_processor_id()),\nthere is now: local_clock().\n\nAlso, as per suggestion from Andrew, provide some documentation on\nthe various clock interfaces, and minimize the unsigned long long vs\nu64 mess.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Jens Axboe \u003cjaxboe@fusionio.com\u003e\nLKML-Reference: \u003c1275052414.1645.52.camel@laptop\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "95ae3c59fa8ad616c73745e21154b5af0fb10168",
      "tree": "c08f1bcad8f619c5097208cbfa85170411033095",
      "parents": [
        "dc61b1d65e353d638b2445f71fb8e5b5630f2415",
        "21aa9af03d06cb1d19a3738e5cf12acff984e69b"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Jun 08 23:20:59 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Jun 08 23:20:59 2010 +0200"
      },
      "message": "Merge branch \u0027sched-wq\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq into sched/core\n"
    },
    {
      "commit": "21aa9af03d06cb1d19a3738e5cf12acff984e69b",
      "tree": "e205a742a4a9baf098b4e3d428c04f4d3a065bca",
      "parents": [
        "9ed3811a6c0d6b66e6cd47a5d7b9136386dce743"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Jun 08 21:40:37 2010 +0200"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Jun 08 21:40:37 2010 +0200"
      },
      "message": "sched: add hooks for workqueue\n\nConcurrency managed workqueue needs to know when workers are going to\nsleep and waking up.  Using these two hooks, cmwq keeps track of the\ncurrent concurrency level and throttles execution of new works if it\u0027s\ntoo high and wakes up another worker from the sleep hook if it becomes\ntoo low.\n\nThis patch introduces PF_WQ_WORKER to identify workqueue workers and\nadds the following two hooks.\n\n* wq_worker_waking_up(): called when a worker is woken up.\n\n* wq_worker_sleeping(): called when a worker is going to sleep and may\n  return a pointer to a local task which should be woken up.  The\n  returned task is woken up using try_to_wake_up_local() which is\n  simplified ttwu which is called under rq lock and can only wake up\n  local tasks.\n\nBoth hooks are currently defined as noop in kernel/workqueue_sched.h.\nLater cmwq implementation will replace them with proper\nimplementation.\n\nThese hooks are hard coded as they\u0027ll always be enabled.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nAcked-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "9ed3811a6c0d6b66e6cd47a5d7b9136386dce743",
      "tree": "6a1e92b3e51978c7e32f1afdf98b1966a3d65818",
      "parents": [
        "3a101d0548e925ab16ca6aaa8cf4f767d322ddb0"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Dec 03 15:08:03 2009 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Jun 08 21:40:36 2010 +0200"
      },
      "message": "sched: refactor try_to_wake_up()\n\nFactor ttwu_activate() and ttwu_woken_up() out of try_to_wake_up().\nThe factoring out doesn\u0027t affect try_to_wake_up() much\ncode-generation-wise.  Depending on configuration options, it ends up\ngenerating the same object code as before or slightly different one\ndue to different register assignment.\n\nThis is to help future implementation of try_to_wake_up_local().\n\nMike Galbraith suggested rename to ttwu_post_activation() from\nttwu_woken_up() and comment update in try_to_wake_up().\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nAcked-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "3a101d0548e925ab16ca6aaa8cf4f767d322ddb0",
      "tree": "b90d8c5f2efe30fcfa49a00fdea037567c6cd46f",
      "parents": [
        "50a323b73069b169385a8ac65633dee837a7d13f"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Jun 08 21:40:36 2010 +0200"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Jun 08 21:40:36 2010 +0200"
      },
      "message": "sched: adjust when cpu_active and cpuset configurations are updated during cpu on/offlining\n\nCurrently, when a cpu goes down, cpu_active is cleared before\nCPU_DOWN_PREPARE starts and cpuset configuration is updated from a\ndefault priority cpu notifier.  When a cpu is coming up, it\u0027s set\nbefore CPU_ONLINE but cpuset configuration again is updated from the\nsame cpu notifier.\n\nFor cpu notifiers, this presents an inconsistent state.  Threads which\na CPU_DOWN_PREPARE notifier expects to be bound to the CPU can be\nmigrated to other cpus because the cpu is no more inactive.\n\nFix it by updating cpu_active in the highest priority cpu notifier and\ncpuset configuration in the second highest when a cpu is coming up.\nDown path is updated similarly.  This guarantees that all other cpu\nnotifiers see consistent cpu_active and cpuset configuration.\n\ncpuset_track_online_cpus() notifier is converted to\ncpuset_update_active_cpus() which just updates the configuration and\nnow called from cpuset_cpu_[in]active() notifiers registered from\nsched_init_smp().  If cpuset is disabled, cpuset_update_active_cpus()\ndegenerates into partition_sched_domains() making separate notifier\nfor !CONFIG_CPUSETS unnecessary.\n\nThis problem is triggered by cmwq.  During CPU_DOWN_PREPARE, hotplug\ncallback creates a kthread and kthread_bind()s it to the target cpu,\nand the thread is expected to run on that cpu.\n\n* Ingo\u0027s test discovered __cpuinit/exit markups were incorrect.\n  Fixed.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\n"
    },
    {
      "commit": "50a323b73069b169385a8ac65633dee837a7d13f",
      "tree": "020820efb3af12486981381a1e087c1907fdeeb8",
      "parents": [
        "3975d16760d4be7402d1067c548c30c427971331"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Jun 08 21:40:36 2010 +0200"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Jun 08 21:40:36 2010 +0200"
      },
      "message": "sched: define and use CPU_PRI_* enums for cpu notifier priorities\n\nInstead of hardcoding priority 10 and 20 in sched and perf, collect\nthem into CPU_PRI_* enums.\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: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\n"
    },
    {
      "commit": "6113e45f831616de98c54a005260223b21bcb6b9",
      "tree": "0d56dbfae392f89b33c2ae6a36a5cc1ea1c1c988",
      "parents": [
        "84bb671dc46d77d665d2b5e74539e81b2129bb3e",
        "5168ae50a66e3ff7184c2b16d661bd6d70367e50"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Jun 08 19:34:40 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Jun 08 19:34:40 2010 +0200"
      },
      "message": "Merge branch \u0027tip/perf/core-3\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-2.6-trace into perf/core\n"
    },
    {
      "commit": "dc61b1d65e353d638b2445f71fb8e5b5630f2415",
      "tree": "07d79b2d385a380207cd889ac764b57190421fd1",
      "parents": [
        "3975d16760d4be7402d1067c548c30c427971331"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue Jun 08 11:40:42 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Jun 08 18:44:04 2010 +0200"
      },
      "message": "sched: Fix PROVE_RCU vs cpu_cgroup\n\nPROVE_RCU has a few issues with the cpu_cgroup because the scheduler\ntypically holds rq-\u003elock around the css rcu derefs but the generic\ncgroup code doesn\u0027t (and can\u0027t) know about that lock.\n\nProvide means to add extra checks to the css dereference and use that\nin the scheduler to annotate its users.\n\nThe addition of rq-\u003elock to these checks is correct because the\ncgroup_subsys::attach() method takes the rq-\u003elock for each task it\nmoves, therefore by holding that lock, we ensure the task is pinned to\nthe current cgroup and the RCU derefence is valid.\n\nThat leaves one genuine race in __sched_setscheduler() where we used\ntask_group() without holding any of the required locks and thus raced\nwith the cgroup code. Solve this by moving the check under the\nappropriate lock.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: \"Paul E. McKenney\" \u003cpaulmck@linux.vnet.ibm.com\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "d1f74e20b5b064a130cd0743a256c2d3cfe84010",
      "tree": "b93ab590c24bb08f6db0dfc2a3ba60fa43af7f92",
      "parents": [
        "9dda696f0de87a2e5cfabb147e28c76b7d3c6846"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed Jun 02 21:52:29 2010 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu Jun 03 19:09:41 2010 -0400"
      },
      "message": "tracing/sched: Make preempt_schedule() notrace\n\nThe function tracer code uses ftrace_preempt_disable() to disable\npreemption instead of normal preempt_disable(). But there\u0027s a slight\nrace condition that may cause it to lose a preemption check.\n\nThis was made to keep the function tracer from recursing on itself\nby disabling preemption then having the enable call the function tracer\nagain, causing infinite recursion.\n\nThe bug was assumed to happen if the call was just in schedule, but\nthis is incorrect. The bug is caused by preempt_schedule() which\nis called by preempt_enable(). The calling of preempt_enable() when\nNEED_RESCHED was set would call preempt_schedule() which would call\nthe function tracer again.\n\nBy making the preempt_schedule() and add_preempt_count() notrace\nthen this will prevent the inifinite recursion. This is because\nthe add_preempt_count() would stop the preempt_enable() in the\nfunction tracer from calling preempt_schedule() again.\n\nThe sub_preempt_count() is also made notrace just to keep it\nsymmetric.\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "e51fd5e22e12b39f49b1bb60b37b300b17378a43",
      "tree": "391500ff509dc30991db38e3d54eaccfe385d1cb",
      "parents": [
        "54e88fad223c4e1d94289611a90c7fe3ebe5631b"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Mon May 31 12:37:30 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Jun 01 09:27:16 2010 +0200"
      },
      "message": "sched: Fix wake_affine() vs RT tasks\n\nMike reports that since e9e9250b (sched: Scale down cpu_power due to RT\ntasks), wake_affine() goes funny on RT tasks due to them still having a\n!0 weight and wake_affine() still subtracts that from the rq weight.\n\nSince nobody should be using se-\u003eweight for RT tasks, set the value to\nzero. Also, since we now use -\u003ecpu_power to normalize rq weights to\naccount for RT cpu usage, add that factor into the imbalance computation.\n\nReported-by: Mike Galbraith \u003cefault@gmx.de\u003e\nTested-by: Mike Galbraith \u003cefault@gmx.de\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1275316109.27810.22969.camel@twins\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "b612a0553714c6b9744ad0d03f10cac78f3a84b1",
      "tree": "9dfb5cb5d13c187ff1f54448f8441512203625d0",
      "parents": [
        "52b0ace7dfe8f70350218017a95d7cab1eb41fbb",
        "2a8e5e3637e2fc058798f5d3626f525729ffaaaf"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun May 30 08:56:39 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun May 30 08:56:39 2010 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client:\n  ceph: clean up on forwarded aborted mds request\n  ceph: fix leak of osd authorizer\n  ceph: close out mds, osd connections before stopping auth\n  ceph: make lease code DN specific\n  fs/ceph: Use ERR_CAST\n  ceph: renew auth tickets before they expire\n  ceph: do not resend mon requests on auth ticket renewal\n  ceph: removed duplicated #includes\n  ceph: avoid possible null dereference\n  ceph: make mds requests killable, not interruptible\n  sched: add wait_for_completion_killable_timeout\n"
    },
    {
      "commit": "0aa12fb439838a85802ab8b7fbb9bcfc3e6e05cb",
      "tree": "c944cf9abba9a6afb3d1259140c73101d0e222a0",
      "parents": [
        "240ed68eb567d80dd6bab739341999a5ab0ad55d"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Sat May 29 09:12:30 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Sat May 29 09:12:30 2010 -0700"
      },
      "message": "sched: add wait_for_completion_killable_timeout\n\nAdd missing _killable_timeout variant for wait_for_completion that will\nreturn when a timeout expires or the task is killed.\n\nCC: Ingo Molnar \u003cmingo@elte.hu\u003e\nCC: Andreas Herrmann \u003candreas.herrmann3@amd.com\u003e\nCC: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCC: Mike Galbraith \u003cefault@gmx.de\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "b7b8ff6373d4b910af081f76888395e6df53249d",
      "tree": "128a1b2cf026fb8b9791eaefb6f79f872999a5c6",
      "parents": [
        "4ada856fb0ee62f6fe3aac3de726deac0640d929"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Wed May 26 14:43:18 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:46 2010 -0700"
      },
      "message": "signals: kill the awful task_rq_unlock_wait() hack\n\nNow that task-\u003esignal can\u0027t go away we can revert the horrible hack added\nby ad474caca3e2a0550b7ce0706527ad5ab389a4d4 (\"fix for\naccount_group_exec_runtime(), make sure -\u003esignal can\u0027t be freed under\nrq-\u003elock\").\n\nAnd we can do more cleanups sched_stats.h/posix-cpu-timers.c later.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Alan Cox \u003calan@linux.intel.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nAcked-by: Roland McGrath \u003croland@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "90b9a32d8f441369b2f97a765d2d957b531eb653",
      "tree": "3146d251a983ba12226e75c121613de6f051af8b",
      "parents": [
        "8b108c609adefd98577c35f0a41497a610041a6c",
        "4402c153cb9c549cd21d6007ef0dfac50c8d148d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 21 11:08:05 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 21 11:08:05 2010 -0700"
      },
      "message": "Merge branch \u0027kdb-merge\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jwessel/linux-2.6-kgdb\n\n* \u0027kdb-merge\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jwessel/linux-2.6-kgdb: (25 commits)\n  kdb,debug_core: Allow the debug core to receive a panic notification\n  MAINTAINERS: update kgdb, kdb, and debug_core info\n  debug_core,kdb: Allow the debug core to process a recursive debug entry\n  printk,kdb: capture printk() when in kdb shell\n  kgdboc,kdb: Allow kdb to work on a non open console port\n  kgdb: Add the ability to schedule a breakpoint via a tasklet\n  mips,kgdb: kdb low level trap catch and stack trace\n  powerpc,kgdb: Introduce low level trap catching\n  x86,kgdb: Add low level debug hook\n  kgdb: remove post_primary_code references\n  kgdb,docs: Update the kgdb docs to include kdb\n  kgdboc,keyboard: Keyboard driver for kdb with kgdb\n  kgdb: gdb \"monitor\" -\u003e kdb passthrough\n  sparc,sunzilog: Add console polling support for sunzilog serial driver\n  sh,sh-sci: Use NO_POLL_CHAR in the SCIF polled console code\n  kgdb,8250,pl011: Return immediately from console poll\n  kgdb: core changes to support kdb\n  kdb: core for kgdb back end (2 of 2)\n  kdb: core for kgdb back end (1 of 2)\n  kgdb,blackfin: Add in kgdb_arch_set_pc for blackfin\n  ...\n"
    },
    {
      "commit": "7a9b149212f3716c598afe973b6261fd58453b7a",
      "tree": "477716d84c71da124448b72278e98da28aadbd3d",
      "parents": [
        "3d62e3fdce8ef265a3706c52ae1ca6ab84e30f0e",
        "e26bcf37234c67624f62d9fc95f922b8dbda1363"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 20 21:26:12 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 20 21:26:12 2010 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb-2.6: (229 commits)\n  USB: remove unused usb_buffer_alloc and usb_buffer_free macros\n  usb: musb: update gfp/slab.h includes\n  USB: ftdi_sio: fix legacy SIO-device header\n  USB: kl5usb105: reimplement using generic framework\n  USB: kl5usb105: minor clean ups\n  USB: kl5usb105: fix memory leak\n  USB: io_ti: use kfifo to implement write buffering\n  USB: io_ti: remove unsused private counter\n  USB: ti_usb: use kfifo to implement write buffering\n  USB: ir-usb: fix incorrect write-buffer length\n  USB: aircable: fix incorrect write-buffer length\n  USB: safe_serial: straighten out read processing\n  USB: safe_serial: reimplement read using generic framework\n  USB: safe_serial: reimplement write using generic framework\n  usb-storage: always print quirks\n  USB: usb-storage: trivial debug improvements\n  USB: oti6858: use port write fifo\n  USB: oti6858: use kfifo to implement write buffering\n  USB: cypress_m8: use kfifo to implement write buffering\n  USB: cypress_m8: remove unused drain define\n  ...\n\nFix up conflicts (due to usb_buffer_alloc/free renaming) in\n\tdrivers/input/tablet/acecad.c\n\tdrivers/input/tablet/kbtab.c\n\tdrivers/input/tablet/wacom_sys.c\n\tdrivers/media/video/gspca/gspca.c\n\tsound/usb/usbaudio.c\n"
    },
    {
      "commit": "67fc4e0cb931d6b4ccf21248e4199b154478ecea",
      "tree": "4cf49d00bc9ac03c3c77d91fadd13fcabc75e0c9",
      "parents": [
        "5d5314d6795f3c1c0f415348ff8c51f7de042b77"
      ],
      "author": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Thu May 20 21:04:21 2010 -0500"
      },
      "committer": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Thu May 20 21:04:21 2010 -0500"
      },
      "message": "kdb: core for kgdb back end (2 of 2)\n\nThis patch contains the hooks and instrumentation into kernel which\nlive outside the kernel/debug directory, which the kdb core\nwill call to run commands like lsmod, dmesg, bt etc...\n\nCC: linux-arch@vger.kernel.org\nSigned-off-by: Jason Wessel \u003cjason.wessel@windriver.com\u003e\nSigned-off-by: Martin Hicks \u003cmort@sgi.com\u003e\n"
    },
    {
      "commit": "22c43c81a51e05f61e90445ceb59d486c12fd921",
      "tree": "88582f01bf413bdc4d9d95a512116c9fe44afa33",
      "parents": [
        "24337c133ff92ba8d7c42819db17f7f2b0de3129"
      ],
      "author": {
        "name": "Michal Nazarewicz",
        "email": "m.nazarewicz@samsung.com",
        "time": "Wed May 05 12:53:11 2010 +0200"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu May 20 13:21:42 2010 -0700"
      },
      "message": "wait_event_interruptible_locked() interface\n\nNew wait_event_interruptible{,_exclusive}_locked{,_irq} macros added.\nThey work just like versions without _locked* suffix but require the\nwait queue\u0027s lock to be held.  Also __wake_up_locked() is now exported\nas to pair it with the above macros.\n\nThe use case of this new facility is when one uses wait queue\u0027s lock\nto  protect a data structure.  This may be advantageous if the\nstructure needs to be protected by a spinlock anyway.  In particular,\nwith additional spinlock the following code has to be used to wait\nfor a condition:\n\nspin_lock(\u0026data.lock);\n...\nfor (ret \u003d 0; !ret \u0026\u0026 !(condition); ) {\n\tspin_unlock(\u0026data.lock);\n\tret \u003d wait_event_interruptible(data.wqh, (condition));\n\tspin_lock(\u0026data.lock);\n}\n...\nspin_unlock(\u0026data.lock);\n\nThis looks bizarre plus wait_event_interruptible() locks the wait\nqueue\u0027s lock anyway so there is a unlock+lock sequence where it could\nbe avoided.\n\nTo avoid those problems and benefit from wait queue\u0027s lock, a code\nsimilar to the following should be used:\n\n/* Waiting */\nspin_lock(\u0026data.wqh.lock);\n...\nret \u003d wait_event_interruptible_locked(data.wqh, (condition));\n...\nspin_unlock(\u0026data.wqh.lock);\n\n/* Waiting exclusively */\nspin_lock(\u0026data.whq.lock);\n...\nret \u003d wait_event_interruptible_exclusive_locked(data.whq, (condition));\n...\nspin_unlock(\u0026data.whq.lock);\n\n/* Waking up */\nspin_lock(\u0026data.wqh.lock);\n...\nwake_up_locked(\u0026data.wqh);\n...\nspin_unlock(\u0026data.wqh.lock);\n\nWhen spin_lock_irq() is used matching versions of macros need to be\nused (*_locked_irq()).\n\nSigned-off-by: Michal Nazarewicz \u003cm.nazarewicz@samsung.com\u003e\nCc: Kyungmin Park \u003ckyungmin.park@samsung.com\u003e\nCc: Marek Szyprowski \u003cm.szyprowski@samsung.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Takashi Iwai \u003ctiwai@suse.de\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: Andreas Herrmann \u003candreas.herrmann3@amd.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "b8ae30ee26d379db436b0b8c8c3ff1b52f69e5d1",
      "tree": "506aa0b4bdbf90f61e7e9261c7db90aa1452dcce",
      "parents": [
        "4d7b4ac22fbec1a03206c6cde353f2fd6942f828",
        "9c6f7e43b4e02c161b53e97ba913855246876c61"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 18 08:27:54 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 18 08:27:54 2010 -0700"
      },
      "message": "Merge branch \u0027sched-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027sched-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (49 commits)\n  stop_machine: Move local variable closer to the usage site in cpu_stop_cpu_callback()\n  sched, wait: Use wrapper functions\n  sched: Remove a stale comment\n  ondemand: Make the iowait-is-busy time a sysfs tunable\n  ondemand: Solve a big performance issue by counting IOWAIT time as busy\n  sched: Intoduce get_cpu_iowait_time_us()\n  sched: Eliminate the ts-\u003eidle_lastupdate field\n  sched: Fold updating of the last_update_time_info into update_ts_time_stats()\n  sched: Update the idle statistics in get_cpu_idle_time_us()\n  sched: Introduce a function to update the idle statistics\n  sched: Add a comment to get_cpu_idle_time_us()\n  cpu_stop: add dummy implementation for UP\n  sched: Remove rq argument to the tracepoints\n  rcu: need barrier() in UP synchronize_sched_expedited()\n  sched: correctly place paranioa memory barriers in synchronize_sched_expedited()\n  sched: kill paranoia check in synchronize_sched_expedited()\n  sched: replace migration_thread with cpu_stop\n  stop_machine: reimplement using cpu_stop\n  cpu_stop: implement stop_cpu[s]()\n  sched: Fix select_idle_sibling() logic in select_task_rq_fair()\n  ...\n"
    },
    {
      "commit": "4d7b4ac22fbec1a03206c6cde353f2fd6942f828",
      "tree": "2d96a9e9c28cf6fa628a278decc00ad55a8b043b",
      "parents": [
        "3aaf51ace5975050ab43c7d4d7e439e0ae7d13d7",
        "94f3ca95787ada3d64339a4ecb2754236ab563f6"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 18 08:19:03 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 18 08:19:03 2010 -0700"
      },
      "message": "Merge branch \u0027perf-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027perf-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (311 commits)\n  perf tools: Add mode to build without newt support\n  perf symbols: symbol inconsistency message should be done only at verbose\u003d1\n  perf tui: Add explicit -lslang option\n  perf options: Type check all the remaining OPT_ variants\n  perf options: Type check OPT_BOOLEAN and fix the offenders\n  perf options: Check v type in OPT_U?INTEGER\n  perf options: Introduce OPT_UINTEGER\n  perf tui: Add workaround for slang \u003c 2.1.4\n  perf record: Fix bug mismatch with -c option definition\n  perf options: Introduce OPT_U64\n  perf tui: Add help window to show key associations\n  perf tui: Make \u003c- exit menus too\n  perf newt: Add single key shortcuts for zoom into DSO and threads\n  perf newt: Exit browser unconditionally when CTRL+C, q or Q is pressed\n  perf newt: Fix the \u0027A\u0027/\u0027a\u0027 shortcut for annotate\n  perf newt: Make \u003c- exit the ui_browser\n  x86, perf: P4 PMU - fix counters management logic\n  perf newt: Make \u003c- zoom out filters\n  perf report: Report number of events, not samples\n  perf hist: Clarify events_stats fields usage\n  ...\n\nFix up trivial conflicts in kernel/fork.c and tools/perf/builtin-record.c\n"
    },
    {
      "commit": "a93d2f1744206827ccf416e2cdc5018aa503314e",
      "tree": "c4c9daf16536d8d58db275617e19898f6c5bdbd7",
      "parents": [
        "af507ae8a0512a83728b17d8f8c5fa1561669f50"
      ],
      "author": {
        "name": "Changli Gao",
        "email": "xiaosuo@gmail.com",
        "time": "Fri May 07 14:33:26 2010 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue May 11 17:43:58 2010 +0200"
      },
      "message": "sched, wait: Use wrapper functions\n\nepoll should not touch flags in wait_queue_t. This patch introduces a new\nfunction __add_wait_queue_exclusive(), for the users, who use wait queue as a\nLIFO queue.\n\n__add_wait_queue_tail_exclusive() is introduced too instead of\nadd_wait_queue_exclusive_locked(). remove_wait_queue_locked() is removed, as\nit is a duplicate of __remove_wait_queue(), disliked by users, and with less\nusers.\n\nSigned-off-by: Changli Gao \u003cxiaosuo@gmail.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Alexander Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Davide Libenzi \u003cdavidel@xmailserver.org\u003e\nCc: \u003ccontainers@lists.linux-foundation.org\u003e\nLKML-Reference: \u003c1273214006-2979-1-git-send-email-xiaosuo@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "25502a6c13745f4650cc59322bd198194f55e796",
      "tree": "d76cc659d3ea797c5da4630e219ac363d17c44a6",
      "parents": [
        "99652b54de1ee094236f7171485214071af4ef31"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Thu Apr 01 17:37:01 2010 -0700"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Mon May 10 11:08:33 2010 -0700"
      },
      "message": "rcu: refactor RCU\u0027s context-switch handling\n\nThe addition of preemptible RCU to treercu resulted in a bit of\nconfusion and inefficiency surrounding the handling of context switches\nfor RCU-sched and for RCU-preempt.  For RCU-sched, a context switch\nis a quiescent state, pure and simple, just like it always has been.\nFor RCU-preempt, a context switch is in no way a quiescent state, but\nspecial handling is required when a task blocks in an RCU read-side\ncritical section.\n\nHowever, the callout from the scheduler and the outer loop in ksoftirqd\nstill calls something named rcu_sched_qs(), whose name is no longer\naccurate.  Furthermore, when rcu_check_callbacks() notes an RCU-sched\nquiescent state, it ends up unnecessarily (though harmlessly, aside\nfrom the performance hit) enqueuing the current task if it happens to\nbe running in an RCU-preempt read-side critical section.  This not only\nincreases the maximum latency of scheduler_tick(), it also needlessly\nincreases the overhead of the next outermost rcu_read_unlock() invocation.\n\nThis patch addresses this situation by separating the notion of RCU\u0027s\ncontext-switch handling from that of RCU-sched\u0027s quiescent states.\nThe context-switch handling is covered by rcu_note_context_switch() in\ngeneral and by rcu_preempt_note_context_switch() for preemptible RCU.\nThis permits rcu_sched_qs() to handle quiescent states and only quiescent\nstates.  It also reduces the maximum latency of scheduler_tick(), though\nprobably by much less than a microsecond.  Finally, it means that tasks\nwithin preemptible-RCU read-side critical sections avoid incurring the\noverhead of queuing unless there really is a context switch.\n\nSuggested-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nAcked-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\n"
    },
    {
      "commit": "e7858f52a5cb868289a72264534a1f05f3340c6c",
      "tree": "aa7308603cf30d8aec6e45ecaddc6c8ed29d2edb",
      "parents": [
        "27a9da6538ee18046d7bff8e36a9f783542c54c3",
        "bbf1bb3eee86f2eef2baa14e600be454d09109ee"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat May 08 18:11:19 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat May 08 18:11:19 2010 +0200"
      },
      "message": "Merge branch \u0027cpu_stop\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/misc into sched/core\n"
    },
    {
      "commit": "cce913178118b0b36742eb7544c2b38a0c957ee7",
      "tree": "25a6d7b4e01fea2932e6e2962a75f7a3d8c19a4f",
      "parents": [
        "d9f599e1e6d019968b35d2dc63074b9e8964fa69",
        "4fd38e4595e2f6c9d27732c042a0e16b2753049c"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri May 07 11:30:29 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri May 07 11:30:30 2010 +0200"
      },
      "message": "Merge branch \u0027perf/urgent\u0027 into perf/core\n\nMerge reason: Resolve patch dependency\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "27a9da6538ee18046d7bff8e36a9f783542c54c3",
      "tree": "9f9944ca8742ec52f7e4a674f7475fc0378abdb8",
      "parents": [
        "48652ced1533c3372f996a0d83b6e73b1f1c9381"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue May 04 20:36:56 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri May 07 11:28:17 2010 +0200"
      },
      "message": "sched: Remove rq argument to the tracepoints\n\nstruct rq isn\u0027t visible outside of sched.o so its near useless to\nexpose the pointer, also there are no users of it, so remove it.\n\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1272997616.1642.207.camel@laptop\u003e\nSigned-off-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": "8b08ca52f5942c21564bbb90ccfb61053f2c26a1",
      "tree": "3fbba8114fdad7d077390c206ae17c38fbc85cb8",
      "parents": [
        "4b402210486c6414fe5fbfd85934a0a22da56b04"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "peterz@infradead.org",
        "time": "Wed Apr 21 13:02:07 2010 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Apr 30 12:03:17 2010 +0200"
      },
      "message": "rcu: Fix RCU lockdep splat in set_task_cpu on fork path\n\nAdd an RCU read-side critical section to suppress this false\npositive.\n\nLocated-by: Eric Paris \u003ceparis@parisplace.org\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: laijs@cn.fujitsu.com\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\nCc: eric.dumazet@gmail.com\nLKML-Reference: \u003c1271880131-3951-1-git-send-email-paulmck@linux.vnet.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "70bce3ba77540ebe77b8c0e1ac38d281a23fbb5e",
      "tree": "34b09a49228f0949ff49dce66a433b0dfd83a2dc",
      "parents": [
        "6eca8cc35b50af1037bc919106dd6dd332c959c2",
        "d5a30458a90597915977f06e79406b664a41b8ac"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Apr 23 11:10:28 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Apr 23 11:10:30 2010 +0200"
      },
      "message": "Merge branch \u0027linus\u0027 into perf/core\n\nMerge reason: merge the latest fixes, update to latest -rc.\n\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": "4b402210486c6414fe5fbfd85934a0a22da56b04",
      "tree": "23e7052c710e0443ccd895a1000b2bdd7723ab51",
      "parents": [
        "d5a30458a90597915977f06e79406b664a41b8ac"
      ],
      "author": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Fri Apr 16 23:20:00 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Apr 23 11:00:28 2010 +0200"
      },
      "message": "mutex: Don\u0027t spin when the owner CPU is offline or other weird cases\n\nDue to recent load-balancer changes that delay the task migration to\nthe next wakeup, the adaptive mutex spinning ends up in a live lock\nwhen the owner\u0027s CPU gets offlined because the cpu_online() check\nlives before the owner running check.\n\nThis patch changes mutex_spin_on_owner() to return 0 (don\u0027t spin) in\nany case where we aren\u0027t sure about the owner struct validity or CPU\nnumber, and if the said CPU is offline. There is no point going back \u0026\nre-evaluate spinning in corner cases like that, let\u0027s just go to\nsleep.\n\nSigned-off-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1271212509.13059.135.camel@pasglop\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": "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": "ca7e0c612005937a4a5a75d3fed90459993de65c",
      "tree": "b574fc0f0189b52ffc87ba20c418228db556faa1",
      "parents": [
        "8141d0050d76e5695011b5ab577ec66fb51a998c",
        "f5284e7635787224dda1a2bf82a4c56b1c75671f"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Apr 08 13:36:36 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Apr 08 13:37:18 2010 +0200"
      },
      "message": "Merge branch \u0027linus\u0027 into perf/core\n\nSemantic conflict: arch/x86/kernel/cpu/perf_event_intel_ds.c\n\nMerge reason: pick up latest fixes, fix the conflict\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\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": "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": "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"
    }
  ],
  "next": "47a70985e5c093ae03d8ccf633c70a93761d86f2"
}
