)]}'
{
  "log": [
    {
      "commit": "92b29b86fe2e183d44eb467e5e74a5f718ef2e43",
      "tree": "1bac8a1aa11d47322b66d10ec3a370016d843d06",
      "parents": [
        "b9d7ccf56be1ac77b71a284a1c0e6337f9a7aff0",
        "98d9c66ab07471006fd7910cb16453581c41a3e7"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 20 13:35:07 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 20 13:35:07 2008 -0700"
      },
      "message": "Merge branch \u0027tracing-v28-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027tracing-v28-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (131 commits)\n  tracing/fastboot: improve help text\n  tracing/stacktrace: improve help text\n  tracing/fastboot: fix initcalls disposition in bootgraph.pl\n  tracing/fastboot: fix bootgraph.pl initcall name regexp\n  tracing/fastboot: fix issues and improve output of bootgraph.pl\n  tracepoints: synchronize unregister static inline\n  tracepoints: tracepoint_synchronize_unregister()\n  ftrace: make ftrace_test_p6nop disassembler-friendly\n  markers: fix synchronize marker unregister static inline\n  tracing/fastboot: add better resolution to initcall debug/tracing\n  trace: add build-time check to avoid overrunning hex buffer\n  ftrace: fix hex output mode of ftrace\n  tracing/fastboot: fix initcalls disposition in bootgraph.pl\n  tracing/fastboot: fix printk format typo in boot tracer\n  ftrace: return an error when setting a nonexistent tracer\n  ftrace: make some tracers reentrant\n  ring-buffer: make reentrant\n  ring-buffer: move page indexes into page headers\n  tracing/fastboot: only trace non-module initcalls\n  ftrace: move pc counter in irqtrace\n  ...\n\nManually fix conflicts:\n - init/main.c: initcall tracing\n - kernel/module.c: verbose level vs tracepoints\n - scripts/bootgraph.pl: fallout from cherry-picking commits.\n"
    },
    {
      "commit": "c465a76af658b443075d6efee1c3131257643020",
      "tree": "63c28c9fab02dedec7f03cee4a3ef7fe4dc1c072",
      "parents": [
        "2d42244ae71d6c7b0884b5664cf2eda30fb2ae68",
        "1b02469088ac7a13d7e622b618b7410d0f1ce5ec",
        "fb02fbc14d17837b4b7b02dbb36142c16a7bf208",
        "d40e944c25fb4642adb2a4c580a48218a9f3f824",
        "1508487e7f16d992ad23cabd3712563ff912f413",
        "322acf6585f3c4e82ee32a246b0483ca0f6ad3f4"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Oct 20 13:14:06 2008 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Oct 20 13:14:06 2008 +0200"
      },
      "message": "Merge branches \u0027timers/clocksource\u0027, \u0027timers/hrtimers\u0027, \u0027timers/nohz\u0027, \u0027timers/ntp\u0027, \u0027timers/posixtimers\u0027 and \u0027timers/debug\u0027 into v28-timers-for-linus\n"
    },
    {
      "commit": "0a16b6075843325dc402edf80c1662838b929aff",
      "tree": "124e49d8c0196f3c6eb7aa09a7c4c3c3157fff7a",
      "parents": [
        "4a0897526bbc5c6ac0df80b16b8c60339e717ae2"
      ],
      "author": {
        "name": "Mathieu Desnoyers",
        "email": "mathieu.desnoyers@polymtl.ca",
        "time": "Fri Jul 18 12:16:17 2008 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 14 10:30:52 2008 +0200"
      },
      "message": "tracing, sched: LTTng instrumentation - scheduler\n\nInstrument the scheduler activity (sched_switch, migration, wakeups,\nwait for a task, signal delivery) and process/thread\ncreation/destruction (fork, exit, kthread stop). Actually, kthread\ncreation is not instrumented in this patch because it is architecture\ndependent. It allows to connect tracers such as ftrace which detects\nscheduling latencies, good/bad scheduler decisions. Tools like LTTng can\nexport this scheduler information along with instrumentation of the rest\nof the kernel activity to perform post-mortem analysis on the scheduler\nactivity.\n\nAbout the performance impact of tracepoints (which is comparable to\nmarkers), even without immediate values optimizations, tests done by\nHideo Aoki on ia64 show no regression. His test case was using hackbench\non a kernel where scheduler instrumentation (about 5 events in code\nscheduler code) was added. See the \"Tracepoints\" patch header for\nperformance result detail.\n\nChangelog :\n\n- Change instrumentation location and parameter to match ftrace\n  instrumentation, previously done with kernel markers.\n\n[ mingo@elte.hu: conflict resolutions ]\nSigned-off-by: Mathieu Desnoyers \u003cmathieu.desnoyers@polymtl.ca\u003e\nAcked-by: \u0027Peter Zijlstra\u0027 \u003cpeterz@infradead.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "a5d8c3483a6e19aca95ef6a2c5890e33bfa5b293",
      "tree": "7ace24573f220d799815fe7ad344ca11c262a8ba",
      "parents": [
        "2fb7635c4cea310992a39580133099dd99ad151c"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Oct 09 11:35:51 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Oct 09 17:13:06 2008 +0200"
      },
      "message": "sched debug: add name to sched_domain sysctl entries\n\nadd /proc/sys/kernel/sched_domain/cpu0/domain0/name, to make\nit easier to see which specific scheduler domain remained at\nthat entry.\n\nSince we process the scheduler domain tree and\nsimplify it, it\u0027s not always immediately clear during debugging\nwhich domain came from where.\n\ndepends on CONFIG_SCHED_DEBUG\u003dy.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "34b3ede2353604ec9861c1d900b2a835ff85de47",
      "tree": "c7661ffe4143f5df331b6b2e4813aa48fdd91ca5",
      "parents": [
        "2c10c22af088ab5d94fae93ce3fe6436b2a208b4"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Mon Oct 06 09:27:00 2008 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Oct 06 08:13:34 2008 +0200"
      },
      "message": "sched: remove redundant code in cpu_cgroup_create()\n\ncss will be initialized by cgroup core.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nAcked-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "2c10c22af088ab5d94fae93ce3fe6436b2a208b4",
      "tree": "db27721001f194327ddbdcd6c983c4ec68b77c00",
      "parents": [
        "f6121f4f8708195e88cbdf8dd8d171b226b3f858",
        "fec6ed1d1f9b78a6acb4a3eb2c46c812ac2e96f0"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Oct 06 08:13:18 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Oct 06 08:13:18 2008 +0200"
      },
      "message": "Merge branch \u0027linus\u0027 into sched/devel\n"
    },
    {
      "commit": "1508487e7f16d992ad23cabd3712563ff912f413",
      "tree": "d8e341de10ec868c4f8d4129aa04eadd33f37ca9",
      "parents": [
        "7086efe1c1536f6bc160e7d60a9bfd645b91f279"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Sep 30 08:28:17 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Sep 30 08:28:17 2008 +0200"
      },
      "message": "timers: fix itimer/many thread hang, fix\n\nfix bogus rq dereference: v3 removed the locking but also removed the rq\ninitialization.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "ccc7dadf736639da86f3e0c86832c11a66fc8221",
      "tree": "3f1c0df0a291fec4a10d72cc1ab278ad81e697c5",
      "parents": [
        "b00c1a99e7758f794923c61e5cd55268d61c9469"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Sep 29 15:47:42 2008 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Sep 29 17:09:14 2008 +0200"
      },
      "message": "hrtimer: prevent migration of per CPU hrtimers\n\nImpact: per CPU hrtimers can be migrated from a dead CPU\n\nThe hrtimer code has no knowledge about per CPU timers, but we need to\nprevent the migration of such timers and warn when such a timer is\nactive at migration time.\n\nExplicitely mark the timers as per CPU and use a more understandable\nmode descriptor for the interrupts safe unlocked callback mode, which\nis used by hrtimer_sleeper and the scheduler code.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "7086efe1c1536f6bc160e7d60a9bfd645b91f279",
      "tree": "a5facb5a01052452547ab9a9a47a0260537127fb",
      "parents": [
        "31d9284569e38fb97117497af3e8047a6a3c86f0"
      ],
      "author": {
        "name": "Frank Mayhar",
        "email": "fmayhar@google.com",
        "time": "Fri Sep 12 09:54:39 2008 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Sep 27 20:04:45 2008 +0200"
      },
      "message": "timers: fix itimer/many thread hang, v3\n\n- fix UP lockup\n- another set of UP/SMP cleanups and simplifications\n\nSigned-off-by: Frank Mayhar \u003cfmayhar@google.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "4653f803e6e0d970ffeac0efd2c01743eb6c5228",
      "tree": "5de138ab4aa31c2df68062209f0b166a94739843",
      "parents": [
        "78333cdd0e472180743d35988e576d6ecc6f6ddb"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue Sep 23 15:33:44 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Sep 23 16:23:16 2008 +0200"
      },
      "message": "sched: more sanity checks on the bandwidth settings\n\nWhile playing around with it, I noticed we missed some sanity checks.\nAlso add some comments while we\u0027re there.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "63e5c39859a41591662466028c4d1281c033c05a",
      "tree": "1fbb0c2b76673e9557688ee607aa61d92855bebe",
      "parents": [
        "695698500912c4479ddf4723e492de3970ff8530",
        "fa748203175de7c08f2df80e5a0eeca40329b5e2",
        "c8bfff6dd4d41834f4952cbc49e28e31906a6188"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Sep 23 16:23:05 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Sep 23 16:23:05 2008 +0200"
      },
      "message": "Merge branches \u0027sched/urgent\u0027 and \u0027sched/rt\u0027 into sched/devel\n"
    },
    {
      "commit": "bb34d92f643086d546b49cef680f6f305ed84414",
      "tree": "275887040c96971e133fa20d99517c1fcea76415",
      "parents": [
        "5ce73a4a5a4893a1aa4cdeed1b1a5a6de42c43b6"
      ],
      "author": {
        "name": "Frank Mayhar",
        "email": "fmayhar@google.com",
        "time": "Fri Sep 12 09:54:39 2008 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Sep 23 13:38:44 2008 +0200"
      },
      "message": "timers: fix itimer/many thread hang, v2\n\nThis is the second resubmission of the posix timer rework patch, posted\na few days ago.\n\nThis includes the changes from the previous resubmittion, which addressed\nOleg Nesterov\u0027s comments, removing the RCU stuff from the patch and\nun-inlining the thread_group_cputime() function for SMP.\n\nIn addition, per Ingo Molnar it simplifies the UP code, consolidating much\nof it with the SMP version and depending on lower-level SMP/UP handling to\ntake care of the differences.\n\nIt also cleans up some UP compile errors, moves the scheduler stats-related\nmacros into kernel/sched_stats.h, cleans up a merge error in\nkernel/fork.c and has a few other minor fixes and cleanups as suggested\nby Oleg and Ingo. Thanks for the review, guys.\n\nSigned-off-by: Frank Mayhar \u003cfmayhar@google.com\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "006c75f146e58e080d2b2725a6664f71886e112b",
      "tree": "63d4e651021422aa1b316568661c6a104aeb2ba1",
      "parents": [
        "caea8a03702c147e8ae90da0801e7ba8297b1d46"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Mon Sep 22 14:55:46 2008 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Sep 23 11:02:31 2008 +0200"
      },
      "message": "sched: clarify ifdef tangle\n\n- Add some comments to try to make the ifdef puzzle a bit clearer\n\n- Explicitly inline one of the three init_hrtick() implementations.\n\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "fa748203175de7c08f2df80e5a0eeca40329b5e2",
      "tree": "bead1aac37160b8232218bd947188a6ff5df2596",
      "parents": [
        "cec5eb7be3a104fffd27ca967ee8e15a123050e2"
      ],
      "author": {
        "name": "Rakib Mullick",
        "email": "rakib.mullick@gmail.com",
        "time": "Mon Sep 22 14:55:45 2008 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Sep 23 11:02:13 2008 +0200"
      },
      "message": "sched: fix init_hrtick() section mismatch warning\n\nLD      kernel/built-in.o\nWARNING: kernel/built-in.o(.text+0x326): Section mismatch in reference\nfrom the function init_hrtick() to the variable\n.cpuinit.data:hotplug_hrtick_nb.8\nThe function init_hrtick() references\nthe variable __cpuinitdata hotplug_hrtick_nb.8.\nThis is often because init_hrtick lacks a __cpuinitdata\nannotation or the annotation of hotplug_hrtick_nb.8 is wrong.\n\nSigned-off-by: Md.Rakib H. Mullick \u003crakib.mullick@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "15afe09bf496ae10c989e1a375a6b5da7bd3e16e",
      "tree": "4565659d1084e357eea42e6321a4d304ac950faa",
      "parents": [
        "09b22a2f678ae733801b888c44756d0abd686b8a"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Sat Sep 20 23:38:02 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Sep 22 16:28:32 2008 +0200"
      },
      "message": "sched: wakeup preempt when small overlap\n\nLin Ming reported a 10% OLTP regression against 2.6.27-rc4.\n\nThe difference seems to come from different preemption agressiveness,\nwhich affects the cache footprint of the workload and its effective\ncache trashing.\n\nAggresively preempt a task if its avg overlap is very small, this should\navoid the task going to sleep and find it still running when we schedule\nback to it - saving a wakeup.\n\nReported-by: Lin Ming \u003cming.m.lin@intel.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "f06febc96ba8e0af80bcc3eaec0a109e88275fac",
      "tree": "46dba9432ef25d2eae9434ff2df638c7a268c0f1",
      "parents": [
        "6bfb09a1005193be5c81ebac9f3ef85210142650"
      ],
      "author": {
        "name": "Frank Mayhar",
        "email": "fmayhar@google.com",
        "time": "Fri Sep 12 09:54:39 2008 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Sep 14 16:25:35 2008 +0200"
      },
      "message": "timers: fix itimer/many thread hang\n\nOverview\n\nThis patch reworks the handling of POSIX CPU timers, including the\nITIMER_PROF, ITIMER_VIRT timers and rlimit handling.  It was put together\nwith the help of Roland McGrath, the owner and original writer of this code.\n\nThe problem we ran into, and the reason for this rework, has to do with using\na profiling timer in a process with a large number of threads.  It appears\nthat the performance of the old implementation of run_posix_cpu_timers() was\nat least O(n*3) (where \"n\" is the number of threads in a process) or worse.\nEverything is fine with an increasing number of threads until the time taken\nfor that routine to run becomes the same as or greater than the tick time, at\nwhich point things degrade rather quickly.\n\nThis patch fixes bug 9906, \"Weird hang with NPTL and SIGPROF.\"\n\nCode Changes\n\nThis rework corrects the implementation of run_posix_cpu_timers() to make it\nrun in constant time for a particular machine.  (Performance may vary between\none machine and another depending upon whether the kernel is built as single-\nor multiprocessor and, in the latter case, depending upon the number of\nrunning processors.)  To do this, at each tick we now update fields in\nsignal_struct as well as task_struct.  The run_posix_cpu_timers() function\nuses those fields to make its decisions.\n\nWe define a new structure, \"task_cputime,\" to contain user, system and\nscheduler times and use these in appropriate places:\n\nstruct task_cputime {\n\tcputime_t utime;\n\tcputime_t stime;\n\tunsigned long long sum_exec_runtime;\n};\n\nThis is included in the structure \"thread_group_cputime,\" which is a new\nsubstructure of signal_struct and which varies for uniprocessor versus\nmultiprocessor kernels.  For uniprocessor kernels, it uses \"task_cputime\" as\na simple substructure, while for multiprocessor kernels it is a pointer:\n\nstruct thread_group_cputime {\n\tstruct task_cputime totals;\n};\n\nstruct thread_group_cputime {\n\tstruct task_cputime *totals;\n};\n\nWe also add a new task_cputime substructure directly to signal_struct, to\ncache the earliest expiration of process-wide timers, and task_cputime also\nreplaces the it_*_expires fields of task_struct (used for earliest expiration\nof thread timers).  The \"thread_group_cputime\" structure contains process-wide\ntimers that are updated via account_user_time() and friends.  In the non-SMP\ncase the structure is a simple aggregator; unfortunately in the SMP case that\nsimplicity was not achievable due to cache-line contention between CPUs (in\none measured case performance was actually _worse_ on a 16-cpu system than\nthe same test on a 4-cpu system, due to this contention).  For SMP, the\nthread_group_cputime counters are maintained as a per-cpu structure allocated\nusing alloc_percpu().  The timer functions update only the timer field in\nthe structure corresponding to the running CPU, obtained using per_cpu_ptr().\n\nWe define a set of inline functions in sched.h that we use to maintain the\nthread_group_cputime structure and hide the differences between UP and SMP\nimplementations from the rest of the kernel.  The thread_group_cputime_init()\nfunction initializes the thread_group_cputime structure for the given task.\nThe thread_group_cputime_alloc() is a no-op for UP; for SMP it calls the\nout-of-line function thread_group_cputime_alloc_smp() to allocate and fill\nin the per-cpu structures and fields.  The thread_group_cputime_free()\nfunction, also a no-op for UP, in SMP frees the per-cpu structures.  The\nthread_group_cputime_clone_thread() function (also a UP no-op) for SMP calls\nthread_group_cputime_alloc() if the per-cpu structures haven\u0027t yet been\nallocated.  The thread_group_cputime() function fills the task_cputime\nstructure it is passed with the contents of the thread_group_cputime fields;\nin UP it\u0027s that simple but in SMP it must also safely check that tsk-\u003esignal\nis non-NULL (if it is it just uses the appropriate fields of task_struct) and,\nif so, sums the per-cpu values for each online CPU.  Finally, the three\nfunctions account_group_user_time(), account_group_system_time() and\naccount_group_exec_runtime() are used by timer functions to update the\nrespective fields of the thread_group_cputime structure.\n\nNon-SMP operation is trivial and will not be mentioned further.\n\nThe per-cpu structure is always allocated when a task creates its first new\nthread, via a call to thread_group_cputime_clone_thread() from copy_signal().\nIt is freed at process exit via a call to thread_group_cputime_free() from\ncleanup_signal().\n\nAll functions that formerly summed utime/stime/sum_sched_runtime values from\nfrom all threads in the thread group now use thread_group_cputime() to\nsnapshot the values in the thread_group_cputime structure or the values in\nthe task structure itself if the per-cpu structure hasn\u0027t been allocated.\n\nFinally, the code in kernel/posix-cpu-timers.c has changed quite a bit.\nThe run_posix_cpu_timers() function has been split into a fast path and a\nslow path; the former safely checks whether there are any expired thread\ntimers and, if not, just returns, while the slow path does the heavy lifting.\nWith the dedicated thread group fields, timers are no longer \"rebalanced\" and\nthe process_timer_rebalance() function and related code has gone away.  All\nsumming loops are gone and all code that used them now uses the\nthread_group_cputime() inline.  When process-wide timers are set, the new\ntask_cputime structure in signal_struct is used to cache the earliest\nexpiration; this is checked in the fast path.\n\nPerformance\n\nThe fix appears not to add significant overhead to existing operations.  It\ngenerally performs the same as the current code except in two cases, one in\nwhich it performs slightly worse (Case 5 below) and one in which it performs\nvery significantly better (Case 2 below).  Overall it\u0027s a wash except in those\ntwo cases.\n\nI\u0027ve since done somewhat more involved testing on a dual-core Opteron system.\n\nCase 1: With no itimer running, for a test with 100,000 threads, the fixed\n\tkernel took 1428.5 seconds, 513 seconds more than the unfixed system,\n\tall of which was spent in the system.  There were twice as many\n\tvoluntary context switches with the fix as without it.\n\nCase 2: With an itimer running at .01 second ticks and 4000 threads (the most\n\tan unmodified kernel can handle), the fixed kernel ran the test in\n\teight percent of the time (5.8 seconds as opposed to 70 seconds) and\n\thad better tick accuracy (.012 seconds per tick as opposed to .023\n\tseconds per tick).\n\nCase 3: A 4000-thread test with an initial timer tick of .01 second and an\n\tinterval of 10,000 seconds (i.e. a timer that ticks only once) had\n\tvery nearly the same performance in both cases:  6.3 seconds elapsed\n\tfor the fixed kernel versus 5.5 seconds for the unfixed kernel.\n\nWith fewer threads (eight in these tests), the Case 1 test ran in essentially\nthe same time on both the modified and unmodified kernels (5.2 seconds versus\n5.8 seconds).  The Case 2 test ran in about the same time as well, 5.9 seconds\nversus 5.4 seconds but again with much better tick accuracy, .013 seconds per\ntick versus .025 seconds per tick for the unmodified kernel.\n\nSince the fix affected the rlimit code, I also tested soft and hard CPU limits.\n\nCase 4: With a hard CPU limit of 20 seconds and eight threads (and an itimer\n\trunning), the modified kernel was very slightly favored in that while\n\tit killed the process in 19.997 seconds of CPU time (5.002 seconds of\n\twall time), only .003 seconds of that was system time, the rest was\n\tuser time.  The unmodified kernel killed the process in 20.001 seconds\n\tof CPU (5.014 seconds of wall time) of which .016 seconds was system\n\ttime.  Really, though, the results were too close to call.  The results\n\twere essentially the same with no itimer running.\n\nCase 5: With a soft limit of 20 seconds and a hard limit of 2000 seconds\n\t(where the hard limit would never be reached) and an itimer running,\n\tthe modified kernel exhibited worse tick accuracy than the unmodified\n\tkernel: .050 seconds/tick versus .028 seconds/tick.  Otherwise,\n\tperformance was almost indistinguishable.  With no itimer running this\n\ttest exhibited virtually identical behavior and times in both cases.\n\nIn times past I did some limited performance testing.  those results are below.\n\nOn a four-cpu Opteron system without this fix, a sixteen-thread test executed\nin 3569.991 seconds, of which user was 3568.435s and system was 1.556s.  On\nthe same system with the fix, user and elapsed time were about the same, but\nsystem time dropped to 0.007 seconds.  Performance with eight, four and one\nthread were comparable.  Interestingly, the timer ticks with the fix seemed\nmore accurate:  The sixteen-thread test with the fix received 149543 ticks\nfor 0.024 seconds per tick, while the same test without the fix received 58720\nfor 0.061 seconds per tick.  Both cases were configured for an interval of\n0.01 seconds.  Again, the other tests were comparable.  Each thread in this\ntest computed the primes up to 25,000,000.\n\nI also did a test with a large number of threads, 100,000 threads, which is\nimpossible without the fix.  In this case each thread computed the primes only\nup to 10,000 (to make the runtime manageable).  System time dominated, at\n1546.968 seconds out of a total 2176.906 seconds (giving a user time of\n629.938s).  It received 147651 ticks for 0.015 seconds per tick, still quite\naccurate.  There is obviously no comparable test without the fix.\n\nSigned-off-by: Frank Mayhar \u003cfmayhar@google.com\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "09b22a2f678ae733801b888c44756d0abd686b8a",
      "tree": "6ca52d4011ce6b11c6450d3a574ea6a53cc0d339",
      "parents": [
        "3ba35573ad9a149a3af19625b502679283382f6b",
        "adee14b2e1557d0a8559f29681732d05a89dfc35"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Sep 11 13:37:28 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Sep 11 13:37:28 2008 +0200"
      },
      "message": "Merge commit \u0027v2.6.27-rc6\u0027 into sched/devel\n"
    },
    {
      "commit": "ec5d498991e87c74730509508b25c3959192b7e7",
      "tree": "fb5e9eb769ea7a6468f3c9de3c5d9865ba2d70de",
      "parents": [
        "baf25731e54d06eb13dc4eda78c6dc7da4ce84e8"
      ],
      "author": {
        "name": "Hiroshi Shimamoto",
        "email": "h-shimamoto@ct.jp.nec.com",
        "time": "Wed Sep 10 17:00:19 2008 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Sep 11 09:39:18 2008 +0200"
      },
      "message": "sched: fix deadlock in setting scheduler parameter to zero\n\nAndrei Gusev wrote:\n\n\u003e I played witch scheduler settings. After doing something like:\n\u003e echo -n 1000000 \u003esched_rt_period_us\n\u003e\n\u003e command is locked. I found in kernel.log:\n\u003e\n\u003e Sep 11 00:39:34 zaratustra\n\u003e Sep 11 00:39:34 zaratustra Pid: 4495, comm: bash Tainted: G        W\n\u003e (2.6.26.3 #12)\n\u003e Sep 11 00:39:34 zaratustra EIP: 0060:[\u003cc0213fc7\u003e] EFLAGS: 00210246 CPU: 0\n\u003e Sep 11 00:39:34 zaratustra EIP is at div64_u64+0x57/0x80\n\u003e Sep 11 00:39:34 zaratustra EAX: 0000389f EBX: 00000000 ECX: 00000000\n\u003e EDX: 00000000\n\u003e Sep 11 00:39:34 zaratustra ESI: d9800000 EDI: d9800000 EBP: 0000389f\n\u003e ESP: ea7a6edc\n\u003e Sep 11 00:39:34 zaratustra DS: 007b ES: 007b FS: 0000 GS: 0033 SS: 0068\n\u003e Sep 11 00:39:34 zaratustra Process bash (pid: 4495, ti\u003dea7a6000\n\u003e task\u003dea744000 task.ti\u003dea7a6000)\n\u003e Sep 11 00:39:34 zaratustra Stack: 00000000 000003e8 d9800000 0000389f\n\u003e c0119042 00000000 00000000 00000001\n\u003e Sep 11 00:39:34 zaratustra 00000000 00000000 ea7a6f54 00010000 00000000\n\u003e c04d2e80 00000001 000e7ef0\n\u003e Sep 11 00:39:34 zaratustra c01191a3 00000000 00000000 ea7a6fa0 00000001\n\u003e ffffffff c04d2e80 ea5b2480\n\u003e Sep 11 00:39:34 zaratustra Call Trace:\n\u003e Sep 11 00:39:34 zaratustra [\u003cc0119042\u003e] __rt_schedulable+0x52/0x130\n\u003e Sep 11 00:39:34 zaratustra [\u003cc01191a3\u003e] sched_rt_handler+0x83/0x120\n\u003e Sep 11 00:39:34 zaratustra [\u003cc01a76a6\u003e] proc_sys_call_handler+0xb6/0xd0\n\u003e Sep 11 00:39:34 zaratustra [\u003cc01a76c0\u003e] proc_sys_write+0x0/0x20\n\u003e Sep 11 00:39:34 zaratustra [\u003cc01a76d9\u003e] proc_sys_write+0x19/0x20\n\u003e Sep 11 00:39:34 zaratustra [\u003cc016cc68\u003e] vfs_write+0xa8/0x140\n\u003e Sep 11 00:39:34 zaratustra [\u003cc016cdd1\u003e] sys_write+0x41/0x80\n\u003e Sep 11 00:39:34 zaratustra [\u003cc0103051\u003e] sysenter_past_esp+0x6a/0x91\n\u003e Sep 11 00:39:34 zaratustra \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\u003e Sep 11 00:39:34 zaratustra Code: c8 41 0f ad f3 d3 ee f6 c1 20 0f 45 de\n\u003e 31 f6 0f ad ef d3 ed f6 c1 20 0f 45 fd 0f 45 ee 31 c9 39 eb 89 fe 89 ea\n\u003e 77 08 89 e8 31 d2 \u003cf7\u003e f3 89 c1 89 f0 8b 7c 24 08 f7 f3 8b 74 24 04 89\n\u003e ca 8b 1c 24\n\u003e Sep 11 00:39:34 zaratustra EIP: [\u003cc0213fc7\u003e] div64_u64+0x57/0x80 SS:ESP\n\u003e 0068:ea7a6edc\n\u003e Sep 11 00:39:34 zaratustra ---[ end trace 4eaa2a86a8e2da22 ]---\n\nfix the boundary condition.\n\nsysctl_sched_rt_period\u003d0 makes exception at to_ratio().\n\nSigned-off-by: Hiroshi Shimamoto \u003ch-shimamoto@ct.jp.nec.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "291c54ff764d12ecc9a916cb478a0bbb45c5990e",
      "tree": "bb89231e59e51520d91f102663b793bd34125c41",
      "parents": [
        "49048622eae698e5c4ae61f7e71200f265ccc529",
        "dfb512ec4834116124da61d6c1ee10fd0aa32bd6"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Sep 06 21:03:16 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Sep 06 21:03:16 2008 +0200"
      },
      "message": "Merge branch \u0027sched/cpuset\u0027 into sched/urgent\n"
    },
    {
      "commit": "dfb512ec4834116124da61d6c1ee10fd0aa32bd6",
      "tree": "ea4f847f2a29face1b5774c6d44ec41bf92e302b",
      "parents": [
        "cf417141cbb3a4ceb5cca15b2c1f099bd0a6603c"
      ],
      "author": {
        "name": "Max Krasnyansky",
        "email": "maxk@qualcomm.com",
        "time": "Fri Aug 29 13:11:41 2008 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Sep 06 19:22:15 2008 +0200"
      },
      "message": "sched: arch_reinit_sched_domains() must destroy domains to force rebuild\n\nWhat I realized recently is that calling rebuild_sched_domains() in\narch_reinit_sched_domains() by itself is not enough when cpusets are enabled.\npartition_sched_domains() code is trying to avoid unnecessary domain rebuilds\nand will not actually rebuild anything if new domain masks match the old ones.\n\nWhat this means is that doing\n     echo 1 \u003e /sys/devices/system/cpu/sched_mc_power_savings\non a system with cpusets enabled will not take affect untill something changes\nin the cpuset setup (ie new sets created or deleted).\n\nThis patch fixes restore correct behaviour where domains must be rebuilt in\norder to enable MC powersaving flags.\n\nTest on quad-core Core2 box with both CONFIG_CPUSETS and !CONFIG_CPUSETS.\nAlso tested on dual-core Core2 laptop. Lockdep is happy and things are working\nas expected.\n\nSigned-off-by: Max Krasnyansky \u003cmaxk@qualcomm.com\u003e\nTested-by: Vaidyanathan Srinivasan \u003csvaidy@linux.vnet.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "7f79d852ed30a06eebf7497afe9334a726db3d40",
      "tree": "0057281f17501b635d3d88cda9a14203706f5dcc",
      "parents": [
        "aef745fca016aea45adae5c98e8698904dd8ad51",
        "70bb08962ea9bd50797ae9f16b2493f5f7c65053"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Sep 06 16:51:57 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Sep 06 16:51:57 2008 +0200"
      },
      "message": "Merge branch \u0027linus\u0027 into sched/devel\n"
    },
    {
      "commit": "c8bfff6dd4d41834f4952cbc49e28e31906a6188",
      "tree": "023ce4fb0b61ffa40b48cb96539f0f91c06cb853",
      "parents": [
        "7940ca3605b77f20cc6e9852e4ca6f2d725b5653"
      ],
      "author": {
        "name": "Krzysztof Helt",
        "email": "krzysztof.h1@poczta.fm",
        "time": "Fri Sep 05 23:46:19 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Sep 06 15:17:09 2008 +0200"
      },
      "message": "sched: compilation fix with gcc 3.4.6\n\nI found that 2.6.27-rc5-mm1 does not compile with gcc 3.4.6.\nThe error is:\n  CC      kernel/sched.o\nkernel/sched.c: In function `start_rt_bandwidth\u0027:\nkernel/sched.c:208: sorry, unimplemented: inlining failed in call to \u0027rt_bandwidth_enabled\u0027: function body not available\nkernel/sched.c:214: sorry, unimplemented: called from here\nmake[1]: *** [kernel/sched.o] Error 1\nmake: *** [kernel] Error 2\n\nIt seems that the gcc 3.4.6 requires full inline definition before first usage.\nThe patch below fixes the compilation problem.\n\nSigned-off-by: Krzysztof Helt \u003ckrzysztof.h1@wp.pl\u003e (if needed\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "49048622eae698e5c4ae61f7e71200f265ccc529",
      "tree": "e568595fe5329e1293eafc3a3cc833dfe89ffbf2",
      "parents": [
        "56c7426b3951e4f35a71d695f1c982989399d6fd"
      ],
      "author": {
        "name": "Balbir Singh",
        "email": "balbir@linux.vnet.ibm.com",
        "time": "Fri Sep 05 18:12:23 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Sep 05 18:14:35 2008 +0200"
      },
      "message": "sched: fix process time monotonicity\n\nSpencer reported a problem where utime and stime were going negative despite\nthe fixes in commit b27f03d4bdc145a09fb7b0c0e004b29f1ee555fa. The suspected\nreason for the problem is that signal_struct maintains it\u0027s own utime and\nstime (of exited tasks), these are not updated using the new task_utime()\nroutine, hence sig-\u003eutime can go backwards and cause the same problem\nto occur (sig-\u003eutime, adds tsk-\u003eutime and not task_utime()). This patch\nfixes the problem\n\nTODO: using max(task-\u003eprev_utime, derived utime) works for now, but a more\ngeneric solution is to implement cputime_max() and use the cputime_gt()\nfunction for comparison.\n\nReported-by: spencer@bluehost.com\nSigned-off-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "7940ca3605b77f20cc6e9852e4ca6f2d725b5653",
      "tree": "7c509228518a6a67e71a5ff889f08dd745e09f6f",
      "parents": [
        "9a7e0b180da21885988d47558671cf580279f9d6"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Aug 19 13:40:47 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Aug 28 12:08:00 2008 +0200"
      },
      "message": "sched: extract walk_tg_tree(), fix\n\nfix:\n\n kernel/sched.c: In function \u0027__rt_schedulable\u0027:\n kernel/sched.c:8771: error: implicit declaration of function \u0027walk_tg_tree\u0027\n kernel/sched.c:8771: error: \u0027tg_nop\u0027 undeclared (first use in this function)\n kernel/sched.c:8771: error: (Each undeclared identifier is reported only once\n kernel/sched.c:8771: error: for each function it appears in.)\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "aef745fca016aea45adae5c98e8698904dd8ad51",
      "tree": "fc5278fc828ba274ab8c5f8382345113ef14277c",
      "parents": [
        "29cbef4869bf288256ab76c7dc674cb132b35de2"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Aug 28 11:34:43 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Aug 28 11:36:03 2008 +0200"
      },
      "message": "sched: clean up __might_sleep()\n\nadd KERN_ to the printout and clean up the flow a bit.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "29cbef4869bf288256ab76c7dc674cb132b35de2",
      "tree": "a3b4feba846ffc14ecef52822d4248007322974b",
      "parents": [
        "aec0a5142cb52aaa152d962d84a838e25d520742"
      ],
      "author": {
        "name": "Joe Korty",
        "email": "joe.korty@ccur.com",
        "time": "Wed Aug 27 11:21:39 2008 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Aug 28 11:36:02 2008 +0200"
      },
      "message": "make might_sleep() display the oopsing process\n\nExpand might_sleep\u0027s printk to indicate the oopsing process.\n\nSigned-off-by: Joe Korty \u003cjoe.korty@ccur.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "65eb3dc609dec17deea48dcd4de2e549d29a9824",
      "tree": "e54f0c7f05c7d503c9c3f3bb4c234623f02638f4",
      "parents": [
        "3cf430b0636045dc524759a0852293ba037732a7"
      ],
      "author": {
        "name": "Kevin Diggs",
        "email": "kevdig@hypersurf.com",
        "time": "Tue Aug 26 10:26:54 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Aug 26 10:26:54 2008 +0200"
      },
      "message": "sched: add kernel doc for the completion, fix kernel-doc-nano-HOWTO.txt\n\nThis patch adds kernel doc for the completion feature.\n\nAn error in the split-man.pl PERL snippet in kernel-doc-nano-HOWTO.txt is\nalso fixed.\n\nSigned-off-by: Kevin Diggs \u003ckevdig@hypersurf.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "3cf430b0636045dc524759a0852293ba037732a7",
      "tree": "2c4e03f9028dc23ab4e6ca5a3a5a263af397984f",
      "parents": [
        "93dcf55f828b035fc93fc19eb03c1390e1e6d570",
        "83097aca8567a0bd593534853b71fe0fa9a75d69"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Aug 26 10:25:59 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Aug 26 10:25:59 2008 +0200"
      },
      "message": "Merge branch \u0027linus\u0027 into sched/devel\n"
    },
    {
      "commit": "93dcf55f828b035fc93fc19eb03c1390e1e6d570",
      "tree": "8a5b2ee5c5bb664ff856483244cec1f249a129a3",
      "parents": [
        "f31e11d87a5d7601636710195891ba462ad99f11"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Wed Aug 20 16:54:44 2008 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Aug 22 15:17:31 2008 +0200"
      },
      "message": "wait_task_inactive: \"improve\" the returned value for -\u003envcsw \u003d\u003d 0\n\nwait_task_inactive() returns 1 when p-\u003envcsw \u003d\u003d 0 || p-\u003envcsw \u003d\u003d 1.  This\nmeans that two subsequent calls can return the same number while the task\nwas scheduled in between.\n\nChange the code to return \"nvcsw | LONG_MIN\" instead of \"nvcsw ?: 1\", now\nthe overlap always needs LONG_MAX schedules.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "f31e11d87a5d7601636710195891ba462ad99f11",
      "tree": "84cabe2eccab1bec8a5302f9a6105ebda1fec492",
      "parents": [
        "94d3d8247de22c5b0624aa00616ceca459498e55"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Wed Aug 20 16:54:44 2008 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Aug 22 15:17:29 2008 +0200"
      },
      "message": "wait_task_inactive(): don\u0027t consider task-\u003enivcsw\n\nIf wait_task_inactive() returns success the task was deactivated.  In that\ncase schedule() always increments -\u003envcsw which alone can be used as a\n\"generation counter\".\n\nIf the next call returns the same number, we can be sure that the task was\nunscheduled.  Otherwise, because we know that .on_rq \u003d\u003d 0 again, -\u003envcsw\nshould have been changed in between.\n\nQ: perhaps it is better to do \"ncsw \u003d (p-\u003envcsw \u003c\u003c 1) | 1\" ?  This\ndecreases the possibility of \"was it unscheduled\" false positive when\n-\u003envcsw \u003d\u003d 0.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "94d3d8247de22c5b0624aa00616ceca459498e55",
      "tree": "a01dedc8fb47010b27107c0a13ef0e926cc82589",
      "parents": [
        "f58e2c33ffa31b8d4a71609a5e71e8d893574a07"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Wed Aug 20 16:54:41 2008 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Aug 22 15:17:28 2008 +0200"
      },
      "message": "sched: do_wait_for_common: use signal_pending_state()\n\nChange do_wait_for_common() to use signal_pending_state() instead of open\ncoding.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "9a7e0b180da21885988d47558671cf580279f9d6",
      "tree": "ab1e69b08eb393a91f7bcfa1cc97170d81f36814",
      "parents": [
        "eb755805f21bd5ded84026e167b7a90887ac42e5"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue Aug 19 12:33:06 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Aug 19 13:10:12 2008 +0200"
      },
      "message": "sched: rt-bandwidth fixes\n\nThe last patch allows sysctl_sched_rt_runtime to disable bandwidth accounting\nfor the group scheduler - however it doesn\u0027t deal with sched_setscheduler(),\nwhich will keep tasks out of groups that have no assigned runtime.\n\nIf we relax this, we get into the situation where RT tasks can get into a group\nwhen we disable bandwidth control, and then starve them by enabling it again.\n\nRework the schedulability code to check for this condition and fail to turn\non bandwidth control with -EBUSY when this situation is found.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "eb755805f21bd5ded84026e167b7a90887ac42e5",
      "tree": "fab10d5e9189f93a5ee3f3f614ed1fbdbb34de6e",
      "parents": [
        "0b148fa04852859972abbf848177b92daeef138a"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue Aug 19 12:33:05 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Aug 19 13:10:11 2008 +0200"
      },
      "message": "sched: extract walk_tg_tree()\n\nExtract walk_tg_tree() and make it a little more generic so we can use it\nin the schedulablity test.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "0b148fa04852859972abbf848177b92daeef138a",
      "tree": "12d4b0daa8292fe406871b5aa034d7c9b2fae13d",
      "parents": [
        "6f0d5c390e4206dcb3804a5072a048fdb7d2b428"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue Aug 19 12:33:04 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Aug 19 13:10:10 2008 +0200"
      },
      "message": "sched: rt-bandwidth group disable fixes\n\nMore extensive disable of bandwidth control. It allows sysctl_sched_rt_runtime\nto disable full group bandwidth control.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "c100548d4610f727b95faffd69cb54cb280cd114",
      "tree": "0add41ffba7ced1f4742a327684fdb2bb57148c8",
      "parents": [
        "0473b7992943ee7b182aa4afeb602ba5d37d36e0",
        "55cd53404c5cc5fd94708232e3b4aa4a9388917b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Aug 16 17:15:32 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Aug 16 17:15:32 2008 -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: scale sysctl_sched_shares_ratelimit with nr_cpus\n  sched: fix rt-bandwidth hotplug race\n  sched: fix the race between walk_tg_tree and sched_create_group\n"
    },
    {
      "commit": "55cd53404c5cc5fd94708232e3b4aa4a9388917b",
      "tree": "08a3fe8cf626735bc8cdb96508824c4c49aad265",
      "parents": [
        "f1679d08480008e06fd619c71635ed33274e2595"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Mon Aug 04 08:54:26 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Aug 15 18:25:07 2008 +0200"
      },
      "message": "sched: scale sysctl_sched_shares_ratelimit with nr_cpus\n\nDavid reported that his Niagra spend a little too much time in\ntg_shares_up(), which considering he has a large cpu count makes sense.\n\nSo scale the ratelimit value with the number of cpus like we do for\nother controls as well.\n\nReported-by: David Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "be4de35263f59ca1f4740edfffbfb02cc3f2189e",
      "tree": "7e560d01fdd56172b098e33b7c643de129e93b7b",
      "parents": [
        "e48880e02e7e7ead9daa47fe3a20486f550668d3"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "david@fromorbit.com",
        "time": "Fri Aug 15 00:40:44 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 15 08:35:44 2008 -0700"
      },
      "message": "completions: uninline try_wait_for_completion and completion_done\n\nm68k fails to build with these functions inlined in completion.h.  Move\nthem out of line into sched.c and export them to avoid this problem.\n\nSigned-off-by: Dave Chinner \u003cdavid@fromorbit.com\u003e\nCc: Geert Uytterhoeven \u003cgeert@linux-m68k.org\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "09f2724a786f76475ef2985cf84f5359c553aade",
      "tree": "0c2bf6c6651b14c9ae12150af9ad06b2d9ee8a60",
      "parents": [
        "30a2f3c60a84092c8084dfe788b710f8d0768cd4"
      ],
      "author": {
        "name": "Zhang, Yanmin",
        "email": "yanmin_zhang@linux.intel.com",
        "time": "Wed Aug 14 15:56:40 2030 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Aug 14 10:58:48 2008 +0200"
      },
      "message": "sched: fix the race between walk_tg_tree and sched_create_group\n\nWith 2.6.27-rc3, I hit a kernel panic when running volanoMark on my\nnew x86_64 machine. I also hit it with other 2.6.27-rc kernels.\nSee below log.\n\nBasically, function walk_tg_tree and sched_create_group have a race\nbetween accessing and initiating tg-\u003echildren. Below patch fixes it\nby moving tg-\u003echildren initiation to the front of linking tg-\u003esiblings\nto parent-\u003echildren.\n\n{----------------panic log------------}\n\nBUG: unable to handle kernel NULL pointer dereference at 0000000000000000\nIP: [\u003cffffffff802292ab\u003e] walk_tg_tree+0x45/0x7f\nPGD 1be1c4067 PUD 1bdd8d067 PMD 0\nOops: 0000 [1] SMP\nCPU 11\nModules linked in: igb\nPid: 22979, comm: java Not tainted 2.6.27-rc3 #1\nRIP: 0010:[\u003cffffffff802292ab\u003e]  [\u003cffffffff802292ab\u003e] walk_tg_tree+0x45/0x7f\nRSP: 0018:ffff8801bfbbbd18  EFLAGS: 00010083\nRAX: 0000000000000000 RBX: ffff8800be0dce40 RCX: ffffffffffffffc0\nRDX: ffff880102c43740 RSI: 0000000000000000 RDI: ffff8800be0dce40\nRBP: ffff8801bfbbbd48 R08: ffff8800ba437bc8 R09: 0000000000001f40\nR10: ffff8801be812100 R11: ffffffff805fdf44 R12: ffff880102c43740\nR13: 0000000000000000 R14: ffffffff8022cf0f R15: ffffffff8022749f\nFS:  00000000568ac950(0063) GS:ffff8801bfa26d00(0000) knlGS:0000000000000000\nCS:  0010 DS: 0000 ES: 0000 CR0: 000000008005003b\nCR2: 0000000000000000 CR3: 00000001bd848000 CR4: 00000000000006e0\nDR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000\nDR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400\nProcess java (pid: 22979, threadinfo ffff8801b145a000, task ffff8801bf18e450)\nStack:  0000000000000001 ffff8800ba5c8d60 0000000000000001 0000000000000001\n ffff8800bad1ccb8 0000000000000000 ffff8801bfbbbd98 ffffffff8022ed37\n 0000000000000001 0000000000000286 ffff8801bd5ee180 ffff8800ba437bc8\nCall Trace:\n \u003cIRQ\u003e  [\u003cffffffff8022ed37\u003e] try_to_wake_up+0x71/0x24c\n [\u003cffffffff80247177\u003e] autoremove_wake_function+0x9/0x2e\n [\u003cffffffff80228039\u003e] ? __wake_up_common+0x46/0x76\n [\u003cffffffff802296d5\u003e] __wake_up+0x38/0x4f\n [\u003cffffffff806169cc\u003e] tcp_v4_rcv+0x380/0x62e\n\nSigned-off-by: Zhang Yanmin \u003cyanmin_zhang@linux.intel.com\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "1ea2950884aa320c46315c8ddf62717c6ecf78d0",
      "tree": "3e03cfd79dd3d629ee46bb04771d79250fe52ad3",
      "parents": [
        "67a077dca4e648a662e32cbeaaba8094d2e30229",
        "e26b33e9552c29c1d3fe67dc602c6264c29f5dc7"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 11 16:46:31 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 11 16:46:31 2008 -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, cpu hotplug: fix set_cpus_allowed() use in hotplug callbacks\n  sched: fix mysql+oltp regression\n  sched_clock: delay using sched_clock()\n  sched clock: couple local and remote clocks\n  sched clock: simplify __update_sched_clock()\n  sched: eliminate scd-\u003eprev_raw\n  sched clock: clean up sched_clock_cpu()\n  sched clock: revert various sched_clock() changes\n  sched: move sched_clock before first use\n  sched: test runtime rather than period in global_rt_runtime()\n  sched: fix SCHED_HRTICK dependency\n  sched: fix warning in hrtick_start_fair()\n"
    },
    {
      "commit": "23a0ee908cbfba3264d19729c67c22b20fa73886",
      "tree": "541103f6283cbac6b82cff88a7b91128acfce046",
      "parents": [
        "cc7a486cac78f6fc1a24e8cd63036bae8d2ab431",
        "0f2bc27be27ca1dcc66b96131e44bf7648b959c6"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Aug 12 00:11:49 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Aug 12 00:11:49 2008 +0200"
      },
      "message": "Merge branch \u0027core/locking\u0027 into core/urgent\n"
    },
    {
      "commit": "251a169c69d1ff07cee7a9bb9fc4faff6b1d2ac3",
      "tree": "3c20c3e080f276848f2ad67aadab44a5d64bfda9",
      "parents": [
        "6679ce6e5f519096612b480d255d9ca97be0c2be",
        "796aadeb1b2db9b5d463946766c5bbfd7717158c"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Aug 11 13:40:56 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Aug 11 13:40:56 2008 +0200"
      },
      "message": "Merge branch \u0027linus\u0027 into sched/urgent\n"
    },
    {
      "commit": "1b12bbc747560ea68bcc132c3d05699e52271da0",
      "tree": "0e0fe5b7fe07d411251eebdd053e9e7793820248",
      "parents": [
        "64aa348edc617dea17bbd01ddee4e47886d5ec8c"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Mon Aug 11 09:30:22 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Aug 11 09:30:22 2008 +0200"
      },
      "message": "lockdep: re-annotate scheduler runqueues\n\nInstead of using a per-rq lock class, use the regular nesting operations.\n\nHowever, take extra care with double_lock_balance() as it can release the\nalready held rq-\u003elock (and therefore change its nesting class).\n\nSo what can happen is:\n\n spin_lock(rq-\u003elock);\t// this rq subclass 0\n\n double_lock_balance(rq, other_rq);\n   // release rq\n   // acquire other_rq-\u003elock subclass 0\n   // acquire rq-\u003elock subclass 1\n\n spin_unlock(other_rq-\u003elock);\n\nleaving you with rq-\u003elock in subclass 1\n\nSo a subsequent double_lock_balance() call can try to nest a subclass 1\nlock while already holding a subclass 1 lock.\n\nFix this by introducing double_unlock_balance() which releases the other\nrq\u0027s lock, but also re-sets the subclass for this rq\u0027s lock to 0.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "725aad24c3ba96a7c06448c14c265a466cdbd663",
      "tree": "bbe0eae923736950030751651f70f3ace4cc7693",
      "parents": [
        "5941de8eadc287f3f47b87ce9888734ee07d210b"
      ],
      "author": {
        "name": "Jeremy Fitzhardinge",
        "email": "jeremy@goop.org",
        "time": "Sun Aug 03 09:33:03 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 04 17:16:20 2008 -0700"
      },
      "message": "__sched_setscheduler: don\u0027t do any policy checks when not \"user\"\n\nThe \"user\" parameter to __sched_setscheduler indicates whether the\nchange is being done on behalf of a user process or not.  If not, we\nshouldn\u0027t apply any permissions checks, so don\u0027t call\nsecurity_task_setscheduler().\n\nSigned-off-by: Jeremy Fitzhardinge \u003cjeremy@goop.org\u003e\nTested-by: Steve Wise \u003cswise@opengridcomputing.com\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: \"Rafael J. Wysocki\" \u003crjw@sisk.pl\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5e710e37bde120bb069f691bee68e69ef4393173",
      "tree": "f622aa07d6e1fb5851bd814a98945c7fb1ff9cd2",
      "parents": [
        "e0fdace10e75dac67d906213b780ff1b1a4cc360"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "peterz@infradead.org",
        "time": "Wed Jul 30 13:26:57 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Aug 01 10:46:48 2008 +0200"
      },
      "message": "lockdep: change scheduler annotation\n\nWhile thinking about David\u0027s graph walk lockdep patch it _finally_\ndawned on me that there is no reason we have a lock class per cpu ...\n\nSorry for being dense :-/\n\nThe below changes the annotation from a lock class per cpu, to a single\nnested lock, as the scheduler never holds more that 2 rq locks at a time\nanyway.\n\nIf there was code requiring holding all rq locks this would not work and\nthe original annotation would be the only option, but that not being the\ncase, this is a much lighter one.\n\nCompiles and boots on a 2-way x86_64.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: David Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "f718cd4add5aea9d379faff92f162571e356cc5f",
      "tree": "17ee7b9ed94c819985e4805436dc20b22e587f5f",
      "parents": [
        "5cdc98b8f51310f7cca05ad780f18f80dd9571de"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "andi@firstfloor.org",
        "time": "Tue Jul 29 22:33:52 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jul 30 09:41:47 2008 -0700"
      },
      "message": "sched: make scheduler sysfs attributes sysdev class devices\n\nThey are really class devices, but were incorrectly declared.  This\nleads to crashes with the recent changes that makes non normal sysdevs\nuse a different prototype.\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Pierre Ossman \u003cdrzeus-list@drzeus.cx\u003e\nCc: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e26873bb10f722f10b1af9de05119a3d7cbc07b2",
      "tree": "f5cbfab3e45ee49ff36d18784d2e789687415e15",
      "parents": [
        "94f565598827e2015dce97f4c1ac4871ab84407b"
      ],
      "author": {
        "name": "roel kluin",
        "email": "roel.kluin@gmail.com",
        "time": "Tue Jul 22 16:51:15 2008 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jul 28 15:57:24 2008 +0200"
      },
      "message": "sched: test runtime rather than period in global_rt_runtime()\n\nTest runtime rather than period\n\nSigned-off-by: Roel Kluin \u003croel.kluin@gmail.com\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "85ba2d862e521375a8ee01526c5c46b1f24bb4af",
      "tree": "f098555cb580b2864f145aa845b574f07d2cf694",
      "parents": [
        "1f5a4ad97a0e7b663d527ecc02aabe203d000d91"
      ],
      "author": {
        "name": "Roland McGrath",
        "email": "roland@redhat.com",
        "time": "Fri Jul 25 19:45:58 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jul 26 12:00:09 2008 -0700"
      },
      "message": "tracehook: wait_task_inactive\n\nThis extends wait_task_inactive() with a new argument so it can be used in\na \"soft\" mode where it will check for the task changing state unexpectedly\nand back off.  There is no change to existing callers.  This lays the\ngroundwork to allow robust, noninvasive tracing that can try to sample a\nblocked thread but back off safely if it wakes up.\n\nSigned-off-by: Roland McGrath \u003croland@redhat.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nReviewed-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7babe8db99d305340cf4828ce1f5a1481d5622ef",
      "tree": "fdac7a084646bb6d125ebc62b0b75806e45d1025",
      "parents": [
        "c2147a5092cfe13dbf3210e54e8a622015edeecc"
      ],
      "author": {
        "name": "Eduard - Gabriel Munteanu",
        "email": "eduard.munteanu@linux360.ro",
        "time": "Fri Jul 25 19:45:11 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jul 26 12:00:04 2008 -0700"
      },
      "message": "Full conversion to early_initcall() interface, remove old interface\n\nA previous patch added the early_initcall(), to allow a cleaner hooking of\npre-SMP initcalls.  Now we remove the older interface, converting all\nexisting users to the new one.\n\n[akpm@linux-foundation.org: cleanups]\n[akpm@linux-foundation.org: build fix]\n[kosaki.motohiro@jp.fujitsu.com: warning fix]\n[kosaki.motohiro@jp.fujitsu.com: warning fix]\nSigned-off-by: Eduard - Gabriel Munteanu \u003ceduard.munteanu@linux360.ro\u003e\nCc: Tom Zanussi \u003ctzanussi@gmail.com\u003e\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "49b5cf34727a6c1be1568ab28e89a2d9a6bf51e0",
      "tree": "29505ad668bfadc67a670ad4ebc5c65823a87413",
      "parents": [
        "7394f0f6c0baab650ea9194cb1be847df646fb57"
      ],
      "author": {
        "name": "Jonathan Lim",
        "email": "jlim@sgi.com",
        "time": "Fri Jul 25 01:48:40 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:46 2008 -0700"
      },
      "message": "accounting: account for user time when updating memory integrals\n\nAdapt acct_update_integrals() to include user time when calculating the time\ndifference.  The units of acct_rss_mem1 and acct_vm_mem1 are also changed from\npages-jiffies to pages-usecs to avoid calling jiffies_to_usecs() in\nxacct_add_tsk() which might overflow.\n\nSigned-off-by: Jonathan Lim \u003cjlim@sgi.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7f9dce38378f0a4a298e885553d6bb7121376376",
      "tree": "5bfd688c9f356f7216bbc3cef3b4c10153de334b",
      "parents": [
        "26dcce0fabbef75ae426461edf21b5030bad60f3",
        "ba42059fbd0aa1ac91b582412b5fedb1258f241f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jul 23 19:36:53 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jul 23 19:36:53 2008 -0700"
      },
      "message": "Merge branch \u0027sched/for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027sched/for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  sched: hrtick_enabled() should use cpu_active()\n  sched, x86: clean up hrtick implementation\n  sched: fix build error, provide partition_sched_domains() unconditionally\n  sched: fix warning in inc_rt_tasks() to not declare variable \u0027rq\u0027 if it\u0027s not needed\n  cpu hotplug: Make cpu_active_map synchronization dependency clear\n  cpu hotplug, sched: Introduce cpu_active_map and redo sched domain managment (take 2)\n  sched: rework of \"prioritize non-migratable tasks over migratable ones\"\n  sched: reduce stack size in isolated_cpu_setup()\n  Revert parts of \"ftrace: do not trace scheduler functions\"\n\nFixed up conflicts in include/asm-x86/thread_info.h (due to the\nTIF_SINGLESTEP unification vs TIF_HRTICK_RESCHED removal) and\nkernel/sched_fair.c (due to cpu_active_map vs for_each_cpu_mask_nr()\nintroduction).\n"
    },
    {
      "commit": "26dcce0fabbef75ae426461edf21b5030bad60f3",
      "tree": "56c64fa47dc29f7ea5a8fd0cab0459fb0a05a2bc",
      "parents": [
        "d7b6de14a0ef8a376f9d57b867545b47302b7bfb",
        "eb6a12c2428d21a9f3e0f1a50e927d5fd80fc3d0"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jul 23 18:37:44 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jul 23 18:37:44 2008 -0700"
      },
      "message": "Merge branch \u0027cpus4096-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027cpus4096-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (31 commits)\n  NR_CPUS: Replace NR_CPUS in speedstep-centrino.c\n  cpumask: Provide a generic set of CPUMASK_ALLOC macros, FIXUP\n  NR_CPUS: Replace NR_CPUS in cpufreq userspace routines\n  NR_CPUS: Replace per_cpu(..., smp_processor_id()) with __get_cpu_var\n  NR_CPUS: Replace NR_CPUS in arch/x86/kernel/genapic_flat_64.c\n  NR_CPUS: Replace NR_CPUS in arch/x86/kernel/genx2apic_uv_x.c\n  NR_CPUS: Replace NR_CPUS in arch/x86/kernel/cpu/proc.c\n  NR_CPUS: Replace NR_CPUS in arch/x86/kernel/cpu/mcheck/mce_64.c\n  cpumask: Optimize cpumask_of_cpu in lib/smp_processor_id.c, fix\n  cpumask: Use optimized CPUMASK_ALLOC macros in the centrino_target\n  cpumask: Provide a generic set of CPUMASK_ALLOC macros\n  cpumask: Optimize cpumask_of_cpu in lib/smp_processor_id.c\n  cpumask: Optimize cpumask_of_cpu in kernel/time/tick-common.c\n  cpumask: Optimize cpumask_of_cpu in drivers/misc/sgi-xp/xpc_main.c\n  cpumask: Optimize cpumask_of_cpu in arch/x86/kernel/ldt.c\n  cpumask: Optimize cpumask_of_cpu in arch/x86/kernel/io_apic_64.c\n  cpumask: Replace cpumask_of_cpu with cpumask_of_cpu_ptr\n  Revert \"cpumask: introduce new APIs\"\n  cpumask: make for_each_cpu_mask a bit smaller\n  net: Pass reference to cpumask variable in net/sunrpc/svc.c\n  ...\n\nFix up trivial conflicts in drivers/cpufreq/cpufreq.c manually\n"
    },
    {
      "commit": "4a0b2b4dbe1335b8b9886ba3dc85a145d5d938ed",
      "tree": "c2d3a0f86ade5061a1bb9a14aa702323d729fd54",
      "parents": [
        "36ce6dad6e3cb3f050ed41e0beac0070d2062b25"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "andi@firstfloor.org",
        "time": "Tue Jul 01 18:48:41 2008 +0200"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Jul 21 21:55:02 2008 -0700"
      },
      "message": "sysdev: Pass the attribute to the low level sysdev show/store function\n\nThis allow to dynamically generate attributes and share show/store\nfunctions between attributes. Right now most attributes are generated\nby special macros and lots of duplicated code. With the attribute\npassed it\u0027s instead possible to attach some data to the attribute\nand then use that in shared low level functions to do different things.\n\nI need this for the dynamically generated bank attributes in the x86\nmachine check code, but it\u0027ll allow some further cleanups.\n\nI converted all users in tree to the new show/store prototype. It\u0027s a single\nhuge patch to avoid unbisectable sections.\n\nRuntime tested: x86-32, x86-64\nCompiled only: ia64, powerpc\nNot compile tested/only grep converted: sh, arm, avr32\n\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "ba42059fbd0aa1ac91b582412b5fedb1258f241f",
      "tree": "50ed4c9170ad5d4645303967ca7a99bde369a0f4",
      "parents": [
        "d986434a7d32079cc6cbedcdb04d834aa9b323ff"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Jul 20 11:02:06 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Jul 20 11:02:06 2008 +0200"
      },
      "message": "sched: hrtick_enabled() should use cpu_active()\n\nPeter pointed out that hrtick_enabled() should use cpu_active().\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "d986434a7d32079cc6cbedcdb04d834aa9b323ff",
      "tree": "cf1feb5139d76cef0446945b5cad741c47ae9d8d",
      "parents": [
        "1b427c153a08fdbc092c2bdbf845b92fda58d857",
        "31656519e132f6612584815f128c83976a9aaaef"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Jul 20 11:01:29 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Jul 20 11:01:29 2008 +0200"
      },
      "message": "Merge branch \u0027sched/urgent\u0027 into sched/devel\n"
    },
    {
      "commit": "31656519e132f6612584815f128c83976a9aaaef",
      "tree": "595349fdcd65988d7a43d647594dcea8a8a4e80b",
      "parents": [
        "577b4a58d2e74a4d48050eeea3e3f952ce04eb86"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "peterz@infradead.org",
        "time": "Fri Jul 18 18:01:23 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Jul 20 10:37:28 2008 +0200"
      },
      "message": "sched, x86: clean up hrtick implementation\n\nrandom uvesafb failures were reported against Gentoo:\n\n  http://bugs.gentoo.org/show_bug.cgi?id\u003d222799\n\nand Mihai Moldovan bisected it back to:\n\n\u003e 8f4d37ec073c17e2d4aa8851df5837d798606d6f is first bad commit\n\u003e commit 8f4d37ec073c17e2d4aa8851df5837d798606d6f\n\u003e Author: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\n\u003e Date:   Fri Jan 25 21:08:29 2008 +0100\n\u003e\n\u003e    sched: high-res preemption tick\n\nLinus suspected it to be hrtick + vm86 interaction and observed:\n\n\u003e Btw, Peter, Ingo: I think that commit is doing bad things. They aren\u0027t\n\u003e _incorrect_ per se, but they are definitely bad.\n\u003e\n\u003e Why?\n\u003e\n\u003e Using random _TIF_WORK_MASK flags is really impolite for doing\n\u003e \"scheduling\" work. There\u0027s a reason that arch/x86/kernel/entry_32.S\n\u003e special-cases the _TIF_NEED_RESCHED flag: we don\u0027t want to exit out of\n\u003e vm86 mode unnecessarily.\n\u003e\n\u003e See the \"work_notifysig_v86\" label, and how it does that\n\u003e \"save_v86_state()\" thing etc etc.\n\nRight, I never liked having to fiddle with those TIF flags. Initially I\nneeded it because the hrtimer base lock could not nest in the rq lock.\nThat however is fixed these days.\n\nCurrently the only reason left to fiddle with the TIF flags is remote\nwakeups. We cannot program a remote cpu\u0027s hrtimer. I\u0027ve been thinking\nabout using the new and improved IPI function call stuff to implement\nhrtimer_start_on().\n\nHowever that does require that smp_call_function_single(.wait\u003d0) works\nfrom interrupt context - /me looks at the latest series from Jens - Yes\nthat does seem to be supported, good.\n\nHere\u0027s a stab at cleaning this stuff up ...\n\nMihai reported test success as well.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nTested-by: Mihai Moldovan \u003cionic@ionic.de\u003e\nCc: Michal Januszewski \u003cspock@gentoo.org\u003e\nCc: Antonino Daplas \u003cadaplas@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "e761b7725234276a802322549cee5255305a0930",
      "tree": "27b351a7d5fc9a93590e0effce1c5adb1bfcebc0",
      "parents": [
        "7ebefa8ceefed44cc321be70afc54a585a68ac0b"
      ],
      "author": {
        "name": "Max Krasnyansky",
        "email": "maxk@qualcomm.com",
        "time": "Tue Jul 15 04:43:49 2008 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jul 18 13:22:25 2008 +0200"
      },
      "message": "cpu hotplug, sched: Introduce cpu_active_map and redo sched domain managment (take 2)\n\nThis is based on Linus\u0027 idea of creating cpu_active_map that prevents\nscheduler load balancer from migrating tasks to the cpu that is going\ndown.\n\nIt allows us to simplify domain management code and avoid unecessary\ndomain rebuilds during cpu hotplug event handling.\n\nPlease ignore the cpusets part for now. It needs some more work in order\nto avoid crazy lock nesting. Although I did simplfy and unify domain\nreinitialization logic. We now simply call partition_sched_domains() in\nall the cases. This means that we\u0027re using exact same code paths as in\ncpusets case and hence the test below cover cpusets too.\nCpuset changes to make rebuild_sched_domains() callable from various\ncontexts are in the separate patch (right next after this one).\n\nThis not only boots but also easily handles\n\twhile true; do make clean; make -j 8; done\nand\n\twhile true; do on-off-cpu 1; done\nat the same time.\n(on-off-cpu 1 simple does echo 0/1 \u003e /sys/.../cpu1/online thing).\n\nSuprisingly the box (dual-core Core2) is quite usable. In fact I\u0027m typing\nthis on right now in gnome-terminal and things are moving just fine.\n\nAlso this is running with most of the debug features enabled (lockdep,\nmutex, etc) no BUG_ONs or lockdep complaints so far.\n\nI believe I addressed all of the Dmitry\u0027s comments for original Linus\u0027\nversion. I changed both fair and rt balancer to mask out non-active cpus.\nAnd replaced cpu_is_offline() with !cpu_active() in the main scheduler\ncode where it made sense (to me).\n\nSigned-off-by: Max Krasnyanskiy \u003cmaxk@qualcomm.com\u003e\nAcked-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nAcked-by: Gregory Haskins \u003cghaskins@novell.com\u003e\nCc: dmitry.adamushko@gmail.com\nCc: pj@sgi.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "13b40c1e40f3261e83ee514a08b77dbecb93021b",
      "tree": "2b2aa9f24acaf7486779169dd35f94522c972829",
      "parents": [
        "d88c16919793a9f5dc93e7956da5bb089c7600b4"
      ],
      "author": {
        "name": "Mike Travis",
        "email": "travis@sgi.com",
        "time": "Tue Jul 01 10:32:50 2008 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jul 18 11:55:42 2008 +0200"
      },
      "message": "sched: reduce stack size in isolated_cpu_setup()\n\n  * Remove 16k stack requirements in isolated_cpu_setup when NR_CPUS\u003d4096.\n\nSigned-off-by: Mike Travis \u003ctravis@sgi.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "82638844d9a8581bbf33201cc209a14876eca167",
      "tree": "961d7f9360194421a71aa644a9d0c176a960ce49",
      "parents": [
        "9982fbface82893e77d211fbabfbd229da6bdde6",
        "63cf13b77ab785e87c867defa8545e6d4a989774"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jul 16 00:29:07 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jul 16 00:29:07 2008 +0200"
      },
      "message": "Merge branch \u0027linus\u0027 into cpus4096\n\nConflicts:\n\n\tarch/x86/xen/smp.c\n\tkernel/sched_rt.c\n\tnet/iucv/iucv.c\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "666484f0250db2e016948d63b3ef33e202e3b8d0",
      "tree": "734f48c10aa364965e4f4642ee3de51669e62be2",
      "parents": [
        "d18bb9a548e550f3ced57618e75085fb3f173133",
        "ace7f1b79670aa0c1d9f4b0442be82e565827333"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 14 15:28:42 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 14 15:28:42 2008 -0700"
      },
      "message": "Merge branch \u0027core/softirq\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027core/softirq\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  softirq: remove irqs_disabled warning from local_bh_enable\n  softirq: remove initialization of static per-cpu variable\n  Remove argument from open_softirq which is always NULL\n"
    },
    {
      "commit": "948769a5ba304ed3329a2f42ee3561f04a0b5692",
      "tree": "7430c5fcae383d90c7c0101364440ac24e5cbc18",
      "parents": [
        "e18425a0abc8eafa8e98ecffac517bb0c0904f4b",
        "773dc8eacaedb2e8c8d0defb5de2c66ea7dc4a08"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 14 14:50:49 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 14 14:50:49 2008 -0700"
      },
      "message": "Merge branch \u0027sched/new-API-sched_setscheduler\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027sched/new-API-sched_setscheduler\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  sched: add new API sched_setscheduler_nocheck: add a flag to control access checks\n"
    },
    {
      "commit": "5806b81ac1c0c52665b91723fd4146a4f86e386b",
      "tree": "24ea8763bf308ce1407c1de91dc8de4d2655e1c1",
      "parents": [
        "d14c8a680ccfdeb5e7b9be4d61162c2b373bd1e8",
        "6712e299b7dc78aa4971b85e803435ee6d49a9dd"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jul 14 16:11:52 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jul 14 16:11:52 2008 +0200"
      },
      "message": "Merge branch \u0027auto-ftrace-next\u0027 into tracing/for-linus\n\nConflicts:\n\n\tarch/x86/kernel/entry_32.S\n\tarch/x86/kernel/process_32.c\n\tarch/x86/kernel/process_64.c\n\tarch/x86/lib/Makefile\n\tinclude/asm-x86/irqflags.h\n\tkernel/Makefile\n\tkernel/sched.c\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "d14c8a680ccfdeb5e7b9be4d61162c2b373bd1e8",
      "tree": "38cead29b9b34b9d26b5cfe7b2c2673d6f7ac052",
      "parents": [
        "d59fdcf2ac501de99c3dfb452af5e254d4342886",
        "873a6ed6288b6c2c0d2cc84d3b2bf2fab9ba0181"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jul 14 16:11:02 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jul 14 16:11:02 2008 +0200"
      },
      "message": "Merge branch \u0027sched/for-linus\u0027 into tracing/for-linus\n"
    },
    {
      "commit": "54ef76f37bcccf8c16fbaaed13c3c40825195958",
      "tree": "59afdb95e68f2fbac2550aa42135921086649c38",
      "parents": [
        "032f82786f9be4635acaa5f77feca175a4ac5fe1",
        "9df2fe986770bc4c76e8fe72c20b71268eec39a7"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Jul 13 08:50:13 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Jul 13 08:50:13 2008 +0200"
      },
      "message": "Merge branch \u0027linus\u0027 into sched/devel\n"
    },
    {
      "commit": "ae94b8075a2ed58d2318ef03827b25bc844f844e",
      "tree": "7211f558d841cb40e1015d0b7527643ad55cb8e7",
      "parents": [
        "eca91e7838ec92e8c12122849ec7539c4765b689",
        "a26929fb489188ff959b1715ee67f0c9f84405b5"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Jul 12 07:29:02 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Jul 12 07:29:02 2008 +0200"
      },
      "message": "Merge branch \u0027linus\u0027 into x86/core\n\nConflicts:\n\n\tarch/x86/mm/ioremap.c\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "b1e387348a2a70954312b102d0589c3e2ca3dba1",
      "tree": "79e11e0b1bda79e6e2b085b9d86eb3b9d9dedf29",
      "parents": [
        "dc7fab8b3bb388c57c6c4a43ba68c8a32ca25204"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 10 11:25:03 2008 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Jul 10 20:39:58 2008 +0200"
      },
      "message": "sched: fix cpu hotplug, cleanup\n\nClean up __migrate_task(): to just have separate \"done\" and \"fail\"\ncases, instead of that \"out\" case with random error behavior.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "bac0c9103b31c3dd83ad9d731dd9834e2ba75e4f",
      "tree": "702dd6a7ce06d224d594c2293af546b11ac9f51b",
      "parents": [
        "6329d3021bcfa9038621e6e917d98929421d8ec8",
        "98a05ed4bd7774f533ab185fe0bf2fdc58292d7c"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Jul 10 11:43:00 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Jul 10 11:43:00 2008 +0200"
      },
      "message": "Merge branch \u0027tracing/ftrace\u0027 into auto-ftrace-next\n"
    },
    {
      "commit": "dc7fab8b3bb388c57c6c4a43ba68c8a32ca25204",
      "tree": "4f96ecc3625b3af71d00592f0e47841b8ab849a7",
      "parents": [
        "619b0488038224391e64fa03854651ca0f5efe56"
      ],
      "author": {
        "name": "Dmitry Adamushko",
        "email": "dmitry.adamushko@gmail.com",
        "time": "Thu Jul 10 00:32:40 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Jul 10 09:35:34 2008 +0200"
      },
      "message": "sched: fix cpu hotplug\n\nI think we may have a race between try_to_wake_up() and\nmigrate_live_tasks() -\u003e move_task_off_dead_cpu() when the later one\nmay end up looping endlessly.\n\nInterrupts are enabled on other CPUs when migration_call(CPU_DEAD, ...) is\ncalled so we may get a race between try_to_wake_up() and\nmigrate_live_tasks() -\u003e move_task_off_dead_cpu(). The former one may push\na task out of a dead CPU causing the later one to loop endlessly.\n\nHeiko Carstens observed:\n\n| That\u0027s exactly what explains a dump I got yesterday. Thanks for fixing! :)\n\nSigned-off-by: Dmitry Adamushko \u003cdmitry.adamushko@gmail.com\u003e\nCc: miaox@cn.fujitsu.com\nCc: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nCc: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Avi Kivity \u003cavi@qumranet.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "076ac2af86c3b7f89ac31bc50a7508d3e035b786",
      "tree": "6952562a54dea9a1bef037ca30448f4f4d9bfae8",
      "parents": [
        "886533a3e370a6d5c4e46819d1e14bd2f20dbb3a"
      ],
      "author": {
        "name": "Mike Travis",
        "email": "travis@sgi.com",
        "time": "Mon May 12 21:21:12 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Jul 08 11:31:30 2008 +0200"
      },
      "message": "sched, numa: replace MAX_NUMNODES with nr_node_ids in kernel/sched.c\n\n  * Replace usages of MAX_NUMNODES with nr_node_ids in kernel/sched.c,\n    where appropriate.  This saves some allocated space as well as many\n    wasted cycles going through node entries that are non-existent.\n\nSigned-off-by: Mike Travis \u003ctravis@sgi.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "032f82786f9be4635acaa5f77feca175a4ac5fe1",
      "tree": "11ce43c1086d3dec43c92b0a2cc740240b338fb7",
      "parents": [
        "46ac22bab42cc868b9c1d0e915ddbc8e8065a44d",
        "b7279469d66b55119784b8b9529c99c1955fe747"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jul 07 08:01:26 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jul 07 08:01:26 2008 +0200"
      },
      "message": "Merge commit \u0027v2.6.26-rc9\u0027 into sched/devel\n"
    },
    {
      "commit": "68083e05d72d94f347293d8cc0067050ba904bfa",
      "tree": "842e71365bd90866be7add181661a4039d891564",
      "parents": [
        "7baac8b91f9871ba8cb09af84de4ae1d86d07812",
        "b7279469d66b55119784b8b9529c99c1955fe747"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Jul 06 14:23:39 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Jul 06 14:23:39 2008 +0200"
      },
      "message": "Merge commit \u0027v2.6.26-rc9\u0027 into cpus4096\n"
    },
    {
      "commit": "46ac22bab42cc868b9c1d0e915ddbc8e8065a44d",
      "tree": "407d6a38b698b0e071f6d32c0244d8af2c618fa1",
      "parents": [
        "2087a1ad822cd3a68b73338457047fcc54da726b"
      ],
      "author": {
        "name": "Ankita Garg",
        "email": "ankita@in.ibm.com",
        "time": "Tue Jul 01 14:30:06 2008 +0530"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jul 04 12:50:23 2008 +0200"
      },
      "message": "sched: fix accounting in task delay accounting \u0026 migration\n\nOn Thu, Jun 19, 2008 at 12:27:14PM +0200, Peter Zijlstra wrote:\n\u003e On Thu, 2008-06-05 at 10:50 +0530, Ankita Garg wrote:\n\u003e\n\u003e \u003e Thanks Peter for the explanation...\n\u003e \u003e\n\u003e \u003e I agree with the above and that is the reason why I did not see weird\n\u003e \u003e values with cpu_time. But, run_delay still would suffer skews as the end\n\u003e \u003e points for delta could be taken on different cpus due to migration (more\n\u003e \u003e so on RT kernel due to the push-pull operations). With the below patch,\n\u003e \u003e I could not reproduce the issue I had seen earlier. After every dequeue,\n\u003e \u003e we take the delta and start wait measurements from zero when moved to a\n\u003e \u003e different rq.\n\u003e\n\u003e OK, so task delay delay accounting is broken because it doesn\u0027t take\n\u003e migration into account.\n\u003e\n\u003e What you\u0027ve done is make it symmetric wrt enqueue, and account it like\n\u003e\n\u003e   cpu0      cpu1\n\u003e\n\u003e enqueue\n\u003e  \u003cwait-d1\u003e\n\u003e dequeue\n\u003e             enqueue\n\u003e              \u003cwait-d2\u003e\n\u003e             run\n\u003e\n\u003e Where you add both d1 and d2 to the run_delay,.. right?\n\u003e\n\nThanks for reviewing the patch. The above is exactly what I have done.\n\n\u003e This seems like a good fix, however it looks like the patch will break\n\u003e compilation in !CONFIG_SCHEDSTATS \u0026\u0026 !CONFIG_TASK_DELAY_ACCT, of it\n\u003e failing to provide a stub for sched_info_dequeue() in that case.\n\nFixed. Pl. find the new patch below.\n\nSigned-off-by: Ankita Garg \u003cankita@in.ibm.com\u003e\nAcked-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Gregory Haskins \u003cghaskins@novell.com\u003e\nCc: rostedt@goodmis.org\nCc: suresh.b.siddha@intel.com\nCc: aneesh.kumar@linux.vnet.ibm.com\nCc: dhaval@linux.vnet.ibm.com\nCc: vatsa@linux.vnet.ibm.com\nCc: David Bahi \u003cDBahi@novell.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "2087a1ad822cd3a68b73338457047fcc54da726b",
      "tree": "1ebc45b2499034ffe37b29bf7a748b8e992cd870",
      "parents": [
        "c4acb2c0669c5c5c9b28e9d02a34b5c67edf7092"
      ],
      "author": {
        "name": "Gregory Haskins",
        "email": "ghaskins@novell.com",
        "time": "Fri Jun 27 14:30:00 2008 -0600"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jul 04 12:50:22 2008 +0200"
      },
      "message": "sched: add avg-overlap support to RT tasks\n\nWe have the notion of tracking process-coupling (a.k.a. buddy-wake) via\nthe p-\u003ese.last_wake / p-\u003ese.avg_overlap facilities, but it is only used\nfor cfs to cfs interactions.  There is no reason why an rt to cfs\ninteraction cannot share in establishing a relationhip in a similar\nmanner.\n\nBecause PREEMPT_RT runs many kernel threads as FIFO priority, we often\ntimes have heavy interaction between RT threads waking CFS applications.\nThis patch offers a substantial boost (50-60%+) in perfomance under those\ncircumstances.\n\nSigned-off-by: Gregory Haskins \u003cghaskins@novell.com\u003e\nCc: npiggin@suse.de\nCc: rostedt@goodmis.org\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "c4acb2c0669c5c5c9b28e9d02a34b5c67edf7092",
      "tree": "58a8c98678a204023301e9edfd5e462a65d13851",
      "parents": [
        "30432094a7f506ad24997a3ba6aed913ab61c01d"
      ],
      "author": {
        "name": "Gregory Haskins",
        "email": "ghaskins@novell.com",
        "time": "Fri Jun 27 14:29:55 2008 -0600"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jul 04 12:50:21 2008 +0200"
      },
      "message": "sched: terminate newidle balancing once at least one task has moved over\n\nInspired by Peter Zijlstra.\n\nSigned-off-by: Gregory Haskins \u003cghaskins@novell.com\u003e\nCc: npiggin@suse.de\nCc: rostedt@goodmis.org\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "619b0488038224391e64fa03854651ca0f5efe56",
      "tree": "c74800f53e089c46a0f20df185bcfbe25a698344",
      "parents": [
        "79c537998d143b127c8c662a403c3356cb885f1c"
      ],
      "author": {
        "name": "Raistlin",
        "email": "raistlin@linux.it",
        "time": "Thu Jun 26 18:54:09 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Jul 01 08:23:24 2008 +0200"
      },
      "message": "sched: fix divide error when trying to configure rt_period to zero\n\nHere it is another little Oops we found while configuring invalid values\nvia cgroups:\n\necho 0 \u003e /dev/cgroups/0/cpu.rt_period_us\nor\necho 4294967296 \u003e /dev/cgroups/0/cpu.rt_period_us\n\n[  205.509825] divide error: 0000 [#1]\n[  205.510151] Modules linked in:\n[  205.510151]\n[  205.510151] Pid: 2339, comm: bash Not tainted (2.6.26-rc8 #33)\n[  205.510151] EIP: 0060:[\u003cc030c6ef\u003e] EFLAGS: 00000293 CPU: 0\n[  205.510151] EIP is at div64_u64+0x5f/0x70\n[  205.510151] EAX: 0000389f EBX: 00000000 ECX: 00000000 EDX: 00000000\n[  205.510151] ESI: d9800000 EDI: 00000000 EBP: c6cede60 ESP: c6cede50\n[  205.510151]  DS: 007b ES: 007b FS: 0000 GS: 0033 SS: 0068\n[  205.510151] Process bash (pid: 2339, ti\u003dc6cec000 task\u003dc79be370 task.ti\u003dc6cec000)\n[  205.510151] Stack: d9800000 0000389f c05971a0 d9800000 c6cedeb4 c0214dbd 00000000 00000000\n[  205.510151]        c6cede88 c0242bd8 c05377c0 c7a41b40 00000000 00000000 00000000 c05971a0\n[  205.510151]        c780ed20 c7508494 c7a41b40 00000000 00000002 c6cedebc c05971a0 ffffffea\n[  205.510151] Call Trace:\n[  205.510151]  [\u003cc0214dbd\u003e] ? __rt_schedulable+0x1cd/0x240\n[  205.510151]  [\u003cc0242bd8\u003e] ? cgroup_file_open+0x18/0xe0\n[  205.510151]  [\u003cc0214fe4\u003e] ? tg_set_bandwidth+0xa4/0xf0\n[  205.510151]  [\u003cc0215066\u003e] ? sched_group_set_rt_period+0x36/0x50\n[  205.510151]  [\u003cc021508e\u003e] ? cpu_rt_period_write_uint+0xe/0x10\n[  205.510151]  [\u003cc0242dc5\u003e] ? cgroup_file_write+0x125/0x160\n[  205.510151]  [\u003cc0232c15\u003e] ? hrtimer_interrupt+0x155/0x190\n[  205.510151]  [\u003cc02f047f\u003e] ? security_file_permission+0xf/0x20\n[  205.510151]  [\u003cc0277ad8\u003e] ? rw_verify_area+0x48/0xc0\n[  205.510151]  [\u003cc0283744\u003e] ? dupfd+0x104/0x130\n[  205.510151]  [\u003cc027838c\u003e] ? vfs_write+0x9c/0x160\n[  205.510151]  [\u003cc0242ca0\u003e] ? cgroup_file_write+0x0/0x160\n[  205.510151]  [\u003cc027850d\u003e] ? sys_write+0x3d/0x70\n[  205.510151]  [\u003cc0203019\u003e] ? sysenter_past_esp+0x6a/0x91\n[  205.510151]  \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n[  205.510151] Code: 0f 45 de 31 f6 0f ad d0 d3 ea f6 c1 20 0f 45 c2 0f 45 d6 89 45 f0 89 55 f4 8b 55 f4 31 c9 8b 45 f0 39 d3 89 c6 77 08 89 d0 31 d2 \u003cf7\u003e f3 89 c1 83 c4 08 89 f0 f7 f3 89 ca 5b 5e 5d c3 55 89 e5 56\n[  205.510151] EIP: [\u003cc030c6ef\u003e] div64_u64+0x5f/0x70 SS:ESP 0068:c6cede50\n\nThe attached patch solves the issue for me.\n\nI\u0027m checking as soon as possible for the period not being zero since, if\nit is, going ahead is useless. This way we also save a mutex_lock() and\na read_lock() wrt doing it inside tg_set_bandwidth() or\n__rt_schedulable().\n\nSigned-off-by: Dario Faggioli \u003craistlin@linux.it\u003e\nSigned-off-by: Michael Trimarchi \u003ctrimarchimichael@yahoo.it\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "30432094a7f506ad24997a3ba6aed913ab61c01d",
      "tree": "bbf1a5f354a5e2a492f83453d5a986bf1a190c7c",
      "parents": [
        "34e83e850f5e5ee2a18cd77a5d70d31972a632e6"
      ],
      "author": {
        "name": "Vegard Nossum",
        "email": "vegard.nossum@gmail.com",
        "time": "Fri Jun 27 21:35:50 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jun 30 08:37:32 2008 +0200"
      },
      "message": "sched: fix warning\n\nThis patch fixes the following warning:\n\nkernel/sched.c:1667: warning: \u0027cfs_rq_set_shares\u0027 defined but not used\n\nThis seems the correct way to fix this; cfs_rq_set_shares() is only used\nin a single place, which is also inside #ifdef CONFIG_FAIR_GROUP_SCHED.\n\nSigned-off-by: Vegard Nossum \u003cvegard.nossum@gmail.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "34e83e850f5e5ee2a18cd77a5d70d31972a632e6",
      "tree": "d72ee2385d1281ba3cc2cd52db5d08b3a2cc06f7",
      "parents": [
        "2d452c9b10caeec455eb5e56a0ef4ed485178213"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jun 27 15:42:36 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jun 30 08:37:13 2008 +0200"
      },
      "message": "sched: build fix\n\nfix:\n\nkernel/sched.c: In function ‘sched_group_set_shares\u0027:\nkernel/sched.c:8635: error: implicit declaration of function ‘cfs_rq_set_shares\u0027\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "79c537998d143b127c8c662a403c3356cb885f1c",
      "tree": "ed358cd2f78741b17f87cd74517250f434a34e19",
      "parents": [
        "543cf4cb3fe6f6cae3651ba918b9c56200b257d0"
      ],
      "author": {
        "name": "Dmitry Adamushko",
        "email": "dmitry.adamushko@gmail.com",
        "time": "Sun Jun 29 00:16:56 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Jun 29 08:50:21 2008 +0200"
      },
      "message": "sched: fix cpu hotplug\n\nthe CPU hotplug problems (crashes under high-volume unplug+replug\ntests) seem to be related to migrate_dead_tasks().\n\nFirstly I added traces to see all tasks being migrated with\nmigrate_live_tasks() and migrate_dead_tasks(). On my setup the problem\npops up (the one with \"se \u003d\u003d NULL\" in the loop of\npick_next_task_fair()) shortly after the traces indicate that some has\nbeen migrated with migrate_dead_tasks()). btw., I can reproduce it\nmuch faster now with just a plain cpu down/up loop.\n\n[disclaimer] Well, unless I\u0027m really missing something important in\nthis late hour [/desclaimer] pick_next_task() is not something\nappropriate for migrate_dead_tasks() :-)\n\nthe following change seems to eliminate the problem on my setup\n(although, I kept it running only for a few minutes to get a few\nmessages indicating migrate_dead_tasks() does move tasks and the\nsystem is still ok)\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "f1d239f73200a5803a89e5929fb3abc1596b7589",
      "tree": "33c59b6f2621284af91825ea7fbab718ffe65ade",
      "parents": [
        "83378269a5fad98f562ebc0f09c349575e6cbfe1"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Jun 27 13:41:38 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jun 27 14:31:47 2008 +0200"
      },
      "message": "sched: incremental effective_load()\n\nIncrease the accuracy of the effective_load values.\n\nNot only consider the current increment (as per the attempted wakeup), but\nalso consider the delta between when we last adjusted the shares and the\ncurrent situation.\n\nSigned-off-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Srivatsa Vaddagiri \u003cvatsa@linux.vnet.ibm.com\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "83378269a5fad98f562ebc0f09c349575e6cbfe1",
      "tree": "516128bff6cfe915f93b983e3fe96733707ce09c",
      "parents": [
        "243e0e7b7d3b54749ece2e879ecd7e2a11874443"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Jun 27 13:41:37 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jun 27 14:31:46 2008 +0200"
      },
      "message": "sched: correct wakeup weight calculations\n\nrw_i \u003d {2, 4, 1, 0}\ns_i \u003d {2/7, 4/7, 1/7, 0}\n\nwakeup on cpu0, weight\u003d1\n\nrw\u0027_i \u003d {3, 4, 1, 0}\ns\u0027_i \u003d {3/8, 4/8, 1/8, 0}\n\ns_0 \u003d S * rw_0 / \\Sum rw_j -\u003e\n  \\Sum rw_j \u003d S*rw_0/s_0 \u003d 1*2*7/2 \u003d 7 (correct)\n\ns\u0027_0 \u003d S * (rw_0 + 1) / (\\Sum rw_j + 1) \u003d\n       1 * (2+1) / (7+1) \u003d 3/8 (correct\n\nso we find that adding 1 to cpu0 gains 5/56 in weight\nif say the other cpu were, cpu1, we\u0027d also have to calculate its 4/56 loss\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Srivatsa Vaddagiri \u003cvatsa@linux.vnet.ibm.com\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "2398f2c6d34b43025f274fc42eaca34d23ec2320",
      "tree": "0ff3e9edf12c6b4485e4fa94f47a79b44d75376a",
      "parents": [
        "cd80917e4ff465ea77106f8e4fb631eedc4cf426"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Jun 27 13:41:35 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jun 27 14:31:45 2008 +0200"
      },
      "message": "sched: update shares on wakeup\n\nWe found that the affine wakeup code needs rather accurate load figures\nto be effective. The trouble is that updating the load figures is fairly\nexpensive with group scheduling. Therefore ratelimit the updating.\n\nSigned-off-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Srivatsa Vaddagiri \u003cvatsa@linux.vnet.ibm.com\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "cd80917e4ff465ea77106f8e4fb631eedc4cf426",
      "tree": "0b12aed9293c8b0683e7f74d5d111f5d436fa017",
      "parents": [
        "93b75217df39e6d75889cc6f8050343286aff4a5"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Jun 27 13:41:34 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jun 27 14:31:44 2008 +0200"
      },
      "message": "sched: fix shares boost logic\n\nIn case the domain is empty, pretend there is a single task on each cpu, so\nthat together with the boost logic we end up giving 1/n shares to each\ncpu.\n\nSigned-off-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Srivatsa Vaddagiri \u003cvatsa@linux.vnet.ibm.com\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "93b75217df39e6d75889cc6f8050343286aff4a5",
      "tree": "d3091afd2b88aa9732ff63b3a839bdec358aef7d",
      "parents": [
        "cb5ef42a03a13f95a9ea94e6cda4f7a47497871f"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Jun 27 13:41:33 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jun 27 14:31:44 2008 +0200"
      },
      "message": "sched: disable source/target_load bias\n\nThe bias given by source/target_load functions can be very large, disable\nit by default to get faster convergence.\n\nSigned-off-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Srivatsa Vaddagiri \u003cvatsa@linux.vnet.ibm.com\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "051c67640e771fd6ad1b676fc0c16c379b3c6f80",
      "tree": "b56d9841d0ddb00a715489e83969051f7c4849e0",
      "parents": [
        "4be9daaa1b33701f011f4117f22dc1e45a3e6e34"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Jun 27 13:41:31 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jun 27 14:31:42 2008 +0200"
      },
      "message": "sched: remove prio preference from balance decisions\n\nPriority looses much of its meaning in a hierarchical context. So don\u0027t\nuse it in balance decisions.\n\nSigned-off-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Srivatsa Vaddagiri \u003cvatsa@linux.vnet.ibm.com\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "408ed066b11cf9ee4536573b4269ee3613bd735e",
      "tree": "3b1367dafc96835c2fcbf289a7af808eb2efa605",
      "parents": [
        "bb3469ac9b50f14ad6eba129ca0ad4fd033097a0"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Jun 27 13:41:28 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jun 27 14:31:40 2008 +0200"
      },
      "message": "sched: hierarchical load vs find_busiest_group\n\nfind_busiest_group() has some assumptions about task weight being in the\nNICE_0_LOAD range. Hierarchical task groups break this assumption - fix this\nby replacing it with the average task weight, which will adapt the situation.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Srivatsa Vaddagiri \u003cvatsa@linux.vnet.ibm.com\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "a8a51d5e59561aa5b4d66e19eca819b537783e8f",
      "tree": "b400bc77244a742e737bb9deb94a6911a769e082",
      "parents": [
        "039a1c41b3a489e34593ea1e1687f6fdad6b13ab"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Jun 27 13:41:26 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jun 27 14:31:39 2008 +0200"
      },
      "message": "sched: persistent average load per task\n\nRemove the fall-back to SCHED_LOAD_SCALE by remembering the previous value of\ncpu_avg_load_per_task() - this is useful because of the hierarchical group\nmodel in which task weight can be much smaller.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Srivatsa Vaddagiri \u003cvatsa@linux.vnet.ibm.com\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "039a1c41b3a489e34593ea1e1687f6fdad6b13ab",
      "tree": "162e9b0b7a2472be292089bf4f84623bdc6f34ab",
      "parents": [
        "3e5459b4bea3ca2618cc02d56d12639f2cba531d"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Jun 27 13:41:25 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jun 27 14:31:38 2008 +0200"
      },
      "message": "sched: fix sched_balance_self() smp group balancing\n\nFinding the least idle cpu is more accurate when done with updated shares.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Srivatsa Vaddagiri \u003cvatsa@linux.vnet.ibm.com\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "3e5459b4bea3ca2618cc02d56d12639f2cba531d",
      "tree": "bf931bd0cb3f653a62045c99beaed837242dd773",
      "parents": [
        "c8cba857b4997d5b00451d01474638f6a153f713"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Jun 27 13:41:24 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jun 27 14:31:37 2008 +0200"
      },
      "message": "sched: fix newidle smp group balancing\n\nRe-compute the shares on newidle - so we can make a decision based on\nrecent data.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Srivatsa Vaddagiri \u003cvatsa@linux.vnet.ibm.com\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "c8cba857b4997d5b00451d01474638f6a153f713",
      "tree": "a784dce37d72ae20a0efb81b8e498b504a207650",
      "parents": [
        "a25b5aca8740ea99d5e18dfc71235a52b685dcf7"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Jun 27 13:41:23 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jun 27 14:31:36 2008 +0200"
      },
      "message": "sched: simplify the group load balancer\n\nWhile thinking about the previous patch - I realized that using per domain\naggregate load values in load_balance_fair() is wrong. We should use the\nload value for that CPU.\n\nBy not needing per domain hierarchical load values we don\u0027t need to store\nper domain aggregate shares, which greatly simplifies all the math.\n\nIt basically falls apart in two separate computations:\n - per domain update of the shares\n - per CPU update of the hierarchical load\n\nAlso get rid of the move_group_shares() stuff - just re-compute the shares\nagain after a successful load balance.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Srivatsa Vaddagiri \u003cvatsa@linux.vnet.ibm.com\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "a25b5aca8740ea99d5e18dfc71235a52b685dcf7",
      "tree": "834bcfd9a51f840cc10693348ecffc99ce69550d",
      "parents": [
        "d3f40dbab954d83383b6a516582d5c09cc216dcc"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Jun 27 13:41:22 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jun 27 14:31:35 2008 +0200"
      },
      "message": "sched: no need to aggregate task_weight\n\nWe only need to know the task_weight of the busiest rq - nothing to do\nif there are no tasks there.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Srivatsa Vaddagiri \u003cvatsa@linux.vnet.ibm.com\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "d3f40dbab954d83383b6a516582d5c09cc216dcc",
      "tree": "db50344cb0dfa11a214f7758c4254b9ffeb9f118",
      "parents": [
        "53fecd8ae1900fb571086f54f664051004665b55"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Jun 27 13:41:21 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jun 27 14:31:34 2008 +0200"
      },
      "message": "sched: dont micro manage share losses\n\nWe used to try and contain the loss of \u0027shares\u0027 by playing arithmetic\ngames. Replace that by noticing that at the top sched_domain we\u0027ll\nalways have the full weight in shares to distribute.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Srivatsa Vaddagiri \u003cvatsa@linux.vnet.ibm.com\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "4d8d595dfa69e1c807bf928f364668a7f30da5dc",
      "tree": "af61c1d6d53aea66fac272e7dad67ae93a832a66",
      "parents": [
        "b6a86c746f5b708012809958462234d19e9c8177"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Jun 27 13:41:19 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jun 27 14:31:33 2008 +0200"
      },
      "message": "sched: update aggregate when holding the RQs\n\nIt was observed that in __update_group_shares_cpu()\n\n  rq_weight \u003e aggregate()-\u003erq_weight\n\nThis is caused by forks/wakeups in between the initial aggregate pass and\nlocking of the RQs for load balance. To avoid this situation partially re-do\nthe aggregation once we have the RQs locked (which avoids new tasks from\nappearing).\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Srivatsa Vaddagiri \u003cvatsa@linux.vnet.ibm.com\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "b6a86c746f5b708012809958462234d19e9c8177",
      "tree": "38654c70da6382f50779ede1e973d2d395f38e54",
      "parents": [
        "32df2ee86a580f70f2dbb90cf81f413aa655f838"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Jun 27 13:41:18 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jun 27 14:31:32 2008 +0200"
      },
      "message": "sched: fix sched_domain aggregation\n\nKeeping the aggregate on the first cpu of the sched domain has two problems:\n - it could collide between different sched domains on different cpus\n - it could slow things down because of the remote accesses\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Srivatsa Vaddagiri \u003cvatsa@linux.vnet.ibm.com\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "103638d95ba5b0c53c8d9c0cb581156ccc8513ee",
      "tree": "56d78e3e00780e044ef7688f27c93ece813035c1",
      "parents": [
        "76a2a6ee8a0660a29127f05989ac59ae1ce865fa"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Jun 27 13:41:16 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jun 27 14:31:31 2008 +0200"
      },
      "message": "sched: fix wakeup granularity and buddy granularity\n\nUncouple buddy selection from wakeup granularity.\n\nThe initial idea was that buddies could run ahead as far as a normal task\ncan - do this by measuring a pair \u0027slice\u0027 just as we do for a normal task.\n\nThis means we can drop the wakeup_granularity back to 5ms.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Srivatsa Vaddagiri \u003cvatsa@linux.vnet.ibm.com\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "76a2a6ee8a0660a29127f05989ac59ae1ce865fa",
      "tree": "93ae1dd3cc5f564fc1e9d30bcdb0cd313f67221a",
      "parents": [
        "c09595f63bb1909c5dc4dca288f4fe818561b5f3"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Jun 27 13:41:15 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jun 27 14:31:30 2008 +0200"
      },
      "message": "sched: sched_clock_cpu() based cpu_clock()\n\nwith sched_clock_cpu() being reasonably in sync between cpus (max 1 jiffy\ndifference) use this to provide cpu_clock().\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Srivatsa Vaddagiri \u003cvatsa@linux.vnet.ibm.com\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "c09595f63bb1909c5dc4dca288f4fe818561b5f3",
      "tree": "42631e6986f3ea4543b125ca62a99df8548e0eb9",
      "parents": [
        "ced8aa16e1db55c33c507174c1b1f9e107445865"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Jun 27 13:41:14 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jun 27 14:31:29 2008 +0200"
      },
      "message": "sched: revert revert of: fair-group: SMP-nice for group scheduling\n\nTry again..\n\nInitial commit: 18d95a2832c1392a2d63227a7a6d433cb9f2037e\nRevert: 6363ca57c76b7b83639ca8c83fc285fa26a7880e\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Srivatsa Vaddagiri \u003cvatsa@linux.vnet.ibm.com\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "a7be37ac8e1565e00880531f4e2aff421a21c803",
      "tree": "82eb64ba5b221c3abea6d6f56c692841faea813a",
      "parents": [
        "bf647b62fdb948e757a7b4d18d4f16e3c763b1d1"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Jun 27 13:41:11 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jun 27 14:31:27 2008 +0200"
      },
      "message": "sched: revert the revert of: weight calculations\n\nTry again..\n\ninitial commit: 8f1bc385cfbab474db6c27b5af1e439614f3025c\nrevert: f9305d4a0968201b2818dbed0dc8cb0d4ee7aeb3\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Srivatsa Vaddagiri \u003cvatsa@linux.vnet.ibm.com\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "97e6722b8d6b5880c4d5751127d5083b1b7df27d",
      "tree": "060c52298d42530f975064f7addc4e637fe00289",
      "parents": [
        "f22f9a89ce6857d377bf22dba4c1a8cd256c5136",
        "543cf4cb3fe6f6cae3651ba918b9c56200b257d0"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jun 25 12:27:56 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jun 25 12:27:56 2008 +0200"
      },
      "message": "Merge branch \u0027linus\u0027 into tracing/ftrace\n"
    },
    {
      "commit": "773dc8eacaedb2e8c8d0defb5de2c66ea7dc4a08",
      "tree": "1bfa945dcfbcc4a60e31714f768ef38155c621d3",
      "parents": [
        "961ccddd59d627b89bd3dc284b6517833bbdf25d",
        "543cf4cb3fe6f6cae3651ba918b9c56200b257d0"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jun 25 12:27:05 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jun 25 12:27:05 2008 +0200"
      },
      "message": "Merge branch \u0027linus\u0027 into sched/new-API-sched_setscheduler\n"
    },
    {
      "commit": "f57aec5a871907427060196f6bac3d0011b38450",
      "tree": "fec11fec6cf8e2454e07bd04ac137cad85075611",
      "parents": [
        "1de8644cc7c826e0c41e52825bd5a12e2e31e6ca",
        "543cf4cb3fe6f6cae3651ba918b9c56200b257d0"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jun 25 12:26:59 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jun 25 12:26:59 2008 +0200"
      },
      "message": "Merge branch \u0027linus\u0027 into sched/devel\n\nConflicts:\n\n\tkernel/sched_rt.c\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "ace7f1b79670aa0c1d9f4b0442be82e565827333",
      "tree": "ed4625a9cbc8e28db2b1ff9fad111c4c012508a3",
      "parents": [
        "a60b33cf59d1c9e0e363287fce799cb23d45660c",
        "543cf4cb3fe6f6cae3651ba918b9c56200b257d0"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jun 25 12:23:59 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jun 25 12:23:59 2008 +0200"
      },
      "message": "Merge branch \u0027linus\u0027 into core/softirq\n"
    }
  ],
  "next": "961ccddd59d627b89bd3dc284b6517833bbdf25d"
}
