)]}'
{
  "log": [
    {
      "commit": "e4ad08fe64afca4ef79ecc4c624e6e871688da0d",
      "tree": "5b8b390b874700041dc0c095e8ba9ac3ed42ea77",
      "parents": [
        "76f1418b485da2707531178e517bbb5cf06b3c76"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Wed Apr 30 00:54:37 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 30 08:29:50 2008 -0700"
      },
      "message": "mm: bdi: add separate writeback accounting capability\n\nAdd a new BDI capability flag: BDI_CAP_NO_ACCT_WB.  If this flag is\nset, then don\u0027t update the per-bdi writeback stats from\ntest_set_page_writeback() and test_clear_page_writeback().\n\nMisc cleanups:\n\n - convert bdi_cap_writeback_dirty() and friends to static inline functions\n - create a flag that includes all three dirty/writeback related flags,\n   since almst all users will want to have them toghether\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "cf475ad28ac35cc9ba612d67158f29b73b38b05d",
      "tree": "2c7cd568d00357bd42643ea602884e731cc24f26",
      "parents": [
        "29486df325e1fe6e1764afcb19e3370804c2b002"
      ],
      "author": {
        "name": "Balbir Singh",
        "email": "balbir@linux.vnet.ibm.com",
        "time": "Tue Apr 29 01:00:16 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 29 08:06:10 2008 -0700"
      },
      "message": "cgroups: add an owner to the mm_struct\n\nRemove the mem_cgroup member from mm_struct and instead adds an owner.\n\nThis approach was suggested by Paul Menage.  The advantage of this approach\nis that, once the mm-\u003eowner is known, using the subsystem id, the cgroup\ncan be determined.  It also allows several control groups that are\nvirtually grouped by mm_struct, to exist independent of the memory\ncontroller i.e., without adding mem_cgroup\u0027s for each controller, to\nmm_struct.\n\nA new config option CONFIG_MM_OWNER is added and the memory resource\ncontroller selects this config option.\n\nThis patch also adds cgroup callbacks to notify subsystems when mm-\u003eowner\nchanges.  The mm_cgroup_changed callback is called with the task_lock() of\nthe new task held and is called just prior to changing the mm-\u003eowner.\n\nI am indebted to Paul Menage for the several reviews of this patchset and\nhelping me make it lighter and simpler.\n\nThis patch was tested on a powerpc box, it was compiled with both the\nMM_OWNER config turned on and off.\n\nAfter the thread group leader exits, it\u0027s moved to init_css_state by\ncgroup_exit(), thus all future charges from runnings threads would be\nredirected to the init_css_set\u0027s subsystem.\n\nSigned-off-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: Pavel Emelianov \u003cxemul@openvz.org\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: Sudhir Kumar \u003cskumar@linux.vnet.ibm.com\u003e\nCc: YAMAMOTO Takashi \u003cyamamoto@valinux.co.jp\u003e\nCc: Hirokazu Takahashi \u003ctaka@valinux.co.jp\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e,\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nAcked-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nReviewed-by: Paul Menage \u003cmenage@google.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "29486df325e1fe6e1764afcb19e3370804c2b002",
      "tree": "d69a96bb829940f3ae5171fde481edb20a9e468a",
      "parents": [
        "28fd5dfc12bde391981dfdcf20755952b6e916af"
      ],
      "author": {
        "name": "Serge E. Hallyn",
        "email": "serue@us.ibm.com",
        "time": "Tue Apr 29 01:00:14 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 29 08:06:10 2008 -0700"
      },
      "message": "cgroups: introduce cft-\u003eread_seq()\n\nIntroduce a read_seq() helper in cftype, which uses seq_file to print out\nlists.  Use it in the devices cgroup.  Also split devices.allow into two\nfiles, so now devices.deny and devices.allow are the ones to use to manipulate\nthe whitelist, while devices.list outputs the cgroup\u0027s current whitelist.\n\nSigned-off-by: Serge E. Hallyn \u003cserue@us.ibm.com\u003e\nAcked-by: Paul Menage \u003cmenage@google.com\u003e\nCc: Balbir Singh \u003cbalbir@in.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": "28fd5dfc12bde391981dfdcf20755952b6e916af",
      "tree": "ce0637c3f8c04d802b467cd518a9d0c076f1eeea",
      "parents": [
        "e8d55fdeb882cfcb5e8db5a5ce16edfba78aafc5"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Tue Apr 29 01:00:13 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 29 08:06:10 2008 -0700"
      },
      "message": "cgroups: remove the css_set linked-list\n\nNow we can run through the hash table instead of running through the\nlinked-list.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nReviewed-by: Paul Menage \u003cmenage@google.com\u003e\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: Pavel Emelyanov \u003cxemul@openvz.org\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": "e8d55fdeb882cfcb5e8db5a5ce16edfba78aafc5",
      "tree": "0c0a7338d8adb2aaf4310eb89d1679c802ea617d",
      "parents": [
        "472b1053f3c319cc60bfb2a0bb062fed77a93eb6"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Tue Apr 29 01:00:13 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 29 08:06:10 2008 -0700"
      },
      "message": "cgroups: simplify init_subsys()\n\nWe are at system boot and there is only 1 cgroup group (i,e, init_css_set), so\nwe don\u0027t need to run through the css_set linked list.  Neither do we need to\nrun through the task list, since no processes have been created yet.\n\nAlso referring to a comment in cgroup.h:\n\nstruct css_set\n{\n\t...\n\t/*\n\t * Set of subsystem states, one for each subsystem. This array\n\t * is immutable after creation apart from the init_css_set\n\t * during subsystem registration (at boot time).\n\t */\n\tstruct cgroup_subsys_state *subsys[CGROUP_SUBSYS_COUNT];\n}\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nReviewed-by: Paul Menage \u003cmenage@google.com\u003e\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: Pavel Emelyanov \u003cxemul@openvz.org\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": "472b1053f3c319cc60bfb2a0bb062fed77a93eb6",
      "tree": "2ef88bfdb7e397d3718a1bed38f13194f894097e",
      "parents": [
        "08ce5f16ee466ffc5bf243800deeecd77d9eaf50"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Tue Apr 29 01:00:11 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 29 08:06:09 2008 -0700"
      },
      "message": "cgroups: use a hash table for css_set finding\n\nWhen we attach a process to a different cgroup, the css_set linked-list will\nbe run through to find a suitable existing css_set to use.  This patch\nimplements a hash table for better performance.\n\nThe following benchmarks have been tested:\n\nFor N in 1, 5, 10, 50, 100, 500, 1000, create N cgroups with one sleeping\ntask in each, and then move an additional task through each cgroup in\nturn.\n\nHere is a test result:\n\nN\tLoop\torig - Time(s)\thash - Time(s)\n----------------------------------------------\n1\t10000\t1.201231728\t1.196311177\n5\t2000\t1.065743872\t1.040566424\n10\t1000\t0.991054735\t0.986876440\n50\t200\t0.976554203\t0.969608733\n100\t100\t0.998504680\t0.969218270\n500\t20\t1.157347764\t0.962602963\n1000\t10\t1.619521852\t1.085140172\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nReviewed-by: Paul Menage \u003cmenage@google.com\u003e\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: Pavel Emelyanov \u003cxemul@openvz.org\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": "d447ea2f30ec60370ddb99a668e5ac12995f043d",
      "tree": "f5d53c03d32323f3e916237f8ec0e0b2572f93b0",
      "parents": [
        "46ae220bea40bd1cf4abec2d5cdfb4f9396c7115"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Tue Apr 29 01:00:08 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 29 08:06:09 2008 -0700"
      },
      "message": "cgroups: add the trigger callback to struct cftype\n\nTrigger callback can be used to receive a kick-up from the user space.  The\nstring written is ignored.\n\nThe cftype-\u003eprivate is used for multiplexing events.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nAcked-by: Paul Menage \u003cmenage@google.com\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Balbir Singh \u003cbalbir@in.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": "46ae220bea40bd1cf4abec2d5cdfb4f9396c7115",
      "tree": "e485a13dd8d85d2f40ecf73d9482671dc39ceab1",
      "parents": [
        "06a119204d3e1e67d393e996ed987b0df7998381"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Tue Apr 29 01:00:08 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 29 08:06:09 2008 -0700"
      },
      "message": "cgroup: switch to proc_create()\n\nThere is a race between create_proc_entry() and the assignment of file ops.\nproc_create() is invented to fix it.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nAcked-by: Paul Menage \u003cmenage@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "06a119204d3e1e67d393e996ed987b0df7998381",
      "tree": "0cf3798102d13252d33c9907888a9608a0af6f96",
      "parents": [
        "06ecb27cfbf53ac2c7e397aa1619a6f9a98c5896"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Tue Apr 29 01:00:07 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 29 08:06:09 2008 -0700"
      },
      "message": "cgroup: annotate cgroup_init_subsys with __init\n\nIt is called by cgroup_init() and cgroup_init_early() only, which are\nannotated with __init.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e73d2c61d1fcbd3621688ae457b49509c8d4c601",
      "tree": "e54b1543e786afd036b7884776a6753d8a8973f6",
      "parents": [
        "418d7d875ce7f33ef0d48d7cc3a95f31302dcf56"
      ],
      "author": {
        "name": "Paul Menage",
        "email": "menage@google.com",
        "time": "Tue Apr 29 01:00:06 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 29 08:06:09 2008 -0700"
      },
      "message": "CGroups _s64 files: add cgroups read_s64/write_s64 file methods\n\nThese patches add cgroups read_s64 and write_s64 control file methods (the\nsigned equivalent of read_u64/write_u64) and use them to implement the\ncpu.rt_runtime_us control file in the CFS cgroup subsystem.\n\nThis patch:\n\nThese are the signed equivalents of the read_u64/write_u64 methods\n\nSigned-off-by: Paul Menage \u003cmenage@google.com\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\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": "3116f0e3df0a67ad56f15dd4c5f6cefb04bb4a98",
      "tree": "27dc8e1000eb7c3e36157963415a0bc8b8555e44",
      "parents": [
        "c27e8818a09bbdfe7c07c629cb2c27e1a742e156"
      ],
      "author": {
        "name": "Paul Menage",
        "email": "menage@google.com",
        "time": "Tue Apr 29 01:00:04 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 29 08:06:09 2008 -0700"
      },
      "message": "CGroup API files: move \"releasable\" to cgroup_debug subsystem\n\nThe \"releasable\" control file provided by the cgroup framework exports the\nstate of a per-cgroup flag that\u0027s related to the notify-on-release feature.\nThis isn\u0027t really generally useful, unless you\u0027re trying to debug this\nparticular feature of cgroups.\n\nThis patch moves the \"releasable\" file to the cgroup_debug subsystem.\n\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": "9179656961adcea3c25403365597e486d851ac5e",
      "tree": "13acbdd7ae045ed46fa679e613783717eb3b9138",
      "parents": [
        "700fe1ab99240c1a9c4d155e2a0612a1b044bb69"
      ],
      "author": {
        "name": "Paul Menage",
        "email": "menage@google.com",
        "time": "Tue Apr 29 01:00:01 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 29 08:06:08 2008 -0700"
      },
      "message": "CGroup API files: add cgroup map data type\n\nAdds a new type of supported control file representation, a map from strings\nto u64 values.\n\nEach map entry is printed as a line in a similar format to /proc/vmstat, i.e.\n\"$key $value\\n\"\n\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": "b7269dfc826fbf554c9e6a9eaa4e6ff95fa08656",
      "tree": "3be0f111e9951deb4e7ea5930ea659742dea419e",
      "parents": [
        "2c3daa722b624eaf0c5ea60e4f180bd0684542e2"
      ],
      "author": {
        "name": "Paul Menage",
        "email": "menage@google.com",
        "time": "Tue Apr 29 00:59:59 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 29 08:06:08 2008 -0700"
      },
      "message": "CGroup API files: strip all trailing whitespace in cgroup_write_u64\n\nThis removes the need for people to remember to pass the -n flag to echo when\nwriting values to cgroup control files.\n\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": "f4c753b7eacc277e506066abdda351cbc1cf8e6a",
      "tree": "2510264d4fac836dc64acd700846a5fe8d960b1e",
      "parents": [
        "3ff31d0cca38b3c20e88a022bf38c4f7c98492f0"
      ],
      "author": {
        "name": "Paul Menage",
        "email": "menage@google.com",
        "time": "Tue Apr 29 00:59:56 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 29 08:06:07 2008 -0700"
      },
      "message": "CGroup API files: rename read/write_uint methods to read_write_u64\n\nSeveral people have justifiably complained that the \"_uint\" suffix is\ninappropriate for functions that handle u64 values, so this patch just renames\nall these functions and their users to have the suffic _u64.\n\n[peterz@infradead.org: build fix]\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: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4fe91d518e4958af7edebbeb112a3272b2be232d",
      "tree": "6c23637806a7206e21dcc42bfc65dbe433e212b7",
      "parents": [
        "3df91fe30a1547af7e794c6e8cca76f4932c6ad7"
      ],
      "author": {
        "name": "Paul Jackson",
        "email": "pj@sgi.com",
        "time": "Tue Apr 29 00:59:55 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 29 08:06:07 2008 -0700"
      },
      "message": "cgroup: fix sparse warning of shadow symbol in cgroup.c\n\nFix a code warning: symbol \u0027p\u0027 shadows an earlier one\n\nThis is a reincarnation of Harvey Harrison\u0027s patch:\n\tcpuset: sparse warnings in cpuset.c\n\nIndependently, Cliff Wickman moved the affected code,\nfrom kernel/cpuset.c to kernel/cgroup.c, in his patch:\n\tcpusets: update_cpumask revision\n\nSigned-off-by: Paul Jackson \u003cpj@sgi.com\u003e\nCc: Harvey Harrison \u003charvey.harrison@gmail.com\u003e\nCc: Cliff Wickman \u003ccpw@sgi.com\u003e\nAcked-by: Paul Menage \u003cmenage@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3df91fe30a1547af7e794c6e8cca76f4932c6ad7",
      "tree": "f8d459ba2a16aaf946f66d767c4066eaa937592e",
      "parents": [
        "3ef0e1f8cad0a851b3dbf91802b14af7dd780352"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@kernel.org",
        "time": "Tue Apr 29 00:59:54 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 29 08:06:07 2008 -0700"
      },
      "message": "make cgroup_enable_task_cg_lists() static\n\nMake the needlessly global cgroup_enable_task_cg_lists() static.\n\nSigned-off-by: Adrian Bunk \u003cbunk@kernel.org\u003e\nAcked-by: 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": "0e04388f0189fa1f6812a8e1cb6172136eada87e",
      "tree": "4e0bf422e8ed6b61b840ac45dadaca84b954f7ad",
      "parents": [
        "4b119e21d0c66c22e8ca03df05d9de623d0eb50f"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Thu Apr 17 11:37:15 2008 +0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Apr 18 08:17:57 2008 -0700"
      },
      "message": "cgroup: fix a race condition in manipulating tsk-\u003ecg_list\n\nWhen I ran a test program to fork mass processes and at the same time\n\u0027cat /cgroup/tasks\u0027, I got the following oops:\n\n  ------------[ cut here ]------------\n  kernel BUG at lib/list_debug.c:72!\n  invalid opcode: 0000 [#1] SMP\n  Pid: 4178, comm: a.out Not tainted (2.6.25-rc9 #72)\n  ...\n  Call Trace:\n   [\u003cc044a5f9\u003e] ? cgroup_exit+0x55/0x94\n   [\u003cc0427acf\u003e] ? do_exit+0x217/0x5ba\n   [\u003cc0427ed7\u003e] ? do_group_exit+0.65/0x7c\n   [\u003cc0427efd\u003e] ? sys_exit_group+0xf/0x11\n   [\u003cc0404842\u003e] ? syscall_call+0x7/0xb\n   [\u003cc05e0000\u003e] ? init_cyrix+0x2fa/0x479\n  ...\n  EIP: [\u003cc04df671\u003e] list_del+0x35/0x53 SS:ESP 0068:ebc7df4\n  ---[ end trace caffb7332252612b ]---\n  Fixing recursive fault but reboot is needed!\n\nAfter digging into the code and debugging, I finlly found out a race\nsituation:\n\n\t\t\t\tdo_exit()\n\t\t\t\t  -\u003ecgroup_exit()\n\t\t\t\t    -\u003eif (!list_empty(\u0026tsk-\u003ecg_list))\n\t\t\t\t        list_del(\u0026tsk-\u003ecg_list);\n\n  cgroup_iter_start()\n    -\u003ecgroup_enable_task_cg_list()\n      -\u003elist_add(\u0026tsk-\u003ecg_list, ..);\n\nIn this case the list won\u0027t be deleted though the process has exited.\n\nWe got two bug reports in the past, which seem to be the same bug as\nthis one:\n\thttp://lkml.org/lkml/2008/3/5/332\n\thttp://lkml.org/lkml/2007/10/17/224\n\nActually sometimes I got oops on list_del, sometimes oops on list_add.\nAnd I can change my test program a bit to trigger other oops.\n\nThe patch has been tested both on x86_32 and x86_64.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nAcked-by: Paul Menage \u003cmenage@google.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: stable@kernel.org\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b6c3006d204a0b86e1ebe02ca38f9f071a03c7ef",
      "tree": "f8f4487b8fe5dedb804c876c3e6f7df90f6b209d",
      "parents": [
        "d10d89ec78114f925f63c5126a2b2490f501a462"
      ],
      "author": {
        "name": "Paul Menage",
        "email": "menage@google.com",
        "time": "Thu Apr 10 21:29:16 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Apr 11 08:06:43 2008 -0700"
      },
      "message": "cgroups: include hierarchy ids in /proc/\u003cpid\u003e/cgroup\n\nExtend the /proc/\u003cpid\u003e/cgroup file to include the appropriate hierarchy ID on\neach line.\n\nCurrently this ID isn\u0027t really needed since a hierarchy can be completely\nidentified by the set of subsystems bound to it, but this is likely to change\nin the near future in order to support stateless subsystems and\nmerging/rebinding of subsystems.  Getting this change into 2.6.25 reduces the\nneed for an API change later.\n\nSigned-off-by: Paul Menage \u003cmenage@google.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Pavel Emelyanov \u003cxemul@openvz.org\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": "8bab8dded67d026c39367bbd5e27d2f6c556c38e",
      "tree": "d80f8f85f1da496c56bfa8575f0b59eba7c2ef55",
      "parents": [
        "3a143125ddc4e2e0ca1e67fb4bedd45c36e59cc7"
      ],
      "author": {
        "name": "Paul Menage",
        "email": "menage@google.com",
        "time": "Fri Apr 04 14:29:57 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Apr 04 14:46:26 2008 -0700"
      },
      "message": "cgroups: add cgroup support for enabling controllers at boot time\n\nThe effects of cgroup_disable\u003dfoo are:\n\n- foo isn\u0027t auto-mounted if you mount all cgroups in a single hierarchy\n- foo isn\u0027t visible as an individually mountable subsystem\n\nAs a result there will only ever be one call to foo-\u003ecreate(), at init time;\nall processes will stay in this group, and the group will never be mounted on\na visible hierarchy.  Any additional effects (e.g.  not allocating metadata)\nare up to the foo subsystem.\n\nThis doesn\u0027t handle early_init subsystems (their \"disabled\" bit isn\u0027t set be,\nbut it could easily be extended to do so if any of the early_init systems\nwanted it - I think it would just involve some nastier parameter processing\nsince it would occur before the command-line argument parser had been run.\n\nHugh said:\n\n  Ballpark figures, I\u0027m trying to get this question out rather than\n  processing the exact numbers: CONFIG_CGROUP_MEM_RES_CTLR adds 15% overhead\n  to the affected paths, booting with cgroup_disable\u003dmemory cuts that back to\n  1% overhead (due to slightly bigger struct page).\n\n  I\u0027m no expert on distros, they may have no interest whatever in\n  CONFIG_CGROUP_MEM_RES_CTLR\u003dy; and the rest of us can easily build with or\n  without it, or apply the cgroup_disable\u003dmemory patches.\n\nUnix bench\u0027s execl test result on x86_64 was\n\n\u003d\u003d just after boot without mounting any cgroup fs.\u003d\u003d\nmem_cgorup\u003doff : Execl Throughput       43.0     3150.1      732.6\nmem_cgroup\u003don  : Execl Throughput       43.0     2932.6      682.0\n\u003d\u003d\n\n[lizf@cn.fujitsu.com: fix boot option parsing]\nSigned-off-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: Sudhir Kumar \u003cskumar@linux.vnet.ibm.com\u003e\nCc: YAMAMOTO Takashi \u003cyamamoto@valinux.co.jp\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9dce07f1a441b77a15631cf0ed0238e0baa7ed64",
      "tree": "2131d670d31ae4727b4234e3e0ad176ae103d571",
      "parents": [
        "1076d17ac70d1bb28fadc6f4bd96977b56897025"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@ftp.linux.org.uk",
        "time": "Sat Mar 29 03:07:28 2008 +0000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Mar 30 14:18:41 2008 -0700"
      },
      "message": "NULL noise: fs/*, mm/*, kernel/*\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b6abdb0e6ca5c2c0a7caa4131da2af0750927e72",
      "tree": "608c153a6c4b8feca409092bcc14c0710917a4da",
      "parents": [
        "fcab59a3186640ce085e89ee6dfc03cacfb6c7c9"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Tue Mar 04 14:28:19 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Mar 04 16:35:09 2008 -0800"
      },
      "message": "cgroup: fix default notify_on_release setting\n\nThe documentation says the default value of notify_on_release of a child\ncgroup is inherited from its parent, which is reasonable, but the\nimplementation just sets the flag disabled.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nAcked-by: Paul Menage \u003cmenage@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bc231d2a048010d5e0b49ac7fddbfa822fc41109",
      "tree": "5f38e9f917070a73e3de83d9e602c752b2e4c696",
      "parents": [
        "68db38f1537a44097e264f28bda751d6b919cd53"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Sat Feb 23 15:24:12 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Sat Feb 23 17:13:25 2008 -0800"
      },
      "message": "cgroup: remove dead code in cgroup_get_rootdir()\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nAcked-by: Paul Menage \u003cmenage@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "68db38f1537a44097e264f28bda751d6b919cd53",
      "tree": "efc311bb2825ea0ce78189dcc6a2704f9adecd9b",
      "parents": [
        "8d53d55d27754508e58e9ac18a4a445b110434bf"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Sat Feb 23 15:24:11 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Sat Feb 23 17:13:25 2008 -0800"
      },
      "message": "cgroup: remove duplicate code in find_css_set()\n\nThe list head res-\u003etasks gets initialized twice in find_css_set().\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nAcked-by: Paul Menage \u003cmenage@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8d53d55d27754508e58e9ac18a4a445b110434bf",
      "tree": "01bca7d82eb92c8e199c44ec37e7a70bb0a4a898",
      "parents": [
        "f777073848ba3708d68d87e43f104f83316187d7"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Sat Feb 23 15:24:11 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Sat Feb 23 17:13:24 2008 -0800"
      },
      "message": "cgroup: fix subsys bitops\n\nCgroup uses unsigned long for subsys bitops, not unsigned long long.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nAcked-by: Paul Menage \u003cmenage@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f777073848ba3708d68d87e43f104f83316187d7",
      "tree": "4eb0e5e36e70165c4eb7d41673bacd70423a986d",
      "parents": [
        "ffd2d883399cbbb641e55730676ce1ec4845d99d"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Sat Feb 23 15:24:10 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Sat Feb 23 17:13:24 2008 -0800"
      },
      "message": "cgroup: fix memory leak in cgroup_get_sb()\n\nopts.release_agent is not kfree()ed in all necessary places.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nAcked-by: Paul Menage \u003cmenage@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a043e3b2c63445512c5592cbe3c8694f3c655e81",
      "tree": "abfc3d3f475c32c7df14ada9fc4461b731628bd2",
      "parents": [
        "d19e0583300da82a6e27cd2116f558048502edaa"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Sat Feb 23 15:24:09 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Sat Feb 23 17:13:24 2008 -0800"
      },
      "message": "cgroup: fix comments\n\nfix:\n- comments about need_forkexit_callback\n- comments about release agent\n- typo and comment style, etc.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nAcked-by: Paul Menage \u003cmenage@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "73507f335f406ff31ceb97b39fa76eaee00f4f26",
      "tree": "0fc2afdd433f883525195c337150140a692a8170",
      "parents": [
        "b450129554213a4d4c5932f8a293646c029e1b0a"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "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": "Handle pid namespaces in cgroups code\n\nThere\u0027s one place that works with task pids - its the \"tasks\" file in cgroups.\n The read/write handlers assume, that the pid values go to/come from the user\nspace and thus it is a virtual pid, i.e.  the pid as it is seen from inside a\nnamespace.\n\nTune the code accordingly.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nAcked-by: Paul Menage \u003cmenage@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "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": "31a7df01fd0cd786f60873a921aecafac148c290",
      "tree": "221f00c864c50e7dc4719cb4de09292040567c55",
      "parents": [
        "dfc05c259e424e4160c66eab728f55cc4b53fd75"
      ],
      "author": {
        "name": "Cliff Wickman",
        "email": "cpw@sgi.com",
        "time": "Thu Feb 07 00:14:42 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:22 2008 -0800"
      },
      "message": "cgroups: mechanism to process each task in a cgroup\n\nProvide cgroup_scan_tasks(), which iterates through every task in a cgroup,\ncalling a test function and a process function for each.  And call the process\nfunction without holding the css_set_lock lock.\n\nThe idea is David Rientjes\u0027, predicting that such a function will make it much\neasier in the future to extend things that require access to each task in a\ncgroup without holding the lock,\n\n[akpm@linux-foundation.org: cleanup]\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\nAcked-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": "4fca88c87b7969c698912e2de9b1b31088c777cb",
      "tree": "6a086aaffb4ec17eadd2f2427c5816a02be6606f",
      "parents": [
        "d2ceb9b7ddedbb2e8e590bc6ce33c854043016f9"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Thu Feb 07 00:14:27 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:20 2008 -0800"
      },
      "message": "memory cgroup enhancements: add- pre_destroy() handler\n\nAdd a handler \"pre_destroy\" to cgroup_subsys.  It is called before\ncgroup_rmdir() checks all subsys\u0027s refcnt.\n\nI think this is useful for subsys which have some extra refs even if there\nare no tasks in cgroup.  By adding pre_destroy(), the kernel keeps the rule\n\"destroy() against subsystem is called only when refcnt\u003d0.\" and allows css\nref to be used by other objects than tasks.\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nCc: Kirill Korotaev \u003cdev@sw.ru\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Pavel Emelianov \u003cxemul@openvz.org\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Vaidyanathan Srinivasan \u003csvaidy@linux.vnet.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e9685a03c8c3162cfa9ff02d254ea5c848f9facb",
      "tree": "9267e6f5bbccfb4af41a9efeb170e9d29a838d4f",
      "parents": [
        "8dc4f3e17dd5f7e59ce568155ccd8974af879315"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@kernel.org",
        "time": "Thu Feb 07 00:13:46 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:18 2008 -0800"
      },
      "message": "kernel/cgroup.c: make 2 functions static\n\ncgroup_is_releasable() and notify_on_release() should be static,\nnot global inline.\n\nSigned-off-by: Adrian Bunk \u003cbunk@kernel.org\u003e\nAcked-by: Paul Menage \u003cmenage@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8dc4f3e17dd5f7e59ce568155ccd8974af879315",
      "tree": "959b1197fea798c9daae4dd6c9596ab710d41fda",
      "parents": [
        "622d42cac9ed42098aa50c53994f625abfa3d473"
      ],
      "author": {
        "name": "Paul Menage",
        "email": "menage@google.com",
        "time": "Thu Feb 07 00:13:45 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:18 2008 -0800"
      },
      "message": "cgroups: move cgroups destroy() callbacks to cgroup_diput()\n\nMove the calls to the cgroup subsystem destroy() methods from\ncgroup_rmdir() to cgroup_diput().  This allows control file reads and\nwrites to access their subsystem state without having to be concerned with\nlocking against cgroup destruction - the control file dentry will keep the\ncgroup and its subsystem state objects alive until the file is closed.\n\nThe documentation is updated to reflect the changed semantics of destroy();\nadditionally the locking comments for destroy() and some other methods were\nclarified and decrustified.\n\nSigned-off-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": "622d42cac9ed42098aa50c53994f625abfa3d473",
      "tree": "9bb8e2b5e84406609f2bcf04f45c60321511ca1a",
      "parents": [
        "e18f6318e5dab189efd4cb0bbfcbd923cc373e3c"
      ],
      "author": {
        "name": "Paul Jackson",
        "email": "pj@sgi.com",
        "time": "Thu Feb 07 00:13:44 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:18 2008 -0800"
      },
      "message": "cgroup simplify space stripping\n\nSimplify the space stripping code in cgroup file write.\n\n[akpm@linux-foundation.org: s/BUG_ON/BUILD_BUG_ON/]\nSigned-off-by: Paul Jackson \u003cpj@sgi.com\u003e\nAcked-by: Paul Menage \u003cmenage@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e18f6318e5dab189efd4cb0bbfcbd923cc373e3c",
      "tree": "b39152c3a5732c4fc0eba8830e82a0f4afb4d817",
      "parents": [
        "3cdeed2986b09fcc77b4812ca10dbc057e4e5f8c"
      ],
      "author": {
        "name": "Paul Jackson",
        "email": "pj@sgi.com",
        "time": "Thu Feb 07 00:13:44 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:17 2008 -0800"
      },
      "message": "cgroup brace coding style fix\n\nCoding style fix - one line conditionals don\u0027t get braces.\n\nSigned-off-by: Paul Jackson \u003cpj@sgi.com\u003e\nAcked-by: Paul Menage \u003cmenage@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3cdeed2986b09fcc77b4812ca10dbc057e4e5f8c",
      "tree": "e6d1880751b119358a30385a2a65deaec695f0b5",
      "parents": [
        "8f1466ff0a6e81653e9bb0d9247495bf4e9db7e2"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@kernel.org",
        "time": "Thu Feb 07 00:13:43 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:17 2008 -0800"
      },
      "message": "kernel/cgroup.c: remove dead code\n\nThis patch removes dead code spotted by the Coverity checker\n(look at the \"(nbytes \u003e\u003d PATH_MAX)\" check).\n\nSigned-off-by: Adrian Bunk \u003cbunk@kernel.org\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": "cfe36bde59bc1ae868e775ad82386c3acaabb738",
      "tree": "4010591a81b8e8116f2c5f68bdfdd1290361401a",
      "parents": [
        "8cd8fa557f439f23baef2158b271667d0c579482"
      ],
      "author": {
        "name": "Diego Calleja",
        "email": "diegocg@gmail.com",
        "time": "Wed Nov 14 16:58:54 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Nov 14 18:45:37 2007 -0800"
      },
      "message": "Improve cgroup printks\n\nWhen I boot with the \u0027quiet\u0027 parameter, I see on the screen:\n\n[    0.000000] Initializing cgroup subsys cpuset\n[    0.000000] Initializing cgroup subsys cpu\n[   39.036026] Initializing cgroup subsys cpuacct\n[   39.036080] Initializing cgroup subsys debug\n[   39.036118] Initializing cgroup subsys ns\n\nThis patch lowers the priority of those messages, adds a \"cgroup: \" prefix\nto another couple of printks and kills the useless reference to the source\nfile.\n\nSigned-off-by: Diego Calleja \u003cdiegocg@gmail.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": "3bdf590eac36ac5930deb9552febee3ff18cd2d1",
      "tree": "2fb38debbfe27f4c1533af85d775d83d7b7abf30",
      "parents": [
        "01e7ae8c13bb06a2ce622ebace33bb7e28ef596c"
      ],
      "author": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Tue Oct 23 18:36:44 2007 -0400"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Tue Oct 23 21:28:39 2007 -0400"
      },
      "message": "cgroup: kill unused variable\n\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "bd89aabc6761de1c35b154fe6f914a445d301510",
      "tree": "4564755be493b144d9a78766eae3de87326e23e4",
      "parents": [
        "69cccb887a35f3761b7ea62cdd2bee602868c735"
      ],
      "author": {
        "name": "Paul Menage",
        "email": "menage@google.com",
        "time": "Thu Oct 18 23:40:44 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 19 11:53:43 2007 -0700"
      },
      "message": "Control groups: Replace \"cont\" with \"cgrp\" and other misc renaming\n\nReplace \"cont\" with \"cgrp\" and other misc renaming\n\nThis patch finishes some of the names that got missed in the great\n\"task containers\" -\u003e \"control groups\" rename. Primarily it renames\nthe local variable \"cont\" to \"cgrp\" in a number of places, and renames\nthe CONT_* enum members to CGRP_*.\n\nThis patch is not intended to have any effect on the generated code;\nthe output of \"objdump -d kernel/cgroup.o\" is unchanged.\n\nSigned-off-by: Paul Menage \u003cmenage@google.com\u003e\nAcked-by: Paul Jackson \u003cpj@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "69cccb887a35f3761b7ea62cdd2bee602868c735",
      "tree": "37197177f0d2a8c7b147a33acdca59e5bf8f96b6",
      "parents": [
        "6651fd561bc6fbc688542e9a5bf070c6485eebe8"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Thu Oct 18 23:40:44 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 19 11:53:43 2007 -0700"
      },
      "message": "Use task_pid_nr() instead of pid_nr(task_pid())\n\nThere are two places that do so - the cgroups subsystem and the autofs\ncode.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: Ian Kent \u003craven@themaw.net\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "846c7bb055747989891f5cd2bb6e8d56243ba1e7",
      "tree": "e044041366efa8298157c4ae86615d68d30dd6d2",
      "parents": [
        "c2e2c7fa1cb2cf2b114a6c9bc132b6601db5a7c8"
      ],
      "author": {
        "name": "Balbir Singh",
        "email": "balbir@linux.vnet.ibm.com",
        "time": "Thu Oct 18 23:39:44 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 19 11:53:36 2007 -0700"
      },
      "message": "Add cgroupstats\n\nThis patch is inspired by the discussion at\nhttp://lkml.org/lkml/2007/4/11/187 and implements per cgroup statistics\nas suggested by Andrew Morton in http://lkml.org/lkml/2007/4/11/263.  The\npatch is on top of 2.6.21-mm1 with Paul\u0027s cgroups v9 patches (forward\nported)\n\nThis patch implements per cgroup statistics infrastructure and re-uses\ncode from the taskstats interface.  A new set of cgroup operations are\nregistered with commands and attributes.  It should be very easy to\n*extend* per cgroup statistics, by adding members to the cgroupstats\nstructure.\n\nThe current model for cgroupstats is a pull, a push model (to post\nstatistics on interesting events), should be very easy to add.  Currently\nuser space requests for statistics by passing the cgroup file\ndescriptor.  Statistics about the state of all the tasks in the cgroup\nis returned to user space.\n\nTODO\u0027s/NOTE:\n\nThis patch provides an infrastructure for implementing cgroup statistics.\nBased on the needs of each controller, we can incrementally add more statistics,\nevent based support for notification of statistics, accumulation of taskstats\ninto cgroup statistics in the future.\n\nSample output\n\n# ./cgroupstats -C /cgroup/a\nsleeping 2, blocked 0, running 1, stopped 0, uninterruptible 0\n\n# ./cgroupstats -C /cgroup/\nsleeping 154, blocked 0, running 0, stopped 0, uninterruptible 0\n\nIf the approach looks good, I\u0027ll enhance and post the user space utility for\nthe same\n\nFeedback, comments, test results are always welcome!\n\n[akpm@linux-foundation.org: build fix]\nSigned-off-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Jay Lan \u003cjlan@engr.sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "81a6a5cdd2c5cd70874b88afe524ab09e9e869af",
      "tree": "ba46c47a0692b687a96e52e61bfda4f14457017f",
      "parents": [
        "817929ec274bcfe771586d338bb31d1659615686"
      ],
      "author": {
        "name": "Paul Menage",
        "email": "menage@google.com",
        "time": "Thu Oct 18 23:39:38 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 19 11:53:36 2007 -0700"
      },
      "message": "Task Control Groups: automatic userspace notification of idle cgroups\n\nAdd the following files to the cgroup filesystem:\n\nnotify_on_release - configures/reports whether the cgroup subsystem should\nattempt to run a release script when this cgroup becomes unused\n\nrelease_agent - configures/reports the release agent to be used for this\nhierarchy (top level in each hierarchy only)\n\nreleasable - reports whether this cgroup would have been auto-released if\nnotify_on_release was true and a release agent was configured (mainly useful\nfor debugging)\n\nTo avoid locking issues, invoking the userspace release agent is done via a\nworkqueue task; cgroups that need to have their release agents invoked by\nthe workqueue task are linked on to a list.\n\n[pj@sgi.com: Need to include kmod.h]\nSigned-off-by: Paul Menage \u003cmenage@google.com\u003e\nCc: Serge E. Hallyn \u003cserue@us.ibm.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Paul Jackson \u003cpj@sgi.com\u003e\nCc: Kirill Korotaev \u003cdev@openvz.org\u003e\nCc: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nCc: Srivatsa Vaddagiri \u003cvatsa@in.ibm.com\u003e\nCc: Cedric Le Goater \u003cclg@fr.ibm.com\u003e\nSigned-off-by: Paul Jackson \u003cpj@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "817929ec274bcfe771586d338bb31d1659615686",
      "tree": "5a96ed1afd308016e8720437a00bf2f114e907cb",
      "parents": [
        "a424316ca154317367c7ddf89997d1c80e4a8051"
      ],
      "author": {
        "name": "Paul Menage",
        "email": "menage@google.com",
        "time": "Thu Oct 18 23:39:36 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 19 11:53:36 2007 -0700"
      },
      "message": "Task Control Groups: shared cgroup subsystem group arrays\n\nReplace the struct css_set embedded in task_struct with a pointer; all tasks\nthat have the same set of memberships across all hierarchies will share a\ncss_set object, and will be linked via their css_sets field to the \"tasks\"\nlist_head in the css_set.\n\nAssuming that many tasks share the same cgroup assignments, this reduces\noverall space usage and keeps the size of the task_struct down (three pointers\nadded to task_struct compared to a non-cgroups kernel, no matter how many\nsubsystems are registered).\n\n[akpm@linux-foundation.org: fix a printk]\n[akpm@linux-foundation.org: build fix]\nSigned-off-by: Paul Menage \u003cmenage@google.com\u003e\nCc: Serge E. Hallyn \u003cserue@us.ibm.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Paul Jackson \u003cpj@sgi.com\u003e\nCc: Kirill Korotaev \u003cdev@openvz.org\u003e\nCc: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nCc: Srivatsa Vaddagiri \u003cvatsa@in.ibm.com\u003e\nCc: Cedric Le Goater \u003cclg@fr.ibm.com\u003e\nCc: Serge E. Hallyn \u003cserue@us.ibm.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Paul Jackson \u003cpj@sgi.com\u003e\nCc: Kirill Korotaev \u003cdev@openvz.org\u003e\nCc: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nCc: Srivatsa Vaddagiri \u003cvatsa@in.ibm.com\u003e\nCc: Cedric Le Goater \u003cclg@fr.ibm.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a424316ca154317367c7ddf89997d1c80e4a8051",
      "tree": "ed349926c41aad5be6d62c9074ff72a0d9ac32c2",
      "parents": [
        "697f41610863c9264a7ae26dac9a387c9dda8c84"
      ],
      "author": {
        "name": "Paul Menage",
        "email": "menage@google.com",
        "time": "Thu Oct 18 23:39:35 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 19 11:53:36 2007 -0700"
      },
      "message": "Task Control Groups: add procfs interface\n\nAdd:\n\n/proc/cgroups - general system info\n\n/proc/*/cgroup - per-task cgroup membership info\n\n[a.p.zijlstra@chello.nl: cgroups: bdi init hooks]\nSigned-off-by: Paul Menage \u003cmenage@google.com\u003e\nCc: Serge E. Hallyn \u003cserue@us.ibm.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Paul Jackson \u003cpj@sgi.com\u003e\nCc: Kirill Korotaev \u003cdev@openvz.org\u003e\nCc: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nCc: Srivatsa Vaddagiri \u003cvatsa@in.ibm.com\u003e\nCc: Cedric Le Goater \u003cclg@fr.ibm.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "697f41610863c9264a7ae26dac9a387c9dda8c84",
      "tree": "9d4321f93abe36920a8e9d5239d120803f6cabbc",
      "parents": [
        "b4f48b6363c81ca743ef46943ef23fd72e60f679"
      ],
      "author": {
        "name": "Paul Menage",
        "email": "menage@google.com",
        "time": "Thu Oct 18 23:39:34 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 19 11:53:36 2007 -0700"
      },
      "message": "Task Control Groups: add cgroup_clone() interface\n\nAdd support for cgroup_clone(), a way to create new cgroups intended to\nbe used for systems such as namespace unsharing.  A new subsystem callback,\npost_clone(), is added to allow subsystems to automatically configure cloned\ncgroups.\n\nSigned-off-by: Paul Menage \u003cmenage@google.com\u003e\nCc: Serge E. Hallyn \u003cserue@us.ibm.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Paul Jackson \u003cpj@sgi.com\u003e\nCc: Kirill Korotaev \u003cdev@openvz.org\u003e\nCc: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nCc: Srivatsa Vaddagiri \u003cvatsa@in.ibm.com\u003e\nCc: Cedric Le Goater \u003cclg@fr.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b4f48b6363c81ca743ef46943ef23fd72e60f679",
      "tree": "40437b78e2d7a7d9d71e7bd63bc96e1ad02daa94",
      "parents": [
        "355e0c48b757b7fcc79ccb98fda8105ed37a1598"
      ],
      "author": {
        "name": "Paul Menage",
        "email": "menage@google.com",
        "time": "Thu Oct 18 23:39:33 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 19 11:53:36 2007 -0700"
      },
      "message": "Task Control Groups: add fork()/exit() hooks\n\nThis adds the necessary hooks to the fork() and exit() paths to ensure\nthat new children inherit their parent\u0027s cgroup assignments, and that\nexiting processes release reference counts on their cgroups.\n\nSigned-off-by: Paul Menage \u003cmenage@google.com\u003e\nCc: Serge E. Hallyn \u003cserue@us.ibm.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Paul Jackson \u003cpj@sgi.com\u003e\nCc: Kirill Korotaev \u003cdev@openvz.org\u003e\nCc: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nCc: Srivatsa Vaddagiri \u003cvatsa@in.ibm.com\u003e\nCc: Cedric Le Goater \u003cclg@fr.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "355e0c48b757b7fcc79ccb98fda8105ed37a1598",
      "tree": "f9687961979a808e46620f4bdf9af05de2fd68e2",
      "parents": [
        "bbcb81d09104f0d440974b994c1fc508ccbe9503"
      ],
      "author": {
        "name": "Paul Menage",
        "email": "menage@google.com",
        "time": "Thu Oct 18 23:39:33 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 19 11:53:36 2007 -0700"
      },
      "message": "Add cgroup write_uint() helper method\n\nAdd write_uint() helper method for cgroup subsystems\n\nThis helper is analagous to the read_uint() helper method for\nreporting u64 values to userspace. It\u0027s designed to reduce the amount\nof boilerplate requierd for creating new cgroup subsystems.\n\nSigned-off-by: Paul Menage \u003cmenage@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bbcb81d09104f0d440974b994c1fc508ccbe9503",
      "tree": "6d9ef3e2c611bb0a8f63519196f7bd7725b7ea1a",
      "parents": [
        "ddbcc7e8e50aefe467c01cac3dec71f118cd8ac2"
      ],
      "author": {
        "name": "Paul Menage",
        "email": "menage@google.com",
        "time": "Thu Oct 18 23:39:32 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 19 11:53:36 2007 -0700"
      },
      "message": "Task Control Groups: add tasks file interface\n\nAdd the per-directory \"tasks\" file for cgroupfs mounts; this allows the\nuser to determine which tasks are members of a cgroup by reading a\ncgroup\u0027s \"tasks\", and to move a task into a cgroup by writing its pid to\nits \"tasks\".\n\nSigned-off-by: Paul Menage \u003cmenage@google.com\u003e\nCc: Serge E. Hallyn \u003cserue@us.ibm.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Paul Jackson \u003cpj@sgi.com\u003e\nCc: Kirill Korotaev \u003cdev@openvz.org\u003e\nCc: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nCc: Srivatsa Vaddagiri \u003cvatsa@in.ibm.com\u003e\nCc: Cedric Le Goater \u003cclg@fr.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ddbcc7e8e50aefe467c01cac3dec71f118cd8ac2",
      "tree": "0881a031e669582f819d572339e955b04abfc3d2",
      "parents": [
        "55a230aae650157720becc09cadb7d10efbf5013"
      ],
      "author": {
        "name": "Paul Menage",
        "email": "menage@google.com",
        "time": "Thu Oct 18 23:39:30 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 19 11:53:36 2007 -0700"
      },
      "message": "Task Control Groups: basic task cgroup framework\n\nGeneric Process Control Groups\n--------------------------\n\nThere have recently been various proposals floating around for\nresource management/accounting and other task grouping subsystems in\nthe kernel, including ResGroups, User BeanCounters, NSProxy\ncgroups, and others.  These all need the basic abstraction of being\nable to group together multiple processes in an aggregate, in order to\ntrack/limit the resources permitted to those processes, or control\nother behaviour of the processes, and all implement this grouping in\ndifferent ways.\n\nThis patchset provides a framework for tracking and grouping processes\ninto arbitrary \"cgroups\" and assigning arbitrary state to those\ngroupings, in order to control the behaviour of the cgroup as an\naggregate.\n\nThe intention is that the various resource management and\nvirtualization/cgroup efforts can also become task cgroup\nclients, with the result that:\n\n- the userspace APIs are (somewhat) normalised\n\n- it\u0027s easier to test e.g. the ResGroups CPU controller in\n conjunction with the BeanCounters memory controller, or use either of\nthem as the resource-control portion of a virtual server system.\n\n- the additional kernel footprint of any of the competing resource\n management systems is substantially reduced, since it doesn\u0027t need\n to provide process grouping/containment, hence improving their\n chances of getting into the kernel\n\nThis patch:\n\nAdd the main task cgroups framework - the cgroup filesystem, and the\nbasic structures for tracking membership and associating subsystem state\nobjects to tasks.\n\nSigned-off-by: Paul Menage \u003cmenage@google.com\u003e\nCc: Serge E. Hallyn \u003cserue@us.ibm.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Paul Jackson \u003cpj@sgi.com\u003e\nCc: Kirill Korotaev \u003cdev@openvz.org\u003e\nCc: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nCc: Srivatsa Vaddagiri \u003cvatsa@in.ibm.com\u003e\nCc: Cedric Le Goater \u003cclg@fr.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    }
  ]
}
