)]}'
{
  "commit": "873b47717732c2f33a4b14de02571a4295a02f0c",
  "tree": "aaef0fe872dbd4ce5c290f3509e5db69f9a3f04a",
  "parents": [
    "3e85ba034deec351f02cb55ff225bbd616463841"
  ],
  "author": {
    "name": "Keika Kobayashi",
    "email": "kobayashi.kk@ncos.nec.co.jp",
    "time": "Fri Jul 25 01:48:52 2008 -0700"
  },
  "committer": {
    "name": "Linus Torvalds",
    "email": "torvalds@linux-foundation.org",
    "time": "Fri Jul 25 10:53:47 2008 -0700"
  },
  "message": "per-task-delay-accounting: add memory reclaim delay\n\nSometimes, application responses become bad under heavy memory load.\nApplications take a bit time to reclaim memory.  The statistics, how long\nmemory reclaim takes, will be useful to measure memory usage.\n\nThis patch adds accounting memory reclaim to per-task-delay-accounting for\naccounting the time of do_try_to_free_pages().\n\n\u003ci.e\u003e\n\n- When System is under low memory load,\n  memory reclaim may not occur.\n\n$ free\n             total       used       free     shared    buffers     cached\nMem:       8197800    1577300    6620500          0       4808    1516724\n-/+ buffers/cache:      55768    8142032\nSwap:     16386292          0   16386292\n\n$ vmstat 1\nprocs -----------memory---------- ---swap-- -----io---- -system-- ----cpu----\n r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa\n 0  0      0 5069748  10612 3014060    0    0     0     0    3   26  0  0 100  0\n 0  0      0 5069748  10612 3014060    0    0     0     0    4   22  0  0 100  0\n 0  0      0 5069748  10612 3014060    0    0     0     0    3   18  0  0 100  0\n\nMeasure the time of tar command.\n\n$ ls -s test.dat\n1501472 test.dat\n\n$ time tar cvf test.tar test.dat\nreal    0m13.388s\nuser    0m0.116s\nsys     0m5.304s\n\n$ ./delayget -d -p \u003cpid\u003e\nCPU             count     real total  virtual total    delay total\n                  428     5528345500     5477116080       62749891\nIO              count    delay total\n                  338     8078977189\nSWAP            count    delay total\n                    0              0\nRECLAIM         count    delay total\n                    0              0\n\n- When system is under heavy memory load\n  memory reclaim may occur.\n\n$ vmstat 1\nprocs -----------memory---------- ---swap-- -----io---- -system-- ----cpu----\n r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa\n 0  0 7159032  49724   1812   3012    0    0     0     0    3   24  0  0 100  0\n 0  0 7159032  49724   1812   3012    0    0     0     0    4   24  0  0 100  0\n 0  0 7159032  49848   1812   3012    0    0     0     0    3   22  0  0 100  0\n\nIn this case, one process uses more 8G memory\nby execution of malloc() and memset().\n\n$ time tar cvf test.tar test.dat\nreal    1m38.563s        \u003c-  increased by 85 sec\nuser    0m0.140s\nsys     0m7.060s\n\n$ ./delayget -d -p \u003cpid\u003e\nCPU             count     real total  virtual total    delay total\n                 9021     7140446250     7315277975      923201824\nIO              count    delay total\n                 8965    90466349669\nSWAP            count    delay total\n                    3       21036367\nRECLAIM         count    delay total\n                  740    61011951153\n\nIn the later case, the value of RECLAIM is increasing.\nSo, taskstats can show how much memory reclaim influences TAT.\n\nSigned-off-by: Keika Kobayashi \u003ckobayashi.kk@ncos.nec.co.jp\u003e\nAcked-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nAcked-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujistu.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": "ab94bc083558c329c8a59e49ff3c7af6076627ca",
      "old_mode": 33188,
      "old_path": "include/linux/delayacct.h",
      "new_id": "f352f06fa063b2bd73543403a4e24aca39f4a9d1",
      "new_mode": 33188,
      "new_path": "include/linux/delayacct.h"
    },
    {
      "type": "modify",
      "old_id": "d22ffe06d0eb3d670f9714482f33b9d144fbede3",
      "old_mode": 33188,
      "old_path": "include/linux/sched.h",
      "new_id": "42036ffe6b00f5bb939c5e576d6bce5bf0518346",
      "new_mode": 33188,
      "new_path": "include/linux/sched.h"
    },
    {
      "type": "modify",
      "old_id": "10e43fd8b721a7c28f44dbb60515efa9d0d4042d",
      "old_mode": 33188,
      "old_path": "kernel/delayacct.c",
      "new_id": "84b6782a2ce4a4fe077e4239875fb5143cb7e7e8",
      "new_mode": 33188,
      "new_path": "kernel/delayacct.c"
    },
    {
      "type": "modify",
      "old_id": "967d30ccd92b8f3a453951104a761986b6d88a6a",
      "old_mode": 33188,
      "old_path": "mm/vmscan.c",
      "new_id": "26672c6cd3cef37bd4b8d8df8512b814957b71f3",
      "new_mode": 33188,
      "new_path": "mm/vmscan.c"
    }
  ]
}
