)]}'
{
  "log": [
    {
      "commit": "3b1b3f6e57064aa8f91c290fe51cda4c74642902",
      "tree": "2cf60a7bae5f184acbea4bff859be4e4132f9794",
      "parents": [
        "687446760bd008df96655cb8c5900f8e48a7118c"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Wed Nov 12 13:26:50 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Nov 12 17:17:16 2008 -0800"
      },
      "message": "freezer_cg: disable writing freezer.state of root cgroup\n\nWith this change, control file \u0027freezer.state\u0027 doesn\u0027t exist in root\ncgroup, making root cgroup unfreezable.\n\nI think it\u0027s reasonable to disallow freeze tasks in the root cgroup.  And\nthen we can avoid fork overhead when freezer subsystem is compiled but not\nused.\n\nAlso make writing invalid value to freezer.state returns EINVAL rather\nthan EIO.  This is more consistent with other cgroup subsystem.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nAcked-by: Paul Menage \u003cmenage@google.com\u003e\nCc: Cedric Le Goater \u003cclg@fr.ibm.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Matt Helsley \u003cmatthltc@us.ibm.com\u003e\nCc: \"Serge E. 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": "687446760bd008df96655cb8c5900f8e48a7118c",
      "tree": "b4834a1e88d98234cfad90a0880b54ba1cc3cc59",
      "parents": [
        "0bcb6069a6e1af5c114a2a8873ec43ada8933596"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Wed Nov 12 13:26:49 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Nov 12 17:17:16 2008 -0800"
      },
      "message": "freezer_cg: remove task_lock from freezer_fork()\n\nIn theory the task can be moved to another cgroup and the freezer will be\nfreed right after task_lock is dropped, so the lock results in zero\nprotection.\n\nBut in the case of freezer_fork() no lock is needed, since the task is not\nin tasklist yet so it won\u0027t be moved to another cgroup, so task-\u003ecgroups\nwon\u0027t be changed or invalidated.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Matt Helsley \u003cmatthltc@us.ibm.com\u003e\nCc: Cedric Le Goater \u003cclg@fr.ibm.com\u003e\nCc: \"Serge E. Hallyn\" \u003cserue@us.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": "51308ee59dee1136ed599d875ea8968d7be55c91",
      "tree": "8976509c5fbf8171774e7eb7007cf0d4d00f0f83",
      "parents": [
        "00c2e63c31d0f431952ff2a671c5c6997dd4f8b2"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Wed Oct 29 14:00:54 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 30 11:38:45 2008 -0700"
      },
      "message": "freezer_cg: simplify freezer_change_state()\n\nJust call unfreeze_cgroup() if goal_state \u003d\u003d THAWED, and call\ntry_to_freeze_cgroup() if goal_state \u003d\u003d FROZEN.\n\nNo behavior has been changed.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nAcked-by: Cedric Le Goater \u003cclg@fr.ibm.com\u003e\nAcked-by: Matt Helsley \u003cmatthltc@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": "00c2e63c31d0f431952ff2a671c5c6997dd4f8b2",
      "tree": "2277b400fef79e55c13d7045aa63d5bed9ad5883",
      "parents": [
        "80a6a2cf3bebcf20285cf05373b9c5ec96816577"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Wed Oct 29 14:00:53 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 30 11:38:45 2008 -0700"
      },
      "message": "freezer_cg: use thaw_process() in unfreeze_cgroup()\n\nDon\u0027t duplicate the implementation of thaw_process().\n\n[akpm@linux-foundation.org: make __thaw_process() static]\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Cedric Le Goater \u003cclg@fr.ibm.com\u003e\nAcked-by: Matt Helsley \u003cmatthltc@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": "80a6a2cf3bebcf20285cf05373b9c5ec96816577",
      "tree": "b934c6b9c55e7f0979312bdec9f679680d73aac1",
      "parents": [
        "7ccb97437bcc818d0ba6067513475f6ee8177a15"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Wed Oct 29 14:00:52 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 30 11:38:45 2008 -0700"
      },
      "message": "freezer_cg: remove redundant check in freezer_can_attach()\n\nIt is sufficient to check if @task is frozen, and no need to check if the\noriginal freezer is frozen.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nAcked-by: Cedric Le Goater \u003cclg@fr.ibm.com\u003e\nAcked-by: Matt Helsley \u003cmatthltc@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": "7ccb97437bcc818d0ba6067513475f6ee8177a15",
      "tree": "5d9209002ea50383ffc256f89c25743552b5c637",
      "parents": [
        "df8bc08c192f00f155185bfd6f052d46a728814a"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Wed Oct 29 14:00:51 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 30 11:38:45 2008 -0700"
      },
      "message": "freezer_cg: fix improper BUG_ON() causing oops\n\nThe BUG_ON() should be protected by freezer-\u003elock, otherwise it can be\ntriggered easily when a task has been unfreezed but the corresponding\ncgroup hasn\u0027t been changed to FROZEN state.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nAcked-by: Cedric Le Goater \u003cclg@fr.ibm.com\u003e\nAcked-by: Matt Helsley \u003cmatthltc@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": "1aece34833721d64eb33fc15cd923c727296d3d3",
      "tree": "7d50bac9229430528ff28aa362c87f745ebd1c78",
      "parents": [
        "81dcf33c2ae314899f754aa7aaa1cb1fe2f84da6"
      ],
      "author": {
        "name": "Matt Helsley",
        "email": "matthltc@us.ibm.com",
        "time": "Sat Oct 18 20:27:24 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 20 08:52:34 2008 -0700"
      },
      "message": "container freezer: rename check_if_frozen()\n\ncheck_if_frozen() sounds like it should return something when in fact it\u0027s\njust updating the freezer state.\n\nSigned-off-by: Matt Helsley \u003cmatthltc@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": "81dcf33c2ae314899f754aa7aaa1cb1fe2f84da6",
      "tree": "8a4ef6206a3f70bf245c9f89baf5294e7ffd2d2f",
      "parents": [
        "957a4eeaf4af614ab0fc4c09a22593d6ab233f5b"
      ],
      "author": {
        "name": "Matt Helsley",
        "email": "matthltc@us.ibm.com",
        "time": "Sat Oct 18 20:27:23 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 20 08:52:34 2008 -0700"
      },
      "message": "container freezer: make freezer state names less generic\n\nRename cgroup freezer states to be less generic to avoid any name\ncollisions while also better describing what each state is.\n\nSigned-off-by: Matt Helsley \u003cmatthltc@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": "957a4eeaf4af614ab0fc4c09a22593d6ab233f5b",
      "tree": "944d338890a2346ca1bd9cd78e01c659635bf085",
      "parents": [
        "5a06915c6df9b89cda5ddb3f8cce5f9a6be534d2"
      ],
      "author": {
        "name": "Matt Helsley",
        "email": "matthltc@us.ibm.com",
        "time": "Sat Oct 18 20:27:22 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 20 08:52:34 2008 -0700"
      },
      "message": "container freezer: prevent frozen tasks or cgroups from changing\n\nDon\u0027t let frozen tasks or cgroups change.  This means frozen tasks can\u0027t\nleave their current cgroup for another cgroup.  It also means that tasks\ncannot be added to or removed from a cgroup in the FROZEN state.  We\nenforce these rules by checking for frozen tasks and cgroups in the\ncan_attach() function.\n\nSigned-off-by: Matt Helsley \u003cmatthltc@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": "dc52ddc0e6f45b04780b26fc0813509f8e798c42",
      "tree": "384826e9fab4e434bc5c85ce744470ae472e52c3",
      "parents": [
        "8174f1503f4bf7e9a14b3fbbfdb30c6be6e29f77"
      ],
      "author": {
        "name": "Matt Helsley",
        "email": "matthltc@us.ibm.com",
        "time": "Sat Oct 18 20:27:21 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 20 08:52:34 2008 -0700"
      },
      "message": "container freezer: implement freezer cgroup subsystem\n\nThis patch implements a new freezer subsystem in the control groups\nframework.  It provides a way to stop and resume execution of all tasks in\na cgroup by writing in the cgroup filesystem.\n\nThe freezer subsystem in the container filesystem defines a file named\nfreezer.state.  Writing \"FROZEN\" to the state file will freeze all tasks\nin the cgroup.  Subsequently writing \"RUNNING\" will unfreeze the tasks in\nthe cgroup.  Reading will return the current state.\n\n* Examples of usage :\n\n   # mkdir /containers/freezer\n   # mount -t cgroup -ofreezer freezer  /containers\n   # mkdir /containers/0\n   # echo $some_pid \u003e /containers/0/tasks\n\nto get status of the freezer subsystem :\n\n   # cat /containers/0/freezer.state\n   RUNNING\n\nto freeze all tasks in the container :\n\n   # echo FROZEN \u003e /containers/0/freezer.state\n   # cat /containers/0/freezer.state\n   FREEZING\n   # cat /containers/0/freezer.state\n   FROZEN\n\nto unfreeze all tasks in the container :\n\n   # echo RUNNING \u003e /containers/0/freezer.state\n   # cat /containers/0/freezer.state\n   RUNNING\n\nThis is the basic mechanism which should do the right thing for user space\ntask in a simple scenario.\n\nIt\u0027s important to note that freezing can be incomplete.  In that case we\nreturn EBUSY.  This means that some tasks in the cgroup are busy doing\nsomething that prevents us from completely freezing the cgroup at this\ntime.  After EBUSY, the cgroup will remain partially frozen -- reflected\nby freezer.state reporting \"FREEZING\" when read.  The state will remain\n\"FREEZING\" until one of these things happens:\n\n\t1) Userspace cancels the freezing operation by writing \"RUNNING\" to\n\t\tthe freezer.state file\n\t2) Userspace retries the freezing operation by writing \"FROZEN\" to\n\t\tthe freezer.state file (writing \"FREEZING\" is not legal\n\t\tand returns EIO)\n\t3) The tasks that blocked the cgroup from entering the \"FROZEN\"\n\t\tstate disappear from the cgroup\u0027s set of tasks.\n\n[akpm@linux-foundation.org: coding-style fixes]\n[akpm@linux-foundation.org: export thaw_process]\nSigned-off-by: Cedric Le Goater \u003cclg@fr.ibm.com\u003e\nSigned-off-by: Matt Helsley \u003cmatthltc@us.ibm.com\u003e\nAcked-by: Serge E. Hallyn \u003cserue@us.ibm.com\u003e\nTested-by: Matt Helsley \u003cmatthltc@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"
    }
  ]
}
