)]}'
{
  "log": [
    {
      "commit": "aeed682421a5ebfbf46940e30c3d1caf3bc64304",
      "tree": "684412db63c92fdee764a65d174834fbf7ef7a84",
      "parents": [
        "93a6557558a13f9ff35213efeca483f353c39dd3"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Tue Jul 29 22:33:24 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jul 30 09:41:44 2008 -0700"
      },
      "message": "cpuset: clean up cpuset hierarchy traversal code\n\nUse cpuset.stack_list rather than kfifo, so we avoid memory allocation\nfor kfifo.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nSigned-off-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Cedric Le Goater \u003cclg@fr.ibm.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: 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": "93a6557558a13f9ff35213efeca483f353c39dd3",
      "tree": "36a426a166f7992a4cc55c0c950a49326868f2d5",
      "parents": [
        "f5393693e96393131a4a2e2743f883986d508503"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Tue Jul 29 22:33:23 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jul 30 09:41:44 2008 -0700"
      },
      "message": "cpuset: fix wrong calculation of relax domain level\n\nWhen multiple cpusets are overlapping in their \u0027cpus\u0027 and hence they\nform a single sched domain, the largest sched_relax_domain_level among\nthose should be used. But when top_cpuset\u0027s sched_load_balance is\nset, its sched_relax_domain_level is used regardless other sub-cpusets\u0027.\n\nThis patch fixes it by walking the cpuset hierarchy to find the largest\nsched_relax_domain_level.\n\nSigned-off-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Cedric Le Goater \u003cclg@fr.ibm.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nReviewed-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": "f5393693e96393131a4a2e2743f883986d508503",
      "tree": "91c6b0687939b9361c8cdcebb05494f1d0524f72",
      "parents": [
        "8d1e6266f512b3a94ef6d33528ff385f1aea0392"
      ],
      "author": {
        "name": "Lai Jiangshan",
        "email": "laijs@cn.fujitsu.com",
        "time": "Tue Jul 29 22:33:22 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jul 30 09:41:44 2008 -0700"
      },
      "message": "cpuset: speed up sched domain partition\n\nAll child cpusets contain a subset of the parent\u0027s cpus, so we can skip\nthem when partitioning sched domains. This decreases \u0027csa\u0027 greately for\ncpusets with multi-level hierarchy.\n\nSigned-off-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Cedric Le Goater \u003cclg@fr.ibm.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nReviewed-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": "8d1e6266f512b3a94ef6d33528ff385f1aea0392",
      "tree": "92db3bfbd7bd667a98210a506aadb9db74e15fcd",
      "parents": [
        "4ef1b0fd61333b3b81ebe29283898c6c84b15c9f"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Tue Jul 29 22:33:21 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jul 30 09:41:44 2008 -0700"
      },
      "message": "cpuset: a bit cleanup for scan_for_empty_cpusets()\n\nclean up hierarchy traversal code\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Cedric Le Goater \u003cclg@fr.ibm.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Paul Jackson \u003cpj@sgi.com\u003e\nCc: Cliff Wickman \u003ccpw@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": "da5ef6bb96158b0fc0d808704237a453af449124",
      "tree": "a63113cc3f60c2a6916697bbb06d3c677fa7c121",
      "parents": [
        "02412483777651a26b19a75e49c2a451a174ca9c"
      ],
      "author": {
        "name": "Lai Jiangshan",
        "email": "laijs@cn.fujitsu.com",
        "time": "Fri Jul 25 01:47:25 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:38 2008 -0700"
      },
      "message": "cpuset: two minor code-cleanups\n\nIn cpuset_update_task_memory_state() local variable struct task_struct\n*tsk \u003d current;\n\nAnd local variable tsk is used 14 times and statement task_cs(tsk) is used\ntwice in this function.  So using task_cs(tsk) instead of task_cs(current)\nis better for readability.\n\nAnd \"(struct cgroup_scanner *)\u0026scan\" is not good for readability also.\n(and \"container_of\" is used in cpuset_do_move_task(), not\n\"(cpuset_hotplug_scanner *)scan\")\n\nSigned-off-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nAcked-by: Paul Menage \u003cmenage@google.com\u003e\nCc: 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": "02412483777651a26b19a75e49c2a451a174ca9c",
      "tree": "2289c80253b5e6be9b3fe3635e919bbe7a3bd03d",
      "parents": [
        "489a5393a20dcbf91104052120eb2eff8791b61b"
      ],
      "author": {
        "name": "Lai Jiangshan",
        "email": "laijs@cn.fujitsu.com",
        "time": "Fri Jul 25 01:47:24 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:38 2008 -0700"
      },
      "message": "cpuset: code-cleanup for started_after\n\ncgroup(cgroup_scan_tasks) will initialize heap-\u003egt for us.  This patch\nremoves started_after() and its helper-function.\n\nSigned-off-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nAcked-by: Paul Menage \u003cmenage@google.com\u003e\nCc: 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": "489a5393a20dcbf91104052120eb2eff8791b61b",
      "tree": "63ed72ce1a7a5e4c5d361e8d1c7a876183d8bbf9",
      "parents": [
        "c372e817afc629fea9ff6321313325ed0b4a855b"
      ],
      "author": {
        "name": "Lai Jiangshan",
        "email": "laijs@cn.fujitsu.com",
        "time": "Fri Jul 25 01:47:23 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:38 2008 -0700"
      },
      "message": "cpuset: don\u0027t pass empty cpumasks to partition_sched_domains()\n\nI create lots of empty cpusets(empty cpumasks) and turn off the\n\"sched_load_balance\" in top cpuset.\n\nI found that all these empty cpumasks are passed to\npartition_sched_domains() in rebuild_sched_domains(), it\u0027s very\ntime-consuming for partition_sched_domains() and it\u0027s not need.\n\nIt also reduce memory consumed and some works in rebuild_sched_domains()\ntoo.\n\nSigned-off-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nAcked-by: Paul Menage \u003cmenage@google.com\u003e\nCc: 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": "c372e817afc629fea9ff6321313325ed0b4a855b",
      "tree": "931188486a41a7923e4eb9b658a272b256b3c048",
      "parents": [
        "f9b4fb8dabf38fb456c97f01aace07cb6e7c1723"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Fri Jul 25 01:47:23 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:38 2008 -0700"
      },
      "message": "cpuset: avoid unnecessary sched domains rebuilding\n\nWhen changing \u0027sched_relax_domain_level\u0027, don\u0027t rebuild sched domains if\n\u0027cpus\u0027 is empty or \u0027sched_load_balance\u0027 is not set.\n\nAlso make the comments of rebuild_sched_domains() more readable.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Hidetoshi Seto \u003cseto.hidetoshi@jp.fujitsu.com\u003e\nCc: Paul Jackson \u003cpj@sgi.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f9b4fb8dabf38fb456c97f01aace07cb6e7c1723",
      "tree": "07fbf909044858d6c50b4098f94c8f084df3924c",
      "parents": [
        "0b2f630a28d53b5a2082a5275bc3334b10373508"
      ],
      "author": {
        "name": "Miao Xie",
        "email": "miaox@cn.fujitsu.com",
        "time": "Fri Jul 25 01:47:22 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:38 2008 -0700"
      },
      "message": "cpusets: update task\u0027s cpus_allowed and mems_allowed after CPU/NODE offline/online\n\nThe bug is that a task may run on the cpu/node which is not in its\ncpuset.cpus/ cpuset.mems.\n\nIt can be reproduced by the following commands:\n-----------------------------------\n# mkdir /dev/cpuset\n# mount -t cpuset xxx /dev/cpuset\n# mkdir /dev/cpuset/0\n# echo 0-1 \u003e /dev/cpuset/0/cpus\n# echo 0 \u003e /dev/cpuset/0/mems\n# echo $$ \u003e /dev/cpuset/0/tasks\n# echo 0 \u003e /sys/devices/system/cpu/cpu1/online\n# echo 1 \u003e /sys/devices/system/cpu/cpu1/online\n-----------------------------------\n\nThere is only CPU0 in cpuset.cpus, but the task in this cpuset runs on\nboth CPU0 and CPU1.\n\nIt is because the task\u0027s cpu_allowed didn\u0027t get updated after we did CPU\noffline/online manipulation.  Similar for mem_allowed.\n\nThis patch fixes this bug expect for root cpuset.  Because there is a\nproblem about root cpuset, in that whether it is necessary to update all\nthe tasks in root cpuset or not after cpu/node offline/online.\n\nIf updating, some kernel threads which is bound into a specified cpu will\nbe unbound.\n\nIf not updating, there is a bug in root cpuset.  This bug is also caused\nby offline/online manipulation.  For example, there is a dual-cpu machine.\n we create a sub cpuset in root cpuset and assign 1 to its cpus.  And then\nwe attach some tasks into this sub cpuset.  After this, we offline CPU1.\nNow, the tasks in this new cpuset are moved into root cpuset automatically\nbecause there is no cpu in sub cpuset.  Then we online CPU1, we find all\nthe tasks which doesn\u0027t belong to root cpuset originally just run on CPU0.\n\nMaybe we need to add a flag in the task_struct to mark which task can\u0027t be\nunbound?\n\nSigned-off-by: Miao Xie \u003cmiaox@cn.fujitsu.com\u003e\nAcked-by: Paul Jackson \u003cpj@sgi.com\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Paul Jackson \u003cpj@sgi.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0b2f630a28d53b5a2082a5275bc3334b10373508",
      "tree": "24f7aa54cedcf941b89f59c964873f3034e76b23",
      "parents": [
        "628f42355389cfb596ca3a5a5f64fb9054a2a06a"
      ],
      "author": {
        "name": "Miao Xie",
        "email": "miaox@cn.fujitsu.com",
        "time": "Fri Jul 25 01:47:21 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:37 2008 -0700"
      },
      "message": "cpusets: restructure the function update_cpumask() and update_nodemask()\n\nExtract two functions from update_cpumask() and update_nodemask().They\nwill be used later for updating tasks\u0027 cpus_allowed and mems_allowed after\nCPU/NODE offline/online.\n\n[lizf@cn.fujitsu.com: build fix]\nSigned-off-by: Miao Xie \u003cmiaox@cn.fujitsu.com\u003e\nAcked-by: Paul Jackson \u003cpj@sgi.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc:  Li Zefan \u003clizf@cn.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e37123953292146445c8629b3950d0513fd10ae2",
      "tree": "8481ef1898a61cb5438205df349e01c432a1d55b",
      "parents": [
        "af351026aafc8da16518a02b41c66d3e0c1cdef4"
      ],
      "author": {
        "name": "Paul Menage",
        "email": "menage@google.com",
        "time": "Fri Jul 25 01:47:02 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:36 2008 -0700"
      },
      "message": "cgroup files: remove cpuset_common_file_write()\n\nThis patch tweaks the signatures of the update_cpumask() and\nupdate_nodemask() functions so that they can be called directly as\nhandlers for the new cgroups write_string() method.\n\nThis allows cpuset_common_file_write() to be removed.\n\nSigned-off-by: Paul Menage \u003cmenage@google.com\u003e\nCc: Paul Jackson \u003cpj@sgi.com\u003e\nCc: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Serge Hallyn \u003cserue@us.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": "7f9dce38378f0a4a298e885553d6bb7121376376",
      "tree": "5bfd688c9f356f7216bbc3cef3b4c10153de334b",
      "parents": [
        "26dcce0fabbef75ae426461edf21b5030bad60f3",
        "ba42059fbd0aa1ac91b582412b5fedb1258f241f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jul 23 19:36:53 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jul 23 19:36:53 2008 -0700"
      },
      "message": "Merge branch \u0027sched/for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027sched/for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  sched: hrtick_enabled() should use cpu_active()\n  sched, x86: clean up hrtick implementation\n  sched: fix build error, provide partition_sched_domains() unconditionally\n  sched: fix warning in inc_rt_tasks() to not declare variable \u0027rq\u0027 if it\u0027s not needed\n  cpu hotplug: Make cpu_active_map synchronization dependency clear\n  cpu hotplug, sched: Introduce cpu_active_map and redo sched domain managment (take 2)\n  sched: rework of \"prioritize non-migratable tasks over migratable ones\"\n  sched: reduce stack size in isolated_cpu_setup()\n  Revert parts of \"ftrace: do not trace scheduler functions\"\n\nFixed up conflicts in include/asm-x86/thread_info.h (due to the\nTIF_SINGLESTEP unification vs TIF_HRTICK_RESCHED removal) and\nkernel/sched_fair.c (due to cpu_active_map vs for_each_cpu_mask_nr()\nintroduction).\n"
    },
    {
      "commit": "91cd4d6ef0abb1f65e81f8fe37e7d3c10344e38c",
      "tree": "48aa8cfd245839381d5b16ff8065abc96031a6c5",
      "parents": [
        "1673ad52bd9a3c747e596a76e65c55981ea651e3"
      ],
      "author": {
        "name": "Miao Xie",
        "email": "miaox@cn.fujitsu.com",
        "time": "Mon Jul 21 14:21:35 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 22 09:59:41 2008 -0700"
      },
      "message": "cpusets: fix wrong domain attr updates\n\nFix wrong domain attr updates, or we will always update the first sched\ndomain attr.\n\nSigned-off-by: Miao Xie \u003cmiaox@cn.fujitsu.com\u003e\nCc: Hidetoshi Seto \u003cseto.hidetoshi@jp.fujitsu.com\u003e\nCc: Paul Jackson \u003cpj@sgi.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: \u003cstable@kernel.org\u003e\t[2.6.26.x]\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e761b7725234276a802322549cee5255305a0930",
      "tree": "27b351a7d5fc9a93590e0effce1c5adb1bfcebc0",
      "parents": [
        "7ebefa8ceefed44cc321be70afc54a585a68ac0b"
      ],
      "author": {
        "name": "Max Krasnyansky",
        "email": "maxk@qualcomm.com",
        "time": "Tue Jul 15 04:43:49 2008 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jul 18 13:22:25 2008 +0200"
      },
      "message": "cpu hotplug, sched: Introduce cpu_active_map and redo sched domain managment (take 2)\n\nThis is based on Linus\u0027 idea of creating cpu_active_map that prevents\nscheduler load balancer from migrating tasks to the cpu that is going\ndown.\n\nIt allows us to simplify domain management code and avoid unecessary\ndomain rebuilds during cpu hotplug event handling.\n\nPlease ignore the cpusets part for now. It needs some more work in order\nto avoid crazy lock nesting. Although I did simplfy and unify domain\nreinitialization logic. We now simply call partition_sched_domains() in\nall the cases. This means that we\u0027re using exact same code paths as in\ncpusets case and hence the test below cover cpusets too.\nCpuset changes to make rebuild_sched_domains() callable from various\ncontexts are in the separate patch (right next after this one).\n\nThis not only boots but also easily handles\n\twhile true; do make clean; make -j 8; done\nand\n\twhile true; do on-off-cpu 1; done\nat the same time.\n(on-off-cpu 1 simple does echo 0/1 \u003e /sys/.../cpu1/online thing).\n\nSuprisingly the box (dual-core Core2) is quite usable. In fact I\u0027m typing\nthis on right now in gnome-terminal and things are moving just fine.\n\nAlso this is running with most of the debug features enabled (lockdep,\nmutex, etc) no BUG_ONs or lockdep complaints so far.\n\nI believe I addressed all of the Dmitry\u0027s comments for original Linus\u0027\nversion. I changed both fair and rt balancer to mask out non-active cpus.\nAnd replaced cpu_is_offline() with !cpu_active() in the main scheduler\ncode where it made sense (to me).\n\nSigned-off-by: Max Krasnyanskiy \u003cmaxk@qualcomm.com\u003e\nAcked-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nAcked-by: Gregory Haskins \u003cghaskins@novell.com\u003e\nCc: dmitry.adamushko@gmail.com\nCc: pj@sgi.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "873a6ed6288b6c2c0d2cc84d3b2bf2fab9ba0181",
      "tree": "e0749eee70ce3ca29d62bb3b67248c87a97ec2b7",
      "parents": [
        "361833efac4d277d209008e1e0658e597bc1bdef",
        "bce7f793daec3e65ec5c5705d2457b81fe7b5725"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jul 14 12:19:19 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jul 14 12:19:19 2008 +0200"
      },
      "message": "Merge commit \u0027v2.6.26\u0027 into sched/devel\n"
    },
    {
      "commit": "3e84050c81ffb4961ef43d20e1fb1d7607167d83",
      "tree": "62ae82ba6cc923222ab0053efcb8b2dec9b91ca0",
      "parents": [
        "b1e387348a2a70954312b102d0589c3e2ca3dba1"
      ],
      "author": {
        "name": "Dmitry Adamushko",
        "email": "dmitry.adamushko@gmail.com",
        "time": "Sun Jul 13 02:10:29 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Jul 13 11:37:02 2008 +0200"
      },
      "message": "cpusets, hotplug, scheduler: fix scheduler domain breakage\n\nCommit f18f982ab (\"sched: CPU hotplug events must not destroy scheduler\ndomains created by the cpusets\") introduced a hotplug-related problem as\ndescribed below:\n\nUpon CPU_DOWN_PREPARE,\n\n  update_sched_domains() -\u003e detach_destroy_domains(\u0026cpu_online_map)\n\ndoes the following:\n\n/*\n * Force a reinitialization of the sched domains hierarchy. The domains\n * and groups cannot be updated in place without racing with the balancing\n * code, so we temporarily attach all running cpus to the NULL domain\n * which will prevent rebalancing while the sched domains are recalculated.\n */\n\nThe sched-domains should be rebuilt when a CPU_DOWN ops. has been\ncompleted, effectively either upon CPU_DEAD{_FROZEN} (upon success) or\nCPU_DOWN_FAILED{_FROZEN} (upon failure -- restore the things to their\ninitial state). That\u0027s what update_sched_domains() also does but only\nfor !CPUSETS case.\n\nWith f18f982ab, sched-domains\u0027 reinitialization is delegated to\nCPUSETS code:\n\ncpuset_handle_cpuhp() -\u003e common_cpu_mem_hotplug_unplug() -\u003e\nrebuild_sched_domains()\n\nBeing called for CPU_UP_PREPARE and if its callback is called after\nupdate_sched_domains()), it just negates all the work done by\nupdate_sched_domains() -- i.e. a soon-to-be-offline cpu is included in\nthe sched-domains and that makes it visible for the load-balancer\nwhile the CPU_DOWN ops. is in progress.\n\n__migrate_live_tasks() moves the tasks off a \u0027dead\u0027 cpu (it\u0027s already\n\"offline\" when this function is called).\n\ntry_to_wake_up() is called for one of these tasks from another CPU -\u003e\nthe load-balancer (wake_idle()) picks up a \"dead\" CPU and places the\ntask on it. Then e.g. BUG_ON(rq-\u003enr_running) detects this a bit later\n-\u003e oops.\n\nSigned-off-by: Dmitry Adamushko \u003cdmitry.adamushko@gmail.com\u003e\nTested-by: Vegard Nossum \u003cvegard.nossum@gmail.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Max Krasnyansky \u003cmaxk@qualcomm.com\u003e\nCc: Paul Jackson \u003cpj@sgi.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: miaox@cn.fujitsu.com\nCc: rostedt@goodmis.org\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "1de8644cc7c826e0c41e52825bd5a12e2e31e6ca",
      "tree": "df1e884080599facaf70d2675c480e999da953e1",
      "parents": [
        "6c3df25511c2c51f2dd36cc52a8d22363d731793",
        "481c5346d0981940ee63037eb53e4e37b0735c10"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jun 23 11:30:23 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jun 23 11:30:23 2008 +0200"
      },
      "message": "Merge branch \u0027linus\u0027 into sched/devel\n"
    },
    {
      "commit": "1f1e2ce8a55bac60ff165d353c6b882e750c9092",
      "tree": "b11aaa5baa04ea5ea0ecc549fa1c95430919cd82",
      "parents": [
        "e570dc2a503f8334b700e8483082c675394f53fd",
        "9c106c119ebedf624fbd682fd2a4d52e3c8c1a67"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jun 20 12:37:13 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jun 20 12:37:13 2008 -0700"
      },
      "message": "Merge branch \u0027core-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027core-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  softlockup: fix NMI hangs due to lock race - 2.6.26-rc regression\n  rcupreempt: remove export of rcu_batches_completed_bh\n  cpuset: limit the input of cpuset.sched_relax_domain_level\n"
    },
    {
      "commit": "30e0e178193d4221abc9926b07a4c7661c7cc4a9",
      "tree": "f6ad7d54e810a97345ad82b55832a2dbfb3ca6e2",
      "parents": [
        "9bedbcb207ed9a571b239231d99c8fd4a34ae24d"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Tue May 13 10:27:17 2008 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Jun 19 09:45:36 2008 +0200"
      },
      "message": "cpuset: limit the input of cpuset.sched_relax_domain_level\n\nWe allow the inputs to be [-1 ... SD_LV_MAX), and return -EINVAL\nfor inputs outside this range.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nAcked-by: Paul Menage \u003cmenage@google.com\u003e\nAcked-by: Paul Jackson \u003cpj@sgi.com\u003e\nAcked-by: Hidetoshi Seto \u003cseto.hidetoshi@jp.fujitsu.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "f18f982abf183e91f435990d337164c7a43d1e6d",
      "tree": "d80f6b09825db1c5103d7b8518189613c9b57fbe",
      "parents": [
        "15a8641eadb492ef7c5489faa25256967bdfd303"
      ],
      "author": {
        "name": "Max Krasnyansky",
        "email": "maxk@qualcomm.com",
        "time": "Thu May 29 11:17:01 2008 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Jun 19 09:14:51 2008 +0200"
      },
      "message": "sched: CPU hotplug events must not destroy scheduler domains created by the cpusets\n\nFirst issue is not related to the cpusets. We\u0027re simply leaking doms_cur.\nIt\u0027s allocated in arch_init_sched_domains() which is called for every\nhotplug event. So we just keep reallocation doms_cur without freeing it.\nI introduced free_sched_domains() function that cleans things up.\n\nSecond issue is that sched domains created by the cpusets are\ncompletely destroyed by the CPU hotplug events. For all CPU hotplug\nevents scheduler attaches all CPUs to the NULL domain and then puts\nthem all into the single domain thereby destroying domains created\nby the cpusets (partition_sched_domains).\nThe solution is simple, when cpusets are enabled scheduler should not\ncreate default domain and instead let cpusets do that. Which is\nexactly what the patch does.\n\nSigned-off-by: Max Krasnyansky \u003cmaxk@qualcomm.com\u003e\nCc: pj@sgi.com\nCc: menage@google.com\nCc: rostedt@goodmis.org\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "f9e8e07e074a880e110922759dcdb369fecdf07c",
      "tree": "61bc9a61e0a0546a81d699047d9e001c50b52d50",
      "parents": [
        "e9886ca3a93d7d041d3de8e5acebe213da777d59",
        "066519068ad2fbe98c7f45552b1f592903a9c8c8"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jun 16 11:15:21 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jun 16 11:15:21 2008 +0200"
      },
      "message": "Merge branch \u0027linus\u0027 into sched-devel\n"
    },
    {
      "commit": "9985b0bab332289f14837eff3c6e0bcc658b58f7",
      "tree": "8c4bcbc4348c473b14644dc4d371a45c0dabda53",
      "parents": [
        "7def2be1dc679984f4c4fb3ef19a8a081b2454ec"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Thu Jun 05 12:57:11 2008 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Jun 10 12:26:16 2008 +0200"
      },
      "message": "sched: prevent bound kthreads from changing cpus_allowed\n\nKthreads that have called kthread_bind() are bound to specific cpus, so\nother tasks should not be able to change their cpus_allowed from under\nthem.  Otherwise, it is possible to move kthreads, such as the migration\nor software watchdog threads, so they are not allowed access to the cpu\nthey work on.\n\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Paul Jackson \u003cpj@sgi.com\u003e\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "37340746a66e5e7feed5945f28cb75d90a8fd9f6",
      "tree": "b056132aad9eab38886b7359797302cbeeabc3fa",
      "parents": [
        "aae8679b0ebcaa92f99c1c3cb0cd651594a43915"
      ],
      "author": {
        "name": "Lai Jiangshan",
        "email": "laijs@cn.fujitsu.com",
        "time": "Thu Jun 05 22:46:32 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jun 06 11:29:11 2008 -0700"
      },
      "message": "cpusets: fix bug when adding nonexistent cpu or mem\n\nAdding a nonexistent cpu to a cpuset will be omitted quietly.  It should\nreturn -EINVAL.\n\nExample: (real_nr_cpus \u003c\u003d 4 \u003c NR_CPUS or cpu#4 was just offline)\n\n# cat cpus\n0-1\n# /bin/echo 4 \u003e cpus\n# /bin/echo $?\n0\n# cat cpus\n\n#\n\nThe same occurs when add a nonexistent mem.\nThis patch will fix this bug.\nAnd when *buf \u003d\u003d \"\", the check is unneeded.\n\nSigned-off-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nAcked-by: Paul Jackson \u003cpj@sgi.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5c8e1ed1d204a6770ca2854cd3b3597070fe7e5a",
      "tree": "72a2bb4394d1f0b8492ea9566990a39ca597b840",
      "parents": [
        "1100ac91b6af02d8639d518fad5b434b1bf44ed6"
      ],
      "author": {
        "name": "Max Krasnyansky",
        "email": "maxk@qualcomm.com",
        "time": "Thu May 29 11:17:01 2008 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jun 06 15:25:00 2008 +0200"
      },
      "message": "sched: CPU hotplug events must not destroy scheduler domains created by the cpusets\n\nFirst issue is not related to the cpusets. We\u0027re simply leaking doms_cur.\nIt\u0027s allocated in arch_init_sched_domains() which is called for every\nhotplug event. So we just keep reallocation doms_cur without freeing it.\nI introduced free_sched_domains() function that cleans things up.\n\nSecond issue is that sched domains created by the cpusets are\ncompletely destroyed by the CPU hotplug events. For all CPU hotplug\nevents scheduler attaches all CPUs to the NULL domain and then puts\nthem all into the single domain thereby destroying domains created\nby the cpusets (partition_sched_domains).\nThe solution is simple, when cpusets are enabled scheduler should not\ncreate default domain and instead let cpusets do that. Which is\nexactly what the patch does.\n\nSigned-off-by: Max Krasnyansky \u003cmaxk@qualcomm.com\u003e\nCc: pj@sgi.com\nCc: menage@google.com\nCc: rostedt@goodmis.org\nCc: mingo@elte.hu\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "5be7a4792a31df6f2cd44bfba8da467ea20a0642",
      "tree": "87ec7f4f59f52a729ab21aa6d6bf3d3e6cad9474",
      "parents": [
        "4ea33e2dc2dab10960877e1649ee527c033f42c0"
      ],
      "author": {
        "name": "Paul Menage",
        "email": "menage@google.com",
        "time": "Tue May 06 20:42:41 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 08 10:46:56 2008 -0700"
      },
      "message": "Fix cpuset sched_relax_domain_level control file\n\nDue to a merge conflict, the sched_relax_domain_level control file was marked\nas being handled by cpuset_read/write_u64, but the code to handle it was\nactually in cpuset_common_file_read/write.\n\nSince the value being written/read is in fact a signed integer, it should be\ntreated as such; this patch adds cpuset_read/write_s64 functions, and uses\nthem to handle the sched_relax_domain_level file.\n\nWith this patch, the sched_relax_domain_level can be read and written, and the\ncorrect contents seen/updated.\n\nSigned-off-by: Paul Menage \u003cmenage@google.com\u003e\nCc: Hidetoshi Seto \u003cseto.hidetoshi@jp.fujitsu.com\u003e\nCc: Paul Jackson \u003cpj@sgi.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nReviewed-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "786083667e0ced85ce17c4c0b6c57a9f47c5b9f2",
      "tree": "4519c51c3ec7d093fe0bafbbd67204a6f7b773b3",
      "parents": [
        "addf2c739d9015d3e9c0500b58a3af051cd58ea7"
      ],
      "author": {
        "name": "Paul Menage",
        "email": "menage@google.com",
        "time": "Tue Apr 29 01:00:26 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 29 08:06:11 2008 -0700"
      },
      "message": "Cpuset hardwall flag: add a mem_hardwall flag to cpusets\n\nThis flag provides the hardwalling properties of mem_exclusive, without\nenforcing the exclusivity.  Either mem_hardwall or mem_exclusive is sufficient\nto prevent GFP_KERNEL allocations from passing outside the cpuset\u0027s assigned\nnodes.\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": "addf2c739d9015d3e9c0500b58a3af051cd58ea7",
      "tree": "0dec81fe642817c32c8c6b3a77dc72fb41c1a145",
      "parents": [
        "9e0c914cabc6d75d2eafdff00671a2ad683a5e3c"
      ],
      "author": {
        "name": "Paul Menage",
        "email": "menage@google.com",
        "time": "Tue Apr 29 01:00:26 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 29 08:06:11 2008 -0700"
      },
      "message": "Cpuset hardwall flag: switch cpusets to use the bulk cgroup_add_files() API\n\nCurrently the cpusets mem_exclusive flag is overloaded to mean both\n\"no-overlapping\" and \"no GFP_KERNEL allocations outside this cpuset\".\n\nThese patches add a new mem_hardwall flag with just the allocation restriction\npart of the mem_exclusive semantics, without breaking backwards-compatibility\nfor those who continue to use just mem_exclusive.  Additionally, the cgroup\ncontrol file registration for cpusets is cleaned up to reduce boilerplate.\n\nThis patch:\n\nThis change tidies up the cpusets control file definitions, and reduces the\namount of boilerplate required to add/change control files in the future.\n\nSigned-off-by: Paul Menage \u003cmenage@google.com\u003e\nReviewed-by: Li Zefan \u003clizf@cn.fujitsu.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": "9e0c914cabc6d75d2eafdff00671a2ad683a5e3c",
      "tree": "5986ff43c7af515b34520069efce556b529ea5d9",
      "parents": [
        "1faf8e40a8ab12ae1f7f474965e6fb031e43f8d6"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@kernel.org",
        "time": "Tue Apr 29 01:00:25 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 29 08:06:11 2008 -0700"
      },
      "message": "kernel/cpuset.c: make 3 functions static\n\nMake the following needlessly global functions static:\n\n- cpuset_test_cpumask()\n- cpuset_change_cpumask()\n- cpuset_do_move_task()\n\nSigned-off-by: Adrian Bunk \u003cbunk@kernel.org\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": "700fe1ab99240c1a9c4d155e2a0612a1b044bb69",
      "tree": "0a3f15dc24d3f369ed16b06625a1620b997c38ab",
      "parents": [
        "b7269dfc826fbf554c9e6a9eaa4e6ff95fa08656"
      ],
      "author": {
        "name": "Paul Menage",
        "email": "menage@google.com",
        "time": "Tue Apr 29 01:00:00 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 29 08:06:08 2008 -0700"
      },
      "message": "CGroup API files: update cpusets to use cgroup structured file API\n\nMany of the cpusets control files are simple integer values, which don\u0027t\nrequire the overhead of memory allocations for reads and writes.\n\nMove the handlers for these control files into cpuset_read_u64() and\ncpuset_write_u64().\n\n[akpm@linux-foundation.org: ad dmissing `break\u0027]\nSigned-off-by: Paul Menage \u003cmenage@google.com\u003e\nCc: \"Li Zefan\" \u003clizf@cn.fujitsu.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Paul Jackson \u003cpj@sgi.com\u003e\nCc: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: \"YAMAMOTO Takashi\" \u003cyamamoto@valinux.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b331d259b1147f82d692f3b866e036017cbde8fe",
      "tree": "db8de3a81e63c97c778b950dc6221458df6e6988",
      "parents": [
        "d613c3e2d841889f32b1e74f251a6a6bcd9642cf"
      ],
      "author": {
        "name": "Harvey Harrison",
        "email": "harvey.harrison@gmail.com",
        "time": "Mon Apr 28 14:13:19 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 28 17:29:18 2008 -0700"
      },
      "message": "kernel: fix integer as NULL pointer warnings\n\nkernel/cpuset.c:1268:52: warning: Using plain integer as NULL pointer\nkernel/pid_namespace.c:95:24: warning: Using plain integer as NULL pointer\n\nSigned-off-by: Harvey Harrison \u003charvey.harrison@gmail.com\u003e\nReviewed-by: Paul Jackson \u003cpj@sgi.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "846a16bf0fc80dc95a414ffce465e3cbf9680247",
      "tree": "45e03061c5e3d8242bf470509771926f37177415",
      "parents": [
        "f0be3d32b05d3fea2fcdbbb81a39dac2a7163169"
      ],
      "author": {
        "name": "Lee Schermerhorn",
        "email": "lee.schermerhorn@hp.com",
        "time": "Mon Apr 28 02:13:09 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 28 08:58:23 2008 -0700"
      },
      "message": "mempolicy: rename mpol_copy to mpol_dup\n\nThis patch renames mpol_copy() to mpol_dup() because, well, that\u0027s what it\ndoes.  Like, e.g., strdup() for strings, mpol_dup() takes a pointer to an\nexisting mempolicy, allocates a new one and copies the contents.\n\nIn a later patch, I want to use the name mpol_copy() to copy the contents from\none mempolicy to another like, e.g., strcpy() does for strings.\n\nSigned-off-by: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nCc: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Andi Kleen \u003cak@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "19770b32609b6bf97a3dece2529089494cbfc549",
      "tree": "3b5922d1b20aabdf929bde9309f323841717747a",
      "parents": [
        "dd1a239f6f2d4d3eedd318583ec319aa145b324c"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mel@csn.ul.ie",
        "time": "Mon Apr 28 02:12:18 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 28 08:58:19 2008 -0700"
      },
      "message": "mm: filter based on a nodemask as well as a gfp_mask\n\nThe MPOL_BIND policy creates a zonelist that is used for allocations\ncontrolled by that mempolicy.  As the per-node zonelist is already being\nfiltered based on a zone id, this patch adds a version of __alloc_pages() that\ntakes a nodemask for further filtering.  This eliminates the need for\nMPOL_BIND to create a custom zonelist.\n\nA positive benefit of this is that allocations using MPOL_BIND now use the\nlocal node\u0027s distance-ordered zonelist instead of a custom node-id-ordered\nzonelist.  I.e., pages will be allocated from the closest allowed node with\navailable memory.\n\n[Lee.Schermerhorn@hp.com: Mempolicy: update stale documentation and comments]\n[Lee.Schermerhorn@hp.com: Mempolicy: make dequeue_huge_page_vma() obey MPOL_BIND nodemask]\n[Lee.Schermerhorn@hp.com: Mempolicy: make dequeue_huge_page_vma() obey MPOL_BIND nodemask rework]\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nAcked-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "dd1a239f6f2d4d3eedd318583ec319aa145b324c",
      "tree": "aff4224c96b5e2e67588c3946858a724863eeaf9",
      "parents": [
        "54a6eb5c4765aa573a030ceeba2c14e3d2ea5706"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mel@csn.ul.ie",
        "time": "Mon Apr 28 02:12:17 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 28 08:58:18 2008 -0700"
      },
      "message": "mm: have zonelist contains structs with both a zone pointer and zone_idx\n\nFiltering zonelists requires very frequent use of zone_idx().  This is costly\nas it involves a lookup of another structure and a substraction operation.  As\nthe zone_idx is often required, it should be quickly accessible.  The node idx\ncould also be stored here if it was found that accessing zone-\u003enode is\nsignificant which may be the case on workloads where nodemasks are heavily\nused.\n\nThis patch introduces a struct zoneref to store a zone pointer and a zone\nindex.  The zonelist then consists of an array of these struct zonerefs which\nare looked up as necessary.  Helpers are given for accessing the zone index as\nwell as the node index.\n\n[kamezawa.hiroyu@jp.fujitsu.com: Suggested struct zoneref instead of embedding information in pointers]\n[hugh@veritas.com: mm-have-zonelist: fix memcg ooms]\n[hugh@veritas.com: just return do_try_to_free_pages]\n[hugh@veritas.com: do_try_to_free_pages gfp_mask redundant]\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nAcked-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nAcked-by: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1d3504fcf5606579d60b649d19f44b3871c1ddae",
      "tree": "001a1b57bd7f123fd51361d78d9277b2dcac1bf3",
      "parents": [
        "4d5f35533fb9b2cd553cec6611195bcbfb7ffd84"
      ],
      "author": {
        "name": "Hidetoshi Seto",
        "email": "seto.hidetoshi@jp.fujitsu.com",
        "time": "Tue Apr 15 14:04:23 2008 +0900"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Apr 19 19:45:00 2008 +0200"
      },
      "message": "sched, cpuset: customize sched domains, core\n\n[rebased for sched-devel/latest]\n\n - Add a new cpuset file, having levels:\n     sched_relax_domain_level\n\n - Modify partition_sched_domains() and build_sched_domains()\n   to take attributes parameter passed from cpuset.\n\n - Fill newidle_idx for node domains which currently unused but\n   might be required if sched_relax_domain_level become higher.\n\n - We can change the default level by boot option \u0027relax_domain_level\u003d\u0027.\n\nSigned-off-by: Hidetoshi Seto \u003cseto.hidetoshi@jp.fujitsu.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "39106dcf85285e78f3b290022122c76f851379b8",
      "tree": "7fe93aaf6a433920b1c31725f42db30799deaa55",
      "parents": [
        "fb0f330e62d71f7c535251438068199af320cf73"
      ],
      "author": {
        "name": "Mike Travis",
        "email": "travis@sgi.com",
        "time": "Tue Apr 08 11:43:03 2008 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Apr 19 19:44:59 2008 +0200"
      },
      "message": "cpumask: use new cpus_scnprintf function\n\n  * Cleaned up references to cpumask_scnprintf() and added new\n    cpulist_scnprintf() interfaces where appropriate.\n\n  * Fix some small bugs (or code efficiency improvments) for various uses\n    of cpumask_scnprintf.\n\n  * Clean up some checkpatch errors.\n\nSigned-off-by: Mike Travis \u003ctravis@sgi.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "f9a86fcbbb1e5542eabf45c9144ac4b6330861a4",
      "tree": "0a3f8d57969b2dc8d2663e05d6ee36f9b50ba26a",
      "parents": [
        "f70316dace2bb99730800d47044acb818c6735f6"
      ],
      "author": {
        "name": "Mike Travis",
        "email": "travis@sgi.com",
        "time": "Fri Apr 04 18:11:07 2008 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Apr 19 19:44:58 2008 +0200"
      },
      "message": "cpuset: modify cpuset_set_cpus_allowed to use cpumask pointer\n\n  * Modify cpuset_cpus_allowed to return the currently allowed cpuset\n    via a pointer argument instead of as the function return value.\n\n  * Use new set_cpus_allowed_ptr function.\n\n  * Cleanup CPU_MASK_ALL and NODE_MASK_ALL uses.\n\nDepends on:\n\t[sched-devel]: sched: add new set_cpus_allowed_ptr function\n\nSigned-off-by: Mike Travis \u003ctravis@sgi.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "41f7f60d31e5e1dfc9a92957b3e14e08a2f04964",
      "tree": "a55c1c8106c31abf49ac8d1684fa946512b5c2dd",
      "parents": [
        "103926c689650396901002c3a8c38970fff70391"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Tue Mar 04 23:32:38 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Mar 05 17:53:33 2008 -0800"
      },
      "message": "cpusets: fix obsolete comment\n\nmm migration is no longer done in cpuset_update_task_memory_state() so it\ncan no longer take current-\u003emm-\u003emmap_sem, so fix the obsolete comment.\n\n[ This changed in commit 04c19fa6f16047abff2288ddbc1f0798ede5a849\n  (\"cpuset: migrate all tasks in cpuset at once\") when the mm migration\n  was moved from cpuset_update_task_memory_state() to update_nodemask() ]\n\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nCc: Paul Jackson \u003cpj@sgi.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "df5f8314ca30d6a76735748e5ba4ca9809c0f434",
      "tree": "e0a6157b1666a320e69586a81c77a3fe83b36a2a",
      "parents": [
        "a56d3fc74c0178c5f41c48315604d62cff4e746d"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Fri Feb 08 04:18:33 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:24 2008 -0800"
      },
      "message": "proc: seqfile convert proc_pid_status to properly handle pid namespaces\n\nCurrently we possibly lookup the pid in the wrong pid namespace.  So\nseq_file convert proc_pid_status which ensures the proper pid namespaces is\npassed in.\n\n[akpm@linux-foundation.org: coding-style fixes]\n[akpm@linux-foundation.org: build fix]\n[akpm@linux-foundation.org: another build fix]\n[akpm@linux-foundation.org: s390 build fix]\n[akpm@linux-foundation.org: fix task_name() output]\n[akpm@linux-foundation.org: fix nommu build]\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nCc: Andrew Morgan \u003cmorgan@kernel.org\u003e\nCc: Serge Hallyn \u003cserue@us.ibm.com\u003e\nCc: Cedric Le Goater \u003cclg@fr.ibm.com\u003e\nCc: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Paul Jackson \u003cpj@sgi.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b450129554213a4d4c5932f8a293646c029e1b0a",
      "tree": "fbe569493c0c17936498a6b5660db889b7ee95fd",
      "parents": [
        "c8d9c90c7ece28259436476a016cdecd25dccf2c"
      ],
      "author": {
        "name": "Paul Jackson",
        "email": "pj@sgi.com",
        "time": "Thu Feb 07 00:14:47 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:22 2008 -0800"
      },
      "message": "hotplug cpu move tasks in empty cpusets - refinements\n\n- Narrow the scope of callback_mutex in scan_for_empty_cpusets().\n\n- Avoid rewriting the cpus, mems of cpusets except when it is likely that\n  we\u0027ll be changing them.\n\n- Have remove_tasks_in_empty_cpuset() also check for empty mems.\n\nSigned-off-by: Paul Jackson \u003cpj@sgi.com\u003e\nAcked-by: Cliff Wickman \u003ccpw@sgi.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c8d9c90c7ece28259436476a016cdecd25dccf2c",
      "tree": "660e8ef2dec483afc399f6fdcdd4610d46f6796f",
      "parents": [
        "2df167a300d7b3ab9949bbb02a8f604afd809b92"
      ],
      "author": {
        "name": "Paul Jackson",
        "email": "pj@sgi.com",
        "time": "Thu Feb 07 00:14:46 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:22 2008 -0800"
      },
      "message": "hotplug cpu: move tasks in empty cpusets to parent various other fixes\n\nVarious minor formatting and comment tweaks to Cliff Wickman\u0027s\n[PATCH_3_of_3]_cpusets__update_cpumask_revision.patch\n\nI had had \"iff\", meaning \"if and only if\" in a comment.  However, except for\nancient mathematicians, the abbreviation \"iff\" was a tad too cryptic.  Cliff\nchanged it to \"if\", presumably figuring that the \"iff\" was a typo.  However,\nit was the \"only if\" half of the conjunction that was most interesting.\nReword to emphasis the \"only if\" aspect.\n\nThe locking comment for remove_tasks_in_empty_cpuset() was wrong; it said\ncallback_mutex had to be held on entry.  The opposite is true.\n\nSeveral mentions of attach_task() in comments needed to be\nchanged to cgroup_attach_task().\n\nA comment about notify_on_release was no longer relevant,\nas the line of code it had commented, namely:\n\tset_bit(CS_RELEASED_RESOURCE, \u0026parent-\u003eflags);\nis no longer present in that place in the cpuset.c code.\n\nSimilarly a comment about notify_on_release before the\nscan_for_empty_cpusets() routine was no longer relevant.\n\nRemoved extra parentheses and unnecessary return statement.\n\nRenamed attach_task() to cpuset_attach() in various comments.\n\nRemoved comment about not needing memory migration, as it seems the migration\nis done anyway, via the cpuset_attach() callback from cgroup_attach_task().\n\nSigned-off-by: Paul Jackson \u003cpj@sgi.com\u003e\nAcked-by: Cliff Wickman \u003ccpw@sgi.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2df167a300d7b3ab9949bbb02a8f604afd809b92",
      "tree": "786c9f13787b828dcaef38e5f73cb946c5301946",
      "parents": [
        "58f4790b73639d1fa808439fac7f761a4c46e11f"
      ],
      "author": {
        "name": "Paul Menage",
        "email": "menage@google.com",
        "time": "Thu Feb 07 00:14:45 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:22 2008 -0800"
      },
      "message": "cgroups: update comments in cpuset.c\n\nSome of the comments in kernel/cpuset.c were stale following the\ntransition to control groups; this patch updates them to more closely\nmatch reality.\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": "58f4790b73639d1fa808439fac7f761a4c46e11f",
      "tree": "2c7a9cbee80de78beed07b0915df649d8e843365",
      "parents": [
        "956db3ca0606e78456786ef19fd4dc7a5151a6e1"
      ],
      "author": {
        "name": "Cliff Wickman",
        "email": "cpw@sgi.com",
        "time": "Thu Feb 07 00:14:44 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:22 2008 -0800"
      },
      "message": "cpusets: update_cpumask revision\n\nUse the new function cgroup_scan_tasks() to step through all tasks in a\ncpuset.\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: Cliff Wickman \u003ccpw@sgi.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Paul Jackson \u003cpj@sgi.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "956db3ca0606e78456786ef19fd4dc7a5151a6e1",
      "tree": "0bef3d107df1115ecf76e342f30ecee67a7f3705",
      "parents": [
        "31a7df01fd0cd786f60873a921aecafac148c290"
      ],
      "author": {
        "name": "Cliff Wickman",
        "email": "cpw@sgi.com",
        "time": "Thu Feb 07 00:14:43 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:22 2008 -0800"
      },
      "message": "hotplug cpu: move tasks in empty cpusets to parent\n\nThis patch corrects a situation that occurs when one disables all the cpus in\na cpuset.\n\nCurrently, the disabled (cpu-less) cpuset inherits the cpus of its parent,\nwhich is incorrect because it may then overlap its cpu-exclusive sibling.\n\nTasks of an empty cpuset should be moved to the cpuset which is the parent of\ntheir current cpuset.  Or if the parent cpuset has no cpus, to its parent,\netc.\n\nAnd the empty cpuset should be released (if it is flagged notify_on_release).\n\nDepends on the cgroup_scan_tasks() function (proposed by David Rientjes) to\niterate through all tasks in the cpu-less cpuset.  We are deliberately\navoiding a walk of the tasklist.\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: Cliff Wickman \u003ccpw@sgi.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Paul Jackson \u003cpj@sgi.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "86ef5c9a8edd78e6bf92879f32329d89b2d55b5a",
      "tree": "7bf46885326a6fdbb0c3596855408e9a5634dd3a",
      "parents": [
        "d221938c049f4845da13c8593132595a6b9222a8"
      ],
      "author": {
        "name": "Gautham R Shenoy",
        "email": "ego@in.ibm.com",
        "time": "Fri Jan 25 21:08:02 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:02 2008 +0100"
      },
      "message": "cpu-hotplug: replace lock_cpu_hotplug() with get_online_cpus()\n\nReplace all lock_cpu_hotplug/unlock_cpu_hotplug from the kernel and use\nget_online_cpus and put_online_cpus instead as it highlights the\nrefcount semantics in these operations.\n\nThe new API guarantees protection against the cpu-hotplug operation, but\nit doesn\u0027t guarantee serialized access to any of the local data\nstructures. Hence the changes needs to be reviewed.\n\nIn case of pseries_add_processor/pseries_remove_processor, use\ncpu_maps_update_begin()/cpu_maps_update_done() as we\u0027re modifying the\ncpu_present_map there.\n\nSigned-off-by: Gautham R Shenoy \u003cego@in.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\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": "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": "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": "55a230aae650157720becc09cadb7d10efbf5013",
      "tree": "a4d85dd865c4e939580fdde986a0d29912e45a7e",
      "parents": [
        "8f731f7d83d6c6a3eeb32cce79bfcddbf7fac8cc"
      ],
      "author": {
        "name": "Paul Jackson",
        "email": "pj@sgi.com",
        "time": "Thu Oct 18 23:39:28 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 19 11:53:35 2007 -0700"
      },
      "message": "cpuset: zero malloc - revert the old cpuset fix\n\nThe cpuset code to present a list of tasks using a cpuset to user space could\nwrite to an array that it had kmalloc\u0027d, after a kmalloc request of zero size.\n\nThe problem was that the code didn\u0027t check for writes past the allocated end\nof the array until -after- the first write.\n\nThis is a race condition that is likely rare -- it would only show up if a\ncpuset went from being empty to having a task in it, during the brief time\nbetween the allocation and the first write.\n\nPrior to roughly 2.6.22 kernels, this was also a benign problem, because a\nzero kmalloc returned a few usable bytes anyway, and no harm was done with the\nbogus write.\n\nWith the 2.6.22 kernel changes to make issue a warning if code tries to write\nto the location returned from a zero size allocation, this problem is no\nlonger benign.  This cpuset code would occassionally trigger that warning.\n\nThe fix is trivial -- check before storing into the array, not after, whether\nthe array is big enough to hold the store.\n\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: \"Serge E. Hallyn\" \u003cserue@us.ibm.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nCc: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nCc: Kirill Korotaev \u003cdev@openvz.org\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Srivatsa Vaddagiri \u003cvatsa@in.ibm.com\u003e\nCc: Christoph Lameter \u003cclameter@sgi.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": "dedf8b79ec06e91fa87f6cba99e6e61b4140ceca",
      "tree": "2f47e112aa2bb2baf973ccbcf072be50c9d9aed7",
      "parents": [
        "6ae965cd647d84ab787225fe908cb5bbbc499605"
      ],
      "author": {
        "name": "Daniel Walker",
        "email": "dwalker@mvista.com",
        "time": "Thu Oct 18 03:06:04 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Oct 18 14:37:24 2007 -0700"
      },
      "message": "whitespace fixes: cpuset\n\nSigned-off-by: Daniel Walker \u003cdwalker@mvista.com\u003e\nCc: 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": "bbe373f2c60b2aa36c3231734a5afc5271a06718",
      "tree": "00146d69594672ca41e35be8ff9b349e8751ab5c",
      "parents": [
        "7213f5066fc8a17c78389fe245de522b5cf0648a"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Tue Oct 16 23:25:58 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Oct 17 08:42:46 2007 -0700"
      },
      "message": "oom: compare cpuset mems_allowed instead of exclusive ancestors\n\nInstead of testing for overlap in the memory nodes of the the nearest\nexclusive ancestor of both current and the candidate task, it is better to\nsimply test for intersection between the task\u0027s mems_allowed in their task\ndescriptors.  This does not require taking callback_mutex since it is only\nused as a hint in the badness scoring.\n\nTasks that do not have an intersection in their mems_allowed with the current\ntask are not explicitly restricted from being OOM killed because it is quite\npossible that the candidate task has allocated memory there before and has\nsince changed its mems_allowed.\n\nCc: Andrea Arcangeli \u003candrea@suse.de\u003e\nAcked-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "607717a65d92858fd925bec05baae4d142719f27",
      "tree": "b7faea733fe3426881e63bc7549db9c97c8bdf59",
      "parents": [
        "2ed6dc34f9ed39bb8e4c81ea1056f0ba56315841"
      ],
      "author": {
        "name": "Paul Jackson",
        "email": "pj@sgi.com",
        "time": "Tue Oct 16 01:27:43 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:43:09 2007 -0700"
      },
      "message": "cpuset: remove sched domain hooks from cpusets\n\nRemove the cpuset hooks that defined sched domains depending on the setting\nof the \u0027cpu_exclusive\u0027 flag.\n\nThe cpu_exclusive flag can only be set on a child if it is set on the\nparent.\n\nThis made that flag painfully unsuitable for use as a flag defining a\npartitioning of a system.\n\nIt was entirely unobvious to a cpuset user what partitioning of sched\ndomains they would be causing when they set that one cpu_exclusive bit on\none cpuset, because it depended on what CPUs were in the remainder of that\ncpusets siblings and child cpusets, after subtracting out other\ncpu_exclusive cpusets.\n\nFurthermore, there was no way on production systems to query the\nresult.\n\nUsing the cpu_exclusive flag for this was simply wrong from the get go.\n\nFortunately, it was sufficiently borked that so far as I know, almost no\nsuccessful use has been made of this.  One real time group did use it to\naffectively isolate CPUs from any load balancing efforts.  They are willing\nto adapt to alternative mechanisms for this, such as someway to manipulate\nthe list of isolated CPUs on a running system.  They can do without this\npresent cpu_exclusive based mechanism while we develop an alternative.\n\nThere is a real risk, to the best of my understanding, of users\naccidentally setting up a partitioned scheduler domains, inhibiting desired\nload balancing across all their CPUs, due to the nonobvious (from the\ncpuset perspective) side affects of the cpu_exclusive flag.\n\nFurthermore, since there was no way on a running system to see what one was\ndoing with sched domains, this change will be invisible to any using code.\nUnless they have real insight to the scheduler load balancing choices, they\nwill be unable to detect that this change has been made in the kernel\u0027s\nbehaviour.\n\nInitial discussion on lkml of this patch has generated much comment.  My\n(probably controversial) take on that discussion is that it has reached a\nrough concensus that the current cpuset cpu_exclusive mechanism for\ndefining sched domains is borked.  There is no concensus on the\nreplacement.  But since we can remove this mechanism, and since its\ncontinued presence risks causing unwanted partitioning of the schedulers\nload balancing, we should remove it while we can, as we proceed to work the\nreplacement scheduler domain mechanisms.\n\nSigned-off-by: Paul Jackson \u003cpj@sgi.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Christoph Lameter \u003cclameter@engr.sgi.com\u003e\nCc: Dinakar Guniguntala \u003cdino@in.ibm.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e12ba74d8ff3e2f73a583500d7095e406df4d093",
      "tree": "a0d3385b65f0b3e1e00b0bbf11b75e7538a93edb",
      "parents": [
        "c361be55b3128474aa66d31092db330b07539103"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mel@csn.ul.ie",
        "time": "Tue Oct 16 01:25:52 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:43:00 2007 -0700"
      },
      "message": "Group short-lived and reclaimable kernel allocations\n\nThis patch marks a number of allocations that are either short-lived such as\nnetwork buffers or are reclaimable such as inode allocations.  When something\nlike updatedb is called, long-lived and unmovable kernel allocations tend to\nbe spread throughout the address space which increases fragmentation.\n\nThis patch groups these allocations together as much as possible by adding a\nnew MIGRATE_TYPE.  The MIGRATE_RECLAIMABLE type is for allocations that can be\nreclaimed on demand, but not moved.  i.e.  they can be migrated by deleting\nthem and re-reading the information from elsewhere.\n\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Andy Whitcroft \u003capw@shadowen.org\u003e\nCc: Christoph Lameter \u003cclameter@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": "0e1e7c7a739562a321fda07c7cd2a97a7114f8f8",
      "tree": "f2148e5b667152681625c19cf8b2a556500994ea",
      "parents": [
        "523b945855a1427000ffc707c610abe5947ae607"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Tue Oct 16 01:25:38 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:42:59 2007 -0700"
      },
      "message": "Memoryless nodes: Use N_HIGH_MEMORY for cpusets\n\ncpusets try to ensure that any node added to a cpuset\u0027s mems_allowed is\non-line and contains memory.  The assumption was that online nodes contained\nmemory.  Thus, it is possible to add memoryless nodes to a cpuset and then add\ntasks to this cpuset.  This results in continuous series of oom-kill and\napparent system hang.\n\nChange cpusets to use node_states[N_HIGH_MEMORY] [a.k.a.  node_memory_map] in\nplace of node_online_map when vetting memories.  Return error if admin\nattempts to write a non-empty mems_allowed node mask containing only\nmemoryless-nodes.\n\nSigned-off-by: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nSigned-off-by: Bob Picco \u003cbob.picco@hp.com\u003e\nSigned-off-by: Nishanth Aravamudan \u003cnacc@us.ibm.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Mel Gorman \u003cmel@skynet.ie\u003e\nSigned-off-by: Christoph Lameter \u003cclameter@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": "86313c488a6848b7ec2ba04e74f25f79dd32a0b7",
      "tree": "3b190f7afc338362470573b563f65a1eb83795ac",
      "parents": [
        "10a0a8d4e3f6bf2d077f94344441909abe670f5a"
      ],
      "author": {
        "name": "Jeremy Fitzhardinge",
        "email": "jeremy@xensource.com",
        "time": "Tue Jul 17 18:37:03 2007 -0700"
      },
      "committer": {
        "name": "Jeremy Fitzhardinge",
        "email": "jeremy@goop.org",
        "time": "Wed Jul 18 08:47:40 2007 -0700"
      },
      "message": "usermodehelper: Tidy up waiting\n\nRather than using a tri-state integer for the wait flag in\ncall_usermodehelper_exec, define a proper enum, and use that.  I\u0027ve\npreserved the integer values so that any callers I\u0027ve missed should\nstill work OK.\n\nSigned-off-by: Jeremy Fitzhardinge \u003cjeremy@xensource.com\u003e\nCc: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\nCc: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nCc: Andi Kleen \u003cak@suse.de\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nCc: Ralf Baechle \u003cralf@linux-mips.org\u003e\nCc: Bjorn Helgaas \u003cbjorn.helgaas@hp.com\u003e\nCc: Joel Becker \u003cjoel.becker@oracle.com\u003e\nCc: Tony Luck \u003ctony.luck@intel.com\u003e\nCc: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nCc: Srivatsa Vaddagiri \u003cvatsa@in.ibm.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\n"
    },
    {
      "commit": "49c13b51a15f1ba9f6d47e26e4a3886c4f3931e2",
      "tree": "a96d7fc5884e56a61993f9393afa9077f8068b47",
      "parents": [
        "492559af235eb56884d62553f191c0b5c4def990",
        "cec9ad279b66793bee0b5009b7ca311060061efd"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Jul 17 11:50:26 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Jul 17 11:50:26 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: (80 commits)\n  KVM: Use CPU_DYING for disabling virtualization\n  KVM: Tune hotplug/suspend IPIs\n  KVM: Keep track of which cpus have virtualization enabled\n  SMP: Allow smp_call_function_single() to current cpu\n  i386: Allow smp_call_function_single() to current cpu\n  x86_64: Allow smp_call_function_single() to current cpu\n  HOTPLUG: Adapt thermal throttle to CPU_DYING\n  HOTPLUG: Adapt cpuset hotplug callback to CPU_DYING\n  HOTPLUG: Add CPU_DYING notifier\n  KVM: Clean up #includes\n  KVM: Remove kvmfs in favor of the anonymous inodes source\n  KVM: SVM: Reliably detect if SVM was disabled by BIOS\n  KVM: VMX: Remove unnecessary code in vmx_tlb_flush()\n  KVM: MMU: Fix Wrong tlb flush order\n  KVM: VMX: Reinitialize the real-mode tss when entering real mode\n  KVM: Avoid useless memory write when possible\n  KVM: Fix x86 emulator writeback\n  KVM: Add support for in-kernel pio handlers\n  KVM: VMX: Fix interrupt checking on lightweight exit\n  KVM: Adds support for in-kernel mmio handlers\n  ...\n"
    },
    {
      "commit": "c2aef333c98b41eeb0f0d55b7faa7d4625a6160b",
      "tree": "39917beefd3cddf1c5c2c68894346efe0cc7dff1",
      "parents": [
        "b2ff457b09554813a7df9e0cd30d5a169a257419"
      ],
      "author": {
        "name": "Paul Menage",
        "email": "menage@google.com",
        "time": "Sun Jul 15 23:40:11 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Jul 16 09:05:43 2007 -0700"
      },
      "message": "Reduce cpuset.c write_lock_irq() to read_lock()\n\ncpuset.c:update_nodemask() uses a write_lock_irq() on tasklist_lock to\nblock concurrent forks; a read_lock() suffices and is less intrusive.\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": "ac076758b97d9e3d2c1557cfa412911e93cd0919",
      "tree": "9df55c693f4e86a1157be6151c2d5d1f8906868a",
      "parents": [
        "db912f963909b3cbc3a059b7528f6a1a1eb6ffae"
      ],
      "author": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Thu May 24 12:33:15 2007 +0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@qumranet.com",
        "time": "Mon Jul 16 12:05:49 2007 +0300"
      },
      "message": "HOTPLUG: Adapt cpuset hotplug callback to CPU_DYING\n\nCPU_DYING is called in atomic context, so don\u0027t try to take any locks.\n\nSigned-off-by: Avi Kivity \u003cavi@qumranet.com\u003e\n"
    },
    {
      "commit": "3e903e7b1605aff88d7f89a96fab5e43081b914f",
      "tree": "ae35423c1643689f27734005f39cebe52773962d",
      "parents": [
        "d6f8bb1310d4745ff1d0c74eeacae31e2a3eeff1"
      ],
      "author": {
        "name": "Paul Jackson",
        "email": "pj@sgi.com",
        "time": "Sat Jun 16 10:16:01 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Sat Jun 16 13:16:15 2007 -0700"
      },
      "message": "cpuset: zero malloc - fix for old cpusets\n\nThe cpuset code to present a list of tasks using a cpuset to user space could\nwrite to an array that it had kmalloc\u0027d, after a kmalloc request of zero size.\n\nThe problem was that the code didn\u0027t check for writes past the allocated end\nof the array until -after- the first write.\n\nThis is a race condition that is likely rare -- it would only show up if a\ncpuset went from being empty to having a task in it, during the brief time\nbetween the allocation and the first write.\n\nPrior to roughly 2.6.22 kernels, this was also a benign problem, because a\nzero kmalloc returned a few usable bytes anyway, and no harm was done with the\nbogus write.\n\nWith the 2.6.22 kernel changes to make issue a warning if code tries to write\nto the location returned from a zero size allocation, this problem is no\nlonger benign.  This cpuset code would occassionally trigger that warning.\n\nThe fix is trivial -- check before storing into the array, not after, whether\nthe array is big enough to hold the store.\n\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: \"Serge E. Hallyn\" \u003cserue@us.ibm.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nCc: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nCc: Kirill Korotaev \u003cdev@openvz.org\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Srivatsa Vaddagiri \u003cvatsa@in.ibm.com\u003e\nCc: Christoph Lameter \u003cclameter@sgi.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": "85badbdf5120d246ce2bb3f1a7689a805f9c9006",
      "tree": "0c406f24c1533dc8dcaf322751b05e7b8bcd5d23",
      "parents": [
        "92f4c701aad794de9e4cf7341d0a486aed027c46"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Wed May 09 02:33:33 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:49 2007 -0700"
      },
      "message": "use simple_read_from_buffer in kernel/\n\nCleanup using simple_read_from_buffer() for /dev/cpuset/tasks and\n/proc/config.gz.\n\nCc: Paul Jackson \u003cpj@sgi.com\u003e\nCc: Randy Dunlap \u003crdunlap@xenotime.net\u003e\nSigned-off-by: Akinobu Mita \u003cakinobu.mita@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": "6f7f02e78a75a09195d963e0392b195bc2d55c5c",
      "tree": "a0ead177a4faaafdfa400ff9de3c992603e42f4d",
      "parents": [
        "0c28f287aa57e065116731c1e44bedcbc14fd53f"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Tue May 08 00:31:43 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:14 2007 -0700"
      },
      "message": "cpusets: allow empty {cpus,mems}_allowed to be set for unpopulated cpuset\n\nYou currently cannot remove all cpus or mems from cpus_allowed or\nmems_allowed of a cpuset.  We now allow both if there are no attached\ntasks.\n\nAcked-by: Paul Jackson \u003cpj@sgi.com\u003e\nCc: Christoph Lameter \u003cclameter@engr.sgi.com\u003e\nSigned-off-by: Paul Menage \u003cmenage@google.com\u003e\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e63340ae6b6205fef26b40a75673d1c9c0c8bb90",
      "tree": "8d3212705515edec73c3936bb9e23c71d34a7b41",
      "parents": [
        "04c9167f91e309c9c4ea982992aa08e83b2eb42e"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Tue May 08 00:28:08 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:07 2007 -0700"
      },
      "message": "header cleaning: don\u0027t include smp_lock.h when not used\n\nRemove includes of \u003clinux/smp_lock.h\u003e where it is not used/needed.\nSuggested by Al Viro.\n\nBuilds cleanly on x86_64, i386, alpha, ia64, powerpc, sparc,\nsparc64, and arm (all 59 defconfigs).\n\nSigned-off-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": "dd9037a26a1e6ebec9121b4681c414dc77189a90",
      "tree": "cbce9dc3406943b0026a5de01bd64d42714a9413",
      "parents": [
        "e5f00f42f35e6f4699f105a3bd56874847cbf72f"
      ],
      "author": {
        "name": "Srivatsa Vaddagiri",
        "email": "vatsa@in.ibm.com",
        "time": "Tue May 08 00:27:25 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:05 2007 -0700"
      },
      "message": "Fix race between attach_task and cpuset_exit\n\nCurrently cpuset_exit() changes the exiting task\u0027s -\u003ecpuset pointer w/o\ntaking task_lock().  This can lead to ugly races between attach_task and\ncpuset_exit.  Details of the races are described at\nhttp://lkml.org/lkml/2007/3/24/132.\n\nPatch below closes those races.\n\nSigned-off-by: Srivatsa Vaddagiri \u003cvatsa@in.ibm.com\u003e\nCc: Paul Jackson \u003cpj@sgi.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c596d9f320aaf30d28c1d793ff3a976dee1db8f5",
      "tree": "a07a482831077ef0220467fadf77218272638ddb",
      "parents": [
        "a3a02be79114b854acc555e8ed686eb84f44ae2e"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Sun May 06 14:49:32 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon May 07 12:12:53 2007 -0700"
      },
      "message": "cpusets: allow TIF_MEMDIE threads to allocate anywhere\n\nOOM killed tasks have access to memory reserves as specified by the\nTIF_MEMDIE flag in the hopes that it will quickly exit.  If such a task has\nmemory allocations constrained by cpusets, we may encounter a deadlock if a\nblocking task cannot exit because it cannot allocate the necessary memory.\n\nWe allow tasks that have the TIF_MEMDIE flag to allocate memory anywhere,\nincluding outside its cpuset restriction, so that it can quickly die\nregardless of whether it is __GFP_HARDWALL.\n\nCc: Andi Kleen \u003cak@suse.de\u003e\nCc: Paul Jackson \u003cpj@sgi.com\u003e\nCc: Christoph Lameter \u003cclameter@engr.sgi.com\u003e\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "92e1d5be91a0e3ffa5c4697eeb09b2aa22792122",
      "tree": "4eb22a9f6c38e9f4cc2a5100cd6659b0af08b7ae",
      "parents": [
        "754661f143e70d66eae6c48532ca245aa05dec0e"
      ],
      "author": {
        "name": "Arjan van de Ven",
        "email": "arjan@linux.intel.com",
        "time": "Mon Feb 12 00:55:39 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Feb 12 09:48:46 2007 -0800"
      },
      "message": "[PATCH] mark struct inode_operations const 2\n\nMany struct inode_operations in the kernel can be \"const\".  Marking them const\nmoves these to the .rodata section, which avoids false sharing with potential\ndirty data.  In addition it\u0027ll catch accidental writes at compile time to\nthese shared resources.\n\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9a32144e9d7b4e21341174b1a83b82a82353be86",
      "tree": "6f08560b341418fc9934f56f6162a95f5b5d8aec",
      "parents": [
        "00977a59b951207d38380c75f03a36829950265c"
      ],
      "author": {
        "name": "Arjan van de Ven",
        "email": "arjan@linux.intel.com",
        "time": "Mon Feb 12 00:55:35 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Feb 12 09:48:46 2007 -0800"
      },
      "message": "[PATCH] mark struct file_operations const 7\n\nMany struct file_operations in the kernel can be \"const\".  Marking them const\nmoves these to the .rodata section, which avoids false sharing with potential\ndirty data.  In addition it\u0027ll catch accidental writes at compile time to\nthese shared resources.\n\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "089e34b60033863549fbe561d31ac8c778a20e7f",
      "tree": "aea34fde97b91231626f54440390456e1bd3e0aa",
      "parents": [
        "918d3f90e8d5657491024f64427e9a5ea632d284"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Fri Dec 29 16:49:04 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Sat Dec 30 10:56:43 2006 -0800"
      },
      "message": "[PATCH] cpuset procfs warning fix\n\nfs/proc/base.c:1869: warning: initialization discards qualifiers from pointer target type\nfs/proc/base.c:2150: warning: initialization discards qualifiers from pointer target type\n\nCc: Paul Jackson \u003cpj@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "02a0e53d8227aff5e62e0433f82c12c1c2805fd6",
      "tree": "fe32435308e5f1afe8bd12357bd8c5ff3b4133c7",
      "parents": [
        "55935a34a428a1497e3b37982e2782c09c6f914d"
      ],
      "author": {
        "name": "Paul Jackson",
        "email": "pj@sgi.com",
        "time": "Wed Dec 13 00:34:25 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Wed Dec 13 09:05:49 2006 -0800"
      },
      "message": "[PATCH] cpuset: rework cpuset_zone_allowed api\n\nElaborate the API for calling cpuset_zone_allowed(), so that users have to\nexplicitly choose between the two variants:\n\n  cpuset_zone_allowed_hardwall()\n  cpuset_zone_allowed_softwall()\n\nUntil now, whether or not you got the hardwall flavor depended solely on\nwhether or not you or\u0027d in the __GFP_HARDWALL gfp flag to the gfp_mask\nargument.\n\nIf you didn\u0027t specify __GFP_HARDWALL, you implicitly got the softwall\nversion.\n\nUnfortunately, this meant that users would end up with the softwall version\nwithout thinking about it.  Since only the softwall version might sleep,\nthis led to bugs with possible sleeping in interrupt context on more than\none occassion.\n\nThe hardwall version requires that the current tasks mems_allowed allows\nthe node of the specified zone (or that you\u0027re in interrupt or that\n__GFP_THISNODE is set or that you\u0027re on a one cpuset system.)\n\nThe softwall version, depending on the gfp_mask, might allow a node if it\nwas allowed in the nearest enclusing cpuset marked mem_exclusive (which\nrequires taking the cpuset lock \u0027callback_mutex\u0027 to evaluate.)\n\nThis patch removes the cpuset_zone_allowed() call, and forces the caller to\nexplicitly choose between the hardwall and the softwall case.\n\nIf the caller wants the gfp_mask to determine this choice, they should (1)\nbe sure they can sleep or that __GFP_HARDWALL is set, and (2) invoke the\ncpuset_zone_allowed_softwall() routine.\n\nThis adds another 100 or 200 bytes to the kernel text space, due to the few\nlines of nearly duplicate code at the top of both cpuset_zone_allowed_*\nroutines.  It should save a few instructions executed for the calls that\nturned into calls of cpuset_zone_allowed_hardwall, thanks to not having to\nset (before the call) then check (within the call) the __GFP_HARDWALL flag.\n\nFor the most critical call, from get_page_from_freelist(), the same\ninstructions are executed as before -- the old cpuset_zone_allowed()\nroutine it used to call is the same code as the\ncpuset_zone_allowed_softwall() routine that it calls now.\n\nNot a perfect win, but seems worth it, to reduce this chance of hitting a\nsleeping with irq off complaint again.\n\nSigned-off-by: Paul Jackson \u003cpj@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "a7a005fd12b84392becca311f2a20d5bf2a1b7af",
      "tree": "0baf326ea34bdef38e42a5ae664d348de3c69ae8",
      "parents": [
        "ff273773bfd4f2131bad1318e56519fcceac2339"
      ],
      "author": {
        "name": "Josef Sipek",
        "email": "jsipek@fsl.cs.sunysb.edu",
        "time": "Fri Dec 08 02:37:17 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Fri Dec 08 08:28:46 2006 -0800"
      },
      "message": "[PATCH] struct path: convert kernel\n\nSigned-off-by: Josef Sipek \u003cjsipek@fsl.cs.sunysb.edu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "d3ed11c35635487d34ad476e1d6a66dd298ab2de",
      "tree": "1317e066282dda6b9d4ee44b4f62bfee94625ee1",
      "parents": [
        "09b882520bbe01f2e5044642109c1c1d19fe3559"
      ],
      "author": {
        "name": "Paul Menage",
        "email": "menage@google.com",
        "time": "Wed Dec 06 20:41:37 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Dec 07 08:39:48 2006 -0800"
      },
      "message": "[PATCH] cpuset: allow a larger buffer for writes to cpuset files\n\nWhen using fake NUMA setup, the number of memory nodes can greatly exceed\nthe number of CPUs.  So the current limit in cpuset_common_file_write() is\ninsufficient.\n\nSigned-off-by: Paul Menage \u003cmenage@google.com\u003e\nAcked-by: Paul Jackson \u003cpj@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "15ad7cdcfd76450d4beebc789ec646664238184d",
      "tree": "279d05a76ae0906c23ee2de8c5684d95d9886ad3",
      "parents": [
        "4a08a9f68168e547c2baf100020e9b96cae5fbd1"
      ],
      "author": {
        "name": "Helge Deller",
        "email": "deller@gmx.de",
        "time": "Wed Dec 06 20:40:36 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Dec 07 08:39:46 2006 -0800"
      },
      "message": "[PATCH] struct seq_operations and struct file_operations constification\n\n - move some file_operations structs into the .rodata section\n\n - move static strings from policy_types[] array into the .rodata section\n\n - fix generic seq_operations usages, so that those structs may be defined\n   as \"const\" as well\n\n[akpm@osdl.org: couple of fixes]\nSigned-off-by: Helge Deller \u003cdeller@gmx.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "02316067852187b8bec781bec07410e91af79627",
      "tree": "856e3f4610c91a6548bf3bf5c70ecbc0b28a4145",
      "parents": [
        "a38a44c1a93078fc5fadc4ac2df8dea4697069e2"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Dec 06 20:38:17 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Dec 07 08:39:39 2006 -0800"
      },
      "message": "[PATCH] hotplug CPU: clean up hotcpu_notifier() use\n\nThere was lots of #ifdef noise in the kernel due to hotcpu_notifier(fn,\nprio) not correctly marking \u0027fn\u0027 as used in the !HOTPLUG_CPU case, and thus\ngenerating compiler warnings of unused symbols, hence forcing people to add\n#ifdefs.\n\nthe compiler can skip truly unused functions just fine:\n\n    text    data     bss     dec     hex filename\n 1624412  728710 3674856 6027978  5bfaca vmlinux.before\n 1624412  728710 3674856 6027978  5bfaca vmlinux.after\n\n[akpm@osdl.org: topology.c fix]\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "696040670a12f66b17a839011f96d9ca376f688b",
      "tree": "d830a32b354a45423e42a4210a716438750e5755",
      "parents": [
        "5ec68b2e310437e99c297ba04e1afc5297aa6de1"
      ],
      "author": {
        "name": "Paul Jackson",
        "email": "pj@sgi.com",
        "time": "Wed Dec 06 20:36:15 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Dec 07 08:39:32 2006 -0800"
      },
      "message": "[PATCH] cpuset: minor code refinements\n\nA couple of minor code simplifications to the kernel/cpuset.c code.  No\nfunctional change.  Just a little less code and a little more readable.\n\nSigned-off-by: Paul Jackson \u003cpj@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "1af9892811ad3bf2abb31566bfb2ec0b5070a66a",
      "tree": "12ddef3fbd905592d37d6c1b6ece687c308253d2",
      "parents": [
        "e6c6e640b8b258dc7f60533e81f050d15fc0a9af"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@ftp.linux.org.uk",
        "time": "Tue Oct 10 22:48:57 2006 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Oct 10 15:37:23 2006 -0700"
      },
      "message": "[PATCH] cpuset ANSI prototype\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nAcked-by: Paul Jackson \u003cpj@sgi.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "d8c76e6f45c111c32a4b3e50a2adc9210737b0d8",
      "tree": "25521b59d48c6d8c9aec1af54dbe5008ad4b215b",
      "parents": [
        "9a53c3a783c2fa9b969628e65695c11c3e51e673"
      ],
      "author": {
        "name": "Dave Hansen",
        "email": "haveblue@us.ibm.com",
        "time": "Sat Sep 30 23:29:04 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 01 00:39:30 2006 -0700"
      },
      "message": "[PATCH] r/o bind mount prepwork: inc_nlink() helper\n\nThis is mostly included for parity with dec_nlink(), where we will have some\nmore hooks.  This one should stay pretty darn straightforward for now.\n\nSigned-off-by: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nAcked-by: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "181b64803661209cda64e5e874ad75f373a69de8",
      "tree": "0e0ee378b98e5ee72aeae428b1f155d031fe2597",
      "parents": [
        "683e91cbd0582cb8e63daaf0429e0a62be9cc421"
      ],
      "author": {
        "name": "Paul Jackson",
        "email": "pj@sgi.com",
        "time": "Fri Sep 29 02:01:48 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Sep 29 09:18:25 2006 -0700"
      },
      "message": "[PATCH] cpuset: fix obscure attach_task vs exiting race\n\nFix obscure race condition in kernel/cpuset.c attach_task() code.\n\nThere is basically zero chance of anyone accidentally being harmed by this\nrace.\n\nIt requires a special \u0027micro-stress\u0027 load and a special timing loop hacks\nin the kernel to hit in less than an hour, and even then you\u0027d have to hit\nit hundreds or thousands of times, followed by some unusual and senseless\ncpuset configuration requests, including removing the top cpuset, to cause\nany visibly harm affects.\n\nOne could, with perhaps a few days or weeks of such effort, get the\nreference count on the top cpuset below zero, and manage to crash the\nkernel by asking to remove the top cpuset.\n\nI found it by code inspection.\n\nThe race was introduced when \u0027the_top_cpuset_hack\u0027 was introduced, and one\npiece of code was not updated.  An old check for a possibly null task\ncpuset pointer needed to be changed to a check for a task marked\nPF_EXITING.  The pointer can\u0027t be null anymore, thanks to\nthe_top_cpuset_hack (documented in kernel/cpuset.c).  But the task could\nhave gone into PF_EXITING state after it was found in the task_list scan.\n\nIf a task is PF_EXITING in this code, it is possible that its task-\u003ecpuset\npointer is pointing to the top cpuset due to the_top_cpuset_hack, rather\nthan because the top_cpuset was that tasks last valid cpuset.  In that\ncase, the wrong cpuset reference counter would be decremented.\n\nThe fix is trivial.  Instead of failing the system call if the tasks cpuset\npointer is null here, fail it if the task is in PF_EXITING state.\n\nThe code for \u0027the_top_cpuset_hack\u0027 that changes an exiting tasks cpuset to\nthe top_cpuset is done without locking, so could happen at anytime.  But it\nis done during the exit handling, after the PF_EXITING flag is set.  So if\nwe verify that a task is still not PF_EXITING after we copy out its cpuset\npointer (into \u0027oldcs\u0027, below), we know that \u0027oldcs\u0027 is not one of these\nhack references to the top_cpuset.\n\nSigned-off-by: Paul Jackson \u003cpj@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "b1aac8bb824c658ddebd296b088a8bff5029c288",
      "tree": "4b19b71fac4f769b7be7cff97ac7f6445d14d236",
      "parents": [
        "38837fc75acb7fa9b0e111b0241fe4fe76c5d4b3"
      ],
      "author": {
        "name": "Paul Jackson",
        "email": "pj@sgi.com",
        "time": "Fri Sep 29 02:01:17 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Sep 29 09:18:21 2006 -0700"
      },
      "message": "[PATCH] cpuset: hotunplug cpus and mems in all cpusets\n\nThe cpuset code handling hot unplug of CPUs or Memory Nodes was incorrect -\nit could remove a CPU or Node from the top cpuset, while leaving it still\nin some child cpusets.\n\nOne basic rule of cpusets is that each cpusets cpus and mems are subsets of\nits parents.  The cpuset hot unplug code violated this rule.\n\nSo the cpuset hotunplug handler must walk down the tree, removing any\nremoved CPU or Node from all cpusets.\n\nHowever, it is not allowed to make a cpusets cpus or mems become empty.\nThey can only transition from empty to non-empty, not back.\n\nSo if the last CPU or Node would be removed from a cpuset by the above\nwalk, we scan back up the cpuset hierarchy, finding the nearest ancestor\nthat still has something online, and copy its CPU or Memory placement.\n\nSigned-off-by: Paul Jackson \u003cpj@sgi.com\u003e\nCc: Nathan Lynch \u003cntl@pobox.com\u003e\nCc: Anton Blanchard \u003canton@samba.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "38837fc75acb7fa9b0e111b0241fe4fe76c5d4b3",
      "tree": "51508cbc49527e35921efb4ba31bca7da9795ad2",
      "parents": [
        "af3ffa6758dbd2ab7ebe62dddf66b3aa94d64eeb"
      ],
      "author": {
        "name": "Paul Jackson",
        "email": "pj@sgi.com",
        "time": "Fri Sep 29 02:01:16 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Sep 29 09:18:21 2006 -0700"
      },
      "message": "[PATCH] cpuset: top_cpuset tracks hotplug changes to node_online_map\n\nChange the list of memory nodes allowed to tasks in the top (root) nodeset\nto dynamically track what cpus are online, using a call to a cpuset hook\nfrom the memory hotplug code.  Make this top cpus file read-only.\n\nOn systems that have cpusets configured in their kernel, but that aren\u0027t\nactively using cpusets (for some distros, this covers the majority of\nsystems) all tasks end up in the top cpuset.\n\nIf that system does support memory hotplug, then these tasks cannot make\nuse of memory nodes that are added after system boot, because the memory\nnodes are not allowed in the top cpuset.  This is a surprising regression\nover earlier kernels that didn\u0027t have cpusets enabled.\n\nOne key motivation for this change is to remain consistent with the\nbehaviour for the top_cpuset\u0027s \u0027cpus\u0027, which is also read-only, and which\nautomatically tracks the cpu_online_map.\n\nThis change also has the minor benefit that it fixes a long standing,\nlittle noticed, minor bug in cpusets.  The cpuset performance tweak to\nshort circuit the cpuset_zone_allowed() check on systems with just a single\ncpuset (see \u0027number_of_cpusets\u0027, in linux/cpuset.h) meant that simply\nchanging the \u0027mems\u0027 of the top_cpuset had no affect, even though the change\n(the write system call) appeared to succeed.  With the following change,\nthat write to the \u0027mems\u0027 file fails -EACCES, and the \u0027mems\u0027 file stubbornly\nrefuses to be changed via user space writes.  Thus no one should be mislead\ninto thinking they\u0027ve changed the top_cpusets\u0027s \u0027mems\u0027 when in affect they\nhaven\u0027t.\n\nIn order to keep the behaviour of cpusets consistent between systems\nactively making use of them and systems not using them, this patch changes\nthe behaviour of the \u0027mems\u0027 file in the top (root) cpuset, making it read\nonly, and making it automatically track the value of node_online_map.  Thus\ntasks in the top cpuset will have automatic use of hot plugged memory nodes\nallowed by their cpuset.\n\n[akpm@osdl.org: build fix]\n[bunk@stusta.de: build fix]\nSigned-off-by: Paul Jackson \u003cpj@sgi.com\u003e\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "f400e198b2ed26ce55b22a1412ded0896e7516ac",
      "tree": "a3d78bfc1c20635e199fe0fe85aaa1d8792acc58",
      "parents": [
        "959ed340f4867fda7684340625f60e211c2296d6"
      ],
      "author": {
        "name": "Sukadev Bhattiprolu",
        "email": "sukadev@us.ibm.com",
        "time": "Fri Sep 29 02:00:07 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Sep 29 09:18:12 2006 -0700"
      },
      "message": "[PATCH] pidspace: is_init()\n\nThis is an updated version of Eric Biederman\u0027s is_init() patch.\n(http://lkml.org/lkml/2006/2/6/280).  It applies cleanly to 2.6.18-rc3 and\nreplaces a few more instances of -\u003epid \u003d\u003d 1 with is_init().\n\nFurther, is_init() checks pid and thus removes dependency on Eric\u0027s other\npatches for now.\n\nEric\u0027s original description:\n\n\tThere are a lot of places in the kernel where we test for init\n\tbecause we give it special properties.  Most  significantly init\n\tmust not die.  This results in code all over the kernel test\n\t-\u003epid \u003d\u003d 1.\n\n\tIntroduce is_init to capture this case.\n\n\tWith multiple pid spaces for all of the cases affected we are\n\tlooking for only the first process on the system, not some other\n\tprocess that has pid \u003d\u003d 1.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nSigned-off-by: Sukadev Bhattiprolu \u003csukadev@us.ibm.com\u003e\nCc: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nCc: Serge Hallyn \u003cserue@us.ibm.com\u003e\nCc: Cedric Le Goater \u003cclg@fr.ibm.com\u003e\nCc: \u003clxc-devel@lists.sourceforge.net\u003e\nAcked-by: Paul Mackerras \u003cpaulus@samba.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "ba52de123d454b57369f291348266d86f4b35070",
      "tree": "3973f3f3c853b5857b6b64a027cadd4fe954e3b9",
      "parents": [
        "577c4eb09d1034d0739e3135fd2cff50588024be"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Sep 27 01:50:49 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Sep 27 08:26:18 2006 -0700"
      },
      "message": "[PATCH] inode-diet: Eliminate i_blksize from the inode structure\n\nThis eliminates the i_blksize field from struct inode.  Filesystems that want\nto provide a per-inode st_blksize can do so by providing their own getattr\nroutine instead of using the generic_fillattr() function.\n\nNote that some filesystems were providing pretty much random (and incorrect)\nvalues for i_blksize.\n\n[bunk@stusta.de: cleanup]\n[akpm@osdl.org: generic_fillattr() fix]\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "89fa30242facca249aead2aac03c4c69764f911c",
      "tree": "1ac46b4777b819f2a4793d8e37330576ae5089ec",
      "parents": [
        "4415cc8df630b05d3a54267d5f3e5c0b63a4ec05"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Mon Sep 25 23:31:55 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Sep 26 08:48:52 2006 -0700"
      },
      "message": "[PATCH] NUMA: Add zone_to_nid function\n\nThere are many places where we need to determine the node of a zone.\nCurrently we use a difficult to read sequence of pointer dereferencing.\nPut that into an inline function and use throughout VM.  Maybe we can find\na way to optimize the lookup in the future.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "9b819d204cf602eab1a53a9ec4b8d2ca51e02a1d",
      "tree": "9442bf01a00a93a8ae54462fb4878588e1b2a6bf",
      "parents": [
        "056c62418cc639bf2fe962c6a6ee56054b838bc7"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Mon Sep 25 23:31:40 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Sep 26 08:48:50 2006 -0700"
      },
      "message": "[PATCH] Add __GFP_THISNODE to avoid fallback to other nodes and ignore cpuset/memory policy restrictions\n\nAdd a new gfp flag __GFP_THISNODE to avoid fallback to other nodes.  This\nflag is essential if a kernel component requires memory to be located on a\ncertain node.  It will be needed for alloc_pages_node() to force allocation\non the indicated node and for alloc_pages() to force allocation on the\ncurrent node.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: Andy Whitcroft \u003capw@shadowen.org\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "0d673a5a4775d3dc565b6668ed75fd2db2ede624",
      "tree": "a447aa33cf8b8fea26a81add012169a1a8060706",
      "parents": [
        "36920e069a87c6fccffbc0ec5e74985d94d3bcc4"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Sun Aug 27 01:23:54 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Aug 27 11:01:32 2006 -0700"
      },
      "message": "[PATCH] cpuset: oom panic fix\n\ncpuset_excl_nodes_overlap always returns 0 if current is exiting.  This caused\ncustomer\u0027s systems to panic in the OOM killer when processes were having\ntrouble getting memory for the final put_user in mm_release.  Even though\nthere were lots of processes to kill.\n\nChange to returning 1 in this case.  This achieves parity with !CONFIG_CPUSETS\ncase, and was observed to fix the problem.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nAcked-by: Paul Jackson \u003cpj@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "4c4d50f7b39cc58f1064b93a61ad617451ae41df",
      "tree": "d55ec85fd917472e9859a17e34f8114a7e87892b",
      "parents": [
        "6394cca54894f6a9bcf927ab78d28985944298ff"
      ],
      "author": {
        "name": "Paul Jackson",
        "email": "pj@sgi.com",
        "time": "Sun Aug 27 01:23:51 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Aug 27 11:01:32 2006 -0700"
      },
      "message": "[PATCH] cpuset: top_cpuset tracks hotplug changes to cpu_online_map\n\nChange the list of cpus allowed to tasks in the top (root) cpuset to\ndynamically track what cpus are online, using a CPU hotplug notifier.  Make\nthis top cpus file read-only.\n\nOn systems that have cpusets configured in their kernel, but that aren\u0027t\nactively using cpusets (for some distros, this covers the majority of\nsystems) all tasks end up in the top cpuset.\n\nIf that system does support CPU hotplug, then these tasks cannot make use\nof CPUs that are added after system boot, because the CPUs are not allowed\nin the top cpuset.  This is a surprising regression over earlier kernels\nthat didn\u0027t have cpusets enabled.\n\nIn order to keep the behaviour of cpusets consistent between systems\nactively making use of them and systems not using them, this patch changes\nthe behaviour of the \u0027cpus\u0027 file in the top (root) cpuset, making it read\nonly, and making it automatically track the value of cpu_online_map.  Thus\ntasks in the top cpuset will have automatic use of hot plugged CPUs allowed\nby their cpuset.\n\nThanks to Anton Blanchard and Nathan Lynch for reporting this problem,\ndriving the fix, and earlier versions of this patch.\n\nSigned-off-by: Paul Jackson \u003cpj@sgi.com\u003e\nCc: Nathan Lynch \u003cntl@pobox.com\u003e\nCc: Anton Blanchard \u003canton@samba.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "abb5a5cc6bba1516403146c5b79036fe843beb70",
      "tree": "f7a1a4cc9381a1fc38be60cfe9428d9c7bd0aabe",
      "parents": [
        "aa95387774039096c11803c04011f1aa42d85758"
      ],
      "author": {
        "name": "Paul Jackson",
        "email": "pj@sgi.com",
        "time": "Sun Jul 23 11:36:08 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jul 23 13:03:05 2006 -0700"
      },
      "message": "[PATCH] Cpuset: fix ABBA deadlock with cpu hotplug lock\n\nFix ABBA deadlock between lock_cpu_hotplug() and the cpuset\ncallback_mutex lock.\n\nIt only happens on cpu_exclusive cpusets, due to the dynamic\nsched domain code trying to take the cpu hotplug lock inside\nthe cpuset callback_mutex lock.\n\nThis bug has apparently been here for several months, but didn\u0027t\nget hit until the right customer load on a large system.\n\nThis fix appears right from inspection, but it will take a few\nmore days running it on that customers workload to be confident\nwe nailed it.  We don\u0027t have any other reproducible test case.\n\nThe cpu_hotplug_lock() tends to cover large runs of code.\nThe other places that hold both that lock and the cpuset callback\nmutex lock always nest the cpuset lock inside the hotplug lock.\nThis place tries to do the reverse, risking an ABBA deadlock.\n\nThis is in the cpuset_rmdir() code, where we:\n  * take the callback_mutex lock\n  * mark the cpuset CS_REMOVED\n  * call update_cpu_domains for cpu_exclusive cpusets\n  * in that call, take the cpu_hotplug lock if the\n    cpuset is marked for removal.\n\nThanks to Jack Steiner for identifying this deadlock.\n\nThe fix is to tear down the dynamic sched domain before we grab\nthe cpuset callback_mutex lock.  This way, the two locks are\nserialized, with the hotplug lock taken and released before\ntrying for the cpuset lock.\n\nI suspect that this bug was introduced when I changed the\ncpuset locking from one lock to two.  The dynamic sched domain\ndependency on cpu_exclusive cpusets and its hotplug hooks were\nadded to this code earlier, when cpusets had only a single lock.\nIt may well have been fine then.\n\nSigned-off-by: Paul Jackson \u003cpj@sgi.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "6ab3d5624e172c553004ecc862bfeac16d9d68b7",
      "tree": "6d98881fe91fd9583c109208d5c27131b93fa248",
      "parents": [
        "e02169b682bc448ccdc819dc8639ed34a23cedd8"
      ],
      "author": {
        "name": "Jörn Engel",
        "email": "joern@wohnheim.fh-wedel.de",
        "time": "Fri Jun 30 19:25:36 2006 +0200"
      },
      "committer": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Fri Jun 30 19:25:36 2006 +0200"
      },
      "message": "Remove obsolete #include \u003clinux/config.h\u003e\n\nSigned-off-by: Jörn Engel \u003cjoern@wohnheim.fh-wedel.de\u003e\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\n"
    },
    {
      "commit": "80f7228b59e4bbe9d840af3ff0f2fe480d6e7c79",
      "tree": "08e6d2365abeafd7bfcc0fd7485db9055463d72c",
      "parents": [
        "47bdd718c6547d84c8e140cd0f495c016f13b08b"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Fri Jun 30 18:27:16 2006 +0200"
      },
      "committer": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Fri Jun 30 18:27:16 2006 +0200"
      },
      "message": "typo fixes: occuring -\u003e occurring\n\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\n"
    },
    {
      "commit": "13b41b09491e5d75e8027dca1ee78f5e073bc4c0",
      "tree": "3f08183a4f59075fc3015165183b8ef17cb562a6",
      "parents": [
        "99f895518368252ba862cc15ce4eb98ebbe1bec6"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Mon Jun 26 00:25:56 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jun 26 09:58:26 2006 -0700"
      },
      "message": "[PATCH] proc: Use struct pid not struct task_ref\n\nIncrementally update my proc-dont-lock-task_structs-indefinitely patches so\nthat they work with struct pid instead of struct task_ref.\n\nMostly this is a straight 1-1 substitution.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "99f895518368252ba862cc15ce4eb98ebbe1bec6",
      "tree": "a9dcc01963221d1fd6a7e357b95d361ebfe91c6d",
      "parents": [
        "8578cea7509cbdec25b31d08b48a92fcc3b1a9e3"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Mon Jun 26 00:25:55 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jun 26 09:58:25 2006 -0700"
      },
      "message": "[PATCH] proc: don\u0027t lock task_structs indefinitely\n\nEvery inode in /proc holds a reference to a struct task_struct.  If a\ndirectory or file is opened and remains open after the the task exits this\npinning continues.  With 8K stacks on a 32bit machine the amount pinned per\nfile descriptor is about 10K.\n\nNormally I would figure a reasonable per user process limit is about 100\nprocesses.  With 80 processes, with a 1000 file descriptors each I can trigger\nthe 00M killer on a 32bit kernel, because I have pinned about 800MB of useless\ndata.\n\nThis patch replaces the struct task_struct pointer with a pointer to a struct\ntask_ref which has a struct task_struct pointer.  The so the pinning of dead\ntasks does not happen.\n\nThe code now has to contend with the fact that the task may now exit at any\ntime.  Which is a little but not muh more complicated.\n\nWith this change it takes about 1000 processes each opening up 1000 file\ndescriptors before I can trigger the OOM killer.  Much better.\n\n[mlp@google.com: task_mmu small fixes]\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nCc: Paul Jackson \u003cpj@sgi.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Albert Cahalan \u003cacahalan@gmail.com\u003e\nSigned-off-by: Prasanna Meda \u003cmlp@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "22fb52dd736a62e24c44c50739007496265dc38c",
      "tree": "06cc6dcff21df6e18f189c6895cf6aa313e7a8ea",
      "parents": [
        "e7834f8fccd791225a1cf91c2c3e740ad8e2e145"
      ],
      "author": {
        "name": "David Quigley",
        "email": "dpquigl@tycho.nsa.gov",
        "time": "Fri Jun 23 02:04:00 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 23 07:42:54 2006 -0700"
      },
      "message": "[PATCH] SELinux: add security hook call to mediate attach_task (kernel/cpuset.c)\n\nAdd a security hook call to enable security modules to control the ability\nto attach a task to a cpuset.  While limited control over this operation is\npossible via permission checks on the pseudo fs interface, those checks are\nnot sufficient to control access to the target task, which is looked up in\nthis function.  The existing task_setscheduler hook is re-used for this\noperation since this falls under the same class of operations.\n\nSigned-off-by: David Quigley \u003cdpquigl@tycho.nsa.gov\u003e\nAcked-by:  Stephen Smalley \u003csds@tycho.nsa.gov\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\nAcked-by: Paul Jackson \u003cpj@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "454e2398be9b9fa30433fccc548db34d19aa9958",
      "tree": "1f61cb0c3716a33b661cfc8977e9beeb480a322c",
      "parents": [
        "1ad5544098a69d7dc1fa508cbb17e13a7a952fd8"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Jun 23 02:02:57 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 23 07:42:45 2006 -0700"
      },
      "message": "[PATCH] VFS: Permit filesystem to override root dentry on mount\n\nExtend the get_sb() filesystem operation to take an extra argument that\npermits the VFS to pass in the target vfsmount that defines the mountpoint.\n\nThe filesystem is then required to manually set the superblock and root dentry\npointers.  For most filesystems, this should be done with simple_set_mnt()\nwhich will set the superblock pointer and then set the root dentry to the\nsuperblock\u0027s s_root (as per the old default behaviour).\n\nThe get_sb() op now returns an integer as there\u0027s now no need to return the\nsuperblock pointer.\n\nThis patch permits a superblock to be implicitly shared amongst several mount\npoints, such as can be done with NFS to avoid potential inode aliasing.  In\nsuch a case, simple_set_mnt() would not be called, and instead the mnt_root\nand mnt_sb would be set directly.\n\nThe patch also makes the following changes:\n\n (*) the get_sb_*() convenience functions in the core kernel now take a vfsmount\n     pointer argument and return an integer, so most filesystems have to change\n     very little.\n\n (*) If one of the convenience function is not used, then get_sb() should\n     normally call simple_set_mnt() to instantiate the vfsmount. This will\n     always return 0, and so can be tail-called from get_sb().\n\n (*) generic_shutdown_super() now calls shrink_dcache_sb() to clean up the\n     dcache upon superblock destruction rather than shrink_dcache_anon().\n\n     This is required because the superblock may now have multiple trees that\n     aren\u0027t actually bound to s_root, but that still need to be cleaned up. The\n     currently called functions assume that the whole tree is rooted at s_root,\n     and that anonymous dentries are not the roots of trees which results in\n     dentries being left unculled.\n\n     However, with the way NFS superblock sharing are currently set to be\n     implemented, these assumptions are violated: the root of the filesystem is\n     simply a dummy dentry and inode (the real inode for \u0027/\u0027 may well be\n     inaccessible), and all the vfsmounts are rooted on anonymous[*] dentries\n     with child trees.\n\n     [*] Anonymous until discovered from another tree.\n\n (*) The documentation has been adjusted, including the additional bit of\n     changing ext2_* into foo_* in the documentation.\n\n[akpm@osdl.org: convert ipath_fs, do other stuff]\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Nathan Scott \u003cnathans@sgi.com\u003e\nCc: Roland Dreier \u003crolandd@cisco.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "92d1dbd27417c54c23aac6a84c285e256f6118b6",
      "tree": "bab665935a47bb6889ddc3c92a9bee68f1f6f532",
      "parents": [
        "36be57ffe39e03aab9fbe857f70c7a6a15bd9e08"
      ],
      "author": {
        "name": "Paul Jackson",
        "email": "pj@sgi.com",
        "time": "Sat May 20 15:00:11 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun May 21 12:59:18 2006 -0700"
      },
      "message": "[PATCH] cpuset: might_sleep_if check in cpuset_zones_allowed\n\nIt\u0027s too easy to incorrectly call cpuset_zone_allowed() in an atomic\ncontext without __GFP_HARDWALL set, and when done, it is not noticed until\na tight memory situation forces allocations to be tried outside the current\ncpuset.\n\nAdd a \u0027might_sleep_if()\u0027 check, to catch this earlier on, instead of\nwaiting for a similar check in the mutex_lock() code, which is only rarely\ninvoked.\n\nSigned-off-by: Paul Jackson \u003cpj@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "36be57ffe39e03aab9fbe857f70c7a6a15bd9e08",
      "tree": "8062e9a9e49fd942fab35e17a2b5afe571a74f63",
      "parents": [
        "bdd804f478a0cc74bf7db8e9f9d5fd379d1b31ca"
      ],
      "author": {
        "name": "Paul Jackson",
        "email": "pj@sgi.com",
        "time": "Sat May 20 15:00:10 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun May 21 12:59:18 2006 -0700"
      },
      "message": "[PATCH] cpuset: update cpuset_zones_allowed comment\n\nUpdate the kernel/cpuset.c:cpuset_zone_allowed() comment.\n\nThe rule for when mm/page_alloc.c should call cpuset_zone_allowed()\nwas intended to be:\n\n  Don\u0027t call cpuset_zone_allowed() if you can\u0027t sleep, unless you\n  pass in the __GFP_HARDWALL flag set in gfp_flag, which disables\n  the code that might scan up ancestor cpusets and sleep.\n\nThe explanation of this rule in the comment above cpuset_zone_allowed() was\nstale, as a result of a restructuring of some __alloc_pages() code in\nNovember 2005.\n\nRewrite that comment ...\n\nSigned-off-by: Paul Jackson \u003cpj@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e4e364e865b382f9d99c7fc230ec2ce7df21257a",
      "tree": "9ff5ab54a0e40d7ad2b55d3ec48c6e175ebf50c7",
      "parents": [
        "2741a559a01e1ba9bf87285569dc1a104d134ecf"
      ],
      "author": {
        "name": "Paul Jackson",
        "email": "pj@sgi.com",
        "time": "Fri Mar 31 02:30:52 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Mar 31 12:18:55 2006 -0800"
      },
      "message": "[PATCH] cpuset: memory migration interaction fix\n\nFix memory migration so that it works regardless of what cpuset the invoking\ntask is in.\n\nIf a task invoked a memory migration, by doing one of:\n\n       1) writing a different nodemask to a cpuset \u0027mems\u0027 file, or\n\n       2) writing a tasks pid to a different cpuset\u0027s \u0027tasks\u0027 file,\n          where the cpuset had its \u0027memory_migrate\u0027 option turned on, then the\n          allocation of the new pages for the migrated task(s) was constrained\n          by the invoking tasks cpuset.\n\nIf this task wasn\u0027t in a cpuset that allowed the requested memory nodes, the\nmemory migration would happen to some other nodes that were in that invoking\ntasks cpuset.  This was usually surprising and puzzling behaviour: Why didn\u0027t\nthe pages move?  Why did the pages move -there-?\n\nTo fix this, temporarilly change the invoking tasks \u0027mems_allowed\u0027 task_struct\nfield to the nodes the migrating tasks is moving to, so that new pages can be\nallocated there.\n\nSigned-off-by: Paul Jackson \u003cpj@sgi.com\u003e\nAcked-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "2741a559a01e1ba9bf87285569dc1a104d134ecf",
      "tree": "8c61321d5fa1a0c3517219eaa3089e223d5cd943",
      "parents": [
        "4a01c8d5be628ac20cfd432c21808d76be5813e6"
      ],
      "author": {
        "name": "Paul Jackson",
        "email": "pj@sgi.com",
        "time": "Fri Mar 31 02:30:51 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Mar 31 12:18:55 2006 -0800"
      },
      "message": "[PATCH] cpuset: unsafe mm reference fix\n\nFix unsafe reference to a tasks mm struct, by moving the reference inside of a\nconvenient nearby properly guarded code block.\n\nSigned-off-by: Paul Jackson \u003cpj@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "4a01c8d5be628ac20cfd432c21808d76be5813e6",
      "tree": "040ae0d60df3993a752ce852d3e3dc036586b037",
      "parents": [
        "2cf8d82d63807c2c68adf20bb28bf502496186dd"
      ],
      "author": {
        "name": "Paul Jackson",
        "email": "pj@sgi.com",
        "time": "Fri Mar 31 02:30:50 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Mar 31 12:18:55 2006 -0800"
      },
      "message": "[PATCH] cpuset: task_lock comment fix\n\nFix cpuset comment involving case of a tasks cpuset pointer being NULL.\nThanks to \"the_top_cpuset_hack\", this code no longer sees NULL task-\u003ecpuset\npointers.\n\nSigned-off-by: Paul Jackson \u003cpj@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "29afd49b72a9b2c26fa8c678bcf3976d0540446b",
      "tree": "4cc12f5bb3c5c3ee668226990e79115081609265",
      "parents": [
        "b2455396be35383c4eebc6745cc718b1dd9e23df"
      ],
      "author": {
        "name": "Paul Jackson",
        "email": "pj@sgi.com",
        "time": "Fri Mar 24 03:16:12 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Mar 24 07:33:24 2006 -0800"
      },
      "message": "[PATCH] cpuset: remove useless local variable initialization\n\nRemove a useless variable initialization in cpuset __cpuset_zone_allowed().\n The local variable \u0027allowed\u0027 is unconditionally set before use, later on\nin the code, so does not need to be initialized.\n\nNot that it seems to matter to the code generated any, as the compiler\noptimizes out the superfluous assignment anyway.\n\nSigned-off-by: Paul Jackson \u003cpj@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "151a44202d097ae8b1bbaa6d8d2f97df30e3cd1e",
      "tree": "3752bba902e73001443bb75f40495cc3a1d24f54",
      "parents": [
        "8488bc359d674baf710992e4b641513ea5ebd212"
      ],
      "author": {
        "name": "Paul Jackson",
        "email": "pj@sgi.com",
        "time": "Fri Mar 24 03:16:11 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Mar 24 07:33:24 2006 -0800"
      },
      "message": "[PATCH] cpuset: don\u0027t need to mark cpuset_mems_generation atomic\n\nDrop the atomic_t marking on the cpuset static global\ncpuset_mems_generation.  Since all access to it is guarded by the global\nmanage_mutex, there is no need for further serialization of this value.\n\nSigned-off-by: Paul Jackson \u003cpj@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "8488bc359d674baf710992e4b641513ea5ebd212",
      "tree": "28f6558f6b006c5a28a64a1beabec5498d9b77d4",
      "parents": [
        "b0196009d8c3ecf6ea6ec080c63d2ccc146e7ad9"
      ],
      "author": {
        "name": "Paul Jackson",
        "email": "pj@sgi.com",
        "time": "Fri Mar 24 03:16:10 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Mar 24 07:33:23 2006 -0800"
      },
      "message": "[PATCH] cpuset: remove unnecessary NULL check\n\nRemove a no longer needed test for NULL cpuset pointer, with a little\ncomment explaining why the test isn\u0027t needed.\n\nSigned-off-by: Paul Jackson \u003cpj@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    }
  ],
  "next": "825a46af5ac171f9f41f794a0a00165588ba1589"
}
