)]}'
{
  "log": [
    {
      "commit": "2c53d9109f077900e140edb8b766132ad93b81cc",
      "tree": "082c063da6c83fe2a2aa84ed0b33c504e19d05f4",
      "parents": [
        "edb79a213223488735fae1d408f4c136e9ed25d6"
      ],
      "author": {
        "name": "Aravind Srinivasan",
        "email": "raa.aars@gmail.com",
        "time": "Thu Apr 02 16:58:59 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:05:05 2009 -0700"
      },
      "message": "relay: fix for possible loss/corruption of produced subbufs\n\nFix possible loss/corruption of produced subbufs in\nrelay_subbufs_consumed().\n\nWhen buf-\u003esubbufs_produced wraps around after UINT_MAX and\nbuf-\u003esubbufs_consumed is still \u003c UINT_MAX, the condition\n\n\tif (buf-\u003esubbufs_consumed \u003e buf-\u003esubbufs_produced)\n\nwill be true even for certain valid values of subbufs_consumed.  This may\nlead to loss or corruption of produced subbufs.\n\nSigned-off-by: Aravind Srinivasan \u003craa.aars@gmail.com\u003e\nCc: Tom Zanussi \u003ctzanussi@gmail.com\u003e\nCc: Tom Zanussi \u003czanussi@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "edb79a213223488735fae1d408f4c136e9ed25d6",
      "tree": "b89191aec3c415256ee2d5a646a4f2afb1125c89",
      "parents": [
        "04d491ab2a53008a1aa98ac09561768c7f3adda3"
      ],
      "author": {
        "name": "Dmitri Vorobiev",
        "email": "dmitri.vorobiev@movial.com",
        "time": "Thu Apr 02 16:58:58 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:05:04 2009 -0700"
      },
      "message": "kexec: vmcoreinfo_data[] can become static\n\nThe vmcoreinfo_data[] array is not used outside of kernel/kexec.c, and\ncan therefore become static. This patch adds the relevant keyword to the\ndefinition of the array.\n\nNoticed by sparse.\n\nSigned-off-by: Dmitri Vorobiev \u003cdmitri.vorobiev@movial.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "04d491ab2a53008a1aa98ac09561768c7f3adda3",
      "tree": "ab8fff6fb8674c8061b733ce64d6d6fba9d68ff3",
      "parents": [
        "23c36c1aec895fd52d7dd8cd3ce4bbce43c969fd"
      ],
      "author": {
        "name": "Neil Horman",
        "email": "nhorman@tuxdriver.com",
        "time": "Thu Apr 02 16:58:57 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:05:04 2009 -0700"
      },
      "message": "kexec: add dmesg log symbols to /proc/vmcoreinfo lists\n\nIt would be nice to be able to extract the dmesg log from a vmcore file\nwithout needing to keep the debug symbols for the running kernel handy all\nthe time.  We have a facility to do this in /proc/vmcore.  This patch adds\nthe log_buf and log_end symbols to the vmcoreinfo area so that tools (like\nmakedumpfile) can easily extract the dmesg logs from a vmcore image.\n\n[akpm@linux-foundation.org: several fixes and cleanups]\n[akpm@linux-foundation.org: fix unused log_buf_kexec_setup()]\n[akpm@linux-foundation.org: build fix]\nSigned-off-by: Neil Horman \u003cnhorman@tuxdriver.com\u003e\nCc: Simon Horman \u003chorms@verge.net.au\u003e\nAcked-by: Vivek Goyal \u003cvgoyal@redhat.com\u003e\nCc: Neil Horman \u003cnhorman@tuxdriver.com\u003e\nCc: Simon Horman \u003chorms@verge.net.au\u003e\nCc: Vivek Goyal \u003cvgoyal@redhat.com\u003e\nCc: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1b0f7ffd0ea27cd3a0b9ca04e3df9522048c32a3",
      "tree": "a8c27acdf95f55f93fe86661c6cba4cd36c8e4f1",
      "parents": [
        "52ee2dfdd4f51cf422ea6a96a0846dc94244aa37"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Thu Apr 02 16:58:39 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:05:02 2009 -0700"
      },
      "message": "pids: kill signal_struct-\u003e __pgrp/__session and friends\n\nWe are wasting 2 words in signal_struct without any reason to implement\ntask_pgrp_nr() and task_session_nr().\n\ntask_session_nr() has no callers since\n2e2ba22ea4fd4bb85f0fa37c521066db6775cbef, we can remove it.\n\ntask_pgrp_nr() is still (I believe wrongly) used in fs/autofsX and\nfs/coda.\n\nThis patch reimplements task_pgrp_nr() via task_pgrp_nr_ns(), and kills\n__pgrp/__session and the related helpers.\n\nThe change in drivers/char/tty_io.c is cosmetic, but hopefully makes sense\nanyway.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Alan Cox \u003cnumber6@the-village.bc.nu\u003e\t\t[tty parts]\nCc: Cedric Le Goater \u003cclg@fr.ibm.com\u003e\nCc: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nCc: Eric Biederman \u003cebiederm@xmission.com\u003e\nCc: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: Serge Hallyn \u003cserue@us.ibm.com\u003e\nCc: Sukadev Bhattiprolu \u003csukadev@linux.vnet.ibm.com\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "52ee2dfdd4f51cf422ea6a96a0846dc94244aa37",
      "tree": "e15753e01d2c2fbe980edc45f78a9ae77d2cf891",
      "parents": [
        "2ae448efc87df6d328f5835969076c7f9fce59c3"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Thu Apr 02 16:58:38 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:05:02 2009 -0700"
      },
      "message": "pids: refactor vnr/nr_ns helpers to make them safe\n\nInho, the safety rules for vnr/nr_ns helpers are horrible and buggy.\n\ntask_pid_nr_ns(task) needs rcu/tasklist depending on task \u003d\u003d current.\n\nAs for \"special\" pids, vnr/nr_ns helpers always need rcu.  However, if\ntask !\u003d current, they are unsafe even under rcu lock, we can\u0027t trust\ntask-\u003egroup_leader without the special checks.\n\nAnd almost every helper has a callsite which needs a fix.\n\nAlso, it is a bit annoying that the implementations of, say,\ntask_pgrp_vnr() and task_pgrp_nr_ns() are not \"symmetrical\".\n\nThis patch introduces the new helper, __task_pid_nr_ns(), which is always\nsafe to use, and turns all other helpers into the trivial wrappers.\n\nAfter this I\u0027ll send another patch which converts task_tgid_xxx() as well,\nthey\u0027re are a bit special.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Louis Rilling \u003cLouis.Rilling@kerlabs.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: Sukadev Bhattiprolu \u003csukadev@linux.vnet.ibm.com\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2ae448efc87df6d328f5835969076c7f9fce59c3",
      "tree": "f110b43fa7c6b3c80f9b18a8e4fef728ed57f448",
      "parents": [
        "6dda81f4384b94930826eded254d8c16f89a9248"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Thu Apr 02 16:58:36 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:05:02 2009 -0700"
      },
      "message": "pids: improve get_task_pid() to fix the unsafe sys_wait4()-\u003etask_pgrp()\n\nsys_wait4() does get_pid(task_pgrp(current)), this is not safe.  We can\nadd rcu lock/unlock around, but we already have get_task_pid() which can\nbe improved to handle the special pids in more reliable manner.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Louis Rilling \u003cLouis.Rilling@kerlabs.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: Sukadev Bhattiprolu \u003csukadev@linux.vnet.ibm.com\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8e654fba4a376f436bdfe361fc5cdbc87ac09b35",
      "tree": "849159802c4aec512a2d0671d88a04947c5165b2",
      "parents": [
        "303d379c54fc9ed553562e36c1cbd1791a3f5d17"
      ],
      "author": {
        "name": "Matthew Wilcox",
        "email": "matthew@wil.cx",
        "time": "Thu Apr 02 16:58:33 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:05:01 2009 -0700"
      },
      "message": "sysctl: fix suid_dumpable and lease-break-time sysctls\n\nArne de Bruijn points out that commit\n76fdbb25f963de5dc1e308325f0578a2f92b1c2d (\"coredump masking: bound\nsuid_dumpable sysctl\") mistakenly limits lease-break-time instead of\nsuid_dumpable.\n\nSigned-off-by: Matthew Wilcox \u003cmatthew@wil.cx\u003e\nReported-by: Arne de Bruijn \u003ckernelbt@arbruijn.dds.nl\u003e\nCc: Kawai, Hidehiro \u003chidehiro.kawai.ez@hitachi.com\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "11dea1900931ac73184b2f5163a13d24a4e572ea",
      "tree": "409e081e9afa0cc8f05ae0051942de99a79cd9f0",
      "parents": [
        "e562aebc6ccd4385cbbf24debe88ab4bb500c5b4"
      ],
      "author": {
        "name": "Serge E. Hallyn",
        "email": "serue@us.ibm.com",
        "time": "Thu Apr 02 16:58:27 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:05:01 2009 -0700"
      },
      "message": "proc_sysctl: use CONFIG_PROC_SYSCTL around ipc and utsname proc_handlers\n\nAs pointed out by Cedric Le Goater (in response to Alexey\u0027s original\ncomment wrt mqns), ipc_sysctl.c and utsname_sysctl.c are using\nCONFIG_PROC_FS, not CONFIG_PROC_SYSCTL, to determine whether to define\nthe proc_handlers.  Change that.\n\nSigned-off-by: Serge E. Hallyn \u003cserue@us.ibm.com\u003e\nCc: Cedric Le Goater \u003cclg@fr.ibm.com\u003e\nAcked-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2355b70fd59cb5be7de2052a9edeee7afb7ff099",
      "tree": "93f192f9dab4748a313ec8d78041b1937e232f33",
      "parents": [
        "1ee1184485df9c9a3503d3a684b911fb7c73d259"
      ],
      "author": {
        "name": "Lai Jiangshan",
        "email": "laijs@cn.fujitsu.com",
        "time": "Thu Apr 02 16:58:24 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:05:00 2009 -0700"
      },
      "message": "workqueue: avoid recursion in run_workqueue()\n\n1) lockdep will complain when run_workqueue() performs recursion.\n\n2) The recursive implementation of run_workqueue() means that\n   flush_workqueue() and its documentation are inconsistent.  This may\n   hide deadlocks and other bugs.\n\n3) The recursion in run_workqueue() will poison cwq-\u003ecurrent_work, but\n   flush_work() and __cancel_work_timer(), etcetera need a reliable\n   cwq-\u003ecurrent_work.\n\nSigned-off-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nAcked-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1ee1184485df9c9a3503d3a684b911fb7c73d259",
      "tree": "0216bc3ebccf1c44b86617cd06e7b93510ef5bb8",
      "parents": [
        "95a3540da9c81a5987be810e1d9a83640a366bd5"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Thu Apr 02 16:58:23 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:05:00 2009 -0700"
      },
      "message": "ptrace_untrace: fix the SIGNAL_STOP_STOPPED check\n\nThis bug is ancient too. ptrace_untrace() must not resume the task\nif the group stop in progress, we should set TASK_STOPPED instead.\n\nUnfortunately, we still have problems here:\n\n\t- if the process/thread was traced, SIGNAL_STOP_STOPPED\n\t  does not necessary means this thread group is stopped.\n\n\t- ptrace breaks the bookkeeping of -\u003egroup_stop_count.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Jerome Marchand \u003cjmarchan@redhat.com\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nCc: Denys Vlasenko \u003cdvlasenk@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "95a3540da9c81a5987be810e1d9a83640a366bd5",
      "tree": "d5143f232f885f6aa8829288dc0ceb2cd9e6e34e",
      "parents": [
        "bb24c679a51b1a9b726b901330649e3861814ac0"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Thu Apr 02 16:58:21 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:05:00 2009 -0700"
      },
      "message": "ptrace_detach: the wrong wakeup breaks the ERESTARTxxx logic\n\nAnother ancient bug. Consider this trivial test-case,\n\n\tint main(void)\n\t{\n\t\tint pid \u003d fork();\n\n\t\tif (pid) {\n\t\t\tptrace(PTRACE_ATTACH, pid, NULL, NULL);\n\t\t\twait(NULL);\n\t\t\tptrace(PTRACE_DETACH, pid, NULL, NULL);\n\t\t} else {\n\t\t\tpause();\n\t\t\tprintf(\"WE HAVE A KERNEL BUG!!!\\n\");\n\t\t}\n\n\t\treturn 0;\n\t}\n\nthe child must not \"escape\" for sys_pause(), but it can and this was seen\nin practice.\n\nThis is because ptrace_detach does:\n\n\tif (!child-\u003eexit_state)\n\t\twake_up_process(child);\n\nthis wakeup can happen after this child has already restarted sys_pause(),\nbecause it gets another wakeup from ptrace_untrace().\n\nWith or without this patch, perhaps sys_pause() needs a fix.  But this\nwakeup also breaks the SIGNAL_STOP_STOPPED logic in ptrace_untrace().\n\nRemove this wakeup.  The caller saw this task in TASK_TRACED state, and\nunless it was SIGKILL\u0027ed in between __ptrace_unlink()-\u003eptrace_untrace()\nshould handle this case correctly.  If it was SIGKILL\u0027ed, we don\u0027t need to\nwakup the dying tracee too.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Jerome Marchand \u003cjmarchan@redhat.com\u003e\nAcked-by: Roland McGrath \u003croland@redhat.com\u003e\nCc: Denys Vlasenko \u003cdvlasenk@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5dfc80be73dd0c212d2e6dd8dbf5afa07e680bbe",
      "tree": "ac173fb3fcfe2970781591f620f22d30f4ce090c",
      "parents": [
        "39c626ae47c469abdfd30c6e42eff884931380d6"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Thu Apr 02 16:58:19 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:05:00 2009 -0700"
      },
      "message": "forget_original_parent: do not abuse child-\u003eptrace_entry\n\nBy discussion with Roland.\n\n- Use -\u003esibling instead of -\u003eptrace_entry to chain the need to be\n  release_task\u0027d childs. Nobody else can use -\u003esibling, this task\n  is EXIT_DEAD and nobody can find it on its own list.\n\n- rename ptrace_dead to dead_childs.\n\n- Now that we don\u0027t have the \"parallel\" untrace code, change back\n  reparent_thread() to return void, pass dead_childs as an argument.\n\nActually, I don\u0027t understand why do we notify /sbin/init when we\nreparent a zombie, probably it is better to reap it unconditionally.\n\n[akpm@linux-foundation.org: s/childs/children/]\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: \"Metzger, Markus T\" \u003cmarkus.t.metzger@intel.com\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "39c626ae47c469abdfd30c6e42eff884931380d6",
      "tree": "58cbe75bac79ce8ef55c94189df26448d0283918",
      "parents": [
        "7f5d3652d469cdf9eb2365dfea7ce3fb9e1409cc"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Thu Apr 02 16:58:18 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:05:00 2009 -0700"
      },
      "message": "forget_original_parent: split out the un-ptrace part\n\nBy discussion with Roland.\n\n- Rename ptrace_exit() to exit_ptrace(), and change it to do all the\n  necessary work with -\u003eptraced list by its own.\n\n- Move this code from exit.c to ptrace.c\n\n- Update the comment in ptrace_detach() to explain the rechecking of\n  the child-\u003eptrace.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: \"Metzger, Markus T\" \u003cmarkus.t.metzger@intel.com\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7f5d3652d469cdf9eb2365dfea7ce3fb9e1409cc",
      "tree": "590f845665e166694ba0f9ba0e6d2267e15d8aae",
      "parents": [
        "b1442b055c154699a6a2c436f3352f71b6beede3"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Thu Apr 02 16:58:17 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:59 2009 -0700"
      },
      "message": "reparent_thread: fix a zombie leak if /sbin/init ignores SIGCHLD\n\nIf /sbin/init ignores SIGCHLD and we re-parent a zombie, it is leaked.\nreparent_thread() does do_notify_parent() which sets -\u003eexit_signal \u003d -1 in\nthis case.  This means that nobody except us can reap it, the detached\ntask is not visible to do_wait().\n\nChange reparent_thread() to return a boolean (like __pthread_detach) to\nindicate that the thread is dead and must be released.  Also change\nforget_original_parent() to add the child to ptrace_dead list in this\ncase.\n\nThe naming becomes insane, the next patch does the cleanup.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b1442b055c154699a6a2c436f3352f71b6beede3",
      "tree": "dda315fddb15936bc74eb9c74bec29b64e65b71c",
      "parents": [
        "0a967a044a777e8b9c739120927114ddc0094298"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Thu Apr 02 16:58:16 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:59 2009 -0700"
      },
      "message": "reparent_thread: fix the \"is it traced\" check\n\nreparent_thread() uses ptrace_reparented() to check whether this thread is\nptraced, in that case we should not notify the new parent.\n\nBut ptrace_reparented() is not exactly correct when the reparented thread\nis traced by /sbin/init, because forget_original_parent() has already\nchanged -\u003ereal_parent.\n\nCurrently, the only problem is the false notification.  But with the next\npatch the kernel crash in this (yes, pathological) case.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0a967a044a777e8b9c739120927114ddc0094298",
      "tree": "aa1abba4c643e0f502623870045a4c978db5683b",
      "parents": [
        "4576145c1ecdaaea9ef8976a48335206aa1ebf91"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Thu Apr 02 16:58:15 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:59 2009 -0700"
      },
      "message": "reparent_thread: don\u0027t call kill_orphaned_pgrp() if task_detached()\n\nIf task_detached(p) \u003d\u003d T, then either\n\n  a) p is not the main thread, we will find the group leader on the\n     -\u003echildren list.\n\nor\n\n  b) p is the group leader but its -\u003eexit_state \u003d EXIT_DEAD.  This\n     can only happen when the last sub-thread has died, but in that case\n     that thread has already called kill_orphaned_pgrp() from\n     exit_notify().\n\nIn both cases kill_orphaned_pgrp() looks bogus.\n\nMove the task_detached() check up and simplify the code, this is also\nright from the \"common sense\" pov: we should do nothing with the detached\nchilds, except move them to the new parent\u0027s -\u003echildren list.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4576145c1ecdaaea9ef8976a48335206aa1ebf91",
      "tree": "b20b51848380b708f4158852b1bb4afa29ffc5f0",
      "parents": [
        "b1b4c6799fb59e710454bfe0ab477cb8523a8667"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Thu Apr 02 16:58:14 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:59 2009 -0700"
      },
      "message": "ptrace: fix possible zombie leak on PTRACE_DETACH\n\nWhen ptrace_detach() takes tasklist, the tracee can be SIGKILL\u0027ed.  If it\nhas already passed exit_notify() we can leak a zombie, because a) ptracing\ndisables the auto-reaping logic, and b) -\u003ereal_parent was not notified\nabout the child\u0027s death.\n\nptrace_detach() should follow the ptrace_exit\u0027s logic, change the code\naccordingly.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Jerome Marchand \u003cjmarchan@redhat.com\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nTested-by: Denys Vlasenko \u003cdvlasenk@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b1b4c6799fb59e710454bfe0ab477cb8523a8667",
      "tree": "1cdd19f00c584a8800ce0d3a5530b78d1cbd6e56",
      "parents": [
        "6d69cb87f05eef3b02370b2f7bae608ad2301a00"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Thu Apr 02 16:58:13 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:59 2009 -0700"
      },
      "message": "ptrace: reintroduce __ptrace_detach() as a callee of ptrace_exit()\n\nNo functional changes, preparation for the next patch.\n\nMove the \"should we release this child\" logic into the separate handler,\n__ptrace_detach().\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Jerome Marchand \u003cjmarchan@redhat.com\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nCc: Denys Vlasenko \u003cdvlasenk@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6d69cb87f05eef3b02370b2f7bae608ad2301a00",
      "tree": "69f38afc49df51a1a75fc5c7792ced6888af329d",
      "parents": [
        "95c3eb76dc07fd81289888ffc42948196b34b444"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Thu Apr 02 16:58:12 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:59 2009 -0700"
      },
      "message": "ptrace: simplify ptrace_exit()-\u003eignoring_children() path\n\nignoring_children() takes parent-\u003esighand-\u003esiglock and checks\nk_sigaction[SIGCHLD] atomically.  But this buys nothing, we can\u0027t get the\n\"really\" wrong result even if we race with sigaction(SIGCHLD).  If we read\nthe \"stale\" sa_handler/sa_flags we can pretend it was changed right after\nthe check.\n\nRemove spin_lock(-\u003esiglock), and kill \"int ign\" which caches the result of\nignoring_children() which becomes rather trivial.\n\nPerhaps it makes sense to export this helper, do_notify_parent() can use\nit too.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Jerome Marchand \u003cjmarchan@redhat.com\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nCc: Denys Vlasenko \u003cdvlasenk@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "95c3eb76dc07fd81289888ffc42948196b34b444",
      "tree": "a656316699a090405387d0071bac2a03a7128f57",
      "parents": [
        "6588c1e3ff01418acafd938db0740e3477dc8cb7"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Thu Apr 02 16:58:11 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:59 2009 -0700"
      },
      "message": "ptrace: kill __ptrace_detach(), fix -\u003eexit_state check\n\nMove the code from __ptrace_detach() to its single caller and kill this\nhelper.\n\nAlso, fix the -\u003eexit_state check, we shouldn\u0027t wake up EXIT_DEAD tasks.\nActually, I think task_is_stopped_or_traced() makes more sense, but this\nneeds another patch.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Jerome Marchand \u003cjmarchan@redhat.com\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nCc: Denys Vlasenko \u003cdvlasenk@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6588c1e3ff01418acafd938db0740e3477dc8cb7",
      "tree": "b58beed5813667619be47c5d064f8f78804e92d1",
      "parents": [
        "b3bfa0cba867f23365b81658b47efd906830879b"
      ],
      "author": {
        "name": "Sukadev Bhattiprolu",
        "email": "sukadev@linux.vnet.ibm.com",
        "time": "Thu Apr 02 16:58:09 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:58 2009 -0700"
      },
      "message": "signals: SI_USER: Masquerade si_pid when crossing pid ns boundary\n\nWhen sending a signal to a descendant namespace, set -\u003esi_pid to 0 since\nthe sender does not have a pid in the receiver\u0027s namespace.\n\nNote:\n\t- If rt_sigqueueinfo() sets si_code to SI_USER when sending a\n\t  signal across a pid namespace boundary, the value in -\u003esi_pid\n\t  will be cleared to 0.\n\nSigned-off-by: Sukadev Bhattiprolu \u003csukadev@linux.vnet.ibm.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Daniel Lezcano \u003cdaniel.lezcano@free.fr\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b3bfa0cba867f23365b81658b47efd906830879b",
      "tree": "e54d9a9c4c23fc00bb2ff3ed57ef5317a0660ea5",
      "parents": [
        "e4da026f980df125a4918c3bb9fe93185c7ef12a"
      ],
      "author": {
        "name": "Sukadev Bhattiprolu",
        "email": "sukadev@linux.vnet.ibm.com",
        "time": "Thu Apr 02 16:58:08 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:58 2009 -0700"
      },
      "message": "signals: protect cinit from blocked fatal signals\n\nNormally SIG_DFL signals to global and container-init are dropped early.\nBut if a signal is blocked when it is posted, we cannot drop the signal\nsince the receiver may install a handler before unblocking the signal.\nOnce this signal is queued however, the receiver container-init has no way\nof knowing if the signal was sent from an ancestor or descendant\nnamespace.  This patch ensures that contianer-init drops all SIG_DFL\nsignals in get_signal_to_deliver() except SIGKILL/SIGSTOP.\n\nIf SIGSTOP/SIGKILL originate from a descendant of container-init they are\nnever queued (i.e dropped in sig_ignored() in an earler patch).\n\nIf SIGSTOP/SIGKILL originate from parent namespace, the signal is queued\nand container-init processes the signal.\n\nIOW, if get_signal_to_deliver() sees a sig_kernel_only() signal for global\nor container-init, the signal must have been generated internally or must\nhave come from an ancestor ns and we process the signal.\n\nFurther, the signal_group_exit() check was needed to cover the case of a\nmulti-threaded init sending SIGKILL to other threads when doing an exit()\nor exec().  But since the new sig_kernel_only() check covers the SIGKILL,\nthe signal_group_exit() check is no longer needed and can be removed.\n\nFinally, now that we have all pieces in place, set SIGNAL_UNKILLABLE for\ncontainer-inits.\n\nSigned-off-by: Sukadev Bhattiprolu \u003csukadev@linux.vnet.ibm.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Daniel Lezcano \u003cdaniel.lezcano@free.fr\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e4da026f980df125a4918c3bb9fe93185c7ef12a",
      "tree": "bb755bb687bca82feb05ba3bb6962ef57257dd9a",
      "parents": [
        "921cf9f63089c7442d44083477620132f4cea066"
      ],
      "author": {
        "name": "Sukadev Bhattiprolu",
        "email": "sukadev@linux.vnet.ibm.com",
        "time": "Thu Apr 02 16:58:06 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:58 2009 -0700"
      },
      "message": "signals: zap_pid_ns_process() should use force_sig()\n\nsend_signal() assumes that signals with SEND_SIG_PRIV are generated from\nwithin the same namespace.  So any nested container-init processes become\nimmune to the SIGKILL generated by kill_proc_info() in\nzap_pid_ns_processes().\n\nUse force_sig() in zap_pid_ns_processes() instead - force_sig() clears the\nSIGNAL_UNKILLABLE flag ensuring the signal is processed by\ncontainer-inits.\n\nSigned-off-by: Sukadev Bhattiprolu \u003csukadev@linux.vnet.ibm.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Daniel Lezcano \u003cdaniel.lezcano@free.fr\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "921cf9f63089c7442d44083477620132f4cea066",
      "tree": "2a79eb0f7328ba2f05759d1b2c1e141bcfe4aafc",
      "parents": [
        "7978b567d31555fc828b8f945c605ad29e117b22"
      ],
      "author": {
        "name": "Sukadev Bhattiprolu",
        "email": "sukadev@linux.vnet.ibm.com",
        "time": "Thu Apr 02 16:58:05 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:58 2009 -0700"
      },
      "message": "signals: protect cinit from unblocked SIG_DFL signals\n\nDrop early any SIG_DFL or SIG_IGN signals to container-init from within\nthe same container.  But queue SIGSTOP and SIGKILL to the container-init\nif they are from an ancestor container.\n\nBlocked, fatal signals (i.e when SIG_DFL is to terminate) from within the\ncontainer can still terminate the container-init.  That will be addressed\nin the next patch.\n\nNote:\tTo be bisect-safe, SIGNAL_UNKILLABLE will be set for container-inits\n   \tin a follow-on patch. Until then, this patch is just a preparatory\n\tstep.\n\nSigned-off-by: Sukadev Bhattiprolu \u003csukadev@linux.vnet.ibm.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Daniel Lezcano \u003cdaniel.lezcano@free.fr\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7978b567d31555fc828b8f945c605ad29e117b22",
      "tree": "a66d7880f3031e417c2afb76c990ed5340565816",
      "parents": [
        "f008faff0e2777c8b3fe853891b774ca465938d8"
      ],
      "author": {
        "name": "Sukadev Bhattiprolu",
        "email": "sukadev@linux.vnet.ibm.com",
        "time": "Thu Apr 02 16:58:04 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:58 2009 -0700"
      },
      "message": "signals: add from_ancestor_ns parameter to send_signal()\n\nsend_signal() (or its helper) needs to determine the pid namespace of the\nsender.  But a signal sent via kill_pid_info_as_uid() comes from within\nthe kernel and send_signal() does not need to determine the pid namespace\nof the sender.  So define a helper for send_signal() which takes an\nadditional parameter, \u0027from_ancestor_ns\u0027 and have kill_pid_info_as_uid()\nuse that helper directly.\n\nThe \u0027from_ancestor_ns\u0027 parameter will be used in a follow-on patch.\n\nSigned-off-by: Sukadev Bhattiprolu \u003csukadev@linux.vnet.ibm.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Daniel Lezcano \u003cdaniel.lezcano@free.fr\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f008faff0e2777c8b3fe853891b774ca465938d8",
      "tree": "d2f325995473a33652f7f7ead71e63d5298fbd01",
      "parents": [
        "43918f2bf4806675943416d539d9d5e4d585ebff"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Thu Apr 02 16:58:02 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:58 2009 -0700"
      },
      "message": "signals: protect init from unwanted signals more\n\n(This is a modified version of the patch submitted by Oleg Nesterov\nhttp://lkml.org/lkml/2008/11/18/249 and tries to address comments that\ncame up in that discussion)\n\ninit ignores the SIG_DFL signals but we queue them anyway, including\nSIGKILL.  This is mostly OK, the signal will be dropped silently when\ndequeued, but the pending SIGKILL has 2 bad implications:\n\n        - it implies fatal_signal_pending(), so we confuse things\n          like wait_for_completion_killable/lock_page_killable.\n\n        - for the sub-namespace inits, the pending SIGKILL can\n          mask (legacy_queue) the subsequent SIGKILL from the\n          parent namespace which must kill cinit reliably.\n          (preparation, cinits don\u0027t have SIGNAL_UNKILLABLE yet)\n\nThe patch can\u0027t help when init is ptraced, but ptracing of init is not\n\"safe\" anyway.\n\nSigned-off-by: Sukadev Bhattiprolu \u003csukadev@linux.vnet.ibm.com\u003e\nAcked-by: Roland McGrath \u003croland@redhat.com\u003e\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Daniel Lezcano \u003cdaniel.lezcano@free.fr\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "43918f2bf4806675943416d539d9d5e4d585ebff",
      "tree": "1de2ea08eed647b181b7f008f95e4bc4ec34c343",
      "parents": [
        "90bc8d8b1a38f1ab131a2399a202e1889db95de8"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Thu Apr 02 16:58:00 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:58 2009 -0700"
      },
      "message": "signals: remove \u0027handler\u0027 parameter to tracehook functions\n\nContainer-init must behave like global-init to processes within the\ncontainer and hence it must be immune to unhandled fatal signals from\nwithin the container (i.e SIG_DFL signals that terminate the process).\n\nBut the same container-init must behave like a normal process to processes\nin ancestor namespaces and so if it receives the same fatal signal from a\nprocess in ancestor namespace, the signal must be processed.\n\nImplementing these semantics requires that send_signal() determine pid\nnamespace of the sender but since signals can originate from workqueues/\ninterrupt-handlers, determining pid namespace of sender may not always be\npossible or safe.\n\nThis patchset implements the design/simplified semantics suggested by\nOleg Nesterov.  The simplified semantics for container-init are:\n\n\t- container-init must never be terminated by a signal from a\n\t  descendant process.\n\n\t- container-init must never be immune to SIGKILL from an ancestor\n\t  namespace (so a process in parent namespace must always be able\n\t  to terminate a descendant container).\n\n\t- container-init may be immune to unhandled fatal signals (like\n\t  SIGUSR1) even if they are from ancestor namespace. SIGKILL/SIGSTOP\n\t  are the only reliable signals to a container-init from ancestor\n\t  namespace.\n\nThis patch:\n\nBased on an earlier patch submitted by Oleg Nesterov and comments from\nRoland McGrath (http://lkml.org/lkml/2008/11/19/258).\n\nThe handler parameter is currently unused in the tracehook functions.\nBesides, the tracehook functions are called with siglock held, so the\nfunctions can check the handler if they later need to.\n\nRemoving the parameter simiplifies changes to sig_ignored() in a follow-on\npatch.\n\nSigned-off-by: Sukadev Bhattiprolu \u003csukadev@linux.vnet.ibm.com\u003e\nAcked-by: Roland McGrath \u003croland@redhat.com\u003e\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Daniel Lezcano \u003cdaniel.lezcano@free.fr\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "90bc8d8b1a38f1ab131a2399a202e1889db95de8",
      "tree": "97001737dc3c1c7fd364ddd995bcbfc1c27b4c3a",
      "parents": [
        "6d7b2f5f9e88902b19f91d0c8a7ef58a5455f1a2"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Thu Apr 02 16:57:58 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:57 2009 -0700"
      },
      "message": "do_wait: fix waiting for the group stop with the dead leader\n\ndo_wait(WSTOPPED) assumes that p-\u003estate must be \u003d\u003d TASK_STOPPED, this is\nnot true if the leader is already dead.  Check SIGNAL_STOP_STOPPED instead\nand use signal-\u003egroup_exit_code.\n\nTrivial test-case:\n\n\tvoid *tfunc(void *arg)\n\t{\n\t\tpause();\n\t\treturn NULL;\n\t}\n\n\tint main(void)\n\t{\n\t\tpthread_t thr;\n\t\tpthread_create(\u0026thr, NULL, tfunc, NULL);\n\t\tpthread_exit(NULL);\n\t\treturn 0;\n\t}\n\nIt doesn\u0027t react to ^Z (and then to ^C or ^\\). The task is stopped, but\nbash can\u0027t see this.\n\nThe bug is very old, and it was reported multiple times. This patch was sent\nmore than a year ago (http://marc.info/?t\u003d119713920000003) but it was ignored.\n\nThis change also fixes other oddities (but not all) in this area.  For\nexample, before this patch:\n\n\t$ sleep 100\n\t^Z\n\t[1]+  Stopped                 sleep 100\n\t$ strace -p `pidof sleep`\n\tProcess 11442 attached - interrupt to quit\n\nstrace hangs in do_wait(), because -\u003eexit_code was already consumed by\nbash.  After this patch, strace happily proceeds:\n\n\t--- SIGTSTP (Stopped) @ 0 (0) ---\n\trestart_syscall(\u003c... resuming interrupted call ...\u003e\n\nTo me, this looks much more \"natural\" and correct.\n\nAnother example.  Let\u0027s suppose we have the main thread M and sub-thread\nT, the process is stopped, and its parent did wait(WSTOPPED).  Now we can\nptrace T but not M.  This looks at least strange to me.\n\nImho, do_wait() should not confuse the per-thread ptrace stops with the\nper-process job control stops.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Denys Vlasenko \u003cdvlasenk@redhat.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Jan Kratochvil \u003cjan.kratochvil@redhat.com\u003e\nCc: Kaz Kylheku \u003ckkylheku@gmail.com\u003e\nCc: Michael Kerrisk \u003cmtk.manpages@googlemail.com\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nCc: Ulrich Drepper \u003cdrepper@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6d7b2f5f9e88902b19f91d0c8a7ef58a5455f1a2",
      "tree": "4ad594fcef55ad95424e58c39e10a723d1dcbe4f",
      "parents": [
        "db7f47cf4805e30decb0841764b21b7c4000f7dc"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Thu Apr 02 16:57:57 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:57 2009 -0700"
      },
      "message": "cpusets: prevent PF_THREAD_BOUND tasks from attaching to non-root cpusets\n\nKthreads that have the PF_THREAD_BOUND bit set in their flags are bound to a\nspecific cpu.  Thus, their set of allowed cpus shall not change.\n\nThis patch prevents such threads from attaching to non-root cpusets.  They do\nnot have mempolicies that restrict them to a subset of system nodes and, since\ntheir cpumask may never change, they cannot use any of the features of\ncpusets.\n\nThe tasks will forever be a member of the root cpuset and will be returned\nwhen listing the tasks attached to that cpuset.\n\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Dhaval Giani \u003cdhaval@linux.vnet.ibm.com\u003e\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "db7f47cf4805e30decb0841764b21b7c4000f7dc",
      "tree": "10a7ee574ae29fbd3c78a22bd6700e14efe80e65",
      "parents": [
        "a1bc5a4eee990a1f290735c8694d0aebdad095fa"
      ],
      "author": {
        "name": "Paul Menage",
        "email": "menage@google.com",
        "time": "Thu Apr 02 16:57:55 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:57 2009 -0700"
      },
      "message": "cpusets: allow cpusets to be configured/built on non-SMP systems\n\nAllow cpusets to be configured/built on non-SMP systems\n\nCurrently it\u0027s impossible to build cpusets under UML on x86-64, since\ncpusets depends on SMP and x86-64 UML doesn\u0027t support SMP.\n\nThere\u0027s code in cpusets that doesn\u0027t depend on SMP.  This patch surrounds\nthe minimum amount of cpusets code with #ifdef CONFIG_SMP in order to\nallow cpusets to build/run on UP systems (for testing purposes under UML).\n\nReviewed-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nSigned-off-by: Paul Menage \u003cmenage@google.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a1bc5a4eee990a1f290735c8694d0aebdad095fa",
      "tree": "f3e5849823444136df9c7f91f7217e1894235682",
      "parents": [
        "7f81b1ae18416b457e4d5ff23f0bd598e8a42224"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Thu Apr 02 16:57:54 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:57 2009 -0700"
      },
      "message": "cpusets: replace zone allowed functions with node allowed\n\nThe cpuset_zone_allowed() variants are actually only a function of the\nzone\u0027s node.\n\nCc: Paul Menage \u003cmenage@google.com\u003e\nAcked-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7f81b1ae18416b457e4d5ff23f0bd598e8a42224",
      "tree": "8b484cec5b67d4cf00dfacd407b2648cd0d1b645",
      "parents": [
        "010cfac4ca0f9e85f54ba2117a372e72f4fb9a60"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Thu Apr 02 16:57:53 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:57 2009 -0700"
      },
      "message": "cpuset: remove struct cpuset_hotplug_scanner\n\nUse cgroup_scanner.data, instead of introducing cpuset_hotplug_scanner.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "010cfac4ca0f9e85f54ba2117a372e72f4fb9a60",
      "tree": "47b8ed65b2e3cdfe269794545995020947a667a6",
      "parents": [
        "3b6766fe668b83c8a03c6ed01bcc2ac77cbae848"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Thu Apr 02 16:57:52 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:57 2009 -0700"
      },
      "message": "cpuset: avoid changing cpuset\u0027s mems when errno returned\n\nWhen writing to cpuset.mems, cpuset has to update its mems_allowed before\ncalling update_tasks_nodemask(), but this function might return -ENOMEM.\n\nTo avoid this rare case, we allocate the memory before changing\nmems_allowed, and then pass to update_tasks_nodemask().  Similar to what\nupdate_cpumask() does.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3b6766fe668b83c8a03c6ed01bcc2ac77cbae848",
      "tree": "8b109576301d849406f080c61f4ce1809556ad0b",
      "parents": [
        "bd1a8ab73edd449fecda633449cc277b856ad4f5"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Thu Apr 02 16:57:51 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:57 2009 -0700"
      },
      "message": "cpuset: rewrite update_tasks_nodemask()\n\nThis patch uses cgroup_scan_tasks() to rebind tasks\u0027 vmas to new cpuset\u0027s\nmems_allowed.\n\nNot only simplify the code largely, but also avoid allocating an array to\nhold mm pointers of all the tasks in the cpuset.  This array can be big\n(size \u003e PAGESIZE) if we have lots of tasks in that cpuset, thus has a\nchance to fail the allocation when under memory stress.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0b4217b3fdddc4a58939720d3ed809537577d48b",
      "tree": "9bda180eb4e9fed454453b4aeaf9447602c74022",
      "parents": [
        "83aae4c737866da3280f51fd15da58eddd788397"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Thu Apr 02 16:57:49 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:56 2009 -0700"
      },
      "message": "cpuset: fix possible races in cpu/memory hotplug\n\nChange to cpuset-\u003ecpus_allowed and cpuset-\u003emems_allowed should be protected\nby callback_mutex, otherwise the reader may read wrong cpus/mems. This is\ncpuset\u0027s lock rule.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0b7f569e45bb6be142d87017030669a6a7d327a1",
      "tree": "8df7877b95c093ebf4cb4e1006cea16f75fc79b7",
      "parents": [
        "81d39c20f5ee2437d71709beb82597e2a38efbbc"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Thu Apr 02 16:57:38 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:55 2009 -0700"
      },
      "message": "memcg: fix OOM killer under memcg\n\nThis patch tries to fix OOM Killer problems caused by hierarchy.\nNow, memcg itself has OOM KILL function (in oom_kill.c) and tries to\nkill a task in memcg.\n\nBut, when hierarchy is used, it\u0027s broken and correct task cannot\nbe killed. For example, in following cgroup\n\n\t/groupA/\thierarchy\u003d1, limit\u003d1G,\n\t\t01\tnolimit\n\t\t02\tnolimit\nAll tasks\u0027 memory usage under /groupA, /groupA/01, groupA/02 is limited to\ngroupA\u0027s 1Gbytes but OOM Killer just kills tasks in groupA.\n\nThis patch provides makes the bad process be selected from all tasks\nunder hierarchy. BTW, currently, oom_jiffies is updated against groupA\nin above case. oom_jiffies of tree should be updated.\n\nTo see how oom_jiffies is used, please check mem_cgroup_oom_called()\ncallers.\n\n[akpm@linux-foundation.org: build fix]\n[akpm@linux-foundation.org: const fix]\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d969fbe69e07fcceb0558b35d4c75eb046041c5e",
      "tree": "e93bab346a32b061522a946fe3a012155c59c27c",
      "parents": [
        "0670e08bdfc67272f8c3087030417465629b8073"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Thu Apr 02 16:57:31 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:54 2009 -0700"
      },
      "message": "debug cgroup: remove unneeded cgroup_lock\n\nSince we are in cgroup write handler, so the cgrp is valid, so we don\u0027t\nhave to hold cgroup_mutex when calling cgroup_task_count().  One similar\nexample is in cgroup_tasks_open().\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nAcked-by: Paul Menage \u003cmenage@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0670e08bdfc67272f8c3087030417465629b8073",
      "tree": "44a4e3b6059aeb8c2a97d5fb8ccf743a2eaafd07",
      "parents": [
        "099fca3225b39f7a3ed853036038054172b55581"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Thu Apr 02 16:57:30 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:54 2009 -0700"
      },
      "message": "cgroups: don\u0027t change release_agent when remount failed\n\nRemount can fail in either case:\n  - wrong mount options is specified, or option \u0027noprefix\u0027 is changed.\n  - a to-be-added subsys is already mounted/active.\n\nWhen using remount to change \u0027release_agent\u0027, for the above former failure\ncase, remount will return errno with release_agent unchanged, but for the\nlatter case, remount will return EBUSY with relase_agent changed, which is\nunexpected I think:\n\n # mount -t cgroup -o cpu xxx /cgrp1\n # mount -t cgroup -o cpuset,release_agent\u003dagent1 yyy /cgrp2\n # cat /cgrp2/release_agent\n agent1\n # mount -t cgroup -o remount,cpuset,noprefix,release_agent\u003dagent2 yyy /cgrp2\n mount: /cgrp2 not mounted already, or bad option\n # cat /cgrp2/release_agent\n agent1     \u003c-- ok\n # mount -t cgroup -o remount,cpu,cpuset,release_agent\u003dagent2 yyy /cgrp2\n mount: /cgrp2 is busy\n # cat /cgrp2/release_agent\n agent2     \u003c-- unexpected!\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "099fca3225b39f7a3ed853036038054172b55581",
      "tree": "c7a8863f9ca8a5c745297e9ee43b63494b6022d1",
      "parents": [
        "b6719ec1ad54e47e40633b19703f2c1254708842"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Thu Apr 02 16:57:29 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:54 2009 -0700"
      },
      "message": "cgroups: show correct file mode\n\nWe have some read-only files and write-only files, but currently they are\nall set to 0644, which is counter-intuitive and cause trouble for some\ncgroup tools like libcgroup.\n\nThis patch adds \u0027mode\u0027 to struct cftype to allow cgroup subsys to set it\u0027s\nown files\u0027 file mode, and for the most cases cft-\u003emode can be default to 0\nand cgroup will figure out proper mode.\n\nAcked-by: Paul Menage \u003cmenage@google.com\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Li Zefan \u003clizf@cn.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": "66bdc9cfc77ba89a9ee6c82d28375b646ab4bb1d",
      "tree": "dd0d292a2f413f8c14d2219f8de94516fffe18b5",
      "parents": [
        "ec64f51545fffbc4cb968f0cea56341a4b07e85a"
      ],
      "author": {
        "name": "Jesper Juhl",
        "email": "jj@chaosbits.net",
        "time": "Thu Apr 02 16:57:27 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:54 2009 -0700"
      },
      "message": "kernel/cgroup.c: kfree(NULL) is legal\n\nReduces object file size a bit:\n\nBefore:\n$ size kernel/cgroup.o\n   text    data     bss     dec     hex filename\n  21593    7804    4924   34321    8611 kernel/cgroup.o\nAfter:\n$ size kernel/cgroup.o\n   text    data     bss     dec     hex filename\n  21537    7744    4924   34205    859d kernel/cgroup.o\n\nSigned-off-by: Jesper Juhl \u003cjj@chaosbits.net\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ec64f51545fffbc4cb968f0cea56341a4b07e85a",
      "tree": "575d890a6759d81f3324fa2a22ca6ab14a41eefc",
      "parents": [
        "38460b48d06440de46b34cb778bd6c4855030754"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Thu Apr 02 16:57:26 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:54 2009 -0700"
      },
      "message": "cgroup: fix frequent -EBUSY at rmdir\n\nIn following situation, with memory subsystem,\n\n\t/groupA use_hierarchy\u003d\u003d1\n\t\t/01 some tasks\n\t\t/02 some tasks\n\t\t/03 some tasks\n\t\t/04 empty\n\nWhen tasks under 01/02/03 hit limit on /groupA, hierarchical reclaim\nis triggered and the kernel walks tree under groupA. In this case,\nrmdir /groupA/04 fails with -EBUSY frequently because of temporal\nrefcnt from the kernel.\n\nIn general. cgroup can be rmdir\u0027d if there are no children groups and\nno tasks. Frequent fails of rmdir() is not useful to users.\n(And the reason for -EBUSY is unknown to users.....in most cases)\n\nThis patch tries to modify above behavior, by\n\t- retries if css_refcnt is got by someone.\n\t- add \"return value\" to pre_destroy() and allows subsystem to\n\t  say \"we\u0027re really busy!\"\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "38460b48d06440de46b34cb778bd6c4855030754",
      "tree": "8f3362a446b5b03879f715c3f7279e70842bcca9",
      "parents": [
        "313e924c0852943e67335fad9d2608701f0dfe8e"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Thu Apr 02 16:57:25 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:53 2009 -0700"
      },
      "message": "cgroup: CSS ID support\n\nPatch for Per-CSS(Cgroup Subsys State) ID and private hierarchy code.\n\nThis patch attaches unique ID to each css and provides following.\n\n - css_lookup(subsys, id)\n   returns pointer to struct cgroup_subysys_state of id.\n - css_get_next(subsys, id, rootid, depth, foundid)\n   returns the next css under \"root\" by scanning\n\nWhen cgroup_subsys-\u003euse_id is set, an id for css is maintained.\n\nThe cgroup framework only parepares\n\t- css_id of root css for subsys\n\t- id is automatically attached at creation of css.\n\t- id is *not* freed automatically. Because the cgroup framework\n\t  don\u0027t know lifetime of cgroup_subsys_state.\n\t  free_css_id() function is provided. This must be called by subsys.\n\nThere are several reasons to develop this.\n\t- Saving space .... For example, memcg\u0027s swap_cgroup is array of\n\t  pointers to cgroup. But it is not necessary to be very fast.\n\t  By replacing pointers(8bytes per ent) to ID (2byes per ent), we can\n\t  reduce much amount of memory usage.\n\n\t- Scanning without lock.\n\t  CSS_ID provides \"scan id under this ROOT\" function. By this, scanning\n\t  css under root can be written without locks.\n\t  ex)\n\t  do {\n\t\trcu_read_lock();\n\t\tnext \u003d cgroup_get_next(subsys, id, root, \u0026found);\n\t\t/* check sanity of next here */\n\t\tcss_tryget();\n\t\trcu_read_unlock();\n\t\tid \u003d found + 1\n\t } while(...)\n\nCharacteristics:\n\t- Each css has unique ID under subsys.\n\t- Lifetime of ID is controlled by subsys.\n\t- css ID contains \"ID\" and \"Depth in hierarchy\" and stack of hierarchy\n\t- Allowed ID is 1-65535, ID 0 is UNUSED ID.\n\nDesign Choices:\n\t- scan-by-ID v.s. scan-by-tree-walk.\n\t  As /proc\u0027s pid scan does, scan-by-ID is robust when scanning is done\n\t  by following kind of routine.\n\t  scan -\u003e rest a while(release a lock) -\u003e conitunue from interrupted\n\t  memcg\u0027s hierarchical reclaim does this.\n\n\t- When subsys-\u003euse_id is set, # of css in the system is limited to\n\t  65535.\n\n[bharata@linux.vnet.ibm.com: remove rcu_read_lock() from css_get_next()]\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nAcked-by: Paul Menage \u003cmenage@google.com\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nSigned-off-by: Bharata B Rao \u003cbharata@linux.vnet.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "313e924c0852943e67335fad9d2608701f0dfe8e",
      "tree": "fa4c3f65a7ed6edea52ae78b012138ebab1420c3",
      "parents": [
        "d20a390a0ee2bf2f692c539c6ce1c829e1080bb5"
      ],
      "author": {
        "name": "Grzegorz Nosek",
        "email": "root@localdomain.pl",
        "time": "Thu Apr 02 16:57:23 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:53 2009 -0700"
      },
      "message": "cgroups: relax ns_can_attach checks to allow attaching to grandchild cgroups\n\nThe ns_proxy cgroup allows moving processes to child cgroups only one\nlevel deep at a time.  This commit relaxes this restriction and makes it\npossible to attach tasks directly to grandchild cgroups, e.g.:\n\n($pid is in the root cgroup)\necho $pid \u003e /cgroup/CG1/CG2/tasks\n\nPreviously this operation would fail with -EPERM and would have to be\nperformed as two steps:\necho $pid \u003e /cgroup/CG1/tasks\necho $pid \u003e /cgroup/CG1/CG2/tasks\n\nAlso, the target cgroup no longer needs to be empty to move a task there.\n\nSigned-off-by: Grzegorz Nosek \u003croot@localdomain.pl\u003e\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nReviewed-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6f2c55b843836d26528c56a0968689accaedbc67",
      "tree": "17501e29d4b6ef3eb85da9a5d6ad3df7f19ec6a2",
      "parents": [
        "14dd1ff0f9e75dd4ae2f1ff8e48becb76d14f4ab"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Thu Apr 02 16:56:59 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:51 2009 -0700"
      },
      "message": "Simplify copy_thread()\n\nFirst argument unused since 2.3.11.\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: \u003clinux-arch@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "33e5d76979cf01e3834814fe0aea569d1d602c1a",
      "tree": "58a03e5da59db203245da10db144a4f6f61a83ba",
      "parents": [
        "5482415a5ecc0cd791a5d885cc3db8281401078f"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Apr 02 16:56:32 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:48 2009 -0700"
      },
      "message": "nommu: fix a number of issues with the per-MM VMA patch\n\nFix a number of issues with the per-MM VMA patch:\n\n (1) Make mmap_pages_allocated an atomic_long_t, just in case this is used on\n     a NOMMU system with more than 2G pages.  Makes no difference on a 32-bit\n     system.\n\n (2) Report vma-\u003evm_pgoff * PAGE_SIZE as a 64-bit value, not a 32-bit value,\n     lest it overflow.\n\n (3) Move the allocation of the vm_area_struct slab back for fork.c.\n\n (4) Use KMEM_CACHE() for both vm_area_struct and vm_region slabs.\n\n (5) Use BUG_ON() rather than if () BUG().\n\n (6) Make the default validate_nommu_regions() a static inline rather than a\n     #define.\n\n (7) Make free_page_series()\u0027s objection to pages with a refcount !\u003d 1 more\n     informative.\n\n (8) Adjust the __put_nommu_region() banner comment to indicate that the\n     semaphore must be held for writing.\n\n (9) Limit the number of warnings about munmaps of non-mmapped regions.\n\nReported-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nCc: Greg Ungerer \u003cgerg@snapgear.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4ede816ac36e027db5fe0051ad9c73f76db63772",
      "tree": "6c79eae26067c2355a2d4c7e65bca84208a76c40",
      "parents": [
        "bcd0b235bf3808dec5115c381cd55568f63b85f0"
      ],
      "author": {
        "name": "Davide Libenzi",
        "email": "davidel@xmailserver.org",
        "time": "Tue Mar 31 15:24:20 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 01 08:59:20 2009 -0700"
      },
      "message": "epoll keyed wakeups: add __wake_up_locked_key() and __wake_up_sync_key()\n\nThis patchset introduces wakeup hints for some of the most popular (from\nepoll POV) devices, so that epoll code can avoid spurious wakeups on its\nwaiters.\n\nThe problem with epoll is that the callback-based wakeups do not, ATM,\ncarry any information about the events the wakeup is related to.  So the\nonly choice epoll has (not being able to call f_op-\u003epoll() from inside the\ncallback), is to add the file* to a ready-list and resolve the real events\nlater on, at epoll_wait() (or its own f_op-\u003epoll()) time.  This can cause\nspurious wakeups, since the wake_up() itself might be for an event the\ncaller is not interested into.\n\nThe rate of these spurious wakeup can be pretty high in case of many\nnetwork sockets being monitored.\n\nBy allowing devices to report the events the wakeups refer to (at least\nthe two major classes - POLLIN/POLLOUT), we are able to spare useless\nwakeups by proper handling inside the epoll\u0027s poll callback.\n\nEpoll will have in any case to call f_op-\u003epoll() on the file* later on,\nsince the change to be done in order to have the full event set sent via\nwakeup, is too invasive for the way our f_op-\u003epoll() system works (the\nfull event set is calculated inside the poll function - there are too many\nof them to even start thinking the change - also poll/select would need\nchange too).\n\nEpoll is changed in a way that both devices which send event hints, and\nthe ones that don\u0027t, are correctly handled.  The former will gain some\nefficiency though.\n\nAs a general rule for devices, would be to add an event mask by using\nkey-aware wakeup macros, when making up poll wait queues.  I tested it\n(together with the epoll\u0027s poll fix patch Andrew has in -mm) and wakeups\nfor the supported devices are correctly filtered.\n\nTest program available here:\n\nhttp://www.xmailserver.org/epoll_test.c\n\nThis patch:\n\nNothing revolutionary here.  Just using the available \"key\" that our\nwakeup core already support.  The __wake_up_locked_key() was no brainer,\nsince both __wake_up_locked() and __wake_up_locked_key() are thin wrappers\naround __wake_up_common().\n\nThe __wake_up_sync() function had a body, so the choice was between\nborrowing the body for __wake_up_sync_key() and calling it from\n__wake_up_sync(), or make an inline and calling it from both.  I chose the\nformer since in most archs it all resolves to \"mov $0, REG; jmp ADDR\".\n\nSigned-off-by: Davide Libenzi \u003cdavidel@xmailserver.org\u003e\nCc: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: David Miller \u003cdavem@davemloft.net\u003e\nCc: William Lee Irwin III \u003cwli@movementarian.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a8af78982ff4c0b3731527b0217d286a343a3089",
      "tree": "10f0ebe13c999dd54efdf79ff606b65e7952b69d",
      "parents": [
        "5f0e3da6e186598bbd2569410ab60fa645ba00c9"
      ],
      "author": {
        "name": "Magnus Damm",
        "email": "damm@igel.co.jp",
        "time": "Tue Mar 31 15:23:37 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 01 08:59:16 2009 -0700"
      },
      "message": "pm: rework includes, remove arch ifdefs\n\nMake the following header file changes:\n\n - remove arch ifdefs and asm/suspend.h from linux/suspend.h\n - add asm/suspend.h to disk.c (for arch_prepare_suspend())\n - add linux/io.h to swsusp.c (for ioremap())\n - x86 32/64 bit compile fixes\n\nSigned-off-by: Magnus Damm \u003cdamm@igel.co.jp\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nAcked-by: \"Rafael J. Wysocki\" \u003crjw@sisk.pl\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "704503d836042d4a4c7685b7036e7de0418fbc0f",
      "tree": "218bea088f0b286981221e44d5247dab98020d30",
      "parents": [
        "6a11f75b6a17b5d9ac5025f8d048382fd1f47377"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Tue Mar 31 15:23:18 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 01 08:59:13 2009 -0700"
      },
      "message": "mm: fix proc_dointvec_userhz_jiffies \"breakage\"\n\nAddresses http://bugzilla.kernel.org/show_bug.cgi?id\u003d9838\n\nOn i386, HZ\u003d1000, jiffies_to_clock_t() converts time in a somewhat strange\nway from the user\u0027s point of view:\n\n\t# echo 500 \u003e/proc/sys/vm/dirty_writeback_centisecs\n\t# cat /proc/sys/vm/dirty_writeback_centisecs\n\t499\n\nSo, we have 5000 jiffies converted to only 499 clock ticks and reported\nback.\n\nTICK_NSEC \u003d 999848\nACTHZ \u003d 256039\n\nKeeping in-kernel variable in units passed from userspace will fix issue\nof course, but this probably won\u0027t be right for every sysctl.\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ee99c71c59f897436ec65debb99372b3146f9985",
      "tree": "051f1c43b7c7658689d4b2c23b3d8585d6464a89",
      "parents": [
        "a6dc60f8975ad96d162915e07703a4439c80dcf0"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Tue Mar 31 15:19:31 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 01 08:59:11 2009 -0700"
      },
      "message": "mm: introduce for_each_populated_zone() macro\n\nImpact: cleanup\n\nIn almost cases, for_each_zone() is used with populated_zone().  It\u0027s\nbecause almost function doesn\u0027t need memoryless node information.\nTherefore, for_each_populated_zone() can help to make code simplify.\n\nThis patch has no functional change.\n\n[akpm@linux-foundation.org: small cleanup]\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nReviewed-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d17abcd5417d84cfa8a225160481203a37dc81d4",
      "tree": "74ce2c425c5c6550acec90bc92c8a3f735f0d257",
      "parents": [
        "db6f204019380c788f1de06ee937bdbccd60e5c0",
        "bb75efddeaca89f8a67fd82cdcbaaf436cf17ca9"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 30 18:00:26 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 30 18:00:26 2009 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-cpumask\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-cpumask:\n  oprofile: Thou shalt not call __exit functions from __init functions\n  cpumask: remove the now-obsoleted pcibus_to_cpumask(): generic\n  cpumask: remove cpumask_t from core\n  cpumask: convert rcutorture.c\n  cpumask: use new cpumask_ functions in core code.\n  cpumask: remove references to struct irqaction\u0027s mask field.\n  cpumask: use mm_cpumask() wrapper: kernel/fork.c\n  cpumask: use set_cpu_active in init/main.c\n  cpumask: remove node_to_first_cpu\n  cpumask: fix seq_bitmap_*() functions.\n  cpumask: remove dangerous CPU_MASK_ALL_PTR, \u0026CPU_MASK_ALL\n"
    },
    {
      "commit": "c4e1aa67ed9e4e542a064bc271ddbf152b677e91",
      "tree": "2a2ca00bed0fc22b4eb83db092c9178868d8f76b",
      "parents": [
        "cf2f7d7c90279cdbc12429de278f3d27ac2050ae",
        "2f8501815256af8498904e68bd0984b1afffd6f8"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 30 17:17:35 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 30 17:17:35 2009 -0700"
      },
      "message": "Merge branch \u0027locking-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027locking-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (33 commits)\n  lockdep: fix deadlock in lockdep_trace_alloc\n  lockdep: annotate reclaim context (__GFP_NOFS), fix SLOB\n  lockdep: annotate reclaim context (__GFP_NOFS), fix\n  lockdep: build fix for !PROVE_LOCKING\n  lockstat: warn about disabled lock debugging\n  lockdep: use stringify.h\n  lockdep: simplify check_prev_add_irq()\n  lockdep: get_user_chars() redo\n  lockdep: simplify get_user_chars()\n  lockdep: add comments to mark_lock_irq()\n  lockdep: remove macro usage from mark_held_locks()\n  lockdep: fully reduce mark_lock_irq()\n  lockdep: merge the !_READ mark_lock_irq() helpers\n  lockdep: merge the _READ mark_lock_irq() helpers\n  lockdep: simplify mark_lock_irq() helpers #3\n  lockdep: further simplify mark_lock_irq() helpers\n  lockdep: simplify the mark_lock_irq() helpers\n  lockdep: split up mark_lock_irq()\n  lockdep: generate usage strings\n  lockdep: generate the state bit definitions\n  ...\n"
    },
    {
      "commit": "2f8501815256af8498904e68bd0984b1afffd6f8",
      "tree": "ffc9b4d8d80906fc2743b34dcdc93fdd2294f2c6",
      "parents": [
        "19cefdffbfe0f7e280f21e80875937e8700e99e2"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "peterz@infradead.org",
        "time": "Fri Mar 20 11:13:20 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Mar 30 23:19:24 2009 +0200"
      },
      "message": "lockdep: fix deadlock in lockdep_trace_alloc\n\nHeiko reported that we grab the graph lock with irqs enabled.\n\nFix this by providng the same wrapper as all other lockdep entry\nfunctions have.\n\nReported-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Nick Piggin \u003cnpiggin@suse.de\u003e\nLKML-Reference: \u003c1237544000.24626.52.camel@twins\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "749b0afc3a9d90dda3319fd1464a3b32fc225361",
      "tree": "811a0931109bf3ee1204d43c37c9f3d1d7a4b327",
      "parents": [
        "4aecd6718939eb3c4145b248369b65f7483a8a02"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon Mar 16 22:34:35 2009 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon Mar 30 21:46:55 2009 +0200"
      },
      "message": "kexec: Change kexec jump code ordering\n\nChange the ordering of the kexec jump code so that the nonboot CPUs\nare disabled after calling device drivers\u0027 \"late suspend\" methods.\n\nThis change reflects the recent modifications of the power management\ncode that is also used by kexec jump.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "4aecd6718939eb3c4145b248369b65f7483a8a02",
      "tree": "20030736ca8e762b5de7ad2e66c39321c9ef94f5",
      "parents": [
        "900af0d973856d6feb6fc088c2d0d3fde57707d3"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon Mar 16 22:34:26 2009 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon Mar 30 21:46:54 2009 +0200"
      },
      "message": "PM: Change hibernation code ordering\n\nChange the ordering of the hibernation core code so that the platform\n\"prepare\" callbacks are executed and the nonboot CPUs are disabled\nafter calling device drivers\u0027 \"late suspend\" methods.\n\nThis change (along with the previous analogous change of the suspend\ncore code) will allow us to rework the PCI PM core so that the power\nstate of devices is changed in the \"late\" phase of suspend (and\nanalogously in the \"early\" phase of resume), which in turn will allow\nus to avoid the race condition where a device using shared interrupts\nis put into a low power state with interrupts enabled and then an\ninterrupt (for another device) comes in and confuses its driver.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "900af0d973856d6feb6fc088c2d0d3fde57707d3",
      "tree": "4502d4108200fa0eb38dd5f0155b205fed166e48",
      "parents": [
        "2ed8d2b3a81bdbb0418301628ccdb008ac9f40b7"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon Mar 16 22:34:15 2009 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon Mar 30 21:46:54 2009 +0200"
      },
      "message": "PM: Change suspend code ordering\n\nChange the ordering of the suspend core code so that the platform\n\"prepare\" callback is executed and the nonboot CPUs are disabled\nafter calling device drivers\u0027 \"late suspend\" methods.\n\nThis change will allow us to rework the PCI PM core so that the power\nstate of devices is changed in the \"late\" phase of suspend (and\nanalogously in the \"early\" phase of resume), which in turn will allow\nus to avoid the race condition where a device using shared interrupts\nis put into a low power state with interrupts enabled and then an\ninterrupt (for another device) comes in and confuses its driver.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "2ed8d2b3a81bdbb0418301628ccdb008ac9f40b7",
      "tree": "54ab0cd7aa7db73151533b463bd490b62a29c462",
      "parents": [
        "0a0c5168df270a50e3518e4f12bddb31f8f5f38f"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon Mar 16 22:34:06 2009 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon Mar 30 21:46:54 2009 +0200"
      },
      "message": "PM: Rework handling of interrupts during suspend-resume\n\nUse the functions introduced in by the previous patch,\nsuspend_device_irqs(), resume_device_irqs() and check_wakeup_irqs(),\nto rework the handling of interrupts during suspend (hibernation) and\nresume.  Namely, interrupts will only be disabled on the CPU right\nbefore suspending sysdevs, while device drivers will be prevented\nfrom receiving interrupts, with the help of the new helper function,\nbefore their \"late\" suspend callbacks run (and analogously during\nresume).\n\nIn addition, since the device interrups are now disabled before the\nCPU has turned all interrupts off and the CPU will ACK the interrupts\nsetting the IRQ_PENDING bit for them, check in sysdev_suspend() if\nany wake-up interrupts are pending and abort suspend if that\u0027s the\ncase.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "0a0c5168df270a50e3518e4f12bddb31f8f5f38f",
      "tree": "ea1e392fef9d52a7b81c9010580c09317a4d707d",
      "parents": [
        "019abbc87025a030fd25008612afd4eff8a375f7"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon Mar 16 22:33:49 2009 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon Mar 30 21:46:54 2009 +0200"
      },
      "message": "PM: Introduce functions for suspending and resuming device interrupts\n\nIntroduce helper functions allowing us to prevent device drivers from\ngetting any interrupts (without disabling interrupts on the CPU)\nduring suspend (or hibernation) and to make them start to receive\ninterrupts again during the subsequent resume.  These functions make it\npossible to keep timer interrupts enabled while the \"late\" suspend and\n\"early\" resume callbacks provided by device drivers are being\nexecuted.  In turn, this allows device drivers\u0027 \"late\" suspend and\n\"early\" resume callbacks to sleep, execute ACPI callbacks etc.\n\nThe functions introduced here will be used to rework the handling of\ninterrupts during suspend (hibernation) and resume.  Namely,\ninterrupts will only be disabled on the CPU right before suspending\nsysdevs, while device drivers will be prevented from receiving\ninterrupts, with the help of the new helper function, before their\n\"late\" suspend callbacks run (and analogously during resume).\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "612a726faf8486fa48b34fa37115ce1e7421d383",
      "tree": "3448dd7e8129218401eac69b24a6116b06437b4f",
      "parents": [
        "73d0a4b107d58908305f272bfae9bd17f74a2c81"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Mon Mar 30 22:05:16 2009 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Mon Mar 30 22:05:17 2009 +1030"
      },
      "message": "cpumask: remove cpumask_t from core\n\nImpact: cleanup\n\nstruct cpumask is nicer, and we use it to make where we\u0027ve made code\nsafe for CONFIG_CPUMASK_OFFSTACK\u003dy.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "73d0a4b107d58908305f272bfae9bd17f74a2c81",
      "tree": "2dd9c3c51e227880abd662a7749bf3f843b9f6d4",
      "parents": [
        "aa85ea5b89c36c51200d795dd788139bd9b8cf50"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Mon Mar 30 22:05:16 2009 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Mon Mar 30 22:05:16 2009 +1030"
      },
      "message": "cpumask: convert rcutorture.c\n\nWe\u0027re getting rid of cpumasks on the stack.\n\nSimply change tmp_mask to a global, and allocate it in\nrcu_torture_init().\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nAcked-by: \"Paul E. McKenney\" \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: Josh Triplett \u003cjosh@freedesktop.org\u003e\n"
    },
    {
      "commit": "aa85ea5b89c36c51200d795dd788139bd9b8cf50",
      "tree": "0b68a35b691417d927127376beb0541d96c9cc64",
      "parents": [
        "1a8a51004a18b627ea81444201f7867875212f46"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Mon Mar 30 22:05:15 2009 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Mon Mar 30 22:05:16 2009 +1030"
      },
      "message": "cpumask: use new cpumask_ functions in core code.\n\nImpact: cleanup\n\nTime to clean up remaining laggards using the old cpu_ functions.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Trond.Myklebust@netapp.com\n"
    },
    {
      "commit": "9489424454c93f4d225d7af47978f8c7e84bf4d4",
      "tree": "b97394982298e4e191b2766408ff8a3dff99266a",
      "parents": [
        "2b17fa506c418e9fb02bbbc7f426d2bbb5b247a6"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Mon Mar 30 22:05:12 2009 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Mon Mar 30 22:05:13 2009 +1030"
      },
      "message": "cpumask: use mm_cpumask() wrapper: kernel/fork.c\n\nImpact: futureproof\n\nMakes code futureproof against the impending change to mm-\u003ecpu_vm_mask.\n\nIt\u0027s also a chance to use the new cpumask_ ops which take a pointer.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "2b17fa506c418e9fb02bbbc7f426d2bbb5b247a6",
      "tree": "bc010d85f71ff6f6f8fa3e7038d8ad5eb3526aec",
      "parents": [
        "0451fb2ebc4f65c265bb51d71a2fc986ebf20218"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Mon Mar 30 22:05:12 2009 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Mon Mar 30 22:05:12 2009 +1030"
      },
      "message": "cpumask: use set_cpu_active in init/main.c\n\ncpu_active_map is deprecated in favor of cpu_active_mask, which is\nconst for safety: we use accessors now (set_cpu_active) is we really\nwant to make a change.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "1a2142afa5646ad5af44bbe1febaa5e0b7e71156",
      "tree": "1c76670c82adb46a7726421ad0fcba2994758964",
      "parents": [
        "0d34fb8e93ceba7b6dad0062dbb4a0813bacd75b"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Mon Mar 30 22:05:10 2009 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Mon Mar 30 22:05:11 2009 +1030"
      },
      "message": "cpumask: remove dangerous CPU_MASK_ALL_PTR, \u0026CPU_MASK_ALL\n\nImpact: cleanup\n\n(Thanks to Al Viro for reminding me of this, via Ingo)\n\nCPU_MASK_ALL is the (deprecated) \"all bits set\" cpumask, defined as so:\n\n\t#define CPU_MASK_ALL (cpumask_t) { { ... } }\n\nTaking the address of such a temporary is questionable at best,\nunfortunately 321a8e9d (cpumask: add CPU_MASK_ALL_PTR macro) added\nCPU_MASK_ALL_PTR:\n\n\t#define CPU_MASK_ALL_PTR (\u0026CPU_MASK_ALL)\n\nWhich formalizes this practice.  One day gcc could bite us over this\nusage (though we seem to have gotten away with it so far).\n\nSo replace everywhere which used \u0026CPU_MASK_ALL or CPU_MASK_ALL_PTR\nwith the modern \"cpu_all_mask\" (a real const struct cpumask *).\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nReported-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Mike Travis \u003ctravis@sgi.com\u003e\n"
    },
    {
      "commit": "9ff9a26b786c35ee8d2a66222924a807ec851a9f",
      "tree": "db432a17bccca1ca2c16907f0ee83ac449ed4012",
      "parents": [
        "0a3108beea9143225119d5e7c72a8e2c64f3eb7d",
        "0d34fb8e93ceba7b6dad0062dbb4a0813bacd75b"
      ],
      "author": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Mon Mar 30 14:04:53 2009 +1100"
      },
      "committer": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Mon Mar 30 14:04:53 2009 +1100"
      },
      "message": "Merge commit \u0027origin/master\u0027 into next\n\nManual merge of:\n\tarch/powerpc/include/asm/elf.h\n\tdrivers/i2c/busses/i2c-mpc.c\n"
    },
    {
      "commit": "d5ac537e5fb6fc12384c9f3ed6a15e912dfbbc2a",
      "tree": "0b86a19d2e54558ac99ed5e1bb287cf22505b21a",
      "parents": [
        "ee665ecca6d6775f65b1a4154c34f551f62cec52"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Sat Mar 28 21:52:47 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Mar 29 08:12:39 2009 -0700"
      },
      "message": "sched: fix errors in struct \u0026 function comments\n\nFix kernel-doc errors in sched.c:  the structs don\u0027t have\nkernel-doc notation and the short function description needs to\nbe one line only.\n\n  Error(kernel/sched.c:3197): cannot understand prototype: \u0027struct sd_lb_stats \u0027\n  Error(kernel/sched.c:3228): cannot understand prototype: \u0027struct sg_lb_stats \u0027\n  Error(kernel/sched.c:3375): duplicate section name \u0027Description\u0027\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\ncc: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c31f403de62415c738ddc9e673cf8e722c82f861",
      "tree": "33d2bcb04a783c1f0e903c5a949d33381ccb1756",
      "parents": [
        "7541bba880fb6989f489f0c68fa246a375b44035",
        "d00ab2fdd4dc4361c97777bc1fef7234329d4659"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 28 17:32:14 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 28 17:32:14 2009 -0700"
      },
      "message": "Merge branch \u0027futexes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027futexes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  futex: remove the pointer math from double_unlock_hb, fix\n  futex: remove the pointer math from double_unlock_hb\n  futex: clean up fault logic\n  futex: unlock before returning -EFAULT\n  futex: use current-\u003etime_slack_ns for rt tasks too\n  futex: add double_unlock_hb()\n  futex: additional (get|put)_futex_key() fixes\n  futex: update futex commentary\n"
    },
    {
      "commit": "d00ab2fdd4dc4361c97777bc1fef7234329d4659",
      "tree": "b8d8f98c1af633bbc1570b4270b39727737beebf",
      "parents": [
        "88f502fedba82eff252b6420e8b8328e4ae25c67",
        "7c730ccdc1188b97f5c8cb690906242c7ed75c22"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Mar 28 23:24:12 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Mar 28 23:24:12 2009 +0100"
      },
      "message": "Merge branch \u0027linus\u0027 into core/futexes\n"
    },
    {
      "commit": "eedf2c5296a8dfaaf9aec1a938c1d3bd73159a30",
      "tree": "a02e5ef1f2ae46c6328a6744e806c9e7dbff7327",
      "parents": [
        "0151f94f2e61c39858e714a5d92244b0e5a7fdf5",
        "df52092f3c97788592ef72501a43fb7ac6a3cfe0"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 28 14:00:33 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 28 14:00:33 2009 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/arjan/linux-2.6-async-for-30\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/arjan/linux-2.6-async-for-30:\n  fastboot: remove duplicate unpack_to_rootfs()\n  ide/net: flip the order of SATA and network init\n  async: remove the temporary (2.6.29) \"async is off by default\" code\n\nFix up conflicts in init/initramfs.c manually\n"
    },
    {
      "commit": "9710794383ee5008d67f1a6613a4717bf6de47bc",
      "tree": "9917f2f1a345a6de6b957c308acc6b6b8813c697",
      "parents": [
        "5d80f8e5a9dc9c9a94d4aeaa567e219a808b8a4a"
      ],
      "author": {
        "name": "Arjan van de Ven",
        "email": "arjan@linux.intel.com",
        "time": "Sun Mar 15 11:11:44 2009 -0700"
      },
      "committer": {
        "name": "Arjan van de Ven",
        "email": "arjan@linux.intel.com",
        "time": "Sat Mar 28 13:05:30 2009 -0700"
      },
      "message": "async: remove the temporary (2.6.29) \"async is off by default\" code\n\nNow that everyone has been able to test the async code (and it\u0027s being used\nin the Moblin betas by default), we can enable it by default.\nThe various fixes needed have gone into 2.6.29 already.\n\n[With an important bugfix from Stefan Richter]\n\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\n"
    },
    {
      "commit": "82268da1b130f763d22d04f7d016bbf6fc8815c2",
      "tree": "9803f361556d10708313e980428e63a18162e667",
      "parents": [
        "6e15cf04860074ad032e88c306bea656bbdd0f22",
        "5d80f8e5a9dc9c9a94d4aeaa567e219a808b8a4a"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Mar 28 04:21:18 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Mar 28 04:26:01 2009 +0100"
      },
      "message": "Merge branch \u0027linus\u0027 into percpu-cpumask-x86-for-linus-2\n\nConflicts:\n\tarch/sparc/kernel/time_64.c\n\tdrivers/gpu/drm/drm_proc.c\n\nManual merge to resolve build warning due to phys_addr_t type change\non x86:\n\n\tdrivers/gpu/drm/drm_info.c\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "3ae5080f4c2e293229508dabe7c8a90af4e4c460",
      "tree": "9cb11f26905a82b7fac9d3b8f9d61d58bc5c94b0",
      "parents": [
        "2c9e15a011c55ff96b2b8d2b126d1b9a96abba20",
        "aabb8fdb41128705fd1627f56fdd571e45fdbcdb"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 27 16:23:12 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 27 16:23:12 2009 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6: (37 commits)\n  fs: avoid I_NEW inodes\n  Merge code for single and multiple-instance mounts\n  Remove get_init_pts_sb()\n  Move common mknod_ptmx() calls into caller\n  Parse mount options just once and copy them to super block\n  Unroll essentials of do_remount_sb() into devpts\n  vfs: simple_set_mnt() should return void\n  fs: move bdev code out of buffer.c\n  constify dentry_operations: rest\n  constify dentry_operations: configfs\n  constify dentry_operations: sysfs\n  constify dentry_operations: JFS\n  constify dentry_operations: OCFS2\n  constify dentry_operations: GFS2\n  constify dentry_operations: FAT\n  constify dentry_operations: FUSE\n  constify dentry_operations: procfs\n  constify dentry_operations: ecryptfs\n  constify dentry_operations: CIFS\n  constify dentry_operations: AFS\n  ...\n"
    },
    {
      "commit": "a3ec947c85ec339884b30ef6a08133e9311fdae1",
      "tree": "c3cc5859a6b6d8986547405b6c5bd11bc8916114",
      "parents": [
        "585d3bc06f4ca57f975a5a1f698f65a45ea66225"
      ],
      "author": {
        "name": "Sukadev Bhattiprolu",
        "email": "sukadev@linux.vnet.ibm.com",
        "time": "Wed Mar 04 12:06:34 2009 -0800"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Mar 27 14:44:03 2009 -0400"
      },
      "message": "vfs: simple_set_mnt() should return void\n\nsimple_set_mnt() is defined as returning \u0027int\u0027 but always returns 0.\nCallers assume simple_set_mnt() never fails and don\u0027t properly cleanup if\nit were to _ever_ fail.  For instance, get_sb_single() and get_sb_nodev()\nshould:\n\n        up_write(sb-\u003es_unmount);\n        deactivate_super(sb);\n\nif simple_set_mnt() fails.\n\nSince simple_set_mnt() never fails, would be cleaner if it did not\nreturn anything.\n\n[akpm@linux-foundation.org: fix build]\nSigned-off-by: Sukadev Bhattiprolu \u003csukadev@linux.vnet.ibm.com\u003e\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "3ba13d179e8c24c68eac32b93593a6b10fcd1572",
      "tree": "732162ba9ddfe66c8e892a25765cb30f0807cf31",
      "parents": [
        "296c2d86635bd6ecd8f282dfff18bb68fb4fc512"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Feb 20 06:02:22 2009 +0000"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Mar 27 14:44:03 2009 -0400"
      },
      "message": "constify dentry_operations: rest\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "6e15cf04860074ad032e88c306bea656bbdd0f22",
      "tree": "c346383bb7563e8d66b2f4a502f875b259c34870",
      "parents": [
        "be0ea69674ed95e1e98cb3687a241badc756d228",
        "60db56422043aaa455ac7f858ce23c273220f9d9"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Mar 26 21:39:17 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Mar 27 17:28:43 2009 +0100"
      },
      "message": "Merge branch \u0027core/percpu\u0027 into percpu-cpumask-x86-for-linus-2\n\nConflicts:\n\tarch/parisc/kernel/irq.c\n\tarch/x86/include/asm/fixmap_64.h\n\tarch/x86/include/asm/setup.h\n\tkernel/irq/handle.c\n\nSemantic merge:\n        arch/x86/include/asm/fixmap.h\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "a8416961d32d8bb757bcbb86b72042b66d044510",
      "tree": "85ae6a21a2d71541e3dae93f17da078f63e2341e",
      "parents": [
        "6671de344cd661453bbee3cfde5574a974332436",
        "fc2869f6a1993550c2765e934b117e993782db30"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 26 16:06:50 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 26 16:06:50 2009 -0700"
      },
      "message": "Merge branch \u0027irq-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027irq-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (32 commits)\n  x86: disable __do_IRQ support\n  sparseirq, powerpc/cell: fix unused variable warning in interrupt.c\n  genirq: deprecate obsolete typedefs and defines\n  genirq: deprecate __do_IRQ\n  genirq: add doc to struct irqaction\n  genirq: use kzalloc instead of explicit zero initialization\n  genirq: make irqreturn_t an enum\n  genirq: remove redundant if condition\n  genirq: remove unused hw_irq_controller typedef\n  irq: export remove_irq() and setup_irq() symbols\n  irq: match remove_irq() args with setup_irq()\n  irq: add remove_irq() for freeing of setup_irq() irqs\n  genirq: assert that irq handlers are indeed running in hardirq context\n  irq: name \u0027p\u0027 variables a bit better\n  irq: further clean up the free_irq() code flow\n  irq: refactor and clean up the free_irq() code flow\n  irq: clean up manage.c\n  irq: use GFP_KERNEL for action allocation in request_irq()\n  kernel/irq: fix sparse warning: make symbol static\n  irq: optimize init_kstat_irqs/init_copy_kstat_irqs\n  ...\n"
    },
    {
      "commit": "6671de344cd661453bbee3cfde5574a974332436",
      "tree": "826873ae0180eea53b8fcc6e41938b67c656ba3f",
      "parents": [
        "831576fe40f4175e0767623cffa4aeb28157943a",
        "7c526e1fef8d604a9ec022d9145bba5dbfe40a11"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 26 16:05:42 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 26 16:05:42 2009 -0700"
      },
      "message": "Merge branch \u0027timers-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027timers-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (26 commits)\n  posix timers: fix RLIMIT_CPU \u0026\u0026 fork()\n  time: ntp: fix bug in ntp_update_offset() \u0026 do_adjtimex(), fix\n  time: ntp: clean up second_overflow()\n  time: ntp: simplify ntp_tick_adj calculations\n  time: ntp: make 64-bit constants more robust\n  time: ntp: refactor do_adjtimex() some more\n  time: ntp: refactor do_adjtimex()\n  time: ntp: fix bug in ntp_update_offset() \u0026 do_adjtimex()\n  time: ntp: micro-optimize ntp_update_offset()\n  time: ntp: simplify ntp_update_offset_fll()\n  time: ntp: refactor and clean up ntp_update_offset()\n  time: ntp: refactor up ntp_update_frequency()\n  time: ntp: clean up ntp_update_frequency()\n  time: ntp: simplify the MAX_TICKADJ_SCALED definition\n  time: ntp: simplify the second_overflow() code flow\n  time: ntp: clean up kernel/time/ntp.c\n  x86: hpet: stop HPET_COUNTER when programming periodic mode\n  x86: hpet: provide separate functions to stop and start the counter\n  x86: hpet: print HPET registers during setup (if hpet\u003dverbose is used)\n  time: apply NTP frequency/tick changes immediately\n  ...\n"
    },
    {
      "commit": "831576fe40f4175e0767623cffa4aeb28157943a",
      "tree": "de54e628e5849d6cf201df4446d760d17f752326",
      "parents": [
        "21cdbc1378e8aa96e1ed4a606dce1a8e7daf7fdf",
        "66fef08f7d5267b2312c4b48a6d2957d2d414105"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 26 16:05:01 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 26 16:05:01 2009 -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: (46 commits)\n  sched: Add comments to find_busiest_group() function\n  sched: Refactor the power savings balance code\n  sched: Optimize the !power_savings_balance during fbg()\n  sched: Create a helper function to calculate imbalance\n  sched: Create helper to calculate small_imbalance in fbg()\n  sched: Create a helper function to calculate sched_domain stats for fbg()\n  sched: Define structure to store the sched_domain statistics for fbg()\n  sched: Create a helper function to calculate sched_group stats for fbg()\n  sched: Define structure to store the sched_group statistics for fbg()\n  sched: Fix indentations in find_busiest_group() using gotos\n  sched: Simple helper functions for find_busiest_group()\n  sched: remove unused fields from struct rq\n  sched: jiffies not printed per CPU\n  sched: small optimisation of can_migrate_task()\n  sched: fix typos in documentation\n  sched: add avg_overlap decay\n  x86, sched_clock(): mark variables read-mostly\n  sched: optimize ttwu vs group scheduling\n  sched: TIF_NEED_RESCHED -\u003e need_reshed() cleanup\n  sched: don\u0027t rebalance if attached on NULL domain\n  ...\n"
    },
    {
      "commit": "08abe18af1f78ee80c3c3a5ac47c3e0ae0beadf6",
      "tree": "2be39bf8942edca1bcec735145e144a682ca9cd3",
      "parents": [
        "f0de70f8bb56952f6e016a65a8a8d006918f5bf6",
        "0384e2959127a56d0640505d004d8dd92f9c29f5"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Mar 26 15:23:24 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Mar 26 15:23:24 2009 -0700"
      },
      "message": "Merge branch \u0027master\u0027 of /home/davem/src/GIT/linux-2.6/\n\nConflicts:\n\tdrivers/net/wimax/i2400m/usb-notif.c\n"
    },
    {
      "commit": "0c93ea4064a209cdc36de8a9a3003d43d08f46f7",
      "tree": "ff19952407c523a1349ef56c05993416dd28437e",
      "parents": [
        "bc2fd381d8f9dbeb181f82286cdca1567e3d0def",
        "e6e66b02e11563abdb7f69dcb7a2efbd8d577e77"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 26 11:17:04 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 26 11:17:04 2009 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core-2.6: (61 commits)\n  Dynamic debug: fix pr_fmt() build error\n  Dynamic debug: allow simple quoting of words\n  dynamic debug: update docs\n  dynamic debug: combine dprintk and dynamic printk\n  sysfs: fix some bin_vm_ops errors\n  kobject: don\u0027t block for each kobject_uevent\n  sysfs: only allow one scheduled removal callback per kobj\n  Driver core: Fix device_move() vs. dpm list ordering, v2\n  Driver core: some cleanup on drivers/base/sys.c\n  Driver core: implement uevent suppress in kobject\n  vcs: hook sysfs devices into object lifetime instead of \"binding\"\n  driver core: fix passing platform_data\n  driver core: move platform_data into platform_device\n  sysfs: don\u0027t block indefinitely for unmapped files.\n  driver core: move knode_bus into private structure\n  driver core: move knode_driver into private structure\n  driver core: move klist_children into private structure\n  driver core: create a private portion of struct device\n  driver core: remove polling for driver_probe_done(v5)\n  sysfs: reference sysfs_dirent from sysfs inodes\n  ...\n\nFixed conflicts in drivers/sh/maple/maple.c manually\n"
    },
    {
      "commit": "7c526e1fef8d604a9ec022d9145bba5dbfe40a11",
      "tree": "0234bf6c439cb0b91c69ac0eed28c526d05cbf2f",
      "parents": [
        "e8684605adf87d8e65f64ce7b0274d60a05085bd",
        "74019224ac34b044b44a31dd89a54e3477db4896",
        "a2a5ac8650b570bea3cb3614f77739dcd07d6632",
        "37bebc70d7ad4144c571d74500db3bb26ec0c0eb"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Mar 26 15:45:52 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Mar 26 15:45:52 2009 +0100"
      },
      "message": "Merge branches \u0027timers/new-apis\u0027, \u0027timers/ntp\u0027 and \u0027timers/urgent\u0027 into timers/core\n"
    },
    {
      "commit": "a5ebc0b1a7843508b375f7ab8a36a628e5c9f372",
      "tree": "04d3ab410e08b4d9174c663dd6bf95611dd16d0a",
      "parents": [
        "5ba1ae92b6796b3367152ccd9baa022dde7eed4c",
        "8e0ee43bc2c3e19db56a4adaa9a9b04ce885cd84"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Mar 26 15:45:22 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Mar 26 15:45:22 2009 +0100"
      },
      "message": "Merge commit \u0027v2.6.29\u0027 into timers/core\n"
    },
    {
      "commit": "b7bb4c9bb01941fe8feb653f3410e7ed0c9bb786",
      "tree": "ee6fb1ce3354c8a06c7c1b08b2c386aaebf07a33",
      "parents": [
        "c071df18525a95b37dd5821a6dc4af83bd18675e"
      ],
      "author": {
        "name": "Gautham R Shenoy",
        "email": "ego@in.ibm.com",
        "time": "Wed Mar 25 14:44:27 2009 +0530"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Mar 25 13:28:30 2009 +0100"
      },
      "message": "sched: Add comments to find_busiest_group() function\n\nImpact: cleanup\n\nAdd /** style comments around find_busiest_group(). Also add a few\nexplanatory comments.\n\nThis concludes the find_busiest_group() cleanup. The function is\nnow down to 72 lines from the original 313 lines.\n\nSigned-off-by: Gautham R Shenoy \u003cego@in.ibm.com\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Suresh Siddha \u003csuresh.b.siddha@intel.com\u003e\nCc: \"Balbir Singh\" \u003cbalbir@in.ibm.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: \"Dhaval Giani\" \u003cdhaval@linux.vnet.ibm.com\u003e\nCc: Bharata B Rao \u003cbharata@linux.vnet.ibm.com\u003e\nCc: \"Vaidyanathan Srinivasan\" \u003csvaidy@linux.vnet.ibm.com\u003e\nLKML-Reference: \u003c20090325091427.13992.18933.stgit@sofia.in.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "c071df18525a95b37dd5821a6dc4af83bd18675e",
      "tree": "3b5a3761ed296465ed5f7b4669e74ec92203de78",
      "parents": [
        "a021dc03376707c55a3483e32c16b8986d4414cc"
      ],
      "author": {
        "name": "Gautham R Shenoy",
        "email": "ego@in.ibm.com",
        "time": "Wed Mar 25 14:44:22 2009 +0530"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Mar 25 10:30:48 2009 +0100"
      },
      "message": "sched: Refactor the power savings balance code\n\nImpact: cleanup\n\nCreate seperate helper functions to initialize the\npower-savings-balance related variables, to update them and\nto check if we have a scope for performing power-savings balance.\n\nAdd no-op inline functions for the !(CONFIG_SCHED_MC || CONFIG_SCHED_SMT)\ncase.\n\nThis will eliminate all the #ifdef jungle in find_busiest_group() and the\nother helper functions.\n\nSigned-off-by: Gautham R Shenoy \u003cego@in.ibm.com\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Suresh Siddha \u003csuresh.b.siddha@intel.com\u003e\nCc: \"Balbir Singh\" \u003cbalbir@in.ibm.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: \"Dhaval Giani\" \u003cdhaval@linux.vnet.ibm.com\u003e\nCc: Bharata B Rao \u003cbharata@linux.vnet.ibm.com\u003e\nCc: \"Vaidyanathan Srinivasan\" \u003csvaidy@linux.vnet.ibm.com\u003e\nLKML-Reference: \u003c20090325091422.13992.73616.stgit@sofia.in.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "a021dc03376707c55a3483e32c16b8986d4414cc",
      "tree": "a3d29953e30b8874e7191d29dc50c59f9ac4c809",
      "parents": [
        "dbc523a3b86f9e1765b5e70e6886913b99cc5cec"
      ],
      "author": {
        "name": "Gautham R Shenoy",
        "email": "ego@in.ibm.com",
        "time": "Wed Mar 25 14:44:17 2009 +0530"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Mar 25 10:30:48 2009 +0100"
      },
      "message": "sched: Optimize the !power_savings_balance during fbg()\n\nImpact: cleanup, micro-optimization\n\nWe don\u0027t need to perform power_savings balance if either the\ncpu is NOT_IDLE or if the sched_domain doesn\u0027t contain the\nSD_POWERSAVINGS_BALANCE flag set.\n\nCurrently, we check for these conditions multiple number of\ntimes, even though these variables don\u0027t change over the scope\nof find_busiest_group().\n\nCheck once, and store the value in the already exiting\n\"power_savings_balance\" variable.\n\nSigned-off-by: Gautham R Shenoy \u003cego@in.ibm.com\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Suresh Siddha \u003csuresh.b.siddha@intel.com\u003e\nCc: \"Balbir Singh\" \u003cbalbir@in.ibm.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: \"Dhaval Giani\" \u003cdhaval@linux.vnet.ibm.com\u003e\nCc: Bharata B Rao \u003cbharata@linux.vnet.ibm.com\u003e\nCc: \"Vaidyanathan Srinivasan\" \u003csvaidy@linux.vnet.ibm.com\u003e\nLKML-Reference: \u003c20090325091417.13992.2657.stgit@sofia.in.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "dbc523a3b86f9e1765b5e70e6886913b99cc5cec",
      "tree": "74e735ebf9ad70f4b204336eee333e4024fc9a9f",
      "parents": [
        "2e6f44aeda426054fc58464df1ad571aecca0c92"
      ],
      "author": {
        "name": "Gautham R Shenoy",
        "email": "ego@in.ibm.com",
        "time": "Wed Mar 25 14:44:12 2009 +0530"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Mar 25 10:30:47 2009 +0100"
      },
      "message": "sched: Create a helper function to calculate imbalance\n\nMove all the imbalance calculation out of find_busiest_group()\nthrough this helper function.\n\nWith this change, the structure of find_busiest_group() will be\nas follows:\n\n- update_sched_domain_statistics.\n\n- check if imbalance exits.\n\n- update imbalance and return busiest.\n\nSigned-off-by: Gautham R Shenoy \u003cego@in.ibm.com\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Suresh Siddha \u003csuresh.b.siddha@intel.com\u003e\nCc: \"Balbir Singh\" \u003cbalbir@in.ibm.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: \"Dhaval Giani\" \u003cdhaval@linux.vnet.ibm.com\u003e\nCc: Bharata B Rao \u003cbharata@linux.vnet.ibm.com\u003e\nCc: \"Vaidyanathan Srinivasan\" \u003csvaidy@linux.vnet.ibm.com\u003e\nLKML-Reference: \u003c20090325091411.13992.43293.stgit@sofia.in.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "2e6f44aeda426054fc58464df1ad571aecca0c92",
      "tree": "eb6f6788ac6f0ac6c71e82f7741ed8f830c3b2b4",
      "parents": [
        "37abe198b1246ddd206319c43502a687db62d347"
      ],
      "author": {
        "name": "Gautham R Shenoy",
        "email": "ego@in.ibm.com",
        "time": "Wed Mar 25 14:44:06 2009 +0530"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Mar 25 10:30:47 2009 +0100"
      },
      "message": "sched: Create helper to calculate small_imbalance in fbg()\n\nImpact: cleanup\n\nWe have two places in find_busiest_group() where we need to calculate\nthe minor imbalance before returning the busiest group. Encapsulate\nthis functionality into a seperate helper function.\n\nCredit: Vaidyanathan Srinivasan \u003csvaidy@linux.vnet.ibm.com\u003e\nSigned-off-by: Gautham R Shenoy \u003cego@in.ibm.com\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Suresh Siddha \u003csuresh.b.siddha@intel.com\u003e\nCc: \"Balbir Singh\" \u003cbalbir@in.ibm.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: \"Dhaval Giani\" \u003cdhaval@linux.vnet.ibm.com\u003e\nCc: Bharata B Rao \u003cbharata@linux.vnet.ibm.com\u003e\nLKML-Reference: \u003c20090325091406.13992.54316.stgit@sofia.in.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "37abe198b1246ddd206319c43502a687db62d347",
      "tree": "8289ef7751b393fe90ba39c4576d93fe57059381",
      "parents": [
        "222d656dea57e4e084fbd1e9383e6fed2ca9fa61"
      ],
      "author": {
        "name": "Gautham R Shenoy",
        "email": "ego@in.ibm.com",
        "time": "Wed Mar 25 14:44:01 2009 +0530"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Mar 25 10:30:46 2009 +0100"
      },
      "message": "sched: Create a helper function to calculate sched_domain stats for fbg()\n\nImpact: cleanup\n\nCreate a helper function named update_sd_lb_stats() to update the\nvarious sched_domain related statistics in find_busiest_group().\n\nWith this we would have moved all the statistics computation out of\nfind_busiest_group().\n\nCredit: Vaidyanathan Srinivasan \u003csvaidy@linux.vnet.ibm.com\u003e\nSigned-off-by: Gautham R Shenoy \u003cego@in.ibm.com\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Suresh Siddha \u003csuresh.b.siddha@intel.com\u003e\nCc: \"Balbir Singh\" \u003cbalbir@in.ibm.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: \"Dhaval Giani\" \u003cdhaval@linux.vnet.ibm.com\u003e\nCc: Bharata B Rao \u003cbharata@linux.vnet.ibm.com\u003e\nLKML-Reference: \u003c20090325091401.13992.88737.stgit@sofia.in.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "222d656dea57e4e084fbd1e9383e6fed2ca9fa61",
      "tree": "eb5f5be4312e050c28ba9b80dc9d0e113e711190",
      "parents": [
        "1f8c553d0f11d85f7993fe21015695d266771c00"
      ],
      "author": {
        "name": "Gautham R Shenoy",
        "email": "ego@in.ibm.com",
        "time": "Wed Mar 25 14:43:56 2009 +0530"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Mar 25 10:30:46 2009 +0100"
      },
      "message": "sched: Define structure to store the sched_domain statistics for fbg()\n\nImpact: cleanup\n\nCurrently we use a lot of local variables in find_busiest_group()\nto capture the various statistics related to the sched_domain.\nGroup them together into a single data structure.\n\nThis will help us to offload the job of updating the sched_domain\nstatistics to a helper function.\n\nCredit: Vaidyanathan Srinivasan \u003csvaidy@linux.vnet.ibm.com\u003e\nSigned-off-by: Gautham R Shenoy \u003cego@in.ibm.com\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Suresh Siddha \u003csuresh.b.siddha@intel.com\u003e\nCc: \"Balbir Singh\" \u003cbalbir@in.ibm.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: \"Dhaval Giani\" \u003cdhaval@linux.vnet.ibm.com\u003e\nCc: Bharata B Rao \u003cbharata@linux.vnet.ibm.com\u003e\nLKML-Reference: \u003c20090325091356.13992.25970.stgit@sofia.in.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "1f8c553d0f11d85f7993fe21015695d266771c00",
      "tree": "f7444308d28ddab455ccd48f246b628fdb854eaf",
      "parents": [
        "381be78fdc829a22f6327a0ed09f54b6270a976d"
      ],
      "author": {
        "name": "Gautham R Shenoy",
        "email": "ego@in.ibm.com",
        "time": "Wed Mar 25 14:43:51 2009 +0530"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Mar 25 10:30:45 2009 +0100"
      },
      "message": "sched: Create a helper function to calculate sched_group stats for fbg()\n\nImpact: cleanup\n\nCreate a helper function named update_sg_lb_stats() which\ncan be invoked to calculate the individual group\u0027s statistics\nin find_busiest_group().\n\nThis reduces the lenght of find_busiest_group() considerably.\n\nCredit: Vaidyanathan Srinivasan \u003csvaidy@linux.vnet.ibm.com\u003e\nSigned-off-by: Gautham R Shenoy \u003cego@in.ibm.com\u003e\nAked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Suresh Siddha \u003csuresh.b.siddha@intel.com\u003e\nCc: \"Balbir Singh\" \u003cbalbir@in.ibm.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: \"Dhaval Giani\" \u003cdhaval@linux.vnet.ibm.com\u003e\nCc: Bharata B Rao \u003cbharata@linux.vnet.ibm.com\u003e\nLKML-Reference: \u003c20090325091351.13992.43461.stgit@sofia.in.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "381be78fdc829a22f6327a0ed09f54b6270a976d",
      "tree": "d69536e051f14b67138267dd6010a895cdb5745e",
      "parents": [
        "6dfdb0629019f307ab18864b1fd3e5dbb02f383c"
      ],
      "author": {
        "name": "Gautham R Shenoy",
        "email": "ego@in.ibm.com",
        "time": "Wed Mar 25 14:43:46 2009 +0530"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Mar 25 10:30:45 2009 +0100"
      },
      "message": "sched: Define structure to store the sched_group statistics for fbg()\n\nImpact: cleanup\n\nCurrently a whole bunch of variables are used to store the\nvarious statistics pertaining to the groups we iterate over\nin find_busiest_group().\n\nGroup them together in a single data structure and add\nappropriate comments.\n\nThis will be useful later on when we create helper functions\nto calculate the sched_group statistics.\n\nCredit: Vaidyanathan Srinivasan \u003csvaidy@linux.vnet.ibm.com\u003e\nSigned-off-by: Gautham R Shenoy \u003cego@in.ibm.com\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Suresh Siddha \u003csuresh.b.siddha@intel.com\u003e\nCc: \"Balbir Singh\" \u003cbalbir@in.ibm.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: \"Dhaval Giani\" \u003cdhaval@linux.vnet.ibm.com\u003e\nCc: Bharata B Rao \u003cbharata@linux.vnet.ibm.com\u003e\nLKML-Reference: \u003c20090325091345.13992.20099.stgit@sofia.in.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "6dfdb0629019f307ab18864b1fd3e5dbb02f383c",
      "tree": "bb5f0e9b59998961d71d226ff46c162694691a7d",
      "parents": [
        "67bb6c036d1fc3d332c8527a36a546e3e72e822c"
      ],
      "author": {
        "name": "Gautham R Shenoy",
        "email": "ego@in.ibm.com",
        "time": "Wed Mar 25 14:43:40 2009 +0530"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Mar 25 10:30:44 2009 +0100"
      },
      "message": "sched: Fix indentations in find_busiest_group() using gotos\n\nImpact: cleanup\n\nSome indentations in find_busiest_group() can minimized by using\nearly exits with the help of gotos. This improves readability in\na couple of cases.\n\nSigned-off-by: Gautham R Shenoy \u003cego@in.ibm.com\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Suresh Siddha \u003csuresh.b.siddha@intel.com\u003e\nCc: \"Balbir Singh\" \u003cbalbir@in.ibm.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: \"Dhaval Giani\" \u003cdhaval@linux.vnet.ibm.com\u003e\nCc: Bharata B Rao \u003cbharata@linux.vnet.ibm.com\u003e\nCc: \"Vaidyanathan Srinivasan\" \u003csvaidy@linux.vnet.ibm.com\u003e\nLKML-Reference: \u003c20090325091340.13992.45062.stgit@sofia.in.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "67bb6c036d1fc3d332c8527a36a546e3e72e822c",
      "tree": "677795ae954a6fec174c8218e59d8301dc7f1a8a",
      "parents": [
        "b6d9842258d1ba27fb978cded74eb4b6aa15edc8"
      ],
      "author": {
        "name": "Gautham R Shenoy",
        "email": "ego@in.ibm.com",
        "time": "Wed Mar 25 14:43:35 2009 +0530"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Mar 25 10:30:44 2009 +0100"
      },
      "message": "sched: Simple helper functions for find_busiest_group()\n\nImpact: cleanup\n\nCurrently the load idx calculation code is in find_busiest_group().\nMove that to a static inline helper function.\n\nSimilary, to find the first cpu of a sched_group we use\ncpumask_first(sched_group_cpus(group))\n\nUse a helper to that. It improves readability in some cases.\n\nSigned-off-by: Gautham R Shenoy \u003cego@in.ibm.com\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Suresh Siddha \u003csuresh.b.siddha@intel.com\u003e\nCc: \"Balbir Singh\" \u003cbalbir@in.ibm.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: \"Dhaval Giani\" \u003cdhaval@linux.vnet.ibm.com\u003e\nCc: Bharata B Rao \u003cbharata@linux.vnet.ibm.com\u003e\nCc: \"Vaidyanathan Srinivasan\" \u003csvaidy@linux.vnet.ibm.com\u003e\nLKML-Reference: \u003c20090325091335.13992.55424.stgit@sofia.in.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "b6d9842258d1ba27fb978cded74eb4b6aa15edc8",
      "tree": "0fc02ca81720b6e4d19d372e346faad47f4f612c",
      "parents": [
        "67aa0f767af488a7f1e41cccb4f7a4893f24a1ab",
        "8e0ee43bc2c3e19db56a4adaa9a9b04ce885cd84"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Mar 25 10:26:51 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Mar 25 10:26:51 2009 +0100"
      },
      "message": "Merge branch \u0027sched/cleanups\u0027; commit \u0027v2.6.29\u0027 into sched/core\n"
    },
    {
      "commit": "e9d376f0fa66bd630fe27403669c6ae6c22a868f",
      "tree": "6eadef32eb421647ae98d88341b9aceb259aaf22",
      "parents": [
        "095160aee954688a9bad225952c4bee546541e19"
      ],
      "author": {
        "name": "Jason Baron",
        "email": "jbaron@redhat.com",
        "time": "Thu Feb 05 11:51:38 2009 -0500"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Tue Mar 24 16:38:26 2009 -0700"
      },
      "message": "dynamic debug: combine dprintk and dynamic printk\n\nThis patch combines Greg Bank\u0027s dprintk() work with the existing dynamic\nprintk patchset, we are now calling it \u0027dynamic debug\u0027.\n\nThe new feature of this patchset is a richer /debugfs control file interface,\n(an example output from my system is at the bottom), which allows fined grained\ncontrol over the the debug output. The output can be controlled by function,\nfile, module, format string, and line number.\n\nfor example, enabled all debug messages in module \u0027nf_conntrack\u0027:\n\necho -n \u0027module nf_conntrack +p\u0027 \u003e /mnt/debugfs/dynamic_debug/control\n\nto disable them:\n\necho -n \u0027module nf_conntrack -p\u0027 \u003e /mnt/debugfs/dynamic_debug/control\n\nA further explanation can be found in the documentation patch.\n\nSigned-off-by: Greg Banks \u003cgnb@sgi.com\u003e\nSigned-off-by: Jason Baron \u003cjbaron@redhat.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "67aa0f767af488a7f1e41cccb4f7a4893f24a1ab",
      "tree": "7852ed82045798af8881f486b175c11512dd1437",
      "parents": [
        "efd247fa34084d9b162f485004ae6d8a04059f0c"
      ],
      "author": {
        "name": "Luis Henriques",
        "email": "henrix@sapo.pt",
        "time": "Tue Mar 24 22:10:02 2009 +0000"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Mar 24 23:16:51 2009 +0100"
      },
      "message": "sched: remove unused fields from struct rq\n\nImpact: cleanup, new schedstat ABI\n\nSince they are used on in statistics and are always set to zero, the\nfollowing fields from struct rq have been removed: yld_exp_empty,\nyld_act_empty and yld_both_empty.\n\nBoth Sched Debug and SCHEDSTAT_VERSION versions has also been\nincremented since ABIs have been changed.\n\nThe schedtop tool has been updated to properly handle new version of\nschedstat:\n\n   http://rt.wiki.kernel.org/index.php/Schedtop_utility\n\nSigned-off-by: Luis Henriques \u003chenrix@sapo.pt\u003e\nAcked-by: Gregory Haskins \u003cghaskins@novell.com\u003e\nAcked-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nLKML-Reference: \u003c20090324221002.GA10061@hades.domain.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "9e41d9597e7825ec20d690013d32bcec5f3fe16a",
      "tree": "ac6fea59e9a4a1c2183d6bbd6ffa760680673afb",
      "parents": [
        "77ecfe8d427f554fabbf258e9d789f1d4c3afd63",
        "8e0ee43bc2c3e19db56a4adaa9a9b04ce885cd84"
      ],
      "author": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Tue Mar 24 13:38:30 2009 +1100"
      },
      "committer": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Tue Mar 24 13:38:30 2009 +1100"
      },
      "message": "Merge commit \u0027origin/master\u0027 into next\n"
    },
    {
      "commit": "703a3cd72817e99201cef84a8a7aecc60b2b3581",
      "tree": "3e943755178ff410694722bb031f523136fbc432",
      "parents": [
        "df7f54c012b92ec93d56b68547351dcdf8a163d3",
        "8e0ee43bc2c3e19db56a4adaa9a9b04ce885cd84"
      ],
      "author": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Tue Mar 24 10:52:46 2009 +1100"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Tue Mar 24 10:52:46 2009 +1100"
      },
      "message": "Merge branch \u0027master\u0027 into next\n"
    },
    {
      "commit": "37bebc70d7ad4144c571d74500db3bb26ec0c0eb",
      "tree": "856ed72491c8e650dd4ad8f56d57bda4881fa231",
      "parents": [
        "d56ffd38a93841a07c839a375049a56b51e9567c"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Mon Mar 23 20:34:11 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Mar 23 20:43:35 2009 +0100"
      },
      "message": "posix timers: fix RLIMIT_CPU \u0026\u0026 fork()\n\nSee http://bugzilla.kernel.org/show_bug.cgi?id\u003d12911\n\ncopy_signal() copies signal-\u003erlim, but RLIMIT_CPU is \"lost\". Because\nposix_cpu_timers_init_group() sets cputime_expires.prof_exp \u003d 0 and thus\nfastpath_timer_check() returns false unless we have other cpu timers.\n\nThis is the minimal fix for 2.6.29 (tested) and 2.6.28. The patch is not\noptimal, we need further cleanups here. With this patch update_rlimit_cpu()\nis not really needed, but I don\u0027t think it should be removed.\n\nThe proper fix (I think) is:\n\n\t- set_process_cpu_timer() should just start the cputimer-\u003erunning\n\t  logic (it does), no need to change cputime_expires.xxx_exp\n\n\t- posix_cpu_timers_init_group() should set -\u003erunning when needed\n\n\t- fastpath_timer_check() can check -\u003erunning instead of\n\t  task_cputime_zero(signal-\u003ecputime_expires)\n\nReported-by: Peter Lojkin \u003cia6432@inbox.ru\u003e\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nCc: \u003cstable@kernel.org\u003e [for 2.6.29.x]\nLKML-Reference: \u003c20090323193411.GA17514@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "53da1d9456fe7f87a920a78fdbdcf1225d197cb7",
      "tree": "eccd5357ceff25a9a07be802ac0161c8c1842e64",
      "parents": [
        "b0dcb4a91ddb79f2e213205cf8d86b467f8559c7"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Mon Mar 23 16:07:24 2009 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 23 09:22:31 2009 -0700"
      },
      "message": "fix ptrace slowness\n\nThis patch fixes bug #12208:\n\n  Bug-Entry       : http://bugzilla.kernel.org/show_bug.cgi?id\u003d12208\n  Subject         : uml is very slow on 2.6.28 host\n\nThis turned out to be not a scheduler regression, but an already\nexisting problem in ptrace being triggered by subtle scheduler\nchanges.\n\nThe problem is this:\n\n - task A is ptracing task B\n - task B stops on a trace event\n - task A is woken up and preempts task B\n - task A calls ptrace on task B, which does ptrace_check_attach()\n - this calls wait_task_inactive(), which sees that task B is still on the runq\n - task A goes to sleep for a jiffy\n - ...\n\nSince UML does lots of the above sequences, those jiffies quickly add\nup to make it slow as hell.\n\nThis patch solves this by not rescheduling in read_unlock() after\nptrace_stop() has woken up the tracer.\n\nThanks to Oleg Nesterov and Ingo Molnar for the feedback.\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nCC: stable@kernel.org\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "efd247fa34084d9b162f485004ae6d8a04059f0c",
      "tree": "417dcbe06d5cce1353a4c19cbda480ae67652b5c",
      "parents": [
        "af66df5ecf9c9e2d2ff86e8203510c1c4519d64c",
        "59fcbddaff6f862cc1584b488866d9c4a5579085"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Mar 23 16:53:20 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Mar 23 16:53:20 2009 +0100"
      },
      "message": "Merge branches \u0027sched/debug\u0027 and \u0027linus\u0027 into sched/core\n"
    }
  ],
  "next": "b3e3b302cf6dc8d60b67f0e84d1fa5648889c038"
}
