)]}'
{
  "commit": "0dea116876eefc9c7ca9c5d74fe665481e499fa3",
  "tree": "446ef64c99a234cf076b6d43efe42c8b48a928c7",
  "parents": [
    "483c30b514bd3037fa3f19fa42327c94c10f51c8"
  ],
  "author": {
    "name": "Kirill A. Shutemov",
    "email": "kirill@shutemov.name",
    "time": "Wed Mar 10 15:22:20 2010 -0800"
  },
  "committer": {
    "name": "Linus Torvalds",
    "email": "torvalds@linux-foundation.org",
    "time": "Fri Mar 12 15:52:37 2010 -0800"
  },
  "message": "cgroup: implement eventfd-based generic API for notifications\n\nThis patchset introduces eventfd-based API for notifications in cgroups\nand implements memory notifications on top of it.\n\nIt uses statistics in memory controler to track memory usage.\n\nOutput of time(1) on building kernel on tmpfs:\n\nRoot cgroup before changes:\n\tmake -j2  506.37 user 60.93s system 193% cpu 4:52.77 total\nNon-root cgroup before changes:\n\tmake -j2  507.14 user 62.66s system 193% cpu 4:54.74 total\nRoot cgroup after changes (0 thresholds):\n\tmake -j2  507.13 user 62.20s system 193% cpu 4:53.55 total\nNon-root cgroup after changes (0 thresholds):\n\tmake -j2  507.70 user 64.20s system 193% cpu 4:55.70 total\nRoot cgroup after changes (1 thresholds, never crossed):\n\tmake -j2  506.97 user 62.20s system 193% cpu 4:53.90 total\nNon-root cgroup after changes (1 thresholds, never crossed):\n\tmake -j2  507.55 user 64.08s system 193% cpu 4:55.63 total\n\nThis patch:\n\nIntroduce the write-only file \"cgroup.event_control\" in every cgroup.\n\nTo register new notification handler you need:\n- create an eventfd;\n- open a control file to be monitored. Callbacks register_event() and\n  unregister_event() must be defined for the control file;\n- write \"\u003cevent_fd\u003e \u003ccontrol_fd\u003e \u003cargs\u003e\" to cgroup.event_control.\n  Interpretation of args is defined by control file implementation;\n\neventfd will be woken up by control file implementation or when the\ncgroup is removed.\n\nTo unregister notification handler just close eventfd.\n\nIf you need notification functionality for a control file you have to\nimplement callbacks register_event() and unregister_event() in the\nstruct cftype.\n\n[kamezawa.hiroyu@jp.fujitsu.com: Kconfig fix]\nSigned-off-by: Kirill A. Shutemov \u003ckirill@shutemov.name\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nPaul Menage \u003cmenage@google.com\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: Dan Malek \u003cdan@embeddedalley.com\u003e\nCc: Vladislav Buzov \u003cvbuzov@embeddedalley.com\u003e\nCc: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nCc: Alexander Shishkin \u003cvirtuoso@slind.org\u003e\nCc: Davide Libenzi \u003cdavidel@xmailserver.org\u003e\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "c0358c30c64faf70f520c3834b638ebf89335028",
      "old_mode": 33188,
      "old_path": "Documentation/cgroups/cgroups.txt",
      "new_id": "fd588ff0e2965311f319d07161f15d6b42f166c8",
      "new_mode": 33188,
      "new_path": "Documentation/cgroups/cgroups.txt"
    },
    {
      "type": "modify",
      "old_id": "2a59d3101e5ddca3dc88f2b4fe472971a0ff40c9",
      "old_mode": 33188,
      "old_path": "include/linux/cgroup.h",
      "new_id": "b4f2201321cd158db1302983631b42fbf91d0185",
      "new_mode": 33188,
      "new_path": "include/linux/cgroup.h"
    },
    {
      "type": "modify",
      "old_id": "089a230e565271c960f952cb279ac43571fb99f3",
      "old_mode": 33188,
      "old_path": "init/Kconfig",
      "new_id": "eb77e8ccde1c47d979cec79ec7c0fd1a12091161",
      "new_mode": 33188,
      "new_path": "init/Kconfig"
    },
    {
      "type": "modify",
      "old_id": "1bf4d6db54ab80110beea5c1a65f24499ffe4c79",
      "old_mode": 33188,
      "old_path": "kernel/cgroup.c",
      "new_id": "ea94984a389532fdc7585b52c3c781dee08e84e8",
      "new_mode": 33188,
      "new_path": "kernel/cgroup.c"
    }
  ]
}
