)]}'
{
  "commit": "00a62ce91e554198ef28234c91c36f850f5a3bc9",
  "tree": "367ef134219deef91903c3fa0eb108c13658f2c7",
  "parents": [
    "0763ed2355198cdef2f6a2098e9d52eb1fe4365d"
  ],
  "author": {
    "name": "KOSAKI Motohiro",
    "email": "kosaki.motohiro@jp.fujitsu.com",
    "time": "Thu Apr 30 15:08:51 2009 -0700"
  },
  "committer": {
    "name": "Linus Torvalds",
    "email": "torvalds@linux-foundation.org",
    "time": "Sat May 02 15:36:10 2009 -0700"
  },
  "message": "mm: fix Committed_AS underflow on large NR_CPUS environment\n\nThe Committed_AS field can underflow in certain situations:\n\n\u003e         # while true; do cat /proc/meminfo  | grep _AS; sleep 1; done | uniq -c\n\u003e               1 Committed_AS: 18446744073709323392 kB\n\u003e              11 Committed_AS: 18446744073709455488 kB\n\u003e               6 Committed_AS:    35136 kB\n\u003e               5 Committed_AS: 18446744073709454400 kB\n\u003e               7 Committed_AS:    35904 kB\n\u003e               3 Committed_AS: 18446744073709453248 kB\n\u003e               2 Committed_AS:    34752 kB\n\u003e               9 Committed_AS: 18446744073709453248 kB\n\u003e               8 Committed_AS:    34752 kB\n\u003e               3 Committed_AS: 18446744073709320960 kB\n\u003e               7 Committed_AS: 18446744073709454080 kB\n\u003e               3 Committed_AS: 18446744073709320960 kB\n\u003e               5 Committed_AS: 18446744073709454080 kB\n\u003e               6 Committed_AS: 18446744073709320960 kB\n\nBecause NR_CPUS can be greater than 1000 and meminfo_proc_show() does\nnot check for underflow.\n\nBut NR_CPUS proportional isn\u0027t good calculation.  In general,\npossibility of lock contention is proportional to the number of online\ncpus, not theorical maximum cpus (NR_CPUS).\n\nThe current kernel has generic percpu-counter stuff.  using it is right\nway.  it makes code simplify and percpu_counter_read_positive() don\u0027t\nmake underflow issue.\n\nReported-by: Dave Hansen \u003cdave@linux.vnet.ibm.com\u003e\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Eric B Munson \u003cebmunson@us.ibm.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: \u003cstable@kernel.org\u003e\t\t[All kernel versions]\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": "74ea974f5ca6d86bd249ee920527be9c95157522",
      "old_mode": 33188,
      "old_path": "fs/proc/meminfo.c",
      "new_id": "c6b0302af4c40268e9511e34d16f3385f817e1d6",
      "new_mode": 33188,
      "new_path": "fs/proc/meminfo.c"
    },
    {
      "type": "modify",
      "old_id": "30d1073bac3ba63459123db829283fa9ec7eb8e5",
      "old_mode": 33188,
      "old_path": "include/linux/mman.h",
      "new_id": "9872d6ca58ae9a7b88dcc97387f86a434a633db5",
      "new_mode": 33188,
      "new_path": "include/linux/mman.h"
    },
    {
      "type": "modify",
      "old_id": "3303d1ba8e87aca1ba34ca74f92d0cd9038de396",
      "old_mode": 33188,
      "old_path": "mm/mmap.c",
      "new_id": "6b7b1a95944bf267bd21cd981703280fe25a39e9",
      "new_mode": 33188,
      "new_path": "mm/mmap.c"
    },
    {
      "type": "modify",
      "old_id": "72eda4aee2cb46d72e070271d82ae13daef78b36",
      "old_mode": 33188,
      "old_path": "mm/nommu.c",
      "new_id": "809998aa7b509dd072862def05f420a14e1185cf",
      "new_mode": 33188,
      "new_path": "mm/nommu.c"
    },
    {
      "type": "modify",
      "old_id": "bede23ce64ea28e52d991168f2c93cd2243c893a",
      "old_mode": 33188,
      "old_path": "mm/swap.c",
      "new_id": "cb29ae5d33abfce703991cbfebd7bc1956752942",
      "new_mode": 33188,
      "new_path": "mm/swap.c"
    }
  ]
}
