)]}'
{
  "log": [
    {
      "commit": "f3baa4827a4b13905dbbdddf15463541bd671dfd",
      "tree": "2c947c26873fc90f98dccb0dfb39f9de38bd44c0",
      "parents": [
        "6cf92e98a48ba4bd5aeb8932b3844d3f8eacac76"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@bnsf.davemloft.net",
        "time": "Mon Oct 29 00:54:39 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Tue Oct 30 21:29:56 2007 -0700"
      },
      "message": "[COMPAT]: Fix build on COMPAT platforms when CONFIG_NET is disabled.\n\nAdd some missing cond_syscall() entries for this case.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "cc5f916e90a811dd8f809b4d17409f98e74b237c",
      "tree": "14a6c21e0f2de43553e94460aca897076d0f1952",
      "parents": [
        "c8593884f2768fa3ff6f7e199d75b6ca91f9e891"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon Oct 29 14:37:12 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 30 08:06:55 2007 -0700"
      },
      "message": "Freezer: do not allow freezing processes to clear TIF_SIGPENDING\n\nDo not allow processes to clear their TIF_SIGPENDING if TIF_FREEZE is set,\nso that they will not race with the freezer (like mysqld does, for example).\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Nigel Cunningham \u003cnigel@suspend2.net\u003e\nAcked-by: Pavel Machek \u003cpavel@ucw.cz\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9301899be75b464ef097f0b5af7af6d9bd8f68a7",
      "tree": "a7053c5c0babcdbad6d4baff0551d60e5c4308af",
      "parents": [
        "82798a17ad40df827d465329a20ace80497f9b32"
      ],
      "author": {
        "name": "Balbir Singh",
        "email": "balbir@linux.vnet.ibm.com",
        "time": "Tue Oct 30 00:26:32 2007 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 30 00:26:32 2007 +0100"
      },
      "message": "sched: fix /proc/\u003cPID\u003e/stat stime/utime monotonicity, part 2\n\nExtend Peter\u0027s patch to fix accounting issues, by keeping stime\nmonotonic too.\n\nSigned-off-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nTested-by: Frans Pop \u003celendil@planet.nl\u003e\n"
    },
    {
      "commit": "38605cae99d386332df6822a22dba7bfdc8fae1c",
      "tree": "c7f086158d726dfeba03a0864fcbd52083365436",
      "parents": [
        "8eb172d9418c9387234a2c9a344131c46b5eea5b"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Oct 29 21:18:11 2007 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Oct 29 21:18:11 2007 +0100"
      },
      "message": "sched: fix style in kernel/sched.c\n\nfallout of recent commits: small coding style fixes.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "8eb172d9418c9387234a2c9a344131c46b5eea5b",
      "tree": "10a5ebbf91a76c5749135d3dc8c5a66e0e52ef58",
      "parents": [
        "fe5c7cc22897b809a2fbe05bea71963853df7f17"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Oct 29 21:18:11 2007 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Oct 29 21:18:11 2007 +0100"
      },
      "message": "sched: fix style of swap() macro in kernel/sched_fair.c\n\nfix style of swap() macro in kernel/sched_fair.c.\n\n( this macro should eventually move to a general header, as ext3 uses\n  a similar construct too. )\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "fe5c7cc22897b809a2fbe05bea71963853df7f17",
      "tree": "6690ef27dbe5cf15a48cbb95c03b5e3e7950f5e9",
      "parents": [
        "ae8393e508e5f17add66964688c49bf0bfe4fcf9"
      ],
      "author": {
        "name": "Paul Menage",
        "email": "menage@google.com",
        "time": "Mon Oct 29 21:18:11 2007 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Oct 29 21:18:11 2007 +0100"
      },
      "message": "sched: report CPU usage in CFS cgroup directories\n\nAdds a cpu.usage file to the CFS cgroup that reports CPU usage in\nmilliseconds for that cgroup\u0027s tasks\n\n[ mingo@elte.hu: style cleanups. ]\n\nSigned-off-by: Paul Menage \u003cmenage@google.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "ae8393e508e5f17add66964688c49bf0bfe4fcf9",
      "tree": "41df1c369499d862b2b4a7896f938fd4d30463b7",
      "parents": [
        "7bae49d498de87f0da0c20c67adaa278eac84566"
      ],
      "author": {
        "name": "Srivatsa Vaddagiri",
        "email": "vatsa@linux.vnet.ibm.com",
        "time": "Mon Oct 29 21:18:11 2007 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Oct 29 21:18:11 2007 +0100"
      },
      "message": "sched: move rcu_head to task_group struct\n\nPeter Zijlstra noticed that the rcu_head object need not be present\nin every cfs_rq of a group. Move it to the task_group structure\ninstead.\n\nSigned-off-by: Srivatsa Vaddagiri \u003cvatsa@linux.vnet.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "7bae49d498de87f0da0c20c67adaa278eac84566",
      "tree": "29af1dd7d73da9c06e6295debf0bf963085a1589",
      "parents": [
        "73a2bcb0edb9ffb0b007b3546b430e2c6e415eee"
      ],
      "author": {
        "name": "James Bottomley",
        "email": "James.Bottomley@SteelEye.com",
        "time": "Mon Oct 29 21:18:11 2007 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Oct 29 21:18:11 2007 +0100"
      },
      "message": "sched: fix incorrect assumption that cpu 0 exists\n\nThis patch:\n\ncommit 9b5b77512dce239fa168183fa71896712232e95a\nAuthor: Srivatsa Vaddagiri \u003cvatsa@linux.vnet.ibm.com\u003e\nDate:   Mon Oct 15 17:00:09 2007 +0200\n\n    sched: clean up code under CONFIG_FAIR_GROUP_SCHED\n\nIntroduced an assumption of the existence of CPU0 via this line\n\ncfs_rq \u003d tg-\u003ecfs_rq[0];\n\nIf you have no CPU0, that will be NULL.  The fix seems to be just to\ntake whatever cfs_rq queue comes out of the for_each_possible_cpu()\nloop, since they\u0027re all equally good for the destruction operation.\n\nSigned-off-by: James Bottomley \u003cJames.Bottomley@SteelEye.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "73a2bcb0edb9ffb0b007b3546b430e2c6e415eee",
      "tree": "dd84f61589c7dd21b7be973c288611ffe547f21b",
      "parents": [
        "f7402e0361d4472535e07cfca648f2fa81d85cd2"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Mon Oct 29 21:18:11 2007 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Oct 29 21:18:11 2007 +0100"
      },
      "message": "sched: keep utime/stime monotonic\n\nkeep utime/stime monotonic.\n\ncpustats use utime/stime as a ratio against sum_exec_runtime, as a\nconsequence it can happen - when the ratio changes faster than time\naccumulates - that either can be appear to go backwards.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "f7402e0361d4472535e07cfca648f2fa81d85cd2",
      "tree": "b412891cf8ee217fcac82cf21a0d2039715859fc",
      "parents": [
        "3529a233421fc43fa7bfdf7a4317daf28348a23d"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@kernel.org",
        "time": "Mon Oct 29 21:18:10 2007 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Oct 29 21:18:10 2007 +0100"
      },
      "message": "sched: make kernel/sched.c:account_guest_time() static\n\naccount_guest_time() can become static.\n\nSigned-off-by: Adrian Bunk \u003cbunk@kernel.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "93400708dba888d45b4da01e1753a3a743f44496",
      "tree": "2bad883807ec1f49b63d486299b99040e75f6684",
      "parents": [
        "db3a91fe2b425c9adde47069efebdba44e665cef",
        "edfed66e17854c312e81a2218f9b0592a555c9a3"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Oct 29 07:47:05 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Oct 29 07:47:05 2007 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/tglx/linux-2.6-hrt\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/tglx/linux-2.6-hrt:\n  Quieten hrtimer printk: \"Switched to high resolution mode ..\"\n  timer_list: Fix printk format strings\n  clockevents: unexport tick_nohz_get_sleep_length\n"
    },
    {
      "commit": "ca5cd877ae699e758e6f26efc11b01bf6631d427",
      "tree": "f2337ce76ab006d9705b10e8e0ed2f62487c837f",
      "parents": [
        "2a397e82c7db18019e408f953dd58dc1963a328c"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@ftp.linux.org.uk",
        "time": "Mon Oct 29 04:31:16 2007 +0000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Oct 29 07:41:32 2007 -0700"
      },
      "message": "x86 merge fallout: uml\n\nDon\u0027t undef __i386__/__x86_64__ in uml anymore, make sure that (few) places\nthat required adjusting the ifdefs got those.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "edfed66e17854c312e81a2218f9b0592a555c9a3",
      "tree": "2d5ec7a18aaa06ca2641a02c33df82567750a15a",
      "parents": [
        "129f1d2c5352eea3f7c8af9f8c1006dc0da7be52"
      ],
      "author": {
        "name": "Michael Ellerman",
        "email": "michael@ellerman.id.au",
        "time": "Mon Oct 29 16:35:29 2007 +1100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Oct 29 09:39:38 2007 +0100"
      },
      "message": "Quieten hrtimer printk: \"Switched to high resolution mode ..\"\n\nChange the hrtimer printk \"Switched to high resolution mode ..\" to\nbe KERN_DEBUG, rather than KERN_INFO. If users need to see this they\ncan pass \"loglevel\" or \"debug\" on the command line, or check dmesg.\n\nSigned-off-by: Michael Ellerman \u003cmichael@ellerman.id.au\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n\n kernel/hrtimer.c |    2 +-\n 1 file changed, 1 insertion(+), 1 deletion(-)\n\n"
    },
    {
      "commit": "129f1d2c5352eea3f7c8af9f8c1006dc0da7be52",
      "tree": "7037fc1981edb3797d31f1ba49b922e7b9bf0dfd",
      "parents": [
        "64e38eb082bd845d6758079f65b191203986336d"
      ],
      "author": {
        "name": "Vegard Nossum",
        "email": "vegard.nossum@gmail.com",
        "time": "Thu Oct 11 08:23:34 2007 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Oct 29 09:39:38 2007 +0100"
      },
      "message": "timer_list: Fix printk format strings\n\nThis makes sure printk format strings contain no more than a single\nline.\n\nSigned-off-by: Vegard Nossum \u003cvegard.nossum@gmail.com\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n\n"
    },
    {
      "commit": "64e38eb082bd845d6758079f65b191203986336d",
      "tree": "13047d1a2c91d47cee6bffacfd27735d981a64aa",
      "parents": [
        "2a397e82c7db18019e408f953dd58dc1963a328c"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@kernel.org",
        "time": "Wed Oct 24 18:24:22 2007 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Oct 29 09:39:38 2007 +0100"
      },
      "message": "clockevents: unexport tick_nohz_get_sleep_length\n\nThis patch removes the unused \nEXPORT_SYMBOL_GPL(tick_nohz_get_sleep_length).\n\nSigned-off-by: Adrian Bunk \u003cbunk@kernel.org\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n\n"
    },
    {
      "commit": "681f3e68541d6f03e3e05d21fe15093578b8b539",
      "tree": "82e13a7b15a2bb15233ba964dd1eb352b007cae4",
      "parents": [
        "e1d1484f72127a5580d37c379f6a5b2c2786434c"
      ],
      "author": {
        "name": "Peter Williams",
        "email": "pwil3058@bigpond.net.au",
        "time": "Wed Oct 24 18:23:51 2007 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Oct 24 18:23:51 2007 +0200"
      },
      "message": "sched: isolate SMP balancing code a bit more\n\nAt the moment, a lot of load balancing code that is irrelevant to non\nSMP systems gets included during non SMP builds.\n\nThis patch addresses this issue and reduces the binary size on non\nSMP systems:\n\n   text    data     bss     dec     hex filename\n  10983      28    1192   12203    2fab sched.o.before\n  10739      28    1192   11959    2eb7 sched.o.after\n\nSigned-off-by: Peter Williams \u003cpwil3058@bigpond.net.au\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "e1d1484f72127a5580d37c379f6a5b2c2786434c",
      "tree": "e3e6529c5b9079f35b2c60bbd346a3c51c2b2c13",
      "parents": [
        "a0f846aa76c3e03d54c1700a87cab3a46ccd71e2"
      ],
      "author": {
        "name": "Peter Williams",
        "email": "pwil3058@bigpond.net.au",
        "time": "Wed Oct 24 18:23:51 2007 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Oct 24 18:23:51 2007 +0200"
      },
      "message": "sched: reduce balance-tasks overhead\n\nAt the moment, balance_tasks() provides low level functionality for both\n  move_tasks() and move_one_task() (indirectly) via the load_balance()\nfunction (in the sched_class interface) which also provides dual\nfunctionality.  This dual functionality complicates the interfaces and\ninternal mechanisms and makes the run time overhead of operations that\nare called with two run queue locks held.\n\nThis patch addresses this issue and reduces the overhead of these\noperations.\n\nSigned-off-by: Peter Williams \u003cpwil3058@bigpond.net.au\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "a0f846aa76c3e03d54c1700a87cab3a46ccd71e2",
      "tree": "bd3a536ce6b8de9165e51d23688ac5d184e7c123",
      "parents": [
        "2b01dfe37203e825edd8417ad3993d01cbbb527e"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@kernel.org",
        "time": "Wed Oct 24 18:23:50 2007 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Oct 24 18:23:50 2007 +0200"
      },
      "message": "sched: make cpu_shares_{show,store}() static\n\ncpu_shares_{show,store}() can become static.\n\nSigned-off-by: Adrian Bunk \u003cbunk@kernel.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "2b01dfe37203e825edd8417ad3993d01cbbb527e",
      "tree": "d63ff96f0de520bbe13920c44510eaaec95d2609",
      "parents": [
        "a8972ccf00b7184a743eb6cd9bc7f3443357910c"
      ],
      "author": {
        "name": "Paul Menage",
        "email": "menage@google.com",
        "time": "Wed Oct 24 18:23:50 2007 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Oct 24 18:23:50 2007 +0200"
      },
      "message": "sched: clean up some control group code\n\n- replace \"cont\" with \"cgrp\" in a few places in the CFS cgroup code, \n- use write_uint rather than write for cpu.shares write function\n\nSigned-off-by: Paul Menage \u003cmenage@google.com\u003e\nAcked-by : Srivatsa Vaddagiri \u003cvatsa@linux.vnet.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "b3da2a73ff5a2953a4ad8ebbf0aa7e6965ff9de2",
      "tree": "43583e5f492a48c56f9537006c8f806d570b0d84",
      "parents": [
        "838225b48edc971620cbeb292034dabd2b0d7d1d"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mel@csn.ul.ie",
        "time": "Wed Oct 24 18:23:50 2007 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Oct 24 18:23:50 2007 +0200"
      },
      "message": "sched: document profile\u003dsleep requiring CONFIG_SCHEDSTATS\n\nprofile\u003dsleep only works if CONFIG_SCHEDSTATS is set. This patch notes\nthe limitation in Documentation/kernel-parameters.txt and prints a\nwarning at boot-time if profile\u003dsleep is used without CONFIG_SCHEDSTAT.\n\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "838225b48edc971620cbeb292034dabd2b0d7d1d",
      "tree": "c4248521fead10f50f4539b6859339aeeef118d7",
      "parents": [
        "4dcf6aff023d9934630fb3649284951831c51f8f"
      ],
      "author": {
        "name": "Satyam Sharma",
        "email": "satyam@infradead.org",
        "time": "Wed Oct 24 18:23:50 2007 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Oct 24 18:23:50 2007 +0200"
      },
      "message": "sched: use show_regs() to improve __schedule_bug() output\n\nA full register dump along with stack backtrace would make the\n\"scheduling while atomic\" message more helpful. Use show_regs() instead\nof dump_stack() for this. We already know we\u0027re atomic in here (that is\nwhy this function was called) so show_regs()\u0027s atomicity expectations\nare guaranteed.\n\nAlso, modify the output of the \"BUG: scheduling while atomic:\" header a\nbit to keep task-\u003ecomm and task-\u003epid together and preempt_count() after\nthem.\n\nSigned-off-by: Satyam Sharma \u003csatyam@infradead.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "4dcf6aff023d9934630fb3649284951831c51f8f",
      "tree": "ed949a5b38ec42579f077c96115cbca950b0bca3",
      "parents": [
        "b15136e9497ef5d6e08cf665e0d0acf7a229f6dc"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Oct 24 18:23:48 2007 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Oct 24 18:23:48 2007 +0200"
      },
      "message": "sched: clean up sched_domain_debug()\n\nclean up sched_domain_debug().\n\nthis also shrinks the code a bit:\n\n   text    data     bss     dec     hex filename\n  50474    4306     480   55260    d7dc sched.o.before\n  50404    4306     480   55190    d796 sched.o.after\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "b15136e9497ef5d6e08cf665e0d0acf7a229f6dc",
      "tree": "88178f8115d502787e7c52c548c5745350353bc0",
      "parents": [
        "7378547f2c83ca16a30d0a7c488a43a688ea0888"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Oct 24 18:23:48 2007 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Oct 24 18:23:48 2007 +0200"
      },
      "message": "sched: fix fastcall mismatch in completion APIs\n\nJeff Dike noticed that wait_for_completion_interruptible()\u0027s prototype\nhad a mismatched fastcall.\n\nFix this by removing the fastcall attributes from all the completion APIs.\n\nFound-by: Jeff Dike \u003cjdike@linux.intel.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "7378547f2c83ca16a30d0a7c488a43a688ea0888",
      "tree": "6565a913ab6e649683fc49f094c35a9176434636",
      "parents": [
        "c9927c2bf4f45bb85e8b502ab3fb79ad6483c244"
      ],
      "author": {
        "name": "Milton Miller",
        "email": "miltonm@bga.com",
        "time": "Wed Oct 24 18:23:48 2007 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Oct 24 18:23:48 2007 +0200"
      },
      "message": "sched: fix sched_domain sysctl registration again\n\ncommit  029190c515f15f512ac85de8fc686d4dbd0ae731 (cpuset\nsched_load_balance flag) was not tested SCHED_DEBUG enabled as\ncommitted as it dereferences NULL when used and it reordered\nthe sysctl registration to cause it to never show any domains\nor their tunables.\n\nFixes:\n\n1) restore arch_init_sched_domains ordering\n\twe can\u0027t walk the domains before we build them\n\n\tpresently we register cpus with empty directories (no domain\n\tdirectories or files).\n\n2) make unregister_sched_domain_sysctl do nothing when already unregistered\n\tdetach_destroy_domains is now called one set of cpus at a time\n\tunregister_syctl dereferences NULL if called with a null.\n\n\tWhile the the function would always dereference null if called\n\ttwice, in the previous code it was always called once and then\n\twas followed a register.  So only the hidden bug of the\n\tsysctl_root_table not being allocated followed by an attempt to\n\tfree it would have shown the error.\n\n3) always call unregister and register in partition_sched_domains\n\tThe code is \"smart\" about unregistering only needed domains.\n\tSince we aren\u0027t guaranteed any calls to unregister, always \n\tunregister.   Without calling register on the way out we\n\twill not have a table or any sysctl tree.\n\n4) warn if register is called without unregistering\n\tThe previous table memory is lost, leaving pointers to the\n\tlater freed memory in sysctl and leaking the memory of the\n\ttables.\n\nBefore this patch on a 2-core 4-thread box compiled for SMT and NUMA,\nthe domains appear empty (there are actually 3 levels per cpu).  And as\nsoon as two domains a null pointer is dereferenced (unreliable in this\ncase is stack garbage):\n\nbu19a:~# ls -R /proc/sys/kernel/sched_domain/\n/proc/sys/kernel/sched_domain/:\ncpu0  cpu1  cpu2  cpu3\n\n/proc/sys/kernel/sched_domain/cpu0:\n\n/proc/sys/kernel/sched_domain/cpu1:\n\n/proc/sys/kernel/sched_domain/cpu2:\n\n/proc/sys/kernel/sched_domain/cpu3:\n\nbu19a:~# mkdir /dev/cpuset\nbu19a:~# mount -tcpuset cpuset /dev/cpuset/\nbu19a:~# cd /dev/cpuset/\nbu19a:/dev/cpuset# echo 0 \u003e sched_load_balance \nbu19a:/dev/cpuset# mkdir one\nbu19a:/dev/cpuset# echo 1 \u003e one/cpus               \nbu19a:/dev/cpuset# echo 0 \u003e one/sched_load_balance \nUnable to handle kernel paging request for data at address 0x00000018\nFaulting instruction address: 0xc00000000006b608\nNIP: c00000000006b608 LR: c00000000006b604 CTR: 0000000000000000\nREGS: c000000018d973f0 TRAP: 0300   Not tainted  (2.6.23-bml)\nMSR: 9000000000009032 \u003cEE,ME,IR,DR\u003e  CR: 28242442  XER: 00000000\nDAR: 0000000000000018, DSISR: 0000000040000000\nTASK \u003d c00000001912e340[1987] \u0027bash\u0027 THREAD: c000000018d94000 CPU: 2\n..\nNIP [c00000000006b608] .unregister_sysctl_table+0x38/0x110\nLR [c00000000006b604] .unregister_sysctl_table+0x34/0x110\nCall Trace:\n[c000000018d97670] [c000000007017270] 0xc000000007017270 (unreliable)\n[c000000018d97720] [c000000000058710] .detach_destroy_domains+0x30/0xb0\n[c000000018d977b0] [c00000000005cf1c] .partition_sched_domains+0x1bc/0x230\n[c000000018d97870] [c00000000009fdc4] .rebuild_sched_domains+0xb4/0x4c0\n[c000000018d97970] [c0000000000a02e8] .update_flag+0x118/0x170\n[c000000018d97a80] [c0000000000a1768] .cpuset_common_file_write+0x568/0x820\n[c000000018d97c00] [c00000000009d95c] .cgroup_file_write+0x7c/0x180\n[c000000018d97cf0] [c0000000000e76b8] .vfs_write+0xe8/0x1b0\n[c000000018d97d90] [c0000000000e810c] .sys_write+0x4c/0x90\n[c000000018d97e30] [c00000000000852c] syscall_exit+0x0/0x40\n\nSigned-off-by: Milton Miller \u003cmiltonm@bga.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "3bdf590eac36ac5930deb9552febee3ff18cd2d1",
      "tree": "2fb38debbfe27f4c1533af85d775d83d7b7abf30",
      "parents": [
        "01e7ae8c13bb06a2ce622ebace33bb7e28ef596c"
      ],
      "author": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Tue Oct 23 18:36:44 2007 -0400"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Tue Oct 23 21:28:39 2007 -0400"
      },
      "message": "cgroup: kill unused variable\n\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "a98ce5c6feead6bfedefabd46cb3d7f5be148d9a",
      "tree": "7bbd027e40805966ad908e40f09ffd412a72a88b",
      "parents": [
        "48d2268473a66fe3aa78fb13b09ee59d6ee95073"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Tue Oct 23 11:26:25 2007 +0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 23 09:01:31 2007 -0700"
      },
      "message": "Fix synchronize_irq races with IRQ handler\n\nAs it is some callers of synchronize_irq rely on memory barriers\nto provide synchronisation against the IRQ handlers.  For example,\nthe tg3 driver does\n\n\ttp-\u003eirq_sync \u003d 1;\n\tsmp_mb();\n\tsynchronize_irq();\n\nand then in the IRQ handler:\n\n\tif (!tp-\u003eirq_sync)\n\t\tnetif_rx_schedule(dev, \u0026tp-\u003enapi);\n\nUnfortunately memory barriers only work well when they come in\npairs.  Because we don\u0027t actually have memory barriers on the\nIRQ path, the memory barrier before the synchronize_irq() doesn\u0027t\nactually protect us.\n\nIn particular, synchronize_irq() may return followed by the\nresult of netif_rx_schedule being made visible.\n\nThis patch (mostly written by Linus) fixes this by using spin\nlocks instead of memory barries on the synchronize_irq() path.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nAcked-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "481968f44e81aac3b1b4863baf2c497ec46388f6",
      "tree": "7d09ab4c43956a170ba26eb963d9111e33acb1ae",
      "parents": [
        "e95d9c6b046f665da551a51b4071902336a6118c"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Sun Oct 21 20:59:53 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Oct 22 19:40:02 2007 -0700"
      },
      "message": "auditsc: fix kernel-doc param warnings\n\nFix kernel-doc for auditsc parameter changes.\n\nWarning(linux-2.6.23-git17//kernel/auditsc.c:1623): No description found for parameter \u0027dentry\u0027\nWarning(linux-2.6.23-git17//kernel/auditsc.c:1666): No description found for parameter \u0027dentry\u0027\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0fd56c70334d7899edaee742ae49d9b893951376",
      "tree": "76b82ef119aa4a5ef8bbacb8256aeaba4277f7e1",
      "parents": [
        "56d61a0e26c5a61c66d1ac259a59960295939da9",
        "49d3bd7e2b990e717aa66e229410b8f5096c4956"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Oct 22 19:24:17 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Oct 22 19:24:17 2007 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/avi/kvm\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/avi/kvm:\n  KVM: Use new smp_call_function_mask() in kvm_flush_remote_tlbs()\n  sched: don\u0027t clear PF_VCPU in scheduler\n  KVM: Improve local apic timer wraparound handling\n  KVM: Fix local apic timer divide by zero\n  KVM: Move kvm_guest_exit() after local_irq_enable()\n  KVM: x86 emulator: fix access registers for instructions with ModR/M byte and Mod \u003d 3\n  KVM: VMX: Force vm86 mode if setting flags during real mode\n  KVM: x86 emulator: implement \u0027movnti mem, reg\u0027\n  KVM: VMX: Reset mmu context when entering real mode\n  KVM: VMX: Handle NMIs before enabling interrupts and preemption\n  KVM: MMU: Set shadow pte atomically in mmu_pte_write_zap_pte()\n  KVM: x86 emulator: fix repne/repnz decoding\n  KVM: x86 emulator: fix merge screwup due to emulator split\n"
    },
    {
      "commit": "5081dba6588a0c228821ede4635441f7758eb757",
      "tree": "e01ae7a431a41bce25fc0805dc778d955fc02a02",
      "parents": [
        "974717012029ee36d19069c12e3c9bb13fa715a8"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Mon Oct 22 12:55:36 2007 -0600"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Oct 22 19:15:59 2007 -0700"
      },
      "message": "Fix appletalk sysctl entry name\n\nGabriel C reported that modprobing appletalk on current git gives a\nwarning in dmesg :\n\n   \"sysctl table check failed: /net/appletalk .3.7 procname does not match binary path procname\"\n\nOops.  My apologies it appears I made a mistake when creating my table\nto check up on sysctl values.\n\nSigned-off-by: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nTested-by: Gabriel C \u003cnix.or.die@googlemail.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "83d87d167367ae2cc2c6810399aefac33a2ced41",
      "tree": "b5b2c9850c7a4804b38590adc6588ad1b253e0fe",
      "parents": [
        "9da8f4e83a824dabf3fb7ad0890549257ae614a0"
      ],
      "author": {
        "name": "Laurent Vivier",
        "email": "Laurent.Vivier@bull.net",
        "time": "Thu Oct 18 15:19:01 2007 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Mon Oct 22 12:03:29 2007 +0200"
      },
      "message": "sched: don\u0027t clear PF_VCPU in scheduler\n\nKVM clears it by itself now, and for s390 this is plain wrong.\n\nSigned-off-by: Laurent Vivier \u003cLaurent.Vivier@bull.net\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "74c3cbe33bc077ac1159cadfea608b501e100344",
      "tree": "4c4023caa4e15d19780255fa5880df3d36eb292c",
      "parents": [
        "455434d450a358ac5bcf3fc58f8913d13c544622"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jul 22 08:04:18 2007 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Oct 21 02:37:45 2007 -0400"
      },
      "message": "[PATCH] audit: watching subtrees\n\nNew kind of audit rule predicates: \"object is visible in given subtree\".\nThe part that can be sanely implemented, that is.  Limitations:\n\t* if you have hardlink from outside of tree, you\u0027d better watch\nit too (or just watch the object itself, obviously)\n\t* if you mount something under a watched tree, tell audit\nthat new chunk should be added to watched subtrees\n\t* if you umount something in a watched tree and it\u0027s still mounted\nelsewhere, you will get matches on events happening there.  New command\ntells audit to recalculate the trees, trimming such sources of false\npositives.\n\nNote that it\u0027s _not_ about path - if something mounted in several places\n(multiple mount, bindings, different namespaces, etc.), the match does\n_not_ depend on which one we are using for access.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "5a190ae69766da9a34bf31200c5cea4c0667cf94",
      "tree": "340c500fe42518abe6d1159a00619b1bd02f07fc",
      "parents": [
        "cfa76f024f7c9e65169425804e5b32e71f66d0ee"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 07 12:19:32 2007 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Oct 21 02:37:18 2007 -0400"
      },
      "message": "[PATCH] pass dentry to audit_inode()/audit_inode_child()\n\nmakes caller simpler *and* allows to scan ancestors\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "c00046c279a2521075250fad682ca0acc10d4fd7",
      "tree": "78a7e9089c26f199ad9b0161bb564b7c1ca6daf9",
      "parents": [
        "9abbf7d028b1598b40ebdc81c48f30da7f3d5bf5",
        "8e8a1407ac23b43cec0412338c1b4f5e1c664550"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 19 20:36:17 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 19 20:36:17 2007 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/bunk/trivial\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/bunk/trivial: (74 commits)\n  fix do_sys_open() prototype\n  sysfs: trivial: fix sysfs_create_file kerneldoc spelling mistake\n  Documentation: Fix typo in SubmitChecklist.\n  Typo: depricated -\u003e deprecated\n  Add missing profile\u003dkvm option to Documentation/kernel-parameters.txt\n  fix typo about TBI in e1000 comment\n  proc.txt: Add /proc/stat field\n  small documentation fixes\n  Fix compiler warning in smount example program from sharedsubtree.txt\n  docs/sysfs: add missing word to sysfs attribute explanation\n  documentation/ext3: grammar fixes\n  Documentation/java.txt: typo and grammar fixes\n  Documentation/filesystems/vfs.txt: typo fix\n  include/asm-*/system.h: remove unused set_rmb(), set_wmb() macros\n  trivial copy_data_pages() tidy up\n  Fix typo in arch/x86/kernel/tsc_32.c\n  file link fix for Pegasus USB net driver help\n  remove unused return within void return function\n  Typo fixes retrun -\u003e return\n  x86 hpet.h: remove broken links\n  ...\n"
    },
    {
      "commit": "c1cb8e48bddd9e16ef488ea5d50885908c5a4081",
      "tree": "a4df1a782b9bfe1002dd01bbeb0020da93a7e746",
      "parents": [
        "60812a4a99b796d894d2522dc63cb0fafc3be25e"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Fri Oct 19 18:23:25 2007 -0600"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 19 18:04:22 2007 -0700"
      },
      "message": "sysctl: Don\u0027t compile sysctl_check when !CONFIG_SYSCTL\n\nWeird I thought I had written the makefile so this would be handled.  Oh\nwell this should fix it.\n\nSorry about that.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nAcked-and-tested-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "df7c487250b17aa0caeee7d85f120330f1d31355",
      "tree": "bce0b3c04706ba89e410a22cc9c370086e931693",
      "parents": [
        "963151297328eea39933bda23959ce5319e99fb7"
      ],
      "author": {
        "name": "Fengguang Wu",
        "email": "wfg@mail.ustc.edu.cn",
        "time": "Sat Oct 20 02:26:04 2007 +0200"
      },
      "committer": {
        "name": "Adrian Bunk",
        "email": "bunk@kernel.org",
        "time": "Sat Oct 20 02:26:04 2007 +0200"
      },
      "message": "trivial copy_data_pages() tidy up\n\nChange the loop style of copy_data_pages() to remove a duplicate condition.\n\nSigned-off-by: Fengguang Wu \u003cwfg@mail.ustc.edu.cn\u003e\nAcked-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nSigned-off-by: Adrian Bunk \u003cbunk@kernel.org\u003e\n"
    },
    {
      "commit": "6506f2aa6670da9970ca13daccd466ad7ce2cd29",
      "tree": "abed3b46b557124167e69b0a2bdb58ecf758f789",
      "parents": [
        "4a739d55c21298639df2ddeab332b8afef125ebc"
      ],
      "author": {
        "name": "Uwe Kleine-König",
        "email": "ukleinek@informatik.uni-freiburg.de",
        "time": "Sat Oct 20 01:56:53 2007 +0200"
      },
      "committer": {
        "name": "Adrian Bunk",
        "email": "bunk@kernel.org",
        "time": "Sat Oct 20 01:56:53 2007 +0200"
      },
      "message": "fix comment: unlock_hrtimer_base is the counterpart of lock_hrtimer_base\n\nSigned-off-by: Uwe Kleine-König \u003cukleinek@informatik.uni-freiburg.de\u003e\nSigned-off-by: Adrian Bunk \u003cbunk@kernel.org\u003e\n"
    },
    {
      "commit": "6888c1ecd63a3e5e206048602b3f59b58f4ffd8f",
      "tree": "2c96e7b8540fce3cf0f16662f7bd4329630cb298",
      "parents": [
        "01dd2fbf0da4019c380b6ca22a074538fb31db5a"
      ],
      "author": {
        "name": "Michael Neuling",
        "email": "mikey@neuling.org",
        "time": "Sat Oct 20 01:41:05 2007 +0200"
      },
      "committer": {
        "name": "Adrian Bunk",
        "email": "bunk@kernel.org",
        "time": "Sat Oct 20 01:41:05 2007 +0200"
      },
      "message": "kernel/sched.c: remove bogus comment from account_user_time\n\nhardirq_offset is no longer needed.\n\nSigned-off-by: Michael Neuling \u003cmikey@neuling.org\u003e\nSigned-off-by: Adrian Bunk \u003cbunk@kernel.org\u003e\n"
    },
    {
      "commit": "9aa5e993fa0f1a8c2c900bdfb80697d77b6dc223",
      "tree": "9dcf72c020f53022f624e0f2da0699273d07ca4b",
      "parents": [
        "5a56db1c0fe196eea896078338fbf9258ab8365b"
      ],
      "author": {
        "name": "Daniel Roesen",
        "email": "dr@cluenet.de",
        "time": "Sat Oct 20 00:30:06 2007 +0200"
      },
      "committer": {
        "name": "Adrian Bunk",
        "email": "bunk@kernel.org",
        "time": "Sat Oct 20 00:30:06 2007 +0200"
      },
      "message": "trivial comment wording/typo fix regarding taint flags\n\nSigned-off-by: Daniel Roesen \u003cdr@cluenet.de\u003e\nSigned-off-by: Adrian Bunk \u003cbunk@kernel.org\u003e\n"
    },
    {
      "commit": "3a4fa0a25da81600ea0bcd75692ae8ca6050d165",
      "tree": "a4de1662e645c029cf3cf58f0646cbb1959861dc",
      "parents": [
        "18735dd8d2d37031b97f9e9e106acbaed01eb896"
      ],
      "author": {
        "name": "Robert P. J. Day",
        "email": "rpjday@mindspring.com",
        "time": "Fri Oct 19 23:10:43 2007 +0200"
      },
      "committer": {
        "name": "Adrian Bunk",
        "email": "bunk@kernel.org",
        "time": "Fri Oct 19 23:10:43 2007 +0200"
      },
      "message": "Fix misspellings of \"system\", \"controller\", \"interrupt\" and \"necessary\".\n\nFix the various misspellings of \"system\", controller\", \"interrupt\" and\n\"[un]necessary\".\n\nSigned-off-by: Robert P. J. Day \u003crpjday@mindspring.com\u003e\nSigned-off-by: Adrian Bunk \u003cbunk@kernel.org\u003e\n"
    },
    {
      "commit": "c4ec20717313daafba59225f812db89595952b83",
      "tree": "253337453b1dc965c40668e4949337ed1c46cab7",
      "parents": [
        "ec2626815bf9a9922e49820b03e670e833f3ca3c",
        "00a2b433557f10736e8a02de619b3e9052556c12"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 19 13:12:46 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 19 13:12:46 2007 -0700"
      },
      "message": "Merge branch \u0027release\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6\n\n* \u0027release\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6: (41 commits)\n  ACPICA: hw: Don\u0027t carry spinlock over suspend\n  ACPICA: hw: remove use_lock flag from acpi_hw_register_{read, write}\n  ACPI: cpuidle: port idle timer suspend/resume workaround to cpuidle\n  ACPI: clean up acpi_enter_sleep_state_prep\n  Hibernation: Make sure that ACPI is enabled in acpi_hibernation_finish\n  ACPI: suppress uninitialized var warning\n  cpuidle: consolidate 2.6.22 cpuidle branch into one patch\n  ACPI: thinkpad-acpi: skip blanks before the data when parsing sysfs\n  ACPI: AC: Add sysfs interface\n  ACPI: SBS: Add sysfs alarm\n  ACPI: SBS: Add ACPI_PROCFS around procfs handling code.\n  ACPI: SBS: Add support for power_supply class (and sysfs)\n  ACPI: SBS: Make SBS reads table-driven.\n  ACPI: SBS: Simplify data structures in SBS\n  ACPI: SBS: Split host controller (ACPI0001) from SBS driver (ACPI0002)\n  ACPI: EC: Add new query handler to list head.\n  ACPI: Add acpi_bus_generate_event4() function\n  ACPI: Battery: add sysfs alarm\n  ACPI: Battery: Add sysfs support\n  ACPI: Battery: Misc clean-ups, no functional changes\n  ...\n\nFix up conflicts in drivers/misc/thinkpad_acpi.[ch] manually\n"
    },
    {
      "commit": "a39bc51691a0c8880b7d10fa7c2f034f3ba9a037",
      "tree": "6f74815a32b5344cbfc2b3eca6def411308c06fb",
      "parents": [
        "a24efe62dd165be7d03431cf936ae17d345fed69"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@sw.ru",
        "time": "Thu Oct 18 23:41:10 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 19 11:53:56 2007 -0700"
      },
      "message": "Uninline fork.c/exit.c\n\nSave ~650 bytes here.\n\nadd/remove: 4/0 grow/shrink: 0/7 up/down: 430/-1088 (-658)\nfunction                                     old     new   delta\n__copy_fs_struct                               -     202    +202\n__put_fs_struct                                -     112    +112\n__exit_fs                                      -      58     +58\n__exit_files                                   -      58     +58\nexit_files                                    58       2     -56\nput_fs_struct                                112       5    -107\nexit_fs                                      161       2    -159\nsys_unshare                                  774     590    -184\ncopy_process                                4031    3840    -191\ndo_exit                                     1791    1597    -194\ncopy_fs_struct                               202       5    -197\n\nNo difference in lmbench lat_proc tests on 2-way Opteron 246.\nSmaaaal degradation on UP P4 (within errors).\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@sw.ru\u003e\nCc: Arjan van de Ven \u003carjan@infradead.org\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a24efe62dd165be7d03431cf936ae17d345fed69",
      "tree": "d6e89de347ac0e3b2fe478690cc1f58281022bc3",
      "parents": [
        "26e3d11dd32da3768d64639899ccdb8a2649116f"
      ],
      "author": {
        "name": "Mariusz Kozlowski",
        "email": "m.kozlowski@tuxland.pl",
        "time": "Thu Oct 18 23:41:09 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 19 11:53:56 2007 -0700"
      },
      "message": "kernel/fork.c: remove unneeded variable initialization in copy_process()\n\nThis initialization of is not needed so just remove it.\n\nSigned-off-by: Mariusz Kozlowski \u003cm.kozlowski@tuxland.pl\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8256e47cdc8923e9959eb1d7f95d80da538add80",
      "tree": "4702aa3ad7c9025f70314f1146e551b4e1dfcbb2",
      "parents": [
        "09cadedbdc01f1a4bea1f427d4fb4642eaa19da9"
      ],
      "author": {
        "name": "Mathieu Desnoyers",
        "email": "mathieu.desnoyers@polymtl.ca",
        "time": "Thu Oct 18 23:41:06 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 19 11:53:54 2007 -0700"
      },
      "message": "Linux Kernel Markers\n\nThe marker activation functions sits in kernel/marker.c.  A hash table is used\nto keep track of the registered probes and armed markers, so the markers\nwithin a newly loaded module that should be active can be activated at module\nload time.\n\nmarker_query has been removed. marker_get_first, marker_get_next and\nmarker_release should be used as iterators on the markers.\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: Mathieu Desnoyers \u003cmathieu.desnoyers@polymtl.ca\u003e\nAcked-by: \"Frank Ch. Eigler\" \u003cfche@redhat.com\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Mike Mason \u003cmmlnx@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": "09cadedbdc01f1a4bea1f427d4fb4642eaa19da9",
      "tree": "988da227d46be7eb239a37676b9140d325dc4335",
      "parents": [
        "1c3f0b8e07de78a86f2dce911f5e245845ce40a8"
      ],
      "author": {
        "name": "Mathieu Desnoyers",
        "email": "mathieu.desnoyers@polymtl.ca",
        "time": "Thu Oct 18 23:41:05 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 19 11:53:54 2007 -0700"
      },
      "message": "Combine instrumentation menus in kernel/Kconfig.instrumentation\n\nQuoting Randy:\n\n\"It seems sad that this patch sources Kconfig.marker, a 7-line file,\n20-something times.  Yes, you (we) don\u0027t want to put those 7 lines into\n20-something different files, so sourcing is the right thing.\n\nHowever, what you did for avr32 seems more on the right track to me: make\n_one_ Instrumentation support menu that includes PROFILING, OPROFILE, KPROBES,\nand MARKERS and then use (source) that in all of the arches.\"\n\nSigned-off-by: Mathieu Desnoyers \u003cmathieu.desnoyers@polymtl.ca\u003e\nAcked-by: 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": "68318b8e0b61f98f0be833cc862ab6dee69348b4",
      "tree": "cb48f82c73ff2204754ff3d5955a0073ca38c383",
      "parents": [
        "fb391599f2eaf22197e3e914187c957ef7eeb4c5"
      ],
      "author": {
        "name": "Srivatsa Vaddagiri",
        "email": "vatsa@linux.vnet.ibm.com",
        "time": "Thu Oct 18 23:41:03 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 19 11:53:51 2007 -0700"
      },
      "message": "Hook up group scheduler with control groups\n\nEnable \"cgroup\" (formerly containers) based fair group scheduling.  This\nwill let administrator create arbitrary groups of tasks (using \"cgroup\"\npseudo filesystem) and control their cpu bandwidth usage.\n\n[akpm@linux-foundation.org: fix cpp condition]\nSigned-off-by: Srivatsa Vaddagiri \u003cvatsa@linux.vnet.ibm.com\u003e\nSigned-off-by: Dhaval Giani \u003cdhaval@linux.vnet.ibm.com\u003e\nCc: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "cba63c3089fe57bfafff56239a67ac26bfe027a0",
      "tree": "a247f3b0352e29e9da5cc07e840b28b5e27ba2e4",
      "parents": [
        "283bb7fada7e33a759d8fc9bd7a44532e4ad420e"
      ],
      "author": {
        "name": "Bernhard Walle",
        "email": "bwalle@suse.de",
        "time": "Thu Oct 18 23:40:58 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 19 11:53:49 2007 -0700"
      },
      "message": "Extended crashkernel command line\n\nThis patch adds a extended crashkernel syntax that makes the value of reserved\nsystem RAM dependent on the system RAM itself:\n\n    crashkernel\u003d\u003crange1\u003e:\u003csize1\u003e[,\u003crange2\u003e:\u003csize2\u003e,...][@offset]\n    range\u003dstart-[end]\n\nFor example:\n\n    crashkernel\u003d512M-2G:64M,2G-:128M\n\nThe motivation comes from distributors that configure their crashkernel\ncommand line automatically with some configuration tool (YaST, you know ;)).\nOf course that tool knows the value of System RAM, but if the user removes\nRAM, then the system becomes unbootable or at least unusable and error\nhandling is very difficult.\n\nThis series implements this change for i386, x86_64, ia64, ppc64 and sh.  That\nshould be all platforms that support kdump in current mainline.  I tested all\nplatforms except sh due to the lack of a sh processor.\n\nThis patch:\n\nThis is the generic part of the patch.  It adds a parse_crashkernel() function\nin kernel/kexec.c that is called by the architecture specific code that\nactually reserves the memory.  That function takes the whole command line and\nlooks itself for \"crashkernel\u003d\" in it.\n\nIf there are multiple occurrences, then the last one is taken.  The advantage\nis that if you have a bootloader like lilo or elilo which allows you to append\na command line parameter but not to remove one (like in GRUB), then you can\nadd another crashkernel value for testing at the boot command line and this\none overwrites the command line in the configuration then.\n\nSigned-off-by: Bernhard Walle \u003cbwalle@suse.de\u003e\nCc: Andi Kleen \u003cak@suse.de\u003e\nCc: \"Luck, Tony\" \u003ctony.luck@intel.com\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: Vivek Goyal \u003cvgoyal@in.ibm.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": "73e753a50dcac7d6d4fa8b9552203ef544a70d77",
      "tree": "7e8569cb99f6792bb436a07ec5ea45632b9c4ecf",
      "parents": [
        "470fd646444c65a5d062a371f5ec8dcedee61239"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Thu Oct 18 23:40:47 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 19 11:53:44 2007 -0700"
      },
      "message": "CPU HOTPLUG: avoid hotadd when proper possible_map isn\u0027t specified\n\ncpu-hot-add should be fail if cpu is not set in cpu_possible_map.  If go\nahead, the system will panic soon.\n\nEspecially, arch which requires additional_cpus\u003d parameter should handle\nthis.  Tested on ia64.\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "470fd646444c65a5d062a371f5ec8dcedee61239",
      "tree": "59b923486d4a95efa07c4b2ad7cb0b1fcc3f3c88",
      "parents": [
        "bd89aabc6761de1c35b154fe6f914a445d301510"
      ],
      "author": {
        "name": "Cliff Wickman",
        "email": "cpw@sgi.com",
        "time": "Thu Oct 18 23:40:46 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 19 11:53:44 2007 -0700"
      },
      "message": "hotplug cpu: migrate a task within its cpuset\n\nWhen a cpu is disabled, move_task_off_dead_cpu() is called for tasks that have\nbeen running on that cpu.\n\nCurrently, such a task is migrated:\n 1) to any cpu on the same node as the disabled cpu, which is both online\n    and among that task\u0027s cpus_allowed\n 2) to any cpu which is both online and among that task\u0027s cpus_allowed\n\nIt is typical of a multithreaded application running on a large NUMA system to\nhave its tasks confined to a cpuset so as to cluster them near the memory that\nthey share.  Furthermore, it is typical to explicitly place such a task on a\nspecific cpu in that cpuset.  And in that case the task\u0027s cpus_allowed\nincludes only a single cpu.\n\nThis patch would insert a preference to migrate such a task to some cpu within\nits cpuset (and set its cpus_allowed to its entire cpuset).\n\nWith this patch, migrate the task to:\n 1) to any cpu on the same node as the disabled cpu, which is both online\n    and among that task\u0027s cpus_allowed\n 2) to any online cpu within the task\u0027s cpuset\n 3) to any cpu which is both online and among that task\u0027s cpus_allowed\n\nIn order to do this, move_task_off_dead_cpu() must make a call to\ncpuset_cpus_allowed_locked(), a new subset of cpuset_cpus_allowed(), that will\nnot block.  (name change - per Oleg\u0027s suggestion)\n\nCalls are made to cpuset_lock() and cpuset_unlock() in migration_call() to set\nthe cpuset mutex during the whole migrate_live_tasks() and\nmigrate_dead_tasks() procedure.\n\n[akpm@linux-foundation.org: build fix]\n[pj@sgi.com: Fix indentation and spacing]\nSigned-off-by: Cliff Wickman \u003ccpw@sgi.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: Paul Jackson \u003cpj@sgi.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Paul Jackson \u003cpj@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bd89aabc6761de1c35b154fe6f914a445d301510",
      "tree": "4564755be493b144d9a78766eae3de87326e23e4",
      "parents": [
        "69cccb887a35f3761b7ea62cdd2bee602868c735"
      ],
      "author": {
        "name": "Paul Menage",
        "email": "menage@google.com",
        "time": "Thu Oct 18 23:40:44 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 19 11:53:43 2007 -0700"
      },
      "message": "Control groups: Replace \"cont\" with \"cgrp\" and other misc renaming\n\nReplace \"cont\" with \"cgrp\" and other misc renaming\n\nThis patch finishes some of the names that got missed in the great\n\"task containers\" -\u003e \"control groups\" rename. Primarily it renames\nthe local variable \"cont\" to \"cgrp\" in a number of places, and renames\nthe CONT_* enum members to CGRP_*.\n\nThis patch is not intended to have any effect on the generated code;\nthe output of \"objdump -d kernel/cgroup.o\" is unchanged.\n\nSigned-off-by: Paul Menage \u003cmenage@google.com\u003e\nAcked-by: Paul Jackson \u003cpj@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "69cccb887a35f3761b7ea62cdd2bee602868c735",
      "tree": "37197177f0d2a8c7b147a33acdca59e5bf8f96b6",
      "parents": [
        "6651fd561bc6fbc688542e9a5bf070c6485eebe8"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Thu Oct 18 23:40:44 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 19 11:53:43 2007 -0700"
      },
      "message": "Use task_pid_nr() instead of pid_nr(task_pid())\n\nThere are two places that do so - the cgroups subsystem and the autofs\ncode.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: Ian Kent \u003craven@themaw.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": "ba25f9dcc4ea6e30839fcab5a5516f2176d5bfed",
      "tree": "3123c03b25dd5c0cd24b6ab4fc16731217838157",
      "parents": [
        "9a2e70572e94e21e7ec4186702d045415422bda0"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Thu Oct 18 23:40:40 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 19 11:53:43 2007 -0700"
      },
      "message": "Use helpers to obtain task pid in printks\n\nThe task_struct-\u003epid member is going to be deprecated, so start\nusing the helpers (task_pid_nr/task_pid_vnr/task_pid_nr_ns) in\nthe kernel.\n\nThe first thing to start with is the pid, printed to dmesg - in\nthis case we may safely use task_pid_nr(). Besides, printks produce\nmore (much more) than a half of all the explicit pid usage.\n\n[akpm@linux-foundation.org: git-drm went and changed lots of stuff]\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: Dave Airlie \u003cairlied@linux.ie\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9a2e70572e94e21e7ec4186702d045415422bda0",
      "tree": "a6cd54dc559cbf6840dac4077f507a961486e21b",
      "parents": [
        "270f722d4d5f94b02fd48eed47e57917ab00a858"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Thu Oct 18 23:40:39 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 19 11:53:43 2007 -0700"
      },
      "message": "Isolate the explicit usage of signal-\u003epgrp\n\nThe pgrp field is not used widely around the kernel so it is now marked as\ndeprecated with appropriate comment.\n\nThe initialization of INIT_SIGNALS is trimmed because\na) they are set to 0 automatically;\nb) gcc cannot properly initialize two anonymous (the second one\n   is the one with the session) unions. In this particular case\n   to make it compile we\u0027d have to add some field initialized\n   right before the .pgrp.\n\nThis is the same patch as the 1ec320afdc9552c92191d5f89fcd1ebe588334ca one\n(from Cedric), but for the pgrp field.\n\nSome progress report:\n\nWe have to deprecate the pid, tgid, session and pgrp fields on struct\ntask_struct and struct signal_struct.  The session and pgrp are already\ndeprecated.  The tgid value is close to being such - the worst known usage\nin in fs/locks.c and audit code.  The pid field deprecation is mainly\nblocked by numerous printk-s around the kernel that print the tsk-\u003epid to\nlog.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Sukadev Bhattiprolu \u003csukadev@us.ibm.com\u003e\nCc: Cedric Le Goater \u003cclg@fr.ibm.com\u003e\nCc: Serge Hallyn \u003cserue@us.ibm.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "270f722d4d5f94b02fd48eed47e57917ab00a858",
      "tree": "f6f58a0730c8968d2b4b983965b4409761616ab2",
      "parents": [
        "d85f50d5e1aa99ab082035f94265847521819e58"
      ],
      "author": {
        "name": "Eugene Teo",
        "email": "eugeneteo@kernel.sg",
        "time": "Thu Oct 18 23:40:38 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 19 11:53:42 2007 -0700"
      },
      "message": "Fix tsk-\u003eexit_state usage\n\ntsk-\u003eexit_state can only be 0, EXIT_ZOMBIE, or EXIT_DEAD.  A non-zero test\nis the same as tsk-\u003eexit_state \u0026 (EXIT_ZOMBIE | EXIT_DEAD), so just testing\ntsk-\u003eexit_state is sufficient.\n\nSigned-off-by: Eugene Teo \u003ceugeneteo@kernel.sg\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8707d8b8c0cbdf4441507f8dded194167da896c7",
      "tree": "1e9ac6b15027bd55263378e551c1595a937d66d6",
      "parents": [
        "020958b6272882c1a8bfbe5f3e0927f3845c2698"
      ],
      "author": {
        "name": "Paul Menage",
        "email": "menage@google.com",
        "time": "Thu Oct 18 23:40:22 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 19 11:53:41 2007 -0700"
      },
      "message": "Fix cpusets update_cpumask\n\nCause writes to cpuset \"cpus\" file to update cpus_allowed for member tasks:\n\n- collect batches of tasks under tasklist_lock and then call\n  set_cpus_allowed() on them outside the lock (since this can sleep).\n\n- add a simple generic priority heap type to allow efficient collection\n  of batches of tasks to be processed without duplicating or missing any\n  tasks in subsequent batches.\n\n- make \"cpus\" file update a no-op if the mask hasn\u0027t changed\n\n- fix race between update_cpumask() and sched_setaffinity() by making\n  sched_setaffinity() post-check that it\u0027s not running on any cpus outside\n  cpuset_cpus_allowed().\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: Paul Menage \u003cmenage@google.com\u003e\nCc: Paul Jackson \u003cpj@sgi.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Cedric Le Goater \u003cclg@fr.ibm.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Serge Hallyn \u003cserue@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": "020958b6272882c1a8bfbe5f3e0927f3845c2698",
      "tree": "0525b9aa75ef425e40c6b6094bd51f4765ca1fa5",
      "parents": [
        "029190c515f15f512ac85de8fc686d4dbd0ae731"
      ],
      "author": {
        "name": "Paul Jackson",
        "email": "pj@sgi.com",
        "time": "Thu Oct 18 23:40:21 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 19 11:53:41 2007 -0700"
      },
      "message": "cpusets: decrustify cpuset mask update code\n\nDecrustify the kernel/cpuset.c \u0027cpus\u0027 and \u0027mems\u0027 updating code.\n\nOther than subtle improvements in the consistency of identifying\nwhite space at the beginning and end of passed in masks, this\ndoesn\u0027t make any visible difference in behaviour.  But it\u0027s\none or two hundred kernel text bytes smaller, and easier to\nunderstand.\n\n[akpm@linux-foundation.org: coding-style fix]\nSigned-off-by: Paul Jackson \u003cpj@sgi.com\u003e\nReviewed-by: Paul Menage \u003cmenage@google.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "029190c515f15f512ac85de8fc686d4dbd0ae731",
      "tree": "a946f9223d17e945141fef81f94a75b38e2cc6ef",
      "parents": [
        "2f2a3a46fcafa7a12d61454f67f932dfe7d84c60"
      ],
      "author": {
        "name": "Paul Jackson",
        "email": "pj@sgi.com",
        "time": "Thu Oct 18 23:40:20 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 19 11:53:41 2007 -0700"
      },
      "message": "cpuset sched_load_balance flag\n\nAdd a new per-cpuset flag called \u0027sched_load_balance\u0027.\n\nWhen enabled in a cpuset (the default value) it tells the kernel scheduler\nthat the scheduler should provide the normal load balancing on the CPUs in\nthat cpuset, sometimes moving tasks from one CPU to a second CPU if the\nsecond CPU is less loaded and if that task is allowed to run there.\n\nWhen disabled (write \"0\" to the file) then it tells the kernel scheduler\nthat load balancing is not required for the CPUs in that cpuset.\n\nNow even if this flag is disabled for some cpuset, the kernel may still\nhave to load balance some or all the CPUs in that cpuset, if some\noverlapping cpuset has its sched_load_balance flag enabled.\n\nIf there are some CPUs that are not in any cpuset whose sched_load_balance\nflag is enabled, the kernel scheduler will not load balance tasks to those\nCPUs.\n\nMoreover the kernel will partition the \u0027sched domains\u0027 (non-overlapping\nsets of CPUs over which load balancing is attempted) into the finest\ngranularity partition that it can find, while still keeping any two CPUs\nthat are in the same shed_load_balance enabled cpuset in the same element\nof the partition.\n\nThis serves two purposes:\n 1) It provides a mechanism for real time isolation of some CPUs, and\n 2) it can be used to improve performance on systems with many CPUs\n    by supporting configurations in which load balancing is not done\n    across all CPUs at once, but rather only done in several smaller\n    disjoint sets of CPUs.\n\nThis mechanism replaces the earlier overloading of the per-cpuset\nflag \u0027cpu_exclusive\u0027, which overloading was removed in an earlier\npatch: cpuset-remove-sched-domain-hooks-from-cpusets\n\nSee further the Documentation and comments in the code itself.\n\n[akpm@linux-foundation.org: don\u0027t be weird]\nSigned-off-by: Paul Jackson \u003cpj@sgi.com\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2f2a3a46fcafa7a12d61454f67f932dfe7d84c60",
      "tree": "cd4fe3aed382a0557cdfb9fa0b7a3b950a01a767",
      "parents": [
        "8990571eb573032c1192440febb17132074c5575"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Thu Oct 18 23:40:19 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 19 11:53:41 2007 -0700"
      },
      "message": "Uninline the task_xid_nr_ns() calls\n\nSince these are expanded into call to pid_nr_ns() anyway, it\u0027s OK to move\nthe whole routine out-of-line.  This is a cheap way to save ~100 bytes from\nvmlinux.  Together with the previous two patches, it saves half-a-kilo from\nthe vmlinux.\n\nUn-inline other (currently inlined) functions must be done with additional\nperformance testing.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: Sukadev Bhattiprolu \u003csukadev@us.ibm.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Paul Menage \u003cmenage@google.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": "8990571eb573032c1192440febb17132074c5575",
      "tree": "c5cceff1dbac91ca12917e12f5768a5ab332ec75",
      "parents": [
        "bac0abd6174e427404dd197cdbefece31e97329b"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Thu Oct 18 23:40:19 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 19 11:53:41 2007 -0700"
      },
      "message": "Uninline find_pid etc set of functions\n\nThe find_pid/_vpid/_pid_ns functions are used to find the struct pid by its\nid, depending on whic id - global or virtual - is used.\n\nThe find_vpid() is a macro that pushes the current-\u003ensproxy-\u003epid_ns on the\nstack to call another function - find_pid_ns().  It turned out, that this\ndereference together with the push itself cause the kernel text size to\ngrow too much.\n\nMove all these out-of-line.  Together with the previous patch this saves a\nbit less that 400 bytes from .text section.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: Sukadev Bhattiprolu \u003csukadev@us.ibm.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Paul Menage \u003cmenage@google.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": "bac0abd6174e427404dd197cdbefece31e97329b",
      "tree": "68ed6bd8619552c921c9fb99e83cb04fcb235a39",
      "parents": [
        "19b9b9b54e5f115907efd56be2c3799775a46561"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Thu Oct 18 23:40:18 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 19 11:53:40 2007 -0700"
      },
      "message": "Isolate some explicit usage of task-\u003etgid\n\nWith pid namespaces this field is now dangerous to use explicitly, so hide\nit behind the helpers.\n\nAlso the pid and pgrp fields o task_struct and signal_struct are to be\ndeprecated.  Unfortunately this patch cannot be sent right now as this\nleads to tons of warnings, so start isolating them, and deprecate later.\n\nActually the p-\u003etgid \u003d\u003d pid has to be changed to has_group_leader_pid(),\nbut Oleg pointed out that in case of posix cpu timers this is the same, and\nthread_group_leader() is more preferable.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nAcked-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Sukadev Bhattiprolu \u003csukadev@us.ibm.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": "19b9b9b54e5f115907efd56be2c3799775a46561",
      "tree": "44340df34980166373f2a57c1283c26026682a95",
      "parents": [
        "228ebcbe634a30aec35132ea4375721bcc41bec0"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Thu Oct 18 23:40:17 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 19 11:53:40 2007 -0700"
      },
      "message": "pid namespaces: remove the struct pid unneeded fields\n\nSince we\u0027ve switched from using pid-\u003enr to pid-\u003eupids-\u003enr some\nfields on struct pid are no longer needed\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Sukadev Bhattiprolu \u003csukadev@us.ibm.com\u003e\nCc: Paul Menage \u003cmenage@google.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": "228ebcbe634a30aec35132ea4375721bcc41bec0",
      "tree": "a875976fd5bde6e2f931aa235c34c88a2738493f",
      "parents": [
        "b488893a390edfe027bae7a46e9af8083e740668"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Thu Oct 18 23:40:16 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 19 11:53:40 2007 -0700"
      },
      "message": "Uninline find_task_by_xxx set of functions\n\nThe find_task_by_something is a set of macros are used to find task by pid\ndepending on what kind of pid is proposed - global or virtual one.  All of\nthem are wrappers above the most generic one - find_task_by_pid_type_ns() -\nand just substitute some args for it.\n\nIt turned out, that dereferencing the current-\u003ensproxy-\u003epid_ns construction\nand pushing one more argument on the stack inline cause kernel text size to\ngrow.\n\nThis patch moves all this stuff out-of-line into kernel/pid.c.  Together\nwith the next patch it saves a bit less than 400 bytes from the .text\nsection.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: Sukadev Bhattiprolu \u003csukadev@us.ibm.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b488893a390edfe027bae7a46e9af8083e740668",
      "tree": "c469a7f99ad01005a73011c029eb5e5d15454559",
      "parents": [
        "3eb07c8c8adb6f0572baba844ba2d9e501654316"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Thu Oct 18 23:40:14 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 19 11:53:40 2007 -0700"
      },
      "message": "pid namespaces: changes to show virtual ids to user\n\nThis is the largest patch in the set. Make all (I hope) the places where\nthe pid is shown to or get from user operate on the virtual pids.\n\nThe idea is:\n - all in-kernel data structures must store either struct pid itself\n   or the pid\u0027s global nr, obtained with pid_nr() call;\n - when seeking the task from kernel code with the stored id one\n   should use find_task_by_pid() call that works with global pids;\n - when showing pid\u0027s numerical value to the user the virtual one\n   should be used, but however when one shows task\u0027s pid outside this\n   task\u0027s namespace the global one is to be used;\n - when getting the pid from userspace one need to consider this as\n   the virtual one and use appropriate task/pid-searching functions.\n\n[akpm@linux-foundation.org: build fix]\n[akpm@linux-foundation.org: nuther build fix]\n[akpm@linux-foundation.org: yet nuther build fix]\n[akpm@linux-foundation.org: remove unneeded casts]\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@openvz.org\u003e\nCc: Sukadev Bhattiprolu \u003csukadev@us.ibm.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Paul Menage \u003cmenage@google.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": "3eb07c8c8adb6f0572baba844ba2d9e501654316",
      "tree": "5c3d527f6b003b316d41119320ebd5c589c8afd0",
      "parents": [
        "0fbc26a6cfab9f377e82e28225f2c0c6b4661e5c"
      ],
      "author": {
        "name": "Sukadev Bhattiprolu",
        "email": "sukadev@us.ibm.com",
        "time": "Thu Oct 18 23:40:13 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 19 11:53:40 2007 -0700"
      },
      "message": "pid namespaces: destroy pid namespace on init\u0027s death\n\nTerminate all processes in a namespace when the reaper of the namespace is\nexiting.  We do this by walking the pidmap of the namespace and sending\nSIGKILL to all processes.\n\nSigned-off-by: Sukadev Bhattiprolu \u003csukadev@us.ibm.com\u003e\nAcked-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Sukadev Bhattiprolu \u003csukadev@us.ibm.com\u003e\nCc: Paul Menage \u003cmenage@google.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": "0fbc26a6cfab9f377e82e28225f2c0c6b4661e5c",
      "tree": "e91632584a3e10a2a4b0ba34843d9363eca66302",
      "parents": [
        "c9c5d92211883e9ae22394d1f157ab0d3a7ec895"
      ],
      "author": {
        "name": "Sukadev Bhattiprolu",
        "email": "sukadev@us.ibm.com",
        "time": "Thu Oct 18 23:40:13 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 19 11:53:40 2007 -0700"
      },
      "message": "pid namespaces: allow signalling cgroup-init\n\nOnly the global-init process must be special - any other cgroup-init\nprocess must be killable to prevent run-away processes in the system.\n\nTODO: \tIdeally we should allow killing the cgroup-init only from parent\n\tcgroup and prevent it being killed from within the cgroup.\n\tBut that is a more complex change and will be addressed by a follow-on\n\tpatch. For now allow the cgroup-init to be terminated by any process\n\twith sufficient privileges.\n\nSigned-off-by: Sukadev Bhattiprolu \u003csukadev@us.ibm.com\u003e\nAcked-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Sukadev Bhattiprolu \u003csukadev@us.ibm.com\u003e\nCc: Paul Menage \u003cmenage@google.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": "c9c5d92211883e9ae22394d1f157ab0d3a7ec895",
      "tree": "bd90ede8e80a59bcb2dfedbc3248e5091736526c",
      "parents": [
        "6f4e643353aea52d80f33960bd88954a7c074f0f"
      ],
      "author": {
        "name": "Sukadev Bhattiprolu",
        "email": "sukadev@us.ibm.com",
        "time": "Thu Oct 18 23:40:12 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 19 11:53:40 2007 -0700"
      },
      "message": "pid namespaces: create a slab-cache for \u0027struct pid_namespace\u0027\n\nThis will help fixing memory leaks due to bad reference counting.\n\nSigned-off-by: Sukadev Bhattiprolu \u003csukadev@us.ibm.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Sukadev Bhattiprolu \u003csukadev@us.ibm.com\u003e\nCc: Paul Menage \u003cmenage@google.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": "6f4e643353aea52d80f33960bd88954a7c074f0f",
      "tree": "5b7e452f7e31be89f06a52a2c077183b7fe74c3b",
      "parents": [
        "130f77ecb2e7d5ac3e53e620f55e374f4a406b20"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Thu Oct 18 23:40:11 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 19 11:53:40 2007 -0700"
      },
      "message": "pid namespaces: initialize the namespace\u0027s proc_mnt\n\nThe namespace\u0027s proc_mnt must be kern_mount-ed to make this pointer always\nvalid, independently of whether the user space mounted the proc or not.  This\nsolves raced in proc_flush_task, etc.  with the proc_mnt switching from NULL\nto not-NULL.\n\nThe initialization is done after the init\u0027s pid is created and hashed to make\nproc_get_sb() finr it and get for root inode.\n\nSice the namespace holds the vfsmnt, vfsmnt holds the superblock and the\nsuperblock holds the namespace we must explicitly break this circle to destroy\nall the stuff.  This is done after the init of the namespace dies.  Running a\nfew steps forward - when init exits it will kill all its children, so no\nproc_mnt will be needed after its death.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Sukadev Bhattiprolu \u003csukadev@us.ibm.com\u003e\nCc: Paul Menage \u003cmenage@google.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": "30e49c263e36341b60b735cbef5ca37912549264",
      "tree": "103e74c41db97476ae38cdd4ffc18e4da03f28e8",
      "parents": [
        "b461cc03828c743aed6b3855b9ab0d39a9d54ec5"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Thu Oct 18 23:40:10 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 19 11:53:39 2007 -0700"
      },
      "message": "pid namespaces: allow cloning of new namespace\n\nWhen clone() is invoked with CLONE_NEWPID, create a new pid namespace and then\ncreate a new struct pid for the new process.  Allocate pid_t\u0027s for the new\nprocess in the new pid namespace and all ancestor pid namespaces.  Make the\nnewly cloned process the session and process group leader.\n\nSince the active pid namespace is special and expected to be the first entry\nin pid-\u003eupid_list, preserve the order of pid namespaces.\n\nThe size of \u0027struct pid\u0027 is dependent on the the number of pid namespaces the\nprocess exists in, so we use multiple pid-caches\u0027.  Only one pid cache is\ncreated during system startup and this used by processes that exist only in\ninit_pid_ns.\n\nWhen a process clones its pid namespace, we create additional pid caches as\nnecessary and use the pid cache to allocate \u0027struct pids\u0027 for that depth.\n\nNote, that with this patch the newly created namespace won\u0027t work, since the\nrest of the kernel still uses global pids, but this is to be fixed soon.  Init\npid namespace still works.\n\n[oleg@tv-sign.ru: merge fix]\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: Sukadev Bhattiprolu \u003csukadev@us.ibm.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b461cc03828c743aed6b3855b9ab0d39a9d54ec5",
      "tree": "b39ff42df1564adf800d9c4a01ba78ed14f8f9a2",
      "parents": [
        "07543f5c75cee744b791cf7716c69571486fe753"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Thu Oct 18 23:40:09 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 19 11:53:39 2007 -0700"
      },
      "message": "pid namespaces: miscellaneous preparations for pid namespaces\n\n* remove pid.h from pid_namespaces.h;\n* rework is_(cgroup|global)_init;\n* optimize (get|put)_pid_ns for init_pid_ns;\n* declare task_child_reaper to return actual reaper.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Sukadev Bhattiprolu \u003csukadev@us.ibm.com\u003e\nCc: Paul Menage \u003cmenage@google.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": "425fb2b4bf5dde24be4a82e9a2c344bb49ac92e4",
      "tree": "04cdf3042ee0f593b243c6402f2ce3cacac5cc2d",
      "parents": [
        "198fe21b0a17fe9c68cb519ecc566534b04f122b"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Thu Oct 18 23:40:07 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 19 11:53:39 2007 -0700"
      },
      "message": "pid namespaces: move alloc_pid() lower in copy_process()\n\nWhen we create new namespace we will need to allocate the struct pid, that\nwill have one extra struct upid in array, comparing to the parent.\n\nThus we need to know the new namespace (if any) in alloc_pid() to init this\nstruct upid properly, so move the alloc_pid() call lower in copy_process().\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Sukadev Bhattiprolu \u003csukadev@us.ibm.com\u003e\nCc: Paul Menage \u003cmenage@google.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": "198fe21b0a17fe9c68cb519ecc566534b04f122b",
      "tree": "690825669858d0f458fc137e42adf77cdf370ea4",
      "parents": [
        "7af5729474b5b8ad385adadab78d6e723e7655a3"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Thu Oct 18 23:40:06 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 19 11:53:39 2007 -0700"
      },
      "message": "pid namespaces: helpers to find the task by its numerical ids\n\nWhen searching the task by numerical id on may need to find it using global\npid (as it is done now in kernel) or by its virtual id, e.g.  when sending a\nsignal to a task from one namespace the sender will specify the task\u0027s virtual\nid and we should find the task by this value.\n\n[akpm@linux-foundation.org: fix gfs2 linkage]\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Sukadev Bhattiprolu \u003csukadev@us.ibm.com\u003e\nCc: Paul Menage \u003cmenage@google.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": "7af5729474b5b8ad385adadab78d6e723e7655a3",
      "tree": "197f8da3e7afd65554f0c0a070eb93036b720fa8",
      "parents": [
        "8ef047aaaeb811247a5639c92e2f2ae1221a28dd"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Thu Oct 18 23:40:06 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 19 11:53:39 2007 -0700"
      },
      "message": "pid namespaces: helpers to obtain pid numbers\n\nWhen showing pid to user or getting the pid numerical id for in-kernel use the\nvalue of this id may differ depending on the namespace.\n\nThis set of helpers is used to get the global pid nr, the virtual (i.e.  seen\nby task in its namespace) nr and the nr as it is seen from the specified\nnamespace.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Sukadev Bhattiprolu \u003csukadev@us.ibm.com\u003e\nCc: Paul Menage \u003cmenage@google.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": "8ef047aaaeb811247a5639c92e2f2ae1221a28dd",
      "tree": "296a61f66daa8ac42b3d77a53d06a97eb71155c9",
      "parents": [
        "faacbfd3a6808bf87d8f353b42eceeaba2c78a47"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Thu Oct 18 23:40:05 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 19 11:53:39 2007 -0700"
      },
      "message": "pid namespaces: make alloc_pid(), free_pid() and put_pid() work with struct upid\n\nEach struct upid element of struct pid has to be initialized properly, i.e.\nits nr mst be allocated from appropriate pidmap and ns set to appropriate\nnamespace.\n\nWhen allocating a new pid, we need to know the namespace this pid will live\nin, so the additional argument is added to alloc_pid().\n\nOn the other hand, the rest of the kernel still uses the pid-\u003enr and\npid-\u003epid_chain fields, so these ones are still initialized, but this will be\nremoved soon.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Sukadev Bhattiprolu \u003csukadev@us.ibm.com\u003e\nCc: Paul Menage \u003cmenage@google.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": "faacbfd3a6808bf87d8f353b42eceeaba2c78a47",
      "tree": "c05ad8985ec2367550cbb3321934fd0e8e9208d2",
      "parents": [
        "4c3f2ead5a3dff9069a45560ba4d007c8ae2e2ee"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Thu Oct 18 23:40:04 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 19 11:53:38 2007 -0700"
      },
      "message": "pid namespaces: add support for pid namespaces hierarchy\n\nEach namespace has a parent and is characterized by its \"level\".  Level is the\nnumber of the namespace generation.  E.g.  init namespace has level 0, after\ncloning new one it will have level 1, the next one - 2 and so on and so forth.\n This level is not explicitly limited.\n\nTrue hierarchy must have some way to find each namespace\u0027s children, but it is\nnot used in the patches, so this ability is not added (yet).\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Sukadev Bhattiprolu \u003csukadev@us.ibm.com\u003e\nCc: Paul Menage \u003cmenage@google.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": "60347f6716aa49831ac311e04d77ccdc50dc024a",
      "tree": "82e666fef22f43550da42ad368a61a5e9a59ef96",
      "parents": [
        "8bf9725c29f2589237dd696d06a204230add0ba3"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Thu Oct 18 23:40:03 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 19 11:53:38 2007 -0700"
      },
      "message": "pid namespaces: prepare proc_flust_task() to flush entries from multiple proc trees\n\nThe first part is trivial - we just make the proc_flush_task() to operate on\narbitrary vfsmount with arbitrary ids and pass the pid and global proc_mnt to\nit.\n\nThe other change is more tricky: I moved the proc_flush_task() call in\nrelease_task() higher to address the following problem.\n\nWhen flushing task from many proc trees we need to know the set of ids (not\njust one pid) to find the dentries\u0027 names to flush.  Thus we need to pass the\ntask\u0027s pid to proc_flush_task() as struct pid is the only object that can\nprovide all the pid numbers.  But after __exit_signal() task has detached all\nhis pids and this information is lost.\n\nThis creates a tiny gap for proc_pid_lookup() to bring some dentries back to\ntree and keep them in hash (since pids are still alive before __exit_signal())\ntill the next shrink, but since proc_flush_task() does not provide a 100%\nguarantee that the dentries will be flushed, this is OK to do so.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Sukadev Bhattiprolu \u003csukadev@us.ibm.com\u003e\nCc: Paul Menage \u003cmenage@google.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": "2e4a707269a409950c3f315010c20f9719c594e2",
      "tree": "d25109a6b36bdcb78382d379bdba4c4e83150389",
      "parents": [
        "762a24beed3f3ab93224bd447710e6c36fcf1968"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Thu Oct 18 23:40:01 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 19 11:53:38 2007 -0700"
      },
      "message": "pid namespaces: move exit_task_namespaces()\n\nMake task release its namespaces after it has reparented all his children to\nchild_reaper, but before it notifies its parent about its death.\n\nThe reason to release namespaces after reparenting is that when task exits it\nmay send a signal to its parent (SIGCHLD), but if the parent has already\nexited its namespaces there will be no way to decide what pid to dever to him\n- parent can be from different namespace.\n\nThe reason to release namespace before notifying the parent it that when task\nsends a SIGCHLD to parent it can call wait() on this taks and release it.  But\nreleasing the mnt namespace implies dropping of all the mounts in the mnt\nnamespace and NFS expects the task to have valid sighand pointer.\n\nThanks to Oleg for pointing out some races that can apear and helping with\npatches and fixes.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Sukadev Bhattiprolu \u003csukadev@us.ibm.com\u003e\nCc: Paul Menage \u003cmenage@google.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": "762a24beed3f3ab93224bd447710e6c36fcf1968",
      "tree": "5753a796e11e53173194199292fdfcaae04efb47",
      "parents": [
        "d4c5e41f3f1b0c19448fcf2d259bdab1ede75e2e"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Thu Oct 18 23:40:00 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 19 11:53:38 2007 -0700"
      },
      "message": "pid namespaces: rework forget_original_parent()\n\nA pid namespace is a \"view\" of a particular set of tasks on the system.  They\nwork in a similar way to filesystem namespaces.  A file (or a process) can be\naccessed in multiple namespaces, but it may have a different name in each.  In\na filesystem, this name might be /etc/passwd in one namespace, but\n/chroot/etc/passwd in another.\n\nFor processes, a process may have pid 1234 in one namespace, but be pid 1 in\nanother.  This allows new pid namespaces to have basically arbitrary pids, and\nnot have to worry about what pids exist in other namespaces.  This is\nessential for checkpoint/restart where a restarted process\u0027s pid might collide\nwith an existing process on the system\u0027s pid.\n\nIn this particular implementation, pid namespaces have a parent-child\nrelationship, just like processes.  A process in a pid namespace may see all\nof the processes in the same namespace, as well as all of the processes in all\nof the namespaces which are children of its namespace.  Processes may not,\nhowever, see others which are in their parent\u0027s namespace, but not in their\nown.  The same goes for sibling namespaces.\n\nThe know issue to be solved in the nearest future is signal handling in the\nnamespace boundary.  That is, currently the namespace\u0027s init is treated like\nan ordinary task that can be killed from within an namespace.  Ideally, the\nsignal handling by the namespace\u0027s init should have two sides: when signaling\nthe init from its namespace, the init should look like a real init task, i.e.\nreceive only those signals, that is explicitly wants to; when signaling the\ninit from one of the parent namespaces, init should look like an ordinary\ntask, i.e.  receive any signal, only taking the general permissions into\naccount.\n\nThe pid namespace was developed by Pavel Emlyanov and Sukadev Bhattiprolu and\nwe eventually came to almost the same implementation, which differed in some\ndetails.  This set is based on Pavel\u0027s patches, but it includes comments and\npatches that from Sukadev.\n\nMany thanks to Oleg, who reviewed the patches, pointed out many BUGs and made\nvaluable advises on how to make this set cleaner.\n\nThis patch:\n\nWe have to call exit_task_namespaces() only after the exiting task has\nreparented all his children and is sure that no other threads will reparent\ntheirs for it.  Why this is needed is explained in appropriate patch.  This\none only reworks the forget_original_parent() so that after calling this a\ntask cannot be/become parent of any other task.\n\nWe check PF_EXITING instead of -\u003eexit_state while choosing the new parent.\nNote that tasklits_lock acts as a barrier, everyone who takes tasklist after\nus (when forget_original_parent() drops it) must see PF_EXITING.\n\nThe other changes are just cleanups.  They just move some code from\nexit_notify to forget_original_parent().  It is a bit silly to declare\nptrace_dead in exit_notify(), take tasklist, pass ptrace_dead to\nforget_original_parent(), unlock-lock-unlock tasklist, and then use\nptrace_dead.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: Sukadev Bhattiprolu \u003csukadev@us.ibm.com\u003e\nCc: Paul Menage \u003cmenage@google.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": "d4c5e41f3f1b0c19448fcf2d259bdab1ede75e2e",
      "tree": "5a5ae3a1967c39f728b42e2fa0fc7cbcddcd2108",
      "parents": [
        "7b1915a989ea4d426d0fd98974ab80f30ef1d779"
      ],
      "author": {
        "name": "Daniel Walker",
        "email": "dwalker@mvista.com",
        "time": "Thu Oct 18 23:39:59 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 19 11:53:38 2007 -0700"
      },
      "message": "whitespace fixes: task exit handling\n\nSigned-off-by: Daniel Walker \u003cdwalker@mvista.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2e1975868ac9d41211fcaa6f2c5e44c4e7ff9e5b",
      "tree": "fdf1304a9bcd092c63df6423327f33fcf5c3d44b",
      "parents": [
        "03ff17979c58a0b63b0fe30a373f41b719731bd2"
      ],
      "author": {
        "name": "Matthias Kaehlcke",
        "email": "matthias.kaehlcke@gmail.com",
        "time": "Thu Oct 18 23:39:58 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 19 11:53:38 2007 -0700"
      },
      "message": "kernel/time/clocksource.c: Use list_for_each_entry instead of list_for_each\n\nkernel/time/clocksource.c: Convert list_for_each to\nlist_for_each_entry in clocksource_resume(),\nsysfs_override_clocksource() and show_available_clocksources()\n\nSigned-off-by: Matthias Kaehlcke \u003cmatthias.kaehlcke@gmail.com\u003e\nAcked-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: john stultz \u003cjohnstul@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": "03ff17979c58a0b63b0fe30a373f41b719731bd2",
      "tree": "c6369ebab7a3035b309de5f288d6e8fc149b3d69",
      "parents": [
        "d473012710b815741043942bc41945d444abab40"
      ],
      "author": {
        "name": "Matthias Kaehlcke",
        "email": "matthias.kaehlcke@gmail.com",
        "time": "Thu Oct 18 23:39:57 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 19 11:53:38 2007 -0700"
      },
      "message": "kernel/exit.c: Use list_for_each_entry(_safe) instead of list_for_each(_safe)\n\nkernel/exit.c: Convert list_for_each(_safe) to\nlist_for_each_entry(_safe) in forget_original_parent(), exit_notify()\nand do_wait()\n\nSigned-off-by: Matthias Kaehlcke \u003cmatthias.kaehlcke@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": "4e6045f134784f4b158b3c0f7a282b04bd816887",
      "tree": "3304628f666c8524accd10f40da48cfba8b08608",
      "parents": [
        "cf7b708c8d1d7a27736771bcf4c457b332b0f818"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Thu Oct 18 23:39:55 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 19 11:53:38 2007 -0700"
      },
      "message": "workqueue: debug flushing deadlocks with lockdep\n\nIn the following scenario:\n\ncode path 1:\n  my_function() -\u003e lock(L1); ...; flush_workqueue(); ...\n\ncode path 2:\n  run_workqueue() -\u003e my_work() -\u003e ...; lock(L1); ...\n\nyou can get a deadlock when my_work() is queued or running\nbut my_function() has acquired L1 already.\n\nThis patch adds a pseudo-lock to each workqueue to make lockdep\nwarn about this scenario.\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nAcked-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nAcked-by: 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": "cf7b708c8d1d7a27736771bcf4c457b332b0f818",
      "tree": "10f80257b052313b283f18ddfe35145882e0b47f",
      "parents": [
        "a6f5e06378970a2687332c2d54046245fcff1e7e"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Thu Oct 18 23:39:54 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 19 11:53:37 2007 -0700"
      },
      "message": "Make access to task\u0027s nsproxy lighter\n\nWhen someone wants to deal with some other taks\u0027s namespaces it has to lock\nthe task and then to get the desired namespace if the one exists.  This is\nslow on read-only paths and may be impossible in some cases.\n\nE.g.  Oleg recently noticed a race between unshare() and the (sent for\nreview in cgroups) pid namespaces - when the task notifies the parent it\nhas to know the parent\u0027s namespace, but taking the task_lock() is\nimpossible there - the code is under write locked tasklist lock.\n\nOn the other hand switching the namespace on task (daemonize) and releasing\nthe namespace (after the last task exit) is rather rare operation and we\ncan sacrifice its speed to solve the issues above.\n\nThe access to other task namespaces is proposed to be performed\nlike this:\n\n     rcu_read_lock();\n     nsproxy \u003d task_nsproxy(tsk);\n     if (nsproxy !\u003d NULL) {\n             / *\n               * work with the namespaces here\n               * e.g. get the reference on one of them\n               * /\n     } / *\n         * NULL task_nsproxy() means that this task is\n         * almost dead (zombie)\n         * /\n     rcu_read_unlock();\n\nThis patch has passed the review by Eric and Oleg :) and,\nof course, tested.\n\n[clg@fr.ibm.com: fix unshare()]\n[ebiederm@xmission.com: Update get_net_ns_by_pid]\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: Serge Hallyn \u003cserue@us.ibm.com\u003e\nSigned-off-by: Cedric Le Goater \u003cclg@fr.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": "a6f5e06378970a2687332c2d54046245fcff1e7e",
      "tree": "71b00526652f0fc6ebb99d0a869dec40b26eb1a6",
      "parents": [
        "b460cbc581a53cc088ceba80608021dd49c63c43"
      ],
      "author": {
        "name": "Sukadev Bhattiprolu",
        "email": "sukadev@us.ibm.com",
        "time": "Thu Oct 18 23:39:53 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 19 11:53:37 2007 -0700"
      },
      "message": "pid namespaces: move alloc_pid() to copy_process()\n\nMove alloc_pid() into copy_process().  This will keep all pid and pid\nnamespace code together and simplify error handling when we support multiple\npid namespaces.\n\nSigned-off-by: Sukadev Bhattiprolu \u003csukadev@us.ibm.com\u003e\nCc: Pavel Emelianov \u003cxemul@openvz.org\u003e\nCc: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nCc: Cedric Le Goater \u003cclg@fr.ibm.com\u003e\nCc: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nCc: Serge Hallyn \u003cserue@us.ibm.com\u003e\nCc: Herbert Poetzel \u003cherbert@13thfloor.at\u003e\nCc: Kirill Korotaev \u003cdev@sw.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b460cbc581a53cc088ceba80608021dd49c63c43",
      "tree": "83c28d0adbc15f4157c77b40fa60c40a71cb8673",
      "parents": [
        "3743ca05ff464b8a9e345c08a6c9ce30485f9805"
      ],
      "author": {
        "name": "Serge E. Hallyn",
        "email": "serue@us.ibm.com",
        "time": "Thu Oct 18 23:39:52 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 19 11:53:37 2007 -0700"
      },
      "message": "pid namespaces: define is_global_init() and is_container_init()\n\nis_init() is an ambiguous name for the pid\u003d\u003d1 check.  Split it into\nis_global_init() and is_container_init().\n\nA cgroup init has it\u0027s tsk-\u003epid \u003d\u003d 1.\n\nA global init also has it\u0027s tsk-\u003epid \u003d\u003d 1 and it\u0027s active pid namespace\nis the init_pid_ns.  But rather than check the active pid namespace,\ncompare the task structure with \u0027init_pid_ns.child_reaper\u0027, which is\ninitialized during boot to the /sbin/init process and never changes.\n\nChangelog:\n\n\t2.6.22-rc4-mm2-pidns1:\n\t- Use \u0027init_pid_ns.child_reaper\u0027 to determine if a given task is the\n\t  global init (/sbin/init) process. This would improve performance\n\t  and remove dependence on the task_pid().\n\n\t2.6.21-mm2-pidns2:\n\n\t- [Sukadev Bhattiprolu] Changed is_container_init() calls in {powerpc,\n\t  ppc,avr32}/traps.c for the _exception() call to is_global_init().\n\t  This way, we kill only the cgroup if the cgroup\u0027s init has a\n\t  bug rather than force a kernel panic.\n\n[akpm@linux-foundation.org: fix comment]\n[sukadev@us.ibm.com: Use is_global_init() in arch/m32r/mm/fault.c]\n[bunk@stusta.de: kernel/pid.c: remove unused exports]\n[sukadev@us.ibm.com: Fix capability.c to work with threaded init]\nSigned-off-by: Serge E. Hallyn \u003cserue@us.ibm.com\u003e\nSigned-off-by: Sukadev Bhattiprolu \u003csukadev@us.ibm.com\u003e\nAcked-by: Pavel Emelianov \u003cxemul@openvz.org\u003e\nCc: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nCc: Cedric Le Goater \u003cclg@fr.ibm.com\u003e\nCc: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nCc: Herbert Poetzel \u003cherbert@13thfloor.at\u003e\nCc: Kirill Korotaev \u003cdev@sw.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "88f21d818255bc61c002478d21caf52f8a9b8def",
      "tree": "de16e38862622b3d295f7850cdb006922307fb8d",
      "parents": [
        "2894d650cd9715d00ca196c711265819ef6ebd2d"
      ],
      "author": {
        "name": "Sukadev Bhattiprolu",
        "email": "sukadev@us.ibm.com",
        "time": "Thu Oct 18 23:39:50 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 19 11:53:37 2007 -0700"
      },
      "message": "pid namespaces: rename child_reaper() function\n\nRename the child_reaper() function to task_child_reaper() to be similar to\nother task_* functions and to distinguish the function from \u0027struct\npid_namspace.child_reaper\u0027.\n\nSigned-off-by: Sukadev Bhattiprolu \u003csukadev@us.ibm.com\u003e\nCc: Pavel Emelianov \u003cxemul@openvz.org\u003e\nCc: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nCc: Cedric Le Goater \u003cclg@fr.ibm.com\u003e\nCc: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nCc: Serge Hallyn \u003cserue@us.ibm.com\u003e\nCc: Herbert Poetzel \u003cherbert@13thfloor.at\u003e\nCc: Kirill Korotaev \u003cdev@sw.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2894d650cd9715d00ca196c711265819ef6ebd2d",
      "tree": "dbfe07c3276c2b6aa7d9a4be633da7fa1e12d97b",
      "parents": [
        "baf8f0f82dd79e374bf6fa9e996393df2bae3c21"
      ],
      "author": {
        "name": "Sukadev Bhattiprolu",
        "email": "sukadev@us.ibm.com",
        "time": "Thu Oct 18 23:39:49 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 19 11:53:37 2007 -0700"
      },
      "message": "pid namespaces: define and use task_active_pid_ns() wrapper\n\nWith multiple pid namespaces, a process is known by some pid_t in every\nancestor pid namespace.  Every time the process forks, the child process also\ngets a pid_t in every ancestor pid namespace.\n\nWhile a process is visible in \u003e\u003d1 pid namespaces, it can see pid_t\u0027s in only\none pid namespace.  We call this pid namespace it\u0027s \"active pid namespace\",\nand it is always the youngest pid namespace in which the process is known.\n\nThis patch defines and uses a wrapper to find the active pid namespace of a\nprocess.  The implementation of the wrapper will be changed in when support\nfor multiple pid namespaces are added.\n\nChangelog:\n\t2.6.22-rc4-mm2-pidns1:\n\t- [Pavel Emelianov, Alexey Dobriyan] Back out the change to use\n\t  task_active_pid_ns() in child_reaper() since task-\u003ensproxy\n\t  can be NULL during task exit (so child_reaper() continues to\n\t  use init_pid_ns).\n\n\t  to implement child_reaper() since init_pid_ns.child_reaper to\n\t  implement child_reaper() since tsk-\u003ensproxy can be NULL during exit.\n\n\t2.6.21-rc6-mm1:\n\t- Rename task_pid_ns() to task_active_pid_ns() to reflect that a\n\t  process can have multiple pid namespaces.\n\nSigned-off-by: Sukadev Bhattiprolu \u003csukadev@us.ibm.com\u003e\nAcked-by: Pavel Emelianov \u003cxemul@openvz.org\u003e\nCc: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nCc: Cedric Le Goater \u003cclg@fr.ibm.com\u003e\nCc: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nCc: Serge Hallyn \u003cserue@us.ibm.com\u003e\nCc: Herbert Poetzel \u003cherbert@13thfloor.at\u003e\nCc: Kirill Korotaev \u003cdev@sw.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "baf8f0f82dd79e374bf6fa9e996393df2bae3c21",
      "tree": "2cf18de413871812527147cd8fbf32d1dbbe7bee",
      "parents": [
        "a05f7b15deb2903d9f0b5df33ddd4d186d5ecac1"
      ],
      "author": {
        "name": "Pavel Emelianov",
        "email": "xemul@openvz.org",
        "time": "Thu Oct 18 23:39:48 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 19 11:53:37 2007 -0700"
      },
      "message": "pid namespaces: dynamic kmem cache allocator for pid namespaces\n\nAdd kmem_cache to pid_namespace to allocate pids from.\n\nSince both implementations expand the struct pid to carry more numerical\nvalues each namespace should have separate cache to store pids of different\nsizes.\n\nEach kmem cache is name \"pid_\u003cNR\u003e\", where \u003cNR\u003e is the number of numerical ids\non the pid.  Different namespaces with same level of nesting will have same\ncaches.\n\nThis patch has two FIXMEs that are to be fixed after we reach the consensus\nabout the struct pid itself.\n\nThe first one is that the namespace to free the pid from in free_pid() must be\ntaken from pid.  Now the init_pid_ns is used.\n\nThe second FIXME is about the cache allocation.  When we do know how long the\nobject will be then we\u0027ll have to calculate this size in create_pid_cachep.\nRight now the sizeof(struct pid) value is used.\n\n[akpm@linux-foundation.org: coding-style repair]\nSigned-off-by: Pavel Emelianov \u003cxemul@openvz.org\u003e\nAcked-by: Cedric Le Goater \u003cclg@fr.ibm.com\u003e\nAcked-by: Sukadev Bhattiprolu \u003csukadev@us.ibm.com\u003e\nCc: Kirill Korotaev \u003cdev@openvz.org\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a47afb0f9d794d525a372c8d69902147cc88222a",
      "tree": "7bd67280e2edc1c3b1803d4a93bee794088e9342",
      "parents": [
        "858d72ead4864da0fb0b89b919524125ce998e27"
      ],
      "author": {
        "name": "Pavel Emelianov",
        "email": "xemul@openvz.org",
        "time": "Thu Oct 18 23:39:46 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 19 11:53:37 2007 -0700"
      },
      "message": "pid namespaces: round up the API\n\nThe set of functions process_session, task_session, process_group and\ntask_pgrp is confusing, as the names can be mixed with each other when looking\nat the code for a long time.\n\nThe proposals are to\n* equip the functions that return the integer with _nr suffix to\n  represent that fact,\n* and to make all functions work with task (not process) by making\n  the common prefix of the same name.\n\nFor monotony the routines signal_session() and set_signal_session() are\nreplaced with task_session_nr() and set_task_session(), especially since they\nare only used with the explicit task-\u003esignal dereference.\n\nSigned-off-by: Pavel Emelianov \u003cxemul@openvz.org\u003e\nAcked-by: Serge E. Hallyn \u003cserue@us.ibm.com\u003e\nCc: Kirill Korotaev \u003cdev@openvz.org\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Cedric Le Goater \u003cclg@fr.ibm.com\u003e\nCc: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nCc: Sukadev Bhattiprolu \u003csukadev@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": "858d72ead4864da0fb0b89b919524125ce998e27",
      "tree": "19ea321ca3b505efecb2053a829daf89a6a22529",
      "parents": [
        "846c7bb055747989891f5cd2bb6e8d56243ba1e7"
      ],
      "author": {
        "name": "Serge E. Hallyn",
        "email": "serue@us.ibm.com",
        "time": "Thu Oct 18 23:39:45 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 19 11:53:37 2007 -0700"
      },
      "message": "cgroups: implement namespace tracking subsystem\n\nWhen a task enters a new namespace via a clone() or unshare(), a new cgroup\nis created and the task moves into it.\n\nThis version names cgroups which are automatically created using\ncgroup_clone() as \"node_\u003cpid\u003e\" where pid is the pid of the unsharing or\ncloned process.  (Thanks Pavel for the idea) This is safe because if the\nprocess unshares again, it will create\n\n\t/cgroups/(...)/node_\u003cpid\u003e/node_\u003cpid\u003e\n\nThe only possibilities (AFAICT) for a -EEXIST on unshare are\n\n\t1. pid wraparound\n\t2. a process fails an unshare, then tries again.\n\nCase 1 is unlikely enough that I ignore it (at least for now).  In case 2, the\nnode_\u003cpid\u003e will be empty and can be rmdir\u0027ed to make the subsequent unshare()\nsucceed.\n\nChangelog:\n\tName cloned cgroups as \"node_\u003cpid\u003e\".\n\n[clg@fr.ibm.com: fix order of cgroup subsystems in init/Kconfig]\nSigned-off-by: Serge E. Hallyn \u003cserue@us.ibm.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nSigned-off-by: Cedric Le Goater \u003cclg@fr.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": "846c7bb055747989891f5cd2bb6e8d56243ba1e7",
      "tree": "e044041366efa8298157c4ae86615d68d30dd6d2",
      "parents": [
        "c2e2c7fa1cb2cf2b114a6c9bc132b6601db5a7c8"
      ],
      "author": {
        "name": "Balbir Singh",
        "email": "balbir@linux.vnet.ibm.com",
        "time": "Thu Oct 18 23:39:44 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 19 11:53:36 2007 -0700"
      },
      "message": "Add cgroupstats\n\nThis patch is inspired by the discussion at\nhttp://lkml.org/lkml/2007/4/11/187 and implements per cgroup statistics\nas suggested by Andrew Morton in http://lkml.org/lkml/2007/4/11/263.  The\npatch is on top of 2.6.21-mm1 with Paul\u0027s cgroups v9 patches (forward\nported)\n\nThis patch implements per cgroup statistics infrastructure and re-uses\ncode from the taskstats interface.  A new set of cgroup operations are\nregistered with commands and attributes.  It should be very easy to\n*extend* per cgroup statistics, by adding members to the cgroupstats\nstructure.\n\nThe current model for cgroupstats is a pull, a push model (to post\nstatistics on interesting events), should be very easy to add.  Currently\nuser space requests for statistics by passing the cgroup file\ndescriptor.  Statistics about the state of all the tasks in the cgroup\nis returned to user space.\n\nTODO\u0027s/NOTE:\n\nThis patch provides an infrastructure for implementing cgroup statistics.\nBased on the needs of each controller, we can incrementally add more statistics,\nevent based support for notification of statistics, accumulation of taskstats\ninto cgroup statistics in the future.\n\nSample output\n\n# ./cgroupstats -C /cgroup/a\nsleeping 2, blocked 0, running 1, stopped 0, uninterruptible 0\n\n# ./cgroupstats -C /cgroup/\nsleeping 154, blocked 0, running 0, stopped 0, uninterruptible 0\n\nIf the approach looks good, I\u0027ll enhance and post the user space utility for\nthe same\n\nFeedback, comments, test results are always welcome!\n\n[akpm@linux-foundation.org: build fix]\nSigned-off-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Jay Lan \u003cjlan@engr.sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "006cb99200a38a8e3b0cbc1be48035a08921e601",
      "tree": "9bbbc71000469f94dbd4fbc04b4fb2ff8777604b",
      "parents": [
        "62d0df64065e7c135d0002f069444fbdfc64768f"
      ],
      "author": {
        "name": "Paul Menage",
        "email": "menage@google.com",
        "time": "Thu Oct 18 23:39:43 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 19 11:53:36 2007 -0700"
      },
      "message": "Task Control Groups: simple task cgroup debug info subsystem\n\nThis example subsystem exports debugging information as an aid to diagnosing\nrefcount leaks, etc, in the cgroup framework.\n\nSigned-off-by: Paul Menage \u003cmenage@google.com\u003e\nCc: Serge E. Hallyn \u003cserue@us.ibm.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Paul Jackson \u003cpj@sgi.com\u003e\nCc: Kirill Korotaev \u003cdev@openvz.org\u003e\nCc: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nCc: Srivatsa Vaddagiri \u003cvatsa@in.ibm.com\u003e\nCc: Cedric Le Goater \u003cclg@fr.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": "62d0df64065e7c135d0002f069444fbdfc64768f",
      "tree": "9087bf336182ab9c619460ba2370a223200179bc",
      "parents": [
        "8793d854edbc2774943a4b0de3304dc73991159a"
      ],
      "author": {
        "name": "Paul Menage",
        "email": "menage@google.com",
        "time": "Thu Oct 18 23:39:42 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 19 11:53:36 2007 -0700"
      },
      "message": "Task Control Groups: example CPU accounting subsystem\n\nThis example demonstrates how to use the generic cgroup subsystem for a\nsimple resource tracker that counts, for the processes in a cgroup, the\ntotal CPU time used and the %CPU used in the last complete 10 second interval.\n\nPortions contributed by Balbir Singh \u003cbalbir@in.ibm.com\u003e\n\nSigned-off-by: Paul Menage \u003cmenage@google.com\u003e\nCc: Serge E. Hallyn \u003cserue@us.ibm.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Paul Jackson \u003cpj@sgi.com\u003e\nCc: Kirill Korotaev \u003cdev@openvz.org\u003e\nCc: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nCc: Srivatsa Vaddagiri \u003cvatsa@in.ibm.com\u003e\nCc: Cedric Le Goater \u003cclg@fr.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": "8793d854edbc2774943a4b0de3304dc73991159a",
      "tree": "380b3403a0fedfcce61d9af5af1ffbcc71017abf",
      "parents": [
        "81a6a5cdd2c5cd70874b88afe524ab09e9e869af"
      ],
      "author": {
        "name": "Paul Menage",
        "email": "menage@google.com",
        "time": "Thu Oct 18 23:39:39 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 19 11:53:36 2007 -0700"
      },
      "message": "Task Control Groups: make cpusets a client of cgroups\n\nRemove the filesystem support logic from the cpusets system and makes cpusets\na cgroup subsystem\n\nThe \"cpuset\" filesystem becomes a dummy filesystem; attempts to mount it get\npassed through to the cgroup filesystem with the appropriate options to\nemulate the old cpuset filesystem behaviour.\n\nSigned-off-by: Paul Menage \u003cmenage@google.com\u003e\nCc: Serge E. Hallyn \u003cserue@us.ibm.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Paul Jackson \u003cpj@sgi.com\u003e\nCc: Kirill Korotaev \u003cdev@openvz.org\u003e\nCc: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nCc: Srivatsa Vaddagiri \u003cvatsa@in.ibm.com\u003e\nCc: Cedric Le Goater \u003cclg@fr.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": "81a6a5cdd2c5cd70874b88afe524ab09e9e869af",
      "tree": "ba46c47a0692b687a96e52e61bfda4f14457017f",
      "parents": [
        "817929ec274bcfe771586d338bb31d1659615686"
      ],
      "author": {
        "name": "Paul Menage",
        "email": "menage@google.com",
        "time": "Thu Oct 18 23:39:38 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 19 11:53:36 2007 -0700"
      },
      "message": "Task Control Groups: automatic userspace notification of idle cgroups\n\nAdd the following files to the cgroup filesystem:\n\nnotify_on_release - configures/reports whether the cgroup subsystem should\nattempt to run a release script when this cgroup becomes unused\n\nrelease_agent - configures/reports the release agent to be used for this\nhierarchy (top level in each hierarchy only)\n\nreleasable - reports whether this cgroup would have been auto-released if\nnotify_on_release was true and a release agent was configured (mainly useful\nfor debugging)\n\nTo avoid locking issues, invoking the userspace release agent is done via a\nworkqueue task; cgroups that need to have their release agents invoked by\nthe workqueue task are linked on to a list.\n\n[pj@sgi.com: Need to include kmod.h]\nSigned-off-by: Paul Menage \u003cmenage@google.com\u003e\nCc: Serge E. Hallyn \u003cserue@us.ibm.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Paul Jackson \u003cpj@sgi.com\u003e\nCc: Kirill Korotaev \u003cdev@openvz.org\u003e\nCc: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nCc: Srivatsa Vaddagiri \u003cvatsa@in.ibm.com\u003e\nCc: Cedric Le Goater \u003cclg@fr.ibm.com\u003e\nSigned-off-by: Paul Jackson \u003cpj@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "817929ec274bcfe771586d338bb31d1659615686",
      "tree": "5a96ed1afd308016e8720437a00bf2f114e907cb",
      "parents": [
        "a424316ca154317367c7ddf89997d1c80e4a8051"
      ],
      "author": {
        "name": "Paul Menage",
        "email": "menage@google.com",
        "time": "Thu Oct 18 23:39:36 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 19 11:53:36 2007 -0700"
      },
      "message": "Task Control Groups: shared cgroup subsystem group arrays\n\nReplace the struct css_set embedded in task_struct with a pointer; all tasks\nthat have the same set of memberships across all hierarchies will share a\ncss_set object, and will be linked via their css_sets field to the \"tasks\"\nlist_head in the css_set.\n\nAssuming that many tasks share the same cgroup assignments, this reduces\noverall space usage and keeps the size of the task_struct down (three pointers\nadded to task_struct compared to a non-cgroups kernel, no matter how many\nsubsystems are registered).\n\n[akpm@linux-foundation.org: fix a printk]\n[akpm@linux-foundation.org: build fix]\nSigned-off-by: Paul Menage \u003cmenage@google.com\u003e\nCc: Serge E. Hallyn \u003cserue@us.ibm.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Paul Jackson \u003cpj@sgi.com\u003e\nCc: Kirill Korotaev \u003cdev@openvz.org\u003e\nCc: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nCc: Srivatsa Vaddagiri \u003cvatsa@in.ibm.com\u003e\nCc: Cedric Le Goater \u003cclg@fr.ibm.com\u003e\nCc: Serge E. Hallyn \u003cserue@us.ibm.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Paul Jackson \u003cpj@sgi.com\u003e\nCc: Kirill Korotaev \u003cdev@openvz.org\u003e\nCc: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nCc: Srivatsa Vaddagiri \u003cvatsa@in.ibm.com\u003e\nCc: Cedric Le Goater \u003cclg@fr.ibm.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a424316ca154317367c7ddf89997d1c80e4a8051",
      "tree": "ed349926c41aad5be6d62c9074ff72a0d9ac32c2",
      "parents": [
        "697f41610863c9264a7ae26dac9a387c9dda8c84"
      ],
      "author": {
        "name": "Paul Menage",
        "email": "menage@google.com",
        "time": "Thu Oct 18 23:39:35 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 19 11:53:36 2007 -0700"
      },
      "message": "Task Control Groups: add procfs interface\n\nAdd:\n\n/proc/cgroups - general system info\n\n/proc/*/cgroup - per-task cgroup membership info\n\n[a.p.zijlstra@chello.nl: cgroups: bdi init hooks]\nSigned-off-by: Paul Menage \u003cmenage@google.com\u003e\nCc: Serge E. Hallyn \u003cserue@us.ibm.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Paul Jackson \u003cpj@sgi.com\u003e\nCc: Kirill Korotaev \u003cdev@openvz.org\u003e\nCc: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nCc: Srivatsa Vaddagiri \u003cvatsa@in.ibm.com\u003e\nCc: Cedric Le Goater \u003cclg@fr.ibm.com\u003e\nSigned-off-by: 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": "697f41610863c9264a7ae26dac9a387c9dda8c84",
      "tree": "9d4321f93abe36920a8e9d5239d120803f6cabbc",
      "parents": [
        "b4f48b6363c81ca743ef46943ef23fd72e60f679"
      ],
      "author": {
        "name": "Paul Menage",
        "email": "menage@google.com",
        "time": "Thu Oct 18 23:39:34 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 19 11:53:36 2007 -0700"
      },
      "message": "Task Control Groups: add cgroup_clone() interface\n\nAdd support for cgroup_clone(), a way to create new cgroups intended to\nbe used for systems such as namespace unsharing.  A new subsystem callback,\npost_clone(), is added to allow subsystems to automatically configure cloned\ncgroups.\n\nSigned-off-by: Paul Menage \u003cmenage@google.com\u003e\nCc: Serge E. Hallyn \u003cserue@us.ibm.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Paul Jackson \u003cpj@sgi.com\u003e\nCc: Kirill Korotaev \u003cdev@openvz.org\u003e\nCc: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nCc: Srivatsa Vaddagiri \u003cvatsa@in.ibm.com\u003e\nCc: Cedric Le Goater \u003cclg@fr.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": "b4f48b6363c81ca743ef46943ef23fd72e60f679",
      "tree": "40437b78e2d7a7d9d71e7bd63bc96e1ad02daa94",
      "parents": [
        "355e0c48b757b7fcc79ccb98fda8105ed37a1598"
      ],
      "author": {
        "name": "Paul Menage",
        "email": "menage@google.com",
        "time": "Thu Oct 18 23:39:33 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 19 11:53:36 2007 -0700"
      },
      "message": "Task Control Groups: add fork()/exit() hooks\n\nThis adds the necessary hooks to the fork() and exit() paths to ensure\nthat new children inherit their parent\u0027s cgroup assignments, and that\nexiting processes release reference counts on their cgroups.\n\nSigned-off-by: Paul Menage \u003cmenage@google.com\u003e\nCc: Serge E. Hallyn \u003cserue@us.ibm.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Paul Jackson \u003cpj@sgi.com\u003e\nCc: Kirill Korotaev \u003cdev@openvz.org\u003e\nCc: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nCc: Srivatsa Vaddagiri \u003cvatsa@in.ibm.com\u003e\nCc: Cedric Le Goater \u003cclg@fr.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": "355e0c48b757b7fcc79ccb98fda8105ed37a1598",
      "tree": "f9687961979a808e46620f4bdf9af05de2fd68e2",
      "parents": [
        "bbcb81d09104f0d440974b994c1fc508ccbe9503"
      ],
      "author": {
        "name": "Paul Menage",
        "email": "menage@google.com",
        "time": "Thu Oct 18 23:39:33 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 19 11:53:36 2007 -0700"
      },
      "message": "Add cgroup write_uint() helper method\n\nAdd write_uint() helper method for cgroup subsystems\n\nThis helper is analagous to the read_uint() helper method for\nreporting u64 values to userspace. It\u0027s designed to reduce the amount\nof boilerplate requierd for creating new cgroup subsystems.\n\nSigned-off-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": "bbcb81d09104f0d440974b994c1fc508ccbe9503",
      "tree": "6d9ef3e2c611bb0a8f63519196f7bd7725b7ea1a",
      "parents": [
        "ddbcc7e8e50aefe467c01cac3dec71f118cd8ac2"
      ],
      "author": {
        "name": "Paul Menage",
        "email": "menage@google.com",
        "time": "Thu Oct 18 23:39:32 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 19 11:53:36 2007 -0700"
      },
      "message": "Task Control Groups: add tasks file interface\n\nAdd the per-directory \"tasks\" file for cgroupfs mounts; this allows the\nuser to determine which tasks are members of a cgroup by reading a\ncgroup\u0027s \"tasks\", and to move a task into a cgroup by writing its pid to\nits \"tasks\".\n\nSigned-off-by: Paul Menage \u003cmenage@google.com\u003e\nCc: Serge E. Hallyn \u003cserue@us.ibm.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Paul Jackson \u003cpj@sgi.com\u003e\nCc: Kirill Korotaev \u003cdev@openvz.org\u003e\nCc: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nCc: Srivatsa Vaddagiri \u003cvatsa@in.ibm.com\u003e\nCc: Cedric Le Goater \u003cclg@fr.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": "ddbcc7e8e50aefe467c01cac3dec71f118cd8ac2",
      "tree": "0881a031e669582f819d572339e955b04abfc3d2",
      "parents": [
        "55a230aae650157720becc09cadb7d10efbf5013"
      ],
      "author": {
        "name": "Paul Menage",
        "email": "menage@google.com",
        "time": "Thu Oct 18 23:39:30 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 19 11:53:36 2007 -0700"
      },
      "message": "Task Control Groups: basic task cgroup framework\n\nGeneric Process Control Groups\n--------------------------\n\nThere have recently been various proposals floating around for\nresource management/accounting and other task grouping subsystems in\nthe kernel, including ResGroups, User BeanCounters, NSProxy\ncgroups, and others.  These all need the basic abstraction of being\nable to group together multiple processes in an aggregate, in order to\ntrack/limit the resources permitted to those processes, or control\nother behaviour of the processes, and all implement this grouping in\ndifferent ways.\n\nThis patchset provides a framework for tracking and grouping processes\ninto arbitrary \"cgroups\" and assigning arbitrary state to those\ngroupings, in order to control the behaviour of the cgroup as an\naggregate.\n\nThe intention is that the various resource management and\nvirtualization/cgroup efforts can also become task cgroup\nclients, with the result that:\n\n- the userspace APIs are (somewhat) normalised\n\n- it\u0027s easier to test e.g. the ResGroups CPU controller in\n conjunction with the BeanCounters memory controller, or use either of\nthem as the resource-control portion of a virtual server system.\n\n- the additional kernel footprint of any of the competing resource\n management systems is substantially reduced, since it doesn\u0027t need\n to provide process grouping/containment, hence improving their\n chances of getting into the kernel\n\nThis patch:\n\nAdd the main task cgroups framework - the cgroup filesystem, and the\nbasic structures for tracking membership and associating subsystem state\nobjects to tasks.\n\nSigned-off-by: Paul Menage \u003cmenage@google.com\u003e\nCc: Serge E. Hallyn \u003cserue@us.ibm.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Paul Jackson \u003cpj@sgi.com\u003e\nCc: Kirill Korotaev \u003cdev@openvz.org\u003e\nCc: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nCc: Srivatsa Vaddagiri \u003cvatsa@in.ibm.com\u003e\nCc: Cedric Le Goater \u003cclg@fr.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    }
  ],
  "next": "55a230aae650157720becc09cadb7d10efbf5013"
}
