)]}'
{
  "log": [
    {
      "commit": "1d885526f2f3fffacee2ecb541270bd00168adff",
      "tree": "0f87c5d264361fd75c628b4485ef5bf91eb0c95d",
      "parents": [
        "84814d642a4f1f294bd675ab11aae1ca54c6cedb"
      ],
      "author": {
        "name": "Daisuke Nishimura",
        "email": "nishimura@mxp.nes.nec.co.jp",
        "time": "Fri Mar 13 13:52:00 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 14 11:57:22 2009 -0700"
      },
      "message": "vmscan: pgmoved should be cleared after updating recent_rotated\n\npgmoved should be cleared after updating recent_rotated.\n\nSigned-off-by: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Lee Schermerhorn \u003cLee.Schermerhorn@hp.com\u003e\nAcked-by: KOSAKI Motohiro \u003ckosaki.motohiro@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": "f272b7bc447553410dde691aa31fc531adf9c175",
      "tree": "95bd28ba8cea8471c0f461cfe6a9f2f0c2f00dff",
      "parents": [
        "02d46e07e538c285accb5c000a7db3a97eff1fbf"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Thu Mar 12 14:31:36 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 12 16:20:24 2009 -0700"
      },
      "message": "memcg: use correct scan number at reclaim\n\nEven when page reclaim is under mem_cgroup, # of scan page is determined by\nstatus of global LRU. Fix that.\n\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\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": "cbb766766f3f2f6d9326c561b1020590642c6e39",
      "tree": "0caaf23286211653ac03b04570914d19521e0e5d",
      "parents": [
        "7766970cc13e9071b356b1f2a48a9eb8675bfcce"
      ],
      "author": {
        "name": "Vegard Nossum",
        "email": "vegard.nossum@gmail.com",
        "time": "Fri Feb 27 14:03:04 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Feb 27 16:26:21 2009 -0800"
      },
      "message": "mm: fix lazy vmap purging (use-after-free error)\n\nI just got this new warning from kmemcheck:\n\n    WARNING: kmemcheck: Caught 32-bit read from freed memory (c7806a60)\n    a06a80c7ecde70c1a04080c700000000a06709c1000000000000000000000000\n     f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f\n     ^\n\n    Pid: 0, comm: swapper Not tainted (2.6.29-rc4 #230)\n    EIP: 0060:[\u003cc1096df7\u003e] EFLAGS: 00000286 CPU: 0\n    EIP is at __purge_vmap_area_lazy+0x117/0x140\n    EAX: 00070f43 EBX: c7806a40 ECX: c1677080 EDX: 00027b66\n    ESI: 00002001 EDI: c170df0c EBP: c170df00 ESP: c178830c\n     DS: 007b ES: 007b FS: 00d8 GS: 0000 SS: 0068\n    CR0: 80050033 CR2: c7806b14 CR3: 01775000 CR4: 00000690\n    DR0: 00000000 DR1: 00000000 DR2: 00000000 DR3: 00000000\n    DR6: 00004000 DR7: 00000000\n     [\u003cc1096f3e\u003e] free_unmap_vmap_area_noflush+0x6e/0x70\n     [\u003cc1096f6a\u003e] remove_vm_area+0x2a/0x70\n     [\u003cc1097025\u003e] __vunmap+0x45/0xe0\n     [\u003cc10970de\u003e] vunmap+0x1e/0x30\n     [\u003cc1008ba5\u003e] text_poke+0x95/0x150\n     [\u003cc1008ca9\u003e] alternatives_smp_unlock+0x49/0x60\n     [\u003cc171ef47\u003e] alternative_instructions+0x11b/0x124\n     [\u003cc171f991\u003e] check_bugs+0xbd/0xdc\n     [\u003cc17148c5\u003e] start_kernel+0x2ed/0x360\n     [\u003cc171409e\u003e] __init_begin+0x9e/0xa9\n     [\u003cffffffff\u003e] 0xffffffff\n\nIt happened here:\n\n    $ addr2line -e vmlinux -i c1096df7\n    mm/vmalloc.c:540\n\nCode:\n\n\tlist_for_each_entry(va, \u0026valist, purge_list)\n\t\t__free_vmap_area(va);\n\nIt\u0027s this instruction:\n\n    mov    0x20(%ebx),%edx\n\nWhich corresponds to a dereference of va-\u003epurge_list.next:\n\n    (gdb) p ((struct vmap_area *) 0)-\u003epurge_list.next\n    Cannot access memory at address 0x20\n\nIt seems that we should use \"safe\" list traversal here, as the element\nis freed inside the loop. Please verify that this is the right fix.\n\nAcked-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Vegard Nossum \u003cvegard.nossum@gmail.com\u003e\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: \"Paul E. McKenney\" \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: \u003cstable@kernel.org\u003e\t\t[2.6.28.x]\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7766970cc13e9071b356b1f2a48a9eb8675bfcce",
      "tree": "615ebb34f392c882cc0b72e2958249a2f9f0ee19",
      "parents": [
        "5170836679185357dc1b7660bad13287b39e1e33"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Fri Feb 27 14:03:03 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Feb 27 16:26:21 2009 -0800"
      },
      "message": "mm: vmap fix overflow\n\nThe new vmap allocator can wrap the address and get confused in the case\nof large allocations or VMALLOC_END near the end of address space.\n\nProblem reported by Christoph Hellwig on a 32-bit XFS workload.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nReported-by: Christoph Hellwig \u003chch@lst.de\u003e\nCc: \u003cstable@kernel.org\u003e\t\t[2.6.28.x]\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0b0a0806b0d8635e046bf533225a25903b1cddce",
      "tree": "245ac39eb1b7c6008a669ab2d68ed174d66bd7bc",
      "parents": [
        "c15d8a6499d04e5d2cac07f8120f207bb275f60f"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Tue Feb 24 20:51:52 2009 +0000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Feb 25 12:21:42 2009 -0800"
      },
      "message": "shmem: fix shared anonymous accounting\n\nEach time I exit Firefox, /proc/meminfo\u0027s Committed_AS goes down almost\n400 kB: OVERCOMMIT_NEVER would be allowing overcommits it should\nprohibit.\n\nCommit fc8744adc870a8d4366908221508bb113d8b72ee \"Stop playing silly\ngames with the VM_ACCOUNT flag\" changed shmem_file_setup() to set the\nshmem file\u0027s VM_ACCOUNT flag according to VM_NORESERVE not being set in\nthe vma flags; but did so only _after_ the shmem_acct_size(flags, size)\ncall which is expected to pre-account a shared anonymous object.\n\nIt\u0027s all clearer if we switch shmem.c over to use VM_NORESERVE\nthroughout in place of !VM_ACCOUNT.\n\nBut I very nearly sent in a patch which mistakenly removed the\naccounting from tmpfs files: shmem_get_inode()\u0027s memset was good for not\nsetting VM_ACCOUNT, but now it needs to set VM_NORESERVE.\n\nRather than setting that by default, then perhaps clearing it again in\nshmem_file_setup(), let\u0027s pass it as a flag to shmem_get_inode(): that\nallows us to remove the #ifdef CONFIG_SHMEM from shmem_file_setup().\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "adfafefd104d840ee4461965f22624d77532675b",
      "tree": "6c6ba553a2b11703bf5952bd789905ea37c4fc4f",
      "parents": [
        "460c1338fc05add0e8050d4945a46f207b13a5fc",
        "403f307576396f3362fbb65af190885b6036c72c"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Feb 21 14:17:26 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Feb 21 14:17:26 2009 -0800"
      },
      "message": "Merge branch \u0027hibernate\u0027\n\n* hibernate:\n  PM: Fix suspend_console and resume_console to use only one semaphore\n  PM: Wait for console in resume\n  PM: Fix pm_notifiers during user mode hibernation\n  swsusp: clean up shrink_all_zones()\n  swsusp: dont fiddle with swappiness\n  PM: fix build for CONFIG_PM unset\n  PM/hibernate: fix \"swap breaks after hibernation failures\"\n  PM/resume: wait for device probing to finish\n  Consolidate driver_probe_done() loops into one place\n"
    },
    {
      "commit": "0cb57258fe01e9b21076b6a15b6aec7a24168228",
      "tree": "9744786d92356a21d3d2bcd2d3cc2935d81a489f",
      "parents": [
        "3049103ddfc9aac111916bd2f39ac6976c431517"
      ],
      "author": {
        "name": "Johannes Weiner",
        "email": "hannes@cmpxchg.org",
        "time": "Sat Feb 14 02:04:10 2009 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Feb 21 14:17:17 2009 -0800"
      },
      "message": "swsusp: clean up shrink_all_zones()\n\nMove local variables to innermost possible scopes and use local\nvariables to cache calculations/reads done more than once.\n\nNo change in functionality (intended).\n\nSigned-off-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nCc: Len Brown \u003clenb@kernel.org\u003e\nCc: Greg KH \u003cgregkh@suse.de\u003e\nAcked-by: Pavel Machek \u003cpavel@ucw.cz\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3049103ddfc9aac111916bd2f39ac6976c431517",
      "tree": "709bfc2b40389cac7643e27be5307c81a35c6c4b",
      "parents": [
        "09664fda48c5dd63277f1f42888ca9d5dca6037a"
      ],
      "author": {
        "name": "Johannes Weiner",
        "email": "hannes@cmpxchg.org",
        "time": "Sat Feb 14 02:03:08 2009 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Feb 21 14:17:17 2009 -0800"
      },
      "message": "swsusp: dont fiddle with swappiness\n\nsc.swappiness is not used in the swsusp memory shrinking path, do not\nset it.\n\nSigned-off-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nCc: Len Brown \u003clenb@kernel.org\u003e\nCc: Greg KH \u003cgregkh@suse.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a1bb7d61233ba5fb5cd865f907a9ddcc8f8c02bd",
      "tree": "bd0877610aaa2e33a7ff76c684a51a65765c78fb",
      "parents": [
        "eed3ee08292d821282169708e5e8e89a0d0a0c63"
      ],
      "author": {
        "name": "Alan Jenkins",
        "email": "alan-jenkins@tuffmail.co.uk",
        "time": "Sat Feb 14 02:01:14 2009 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Feb 21 14:17:17 2009 -0800"
      },
      "message": "PM/hibernate: fix \"swap breaks after hibernation failures\"\n\nhttp://bugzilla.kernel.org/show_bug.cgi?id\u003d12239\n\nThe image writing code dropped a reference to the current swap device.\nThis doesn\u0027t show up if the hibernation succeeds - because it doesn\u0027t\naffect the image which gets resumed.  But it means multiple _failed_\nhibernations end up freeing the swap device while it is still use!\n\nswsusp_write() finds the block device for the swap file using swap_type_of().\nIt then uses blkdev_get() / blkdev_put() to open and close the block device.\n\nUnfortunately, blkdev_get() assumes ownership of the inode of the block_device\npassed to it.  So blkdev_put() calls iput() on the inode.  This is by design\nand other callers expect this behaviour.  The fix is for swap_type_of() to take\na reference on the inode using bdget().\n\nSigned-off-by: Alan Jenkins \u003calan-jenkins@tuffmail.co.uk\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nCc: Len Brown \u003clenb@kernel.org\u003e\nCc: Greg KH \u003cgregkh@suse.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f6fcba7014f9cc535fa75ef98c008b24e49e2212",
      "tree": "85aae17fc20b8a4b6d5112c740950e0dcdcb9baf",
      "parents": [
        "3fd076dd955a34c35dc456f4ef676e03cdced044"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Fri Feb 20 15:38:48 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Feb 20 17:57:49 2009 -0800"
      },
      "message": "vmalloc: call flush_cache_vunmap() from unmap_kernel_range()\n\nImpact: proper vcache flush on unmap_kernel_range()\n\nflush_cache_vunmap() should be called before pages are unmapped.  Add\na call to it in unmap_kernel_range().\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nAcked-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nAcked-by: David S. Miller \u003cdavem@davemloft.net\u003e\nCc: \u003cstable@kernel.org\u003e\t\t[2.6.28.x]\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3ef0e5ba467366125f04b423f4638baca54a4fc1",
      "tree": "cfe7b95c7b19b1d5b2a8534fa9791d6026e49dcd",
      "parents": [
        "d9190913b71831f5e3d04de62cfb1fd069a9db35"
      ],
      "author": {
        "name": "Johannes Weiner",
        "email": "hannes@cmpxchg.org",
        "time": "Fri Feb 20 15:38:41 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Feb 20 17:57:48 2009 -0800"
      },
      "message": "slab: introduce kzfree()\n\nkzfree() is a wrapper for kfree() that additionally zeroes the underlying\nmemory before releasing it to the slab allocator.\n\nCurrently there is code which memset()s the memory region of an object\nbefore releasing it back to the slab allocator to make sure\nsecurity-sensitive data are really zeroed out after use.\n\nThese callsites can then just use kzfree() which saves some code, makes\nusers greppable and allows for a stupid destructor that isn\u0027t necessarily\naware of the actual object size.\n\nSigned-off-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nReviewed-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: Matt Mackall \u003cmpm@selenic.com\u003e\nAcked-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ba95fd47d177d46743ad94055908d22840370e06",
      "tree": "f29e6921fefba2728c3b7f6854ac7f7729f602b2",
      "parents": [
        "59af0a0b5848caf38f1bf7013905c3e9cdba4d1d",
        "be987fdb55a4726e2fcbab7501f89276bdb57288"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Feb 18 18:33:04 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Feb 18 18:33:04 2009 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.dk/linux-2.6-block\n\n* \u0027for-linus\u0027 of git://git.kernel.dk/linux-2.6-block:\n  block: fix deadlock in blk_abort_queue() for drivers that readd to timeout list\n  block: fix booting from partitioned md array\n  block: revert part of 18ce3751ccd488c78d3827e9f6bf54e6322676fb\n  cciss: PCI power management reset for kexec\n  paride/pg.c: xs(): \u0026\u0026/|| confusion\n  fs/bio: bio_alloc_bioset: pass right object ptr to mempool_free\n  block: fix bad definition of BIO_RW_SYNC\n  bsg: Fix sense buffer bug in SG_IO\n"
    },
    {
      "commit": "cc2559bccc72767cb446f79b071d96c30c26439b",
      "tree": "aacdeee5368e0eef72ed1d7a7cbd7e6ee4837941",
      "parents": [
        "f2dbcfa738368c8a40d4a5f0b65dc9879577cb21"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Wed Feb 18 14:48:33 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Feb 18 15:37:55 2009 -0800"
      },
      "message": "mm: fix memmap init for handling memory hole\n\nNow, early_pfn_in_nid(PFN, NID) may returns false if PFN is a hole.\nand memmap initialization was not done. This was a trouble for\nsparc boot.\n\nTo fix this, the PFN should be initialized and marked as PG_reserved.\nThis patch changes early_pfn_in_nid() return true if PFN is a hole.\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nReported-by: David Miller \u003cdavem@davemlloft.net\u003e\nTested-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nCc: \u003cstable@kernel.org\u003e\t\t[2.6.25.x, 2.6.26.x, 2.6.27.x, 2.6.28.x]\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f2dbcfa738368c8a40d4a5f0b65dc9879577cb21",
      "tree": "bdea32c637fa572a9c356cddd202a57530b2a45c",
      "parents": [
        "ada723dcd681e2dffd7d73345cc8fda0eb0df9bd"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Wed Feb 18 14:48:32 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Feb 18 15:37:55 2009 -0800"
      },
      "message": "mm: clean up for early_pfn_to_nid()\n\nWhat\u0027s happening is that the assertion in mm/page_alloc.c:move_freepages()\nis triggering:\n\n\tBUG_ON(page_zone(start_page) !\u003d page_zone(end_page));\n\nOnce I knew this is what was happening, I added some annotations:\n\n\tif (unlikely(page_zone(start_page) !\u003d page_zone(end_page))) {\n\t\tprintk(KERN_ERR \"move_freepages: Bogus zones: \"\n\t\t       \"start_page[%p] end_page[%p] zone[%p]\\n\",\n\t\t       start_page, end_page, zone);\n\t\tprintk(KERN_ERR \"move_freepages: \"\n\t\t       \"start_zone[%p] end_zone[%p]\\n\",\n\t\t       page_zone(start_page), page_zone(end_page));\n\t\tprintk(KERN_ERR \"move_freepages: \"\n\t\t       \"start_pfn[0x%lx] end_pfn[0x%lx]\\n\",\n\t\t       page_to_pfn(start_page), page_to_pfn(end_page));\n\t\tprintk(KERN_ERR \"move_freepages: \"\n\t\t       \"start_nid[%d] end_nid[%d]\\n\",\n\t\t       page_to_nid(start_page), page_to_nid(end_page));\n ...\n\nAnd here\u0027s what I got:\n\n\tmove_freepages: Bogus zones: start_page[2207d0000] end_page[2207dffc0] zone[fffff8103effcb00]\n\tmove_freepages: start_zone[fffff8103effcb00] end_zone[fffff8003fffeb00]\n\tmove_freepages: start_pfn[0x81f600] end_pfn[0x81f7ff]\n\tmove_freepages: start_nid[1] end_nid[0]\n\nMy memory layout on this box is:\n\n[    0.000000] Zone PFN ranges:\n[    0.000000]   Normal   0x00000000 -\u003e 0x0081ff5d\n[    0.000000] Movable zone start PFN for each node\n[    0.000000] early_node_map[8] active PFN ranges\n[    0.000000]     0: 0x00000000 -\u003e 0x00020000\n[    0.000000]     1: 0x00800000 -\u003e 0x0081f7ff\n[    0.000000]     1: 0x0081f800 -\u003e 0x0081fe50\n[    0.000000]     1: 0x0081fed1 -\u003e 0x0081fed8\n[    0.000000]     1: 0x0081feda -\u003e 0x0081fedb\n[    0.000000]     1: 0x0081fedd -\u003e 0x0081fee5\n[    0.000000]     1: 0x0081fee7 -\u003e 0x0081ff51\n[    0.000000]     1: 0x0081ff59 -\u003e 0x0081ff5d\n\nSo it\u0027s a block move in that 0x81f600--\u003e0x81f7ff region which triggers\nthe problem.\n\nThis patch:\n\nDeclaration of early_pfn_to_nid() is scattered over per-arch include\nfiles, and it seems it\u0027s complicated to know when the declaration is used.\n I think it makes fix-for-memmap-init not easy.\n\nThis patch moves all declaration to include/linux/mm.h\n\nAfter this,\n  if !CONFIG_NODES_POPULATES_NODE_MAP \u0026\u0026 !CONFIG_HAVE_ARCH_EARLY_PFN_TO_NID\n     -\u003e Use static definition in include/linux/mm.h\n  else if !CONFIG_HAVE_ARCH_EARLY_PFN_TO_NID\n     -\u003e Use generic definition in mm/page_alloc.c\n  else\n     -\u003e per-arch back end function will be called.\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nTested-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nReported-by: David Miller \u003cdavem@davemlloft.net\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nCc: \u003cstable@kernel.org\u003e\t\t[2.6.25.x, 2.6.26.x, 2.6.27.x, 2.6.28.x]\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1cf6e7d83bf334cc5916137862c920a97aabc018",
      "tree": "6bdbc4a98e9b332919beaeba0649797fff544795",
      "parents": [
        "610d18f4128ebbd88845d0fc60cce67b49af881e"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Wed Feb 18 14:48:18 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Feb 18 15:37:54 2009 -0800"
      },
      "message": "mm: task dirty accounting fix\n\nYAMAMOTO-san noticed that task_dirty_inc doesn\u0027t seem to be called properly for\ncases where set_page_dirty is not used to dirty a page (eg. mark_buffer_dirty).\n\nAdditionally, there is some inconsistency about when task_dirty_inc is\ncalled.  It is used for dirty balancing, however it even gets called for\n__set_page_dirty_no_writeback.\n\nSo rather than increment it in a set_page_dirty wrapper, move it down to\nexactly where the dirty page accounting stats are incremented.\n\nCc: YAMAMOTO Takashi \u003cyamamoto@valinux.co.jp\u003e\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nAcked-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": "c296861291669f305deef19b78042330d7135017",
      "tree": "a623faa7815c0eb70ea463966c8a8715e7e69246",
      "parents": [
        "5955c7a2cfb6a35429adea5dc480002b15ca8cfc"
      ],
      "author": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Wed Feb 18 14:48:12 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Feb 18 15:37:53 2009 -0800"
      },
      "message": "vmalloc: add __get_vm_area_caller()\n\nWe have get_vm_area_caller() and __get_vm_area() but not\n__get_vm_area_caller()\n\nOn powerpc, I use __get_vm_area() to separate the ranges of addresses\ngiven to vmalloc vs.  ioremap (various good reasons for that) so in order\nto be able to implement the new caller tracking in /proc/vmallocinfo, I\nneed a \"_caller\" variant of it.\n\n(akpm: needed for ongoing powerpc development, so merge it early)\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@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": "93dbb393503d53cd226e5e1f0088fe8f4dbaa2b8",
      "tree": "790365e207951cf6810e8995f3141ddc0b74519b",
      "parents": [
        "c1c201200a359cf3b6e2e36a4236cdca77a3cd8e"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Mon Feb 16 10:25:40 2009 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Wed Feb 18 10:32:00 2009 +0100"
      },
      "message": "block: fix bad definition of BIO_RW_SYNC\n\nWe can\u0027t OR shift values, so get rid of BIO_RW_SYNC and use BIO_RW_SYNCIO\nand BIO_RW_UNPLUG explicitly. This brings back the behaviour from before\n213d9417fec62ef4c3675621b9364a667954d4dd.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "35010334aa007480a833401b80922299cb1a15ef",
      "tree": "6e318eb89da45d37ea8dceddd1ae6858b74dee1e",
      "parents": [
        "8ce9a75a307e142a8871c649627555e0e4a1eefb",
        "be716615fe596ee117292dc615e95f707fb67fd1"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Feb 17 14:27:39 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Feb 17 14:27:39 2009 -0800"
      },
      "message": "Merge branch \u0027x86-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027x86-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  x86, vm86: fix preemption bug\n  x86, olpc: fix model detection without OFW\n  x86, hpet: fix for LS21 + HPET \u003d boot hang\n  x86: CPA avoid repeated lazy mmu flush\n  x86: warn if arch_flush_lazy_mmu_cpu is called in preemptible context\n  x86/paravirt: make arch_flush_lazy_mmu/cpu disable preemption\n  x86, pat: fix warn_on_once() while mapping 0-1MB range with /dev/mem\n  x86/cpa: make sure cpa is safe to call in lazy mmu mode\n  x86, ptrace, mm: fix double-free on race\n"
    },
    {
      "commit": "071a0bc2ceace31266836801510879407a3701fa",
      "tree": "9b52364206229861146e48e299e4e9079b6259d3",
      "parents": [
        "3a4c6800f31ea8395628af5e7e490270ee5d0585",
        "b1aabecd55931ee754f6a913969516b26a0e682e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 12 09:56:14 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 12 09:56:14 2009 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/penberg/slab-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/penberg/slab-2.6:\n  mm: Export symbol ksize()\n"
    },
    {
      "commit": "3a4c6800f31ea8395628af5e7e490270ee5d0585",
      "tree": "5703cf8140e5b58f5f333dbbf7b1514404584e69",
      "parents": [
        "b578f3fcca1e78624dfb5f358776e63711d7fda2"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Thu Feb 12 04:34:23 2009 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 12 08:10:53 2009 -0800"
      },
      "message": "Fix page writeback thinko, causing Berkeley DB slowdown\n\nA bug was introduced into write_cache_pages cyclic writeout by commit\n31a12666d8f0c22235297e1c1575f82061480029 (\"mm: write_cache_pages cyclic\nfix\").  The intention (and comments) is that we should cycle back and\nlook for more dirty pages at the beginning of the file if there is no\nmore work to be done.\n\nBut the !done condition was dropped from the test.  This means that any\ntime the page writeout loop breaks (eg.  due to nr_to_write \u003d\u003d 0), we\nwill set index to 0, then goto again.  This will set done_index to\nindex, then find done is set, so will proceed to the end of the\nfunction.  When updating mapping-\u003ewriteback_index for cyclic writeout,\nwe now use done_index \u003d\u003d 0, so we\u0027re always cycling back to 0.\n\nThis seemed to be causing random mmap writes (slapadd and iozone) to\nstart writing more pages from the LRU and writeout would slowdown, and\ncaused bugzilla entry\n\n\thttp://bugzilla.kernel.org/show_bug.cgi?id\u003d12604\n\nabout Berkeley DB slowing down dramatically.\n\nWith this patch, iozone random write performance is increased nearly\n5x on my system (iozone -B -r 4k -s 64k -s 512m -s 1200m on ext2).\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nReported-and-tested-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b1aabecd55931ee754f6a913969516b26a0e682e",
      "tree": "a52357aabb016960d80fce9a7ad0f78441e9f5c1",
      "parents": [
        "b578f3fcca1e78624dfb5f358776e63711d7fda2"
      ],
      "author": {
        "name": "Kirill A. Shutemov",
        "email": "kirill@shutemov.name",
        "time": "Tue Feb 10 15:21:44 2009 +0200"
      },
      "committer": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Thu Feb 12 17:50:46 2009 +0200"
      },
      "message": "mm: Export symbol ksize()\n\nCommit 7b2cd92adc5430b0c1adeb120971852b4ea1ab08 (\"crypto: api - Fix\nzeroing on free\") added modular user of ksize(). Export that to fix\ncrypto.ko compilation.\n\nCc: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: Kirill A. Shutemov \u003ckirill@shutemov.name\u003e\nSigned-off-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\n"
    },
    {
      "commit": "9480c53e9b2aa13a06283ffb96bb8f1873ac4e9a",
      "tree": "4d7949c56e6877f0aac372bebed379eda7b0e646",
      "parents": [
        "3abdbf90a3ffb006108c831c56b092e35483b6ec"
      ],
      "author": {
        "name": "Jeremy Fitzhardinge",
        "email": "jeremy@goop.org",
        "time": "Wed Feb 11 13:04:41 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Feb 11 14:25:37 2009 -0800"
      },
      "message": "mm: rearrange exit_mmap() to unlock before arch_exit_mmap\n\nChristophe Saout reported [in precursor to:\nhttp://marc.info/?l\u003dlinux-kernel\u0026m\u003d123209902707347\u0026w\u003d4]:\n\n\u003e Note that I also some a different issue with CONFIG_UNEVICTABLE_LRU.\n\u003e Seems like Xen tears down current-\u003emm early on process termination, so\n\u003e that __get_user_pages in exit_mmap causes nasty messages when the\n\u003e process had any mlocked pages.  (in fact, it somehow manages to get into\n\u003e the swapping code and produces a null pointer dereference trying to get\n\u003e a swap token)\n\nJeremy explained:\n\nYes.  In the normal case under Xen, an in-use pagetable is \"pinned\",\nmeaning that it is RO to the kernel, and all updates must go via hypercall\n(or writes are trapped and emulated, which is much the same thing).  An\nunpinned pagetable is not currently in use by any process, and can be\ndirectly accessed as normal RW pages.\n\nAs an optimisation at process exit time, we unpin the pagetable as early\nas possible (switching the process to init_mm), so that all the normal\npagetable teardown can happen with direct memory accesses.\n\nThis happens in exit_mmap() -\u003e arch_exit_mmap().  The munlocking happens\na few lines below.  The obvious thing to do would be to move\narch_exit_mmap() to below the munlock code, but I think we\u0027d want to\ncall it even if mm-\u003emmap is NULL, just to be on the safe side.\n\nThus, this patch:\n\nexit_mmap() needs to unlock any locked vmas before calling arch_exit_mmap,\nas the latter may switch the current mm to init_mm, which would cause the\nformer to fail.\n\nSigned-off-by: Jeremy Fitzhardinge \u003cjeremy.fitzhardinge@citrix.com\u003e\nSigned-off-by: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nCc: Christophe Saout \u003cchristophe@saout.de\u003e\nCc: Keir Fraser \u003ckeir.fraser@eu.citrix.com\u003e\nCc: Christophe Saout \u003cchristophe@saout.de\u003e\nCc: Alex Williamson \u003calex.williamson@hp.com\u003e\nCc: \u003cstable@kernel.org\u003e\t\t[2.6.28.x]\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "89e1219004b3657cc014521663eeef0744f1c99d",
      "tree": "350162d8019af504c6f0461b2f54606bd6af7142",
      "parents": [
        "6c5979631b4b03c9288776562c18036765e398c1"
      ],
      "author": {
        "name": "Federico Cuello",
        "email": "fedux@lugmen.org.ar",
        "time": "Wed Feb 11 13:04:39 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Feb 11 14:25:37 2009 -0800"
      },
      "message": "writeback: fix break condition\n\nCommit dcf6a79dda5cc2a2bec183e50d829030c0972aaa (\"write-back: fix\nnr_to_write counter\") fixed nr_to_write counter, but didn\u0027t set the break\ncondition properly.\n\nIf nr_to_write \u003d\u003d 0 after being decremented it will loop one more time\nbefore setting done \u003d 1 and breaking the loop.\n\n[akpm@linux-foundation.org: coding-style fixes]\nCc: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\nAcked-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2e9c23724328ae4e56c42a35a717a956d7d3001d",
      "tree": "e96657542d354cef4d50020b48ab565053810d5d",
      "parents": [
        "d4097456cd1d9285e876fc5d08a789462804cc28"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Wed Feb 11 13:04:29 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Feb 11 14:25:35 2009 -0800"
      },
      "message": "memcg: use __GFP_NOWARN in page cgroup allocation\n\npage_cgroup\u0027s page allocation at init/memory hotplug uses kmalloc() and\nvmalloc(). If kmalloc() failes, vmalloc() is used.\n\nThis is because vmalloc() is very limited resource on 32bit systems.\nWe want to use kmalloc() first.\n\nBut in this kind of call, __GFP_NOWARN should be specified.\n\nReported-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nAcked-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nAcked-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "508b9f8efdad123b202b228f71f59feba51e4fb5",
      "tree": "0da0d842edb168cfb7b883a3148b147dc631c2b9",
      "parents": [
        "02ac597c9b86af49b2016aa98aee20ab59dbf0d2"
      ],
      "author": {
        "name": "MinChan Kim",
        "email": "minchan.kim@gmail.com",
        "time": "Wed Feb 11 13:04:27 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Feb 11 14:25:35 2009 -0800"
      },
      "message": "mm: fix mlocked page counter mismatch\n\nWhen I tested following program, I found that the mlocked counter\nis strange.  It cannot free some mlocked pages.\n\nIt is because try_to_unmap_file() doesn\u0027t check real\npage mappings in vmas.\n\nThat is because the goal of an address_space for a file is to find all\nprocesses into which the file\u0027s specific interval is mapped.  It is\nrelated to the file\u0027s interval, not to pages.\n\nEven if the page isn\u0027t really mapped by the vma, it returns SWAP_MLOCK\nsince the vma has VM_LOCKED, then calls try_to_mlock_page.  After this the\nmlocked counter is increased again.\n\nCOWed anon page in a file-backed vma could be a such case.  This patch\nresolves it.\n\n-- my test program --\n\nint main()\n{\n       mlockall(MCL_CURRENT);\n       return 0;\n}\n\n-- before --\n\nroot@barrios-target-linux:~# cat /proc/meminfo | egrep \u0027Mlo|Unev\u0027\nUnevictable:           0 kB\nMlocked:               0 kB\n\n-- after --\n\nroot@barrios-target-linux:~# cat /proc/meminfo | egrep \u0027Mlo|Unev\u0027\nUnevictable:           8 kB\nMlocked:               8 kB\n\nSigned-off-by: MinChan Kim \u003cminchan.kim@gmail.com\u003e\nAcked-by: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nAcked-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nTested-by: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "fc3501d411d34823fb9be248a95a0c44f945866f",
      "tree": "9a16de761b4c7d3401149a212b8004df23fbbcca",
      "parents": [
        "35887b1cf74dc751dd0574b26515142d3cea9376"
      ],
      "author": {
        "name": "Sven Wegener",
        "email": "sven.wegener@stealer.net",
        "time": "Wed Feb 11 13:04:23 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Feb 11 14:25:35 2009 -0800"
      },
      "message": "mm: fix dirty_bytes/dirty_background_bytes sysctls on 64bit arches\n\nWe need to pass an unsigned long as the minimum, because it gets casted\nto an unsigned long in the sysctl handler. If we pass an int, we\u0027ll\naccess four more bytes on 64bit arches, resulting in a random minimum\nvalue.\n\n[rientjes@google.com: fix type of `old_bytes\u0027]\nSigned-off-by: Sven Wegener \u003csven.wegener@stealer.net\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Dave Chinner \u003cdavid@fromorbit.com\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-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": "1001c9fb8721ab395e21f571ed2aaa523cdd1e29",
      "tree": "fc8835db2b1a5fb5b147af4025767d3393bb3a33",
      "parents": [
        "17c9d12e126cb0de8d535dc1908c4819d712bc68"
      ],
      "author": {
        "name": "Daisuke Nishimura",
        "email": "nishimura@mxp.nes.nec.co.jp",
        "time": "Wed Feb 11 13:04:18 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Feb 11 14:25:34 2009 -0800"
      },
      "message": "migration: migrate_vmas should check \"vma\"\n\nmigrate_vmas() should check \"vma\" not \"vma-\u003evm_next\" for for-loop condition.\n\nSigned-off-by: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "17c9d12e126cb0de8d535dc1908c4819d712bc68",
      "tree": "a1a9a07e2eb70e8c474d3bd040d724413bde9718",
      "parents": [
        "6c6f1f0f4db31a192916eaa31ec2f114fda7d5e5"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mel@csn.ul.ie",
        "time": "Wed Feb 11 16:34:16 2009 +0000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Feb 11 12:38:09 2009 -0800"
      },
      "message": "Do not account for hugetlbfs quota at mmap() time if mapping [SHM|MAP]_NORESERVE\n\nCommit 5a6fe125950676015f5108fb71b2a67441755003 brought hugetlbfs more\nin line with the core VM by obeying VM_NORESERVE and not reserving\nhugepages for both shared and private mappings when [SHM|MAP]_NORESERVE\nare specified.  However, it is still taking filesystem quota\nunconditionally.\n\nAt fault time, if there are no reserves and attempt is made to allocate\nthe page and account for filesystem quota.  If either fail, the fault\nfails.  The impact is that quota is getting accounted for twice.  This\npatch partially reverts 5a6fe125950676015f5108fb71b2a67441755003.  To\nhelp prevent this mistake happening again, it improves the documentation\nof hugetlb_reserve_pages()\n\nReported-by: Andy Whitcroft \u003capw@canonical.com\u003e\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nAcked-by: Andy Whitcroft \u003capw@canonical.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9f339e7028e2855717af3193c938f9960ad13b38",
      "tree": "76e0e9181f4ee2b324742d517518e837d5c250bf",
      "parents": [
        "06eb23b1ba39c61ee5d5faeb42a097635693e370"
      ],
      "author": {
        "name": "Markus Metzger",
        "email": "markus.t.metzger@intel.com",
        "time": "Wed Feb 11 15:10:27 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Feb 11 15:44:20 2009 +0100"
      },
      "message": "x86, ptrace, mm: fix double-free on race\n\nPtrace_detach() races with __ptrace_unlink() if the traced task is\nreaped while detaching. This might cause a double-free of the BTS\nbuffer.\n\nChange the ptrace_detach() path to only do the memory accounting in\nptrace_bts_detach() and leave the buffer free to ptrace_bts_untrace()\nwhich will be called from __ptrace_unlink().\n\nThe fix follows a proposal from Oleg Nesterov.\n\nReported-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nSigned-off-by: Markus Metzger \u003cmarkus.t.metzger@intel.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "5a6fe125950676015f5108fb71b2a67441755003",
      "tree": "c985fac46de39392466c4917c497b50bdc9c0757",
      "parents": [
        "4c098bcd55fad34dcf224bf8343db6a9ac58fc68"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mel@csn.ul.ie",
        "time": "Tue Feb 10 14:02:27 2009 +0000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Feb 10 10:48:42 2009 -0800"
      },
      "message": "Do not account for the address space used by hugetlbfs using VM_ACCOUNT\n\nWhen overcommit is disabled, the core VM accounts for pages used by anonymous\nshared, private mappings and special mappings. It keeps track of VMAs that\nshould be accounted for with VM_ACCOUNT and VMAs that never had a reserve\nwith VM_NORESERVE.\n\nOvercommit for hugetlbfs is much riskier than overcommit for base pages\ndue to contiguity requirements. It avoids overcommiting on both shared and\nprivate mappings using reservation counters that are checked and updated\nduring mmap(). This ensures (within limits) that hugepages exist in the\nfuture when faults occurs or it is too easy to applications to be SIGKILLed.\n\nAs hugetlbfs makes its own reservations of a different unit to the base page\nsize, VM_ACCOUNT should never be set. Even if the units were correct, we would\ndouble account for the usage in the core VM and hugetlbfs. VM_NORESERVE may\nbe set because an application can request no reserves be made for hugetlbfs\nat the risk of getting killed later.\n\nWith commit fc8744adc870a8d4366908221508bb113d8b72ee, VM_NORESERVE and\nVM_ACCOUNT are getting unconditionally set for hugetlbfs-backed mappings. This\nbreaks the accounting for both the core VM and hugetlbfs, can trigger an\nOOM storm when hugepage pools are too small lockups and corrupted counters\notherwise are used. This patch brings hugetlbfs more in line with how the\ncore VM treats VM_NORESERVE but prevents VM_ACCOUNT being set.\n\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d5b562330ec766292a3ac54ae5e0673610bd5b3d",
      "tree": "a0e10b64c1f7264efd073bbb0d93011c2064730f",
      "parents": [
        "8e4921515c1a379539607eb443d51c30f4f7f338"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Sun Feb 08 20:56:58 2009 +0000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Feb 08 13:53:28 2009 -0800"
      },
      "message": "mm: fix error case in mlock downgrade reversion\n\nCommit 27421e211a39784694b597dbf35848b88363c248, Manually revert\n\"mlock: downgrade mmap sem while populating mlocked regions\", has\nintroduced its own regression: __mlock_vma_pages_range() may report\nan error (for example, -EFAULT from trying to lock down pages from\nbeyond EOF), but mlock_vma_pages_range() must hide that from its\ncallers as before.\n\nReported-by: Sami Farin \u003csafari-kernel@safari.iki.fi\u003e\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: stable@kernel.org\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ab92661d5d9514647346047f30f67a7f35ffea67",
      "tree": "3ed67a71d7cce6dbd5b6bd559966f7fc137c8f00",
      "parents": [
        "777c6c5f1f6e757ae49ecca2ed72d6b1f523c007"
      ],
      "author": {
        "name": "Carsten Otte",
        "email": "cotte@de.ibm.com",
        "time": "Wed Feb 04 15:12:16 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 05 12:56:48 2009 -0800"
      },
      "message": "do_wp_page: fix regression with execute in place\n\nFix do_wp_page for VM_MIXEDMAP mappings.\n\nIn the case where pfn_valid returns 0 for a pfn at the beginning of\ndo_wp_page and the mapping is not shared writable, the code branches to\nlabel `gotten:\u0027 with old_page \u003d\u003d NULL.\n\nIn case the vma is locked (vma-\u003evm_flags \u0026 VM_LOCKED), lock_page,\nclear_page_mlock, and unlock_page try to access the old_page.\n\nThis patch checks whether old_page is valid before it is dereferenced.\n\nThe regression was introduced by \"mlock: mlocked pages are unevictable\"\n(commit b291f000393f5a0b679012b39d79fbc85c018233).\n\nSigned-off-by: Carsten Otte \u003ccotte@de.ibm.com\u003e\nCc: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nCc: \u003cstable@kernel.org\u003e\t\t[2.6.28.x]\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "dcf6a79dda5cc2a2bec183e50d829030c0972aaa",
      "tree": "557b2867e7c9df361f50b913936d60d4245cf6f8",
      "parents": [
        "5193535517825f9a07967e4868a1103013d0a99d"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Mon Feb 02 18:33:49 2009 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Feb 03 16:59:08 2009 -0800"
      },
      "message": "write-back: fix nr_to_write counter\n\nCommit 05fe478dd04e02fa230c305ab9b5616669821dd3 introduced some\n@wbc-\u003enr_to_write breakage.\n\nIt made the following changes:\n 1. Decrement wbc-\u003enr_to_write instead of nr_to_write\n 2. Decrement wbc-\u003enr_to_write _only_ if wbc-\u003esync_mode \u003d\u003d WB_SYNC_NONE\n 3. If synced nr_to_write pages, stop only if if wbc-\u003esync_mode \u003d\u003d\n    WB_SYNC_NONE, otherwise keep going.\n\nHowever, according to the commit message, the intention was to only make\nchange 3.  Change 1 is a bug.  Change 2 does not seem to be necessary,\nand it breaks UBIFS expectations, so if needed, it should be done\nseparately later.  And change 2 does not seem to be documented in the\ncommit message.\n\nThis patch does the following:\n 1. Undo changes 1 and 2\n 2. Add a comment explaining change 3 (it very useful to have comments\n    in _code_, not only in the commit).\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\nAcked-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "859281ff370977f917ec2195f86a5bfccf1fc6d6",
      "tree": "ea8b4d21187b5de7b61ca368701c89d3504d5f96",
      "parents": [
        "93bfbd71db4d2e01c05e219f285249a74808b1d4",
        "f58914e41473faf15e2dd66ad26be914da1bce71"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Feb 02 19:27:00 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Feb 02 19:27:00 2009 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/penberg/slab-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/penberg/slab-2.6:\n  slub: fix per cpu kmem_cache_cpu array memory leak\n  kmalloc: return NULL instead of link failure\n"
    },
    {
      "commit": "27421e211a39784694b597dbf35848b88363c248",
      "tree": "8d9a06e453c40dea7db3a3d0d9d3d864690427db",
      "parents": [
        "45c82b5a770be66845687a7d027c8b52946d59af"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Feb 01 11:00:16 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Feb 01 11:00:16 2009 -0800"
      },
      "message": "Manually revert \"mlock: downgrade mmap sem while populating mlocked regions\"\n\nThis essentially reverts commit 8edb08caf68184fb170f4f69c7445929e199eaea.\n\nIt downgraded our mmap semaphore to a read-lock while mlocking pages, in\norder to allow other threads (and external accesses like \"ps\" et al) to\nwalk the vma lists and take page faults etc.  Which is a nice idea, but\nthe implementation does not work.\n\nBecause we cannot upgrade the lock back to a write lock without\nreleasing the mmap semaphore, the code had to release the lock entirely\nand then re-take it as a writelock.  However, that meant that the caller\npossibly lost the vma chain that it was following, since now another\nthread could come in and mmap/munmap the range.\n\nThe code tried to work around that by just looking up the vma again and\nerroring out if that happened, but quite frankly, that was just a buggy\nhack that doesn\u0027t actually protect against anything (the other thread\ncould just have replaced the vma with another one instead of totally\nunmapping it).\n\nThe only way to downgrade to a read map _reliably_ is to do it at the\nend, which is likely the right thing to do: do all the \u0027vma\u0027 operations\nwith the write-lock held, then downgrade to a read after completing them\nall, and then do the \"populate the newly mlocked regions\" while holding\njust the read lock.  And then just drop the read-lock and return to user\nspace.\n\nThe (perhaps somewhat simpler) alternative is to just make all the\ncallers of mlock_vma_pages_range() know that the mmap lock got dropped,\nand just re-grab the mmap semaphore if it needs to mlock more than one\nvma region.\n\nSo we can do this \"downgrade mmap sem while populating mlocked regions\"\nthing right, but the way it was done here was absolutely not correct.\nThus the revert, in the expectation that we will do it all correctly\nsome day.\n\nCc: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nCc: Rik van Riel \u003criel@redhat.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": "fc8744adc870a8d4366908221508bb113d8b72ee",
      "tree": "755f4c4a1cc30567fde4e60c9cc5e6a889c360b0",
      "parents": [
        "33bfad54b58cf05cfe6678c3ec9235d4bc8db4c2"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jan 31 15:08:56 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jan 31 15:08:56 2009 -0800"
      },
      "message": "Stop playing silly games with the VM_ACCOUNT flag\n\nThe mmap_region() code would temporarily set the VM_ACCOUNT flag for\nanonymous shared mappings just to inform shmem_zero_setup() that it\nshould enable accounting for the resulting shm object.  It would then\nclear the flag after calling -\u003emmap (for the /dev/zero case) or doing\nshmem_zero_setup() (for the MAP_ANON case).\n\nThis just resulted in vma merge issues, but also made for just\nunnecessary confusion.  Use the already-existing VM_NORESERVE flag for\nthis instead, and let shmem_{zero|file}_setup() just figure it out from\nthat.\n\nThis also happens to make it obvious that the new DRI2 GEM layer uses a\nnon-reserving backing store for its object allocation - which is quite\npossibly not intentional.  But since I didn\u0027t want to change semantics\nin this patch, I left it alone, and just updated the caller to use the\nnew flag semantics.\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "33bfad54b58cf05cfe6678c3ec9235d4bc8db4c2",
      "tree": "d6be0ff97effa23289b2566acf8e56a49aa5657e",
      "parents": [
        "c01a25e7cf6dcb0fa69c155706d5dd1e76e53796"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 30 11:37:22 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 30 11:37:22 2009 -0800"
      },
      "message": "Allow opportunistic merging of VM_CAN_NONLINEAR areas\n\nCommit de33c8db5910cda599899dd431cc30d7c1018cbf (\"Fix OOPS in\nmmap_region() when merging adjacent VM_LOCKED file segments\") unified\nthe vma merging of anonymous and file maps to just one place, which\nsimplified the code and fixed a use-after-free bug that could cause an\noops.\n\nBut by doing the merge opportunistically before even having called\n-\u003emmap() on the file method, it now compares two different \u0027vm_flags\u0027\nvalues: the pre-mmap() value of the new not-yet-formed vma, and previous\nmappings of the same file around it.\n\nAnd in doing so, it refused to merge the common file case, which adds a\nmarker to say \"I can be made non-linear\".\n\nThis fixes it by just adding a set of flags that don\u0027t have to match,\nbecause we know they are ok to merge.  Currently it\u0027s only that single\nVM_CAN_NONLINEAR flag, but at least conceptually there could be others\nin the future.\n\nReported-and-acked-by: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: Lee Schermerhorn \u003cLee.Schermerhorn@hp.com\u003e\nCc: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Greg KH \u003cgregkh@suse.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "299b4eaa302138426d5a9ecd954de1f565d76c94",
      "tree": "790271af066eaa6d01f94ff91ab14d54f96c6f62",
      "parents": [
        "248ae0d43fe7f951352eedfff36572d4b75ce963"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Thu Jan 29 14:25:17 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 29 18:04:44 2009 -0800"
      },
      "message": "memcg: NULL pointer dereference at rmdir on some NUMA systems\n\nN_POSSIBLE doesn\u0027t means there is memory...and force_empty can\nvisit invalid node which have no pgdat.\n\nTo visit all valid nodes, N_HIGH_MEMORY should be used.\n\nReported-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nTested-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.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": "85d9fc89fb0f0703df6444f260187c088a8d59ff",
      "tree": "ba034e2b8bff6b7f3b62a826a0106dc0e1391b46",
      "parents": [
        "7460db567bbca76bf087d1694d792a1a96bdaa26"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Thu Jan 29 14:25:13 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 29 18:04:43 2009 -0800"
      },
      "message": "memcg: fix refcnt handling at swapoff\n\nNow, at swapoff, even while try_charge() fails, commit is executed.  This\nis a bug which turns the refcnt of cgroup_subsys_state negative.\n\nReported-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nTested-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nTested-by: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nReviewed-by: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\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": "7bcc1bb1232de6efc0b85e0c7fe38e90b2436318",
      "tree": "3952a706885f4c57217f4196f055a7c16d0af80b",
      "parents": [
        "baef99a08a2e23d9386b47e53fa5f0d44fc98f66"
      ],
      "author": {
        "name": "Daisuke Nishimura",
        "email": "nishimura@mxp.nes.nec.co.jp",
        "time": "Thu Jan 29 14:25:11 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 29 18:04:43 2009 -0800"
      },
      "message": "memcg: get/put parents at create/free\n\nThe lifetime of struct cgroup and struct mem_cgroup is different and\nmem_cgroup has its own reference count for handling references from\nswap_cgroup.\n\nThis causes strange problem that the parent mem_cgroup dies while child\nmem_cgroup alive, and this problem causes a bug in case of\nuse_hierarchy\u003d\u003d1 because res_counter_uncharge climbs up the tree.\n\nThis patch is for avoiding it by getting the parent at create, and putting\nit at freeing.\n\nSigned-off-by: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nReviewed-by; KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: 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": "de33c8db5910cda599899dd431cc30d7c1018cbf",
      "tree": "4ee9ba8685bae5d1719a3158284d0c197c83afde",
      "parents": [
        "18e352e4a73465349711a9324767e1b2453383e2"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 29 17:46:42 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 29 17:46:42 2009 -0800"
      },
      "message": "Fix OOPS in mmap_region() when merging adjacent VM_LOCKED file segments\n\nAs of commit ba470de43188cdbff795b5da43a1474523c6c2fb (\"map: handle\nmlocked pages during map, remap, unmap\") we now use the \u0027vma\u0027 variable\nat the end of mmap_region() to handle the page-in of newly mapped\nmlocked pages.\n\nHowever, if we merged adjacent vma\u0027s together, the vma we\u0027re using may\nbe stale.  We historically consciously avoided using it after the merge\noperation, but that got overlooked when redoing the locked page\nhandling.\n\nThis commit simplifies mmap_region() by doing any vma merges early,\navoiding the issue entirely, and \u0027vma\u0027 will always be valid.  As pointed\nout by Hugh Dickins, this depends on any drivers that change the page\noffset of flags to have set one of the VM_SPECIAL bits (so that they\ncannot trigger the early merge logic), but that\u0027s true in general.\n\nReported-and-tested-by: Maksim Yevmenkin \u003cmaksim.yevmenkin@gmail.com\u003e\nCc: Lee Schermerhorn \u003cLee.Schermerhorn@hp.com\u003e\nCc: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3718909448116bf4411445468c58acc946379f92",
      "tree": "77d34de16274c12fb2bdcc946379a1c667f5671c",
      "parents": [
        "a6525042bfdfcab128bd91fad264de10fd24a55e"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Tue Jan 27 18:59:46 2009 -0800"
      },
      "committer": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Wed Jan 28 10:43:42 2009 +0200"
      },
      "message": "slub: fix per cpu kmem_cache_cpu array memory leak\n\nThe per cpu array of kmem_cache_cpu structures accomodates\nNR_KMEM_CACHE_CPU such structs.\n\nWhen this array overflows and a struct is allocated by kmalloc(), it may\nhave an address at the upper bound of this array.  If this happens, it\ndoes not get freed and the per cpu kmem_cache_cpu_free pointer will be out\nof bounds after kmem_cache_destroy() or cpu offlining.\n\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\n"
    },
    {
      "commit": "05ae6fa31874eda2484da13c5dc4ddee8a47a0a4",
      "tree": "c8fb50ace8d0f7f56d37b6157cc217d565b30f2c",
      "parents": [
        "b9d57f94bb0ed56a5a2b58552a9ff4453013ff0b"
      ],
      "author": {
        "name": "Greg Ungerer",
        "email": "gerg@uclinux.org",
        "time": "Tue Jan 13 17:30:22 2009 +1000"
      },
      "committer": {
        "name": "Greg Ungerer",
        "email": "gerg@uclinux.org",
        "time": "Tue Jan 27 16:42:03 2009 +1000"
      },
      "message": "uclinux: add process name to allocation error message\n\nThis patch adds the name of the process to the bad allocation error\nmessage on non-MMU systems.\n\nChanged suggested by jsujjavanich@syntech-fuelmaster.com\n\nSigned-off-by: Greg Ungerer \u003cgerg@uclinux.org\u003e\n"
    },
    {
      "commit": "eb6434d9e79a72d35d68811efd68fe8bab8f5baf",
      "tree": "a6cdf0330403cfbea2df4a4f775e104da17dd1a4",
      "parents": [
        "f686359e0da5ae71459ee045646a5f508f9ff6d8"
      ],
      "author": {
        "name": "Paul Mundt",
        "email": "lethal@linux-sh.org",
        "time": "Wed Jan 21 17:45:47 2009 +0900"
      },
      "committer": {
        "name": "Paul Mundt",
        "email": "lethal@linux-sh.org",
        "time": "Wed Jan 21 17:45:47 2009 +0900"
      },
      "message": "nommu: Stub in vm_map_ram()/vm_unmap_ram()/vm_unmap_aliases().\n\nPresently we do not support these interfaces, so make them BUG() wrappers\nas per the rest of the vmap interface on nommu. Fixes up the modular xfs\nbuild.\n\nSigned-off-by: Paul Mundt \u003clethal@linux-sh.org\u003e\n"
    },
    {
      "commit": "068b38c1fa7a9210608f27ac521897ccc5f9b726",
      "tree": "6ae0ca440bab074c03a4cd4528e8c1467458753f",
      "parents": [
        "0eb253e223c88b982461e59154fcad1b82597592"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Thu Jan 15 13:51:26 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 15 16:39:41 2009 -0800"
      },
      "message": "memcg: fix a race when setting memory.swappiness\n\n(suppose: memcg-\u003euse_hierarchy \u003d\u003d 0 and memcg-\u003eswappiness \u003d\u003d 60)\n\necho 10 \u003e /memcg/0/swappiness   |\n  mem_cgroup_swappiness_write() |\n    ...                         | echo 1 \u003e /memcg/0/use_hierarchy\n                                | mkdir /mnt/0/1\n                                |   sub_memcg-\u003eswappiness \u003d 60;\n    memcg-\u003eswappiness \u003d 10;     |\n\nIn the above scenario, we end up having 2 different swappiness\nvalues in a single hierarchy.\n\nWe should hold cgroup_lock() when cheking cgrp-\u003echildren list.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.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": "0eb253e223c88b982461e59154fcad1b82597592",
      "tree": "87d94d6512c26a0b70a452c0b50958b443824966",
      "parents": [
        "9e1c9d865543593ee92ec3a5075f064dec981a96"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Thu Jan 15 13:51:25 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 15 16:39:41 2009 -0800"
      },
      "message": "memcg: fix section mismatch\n\nAt system boot when creating the top cgroup, mem_cgroup_create() calls\nenable_swap_cgroup() which is marked as __init, so mark\nmem_cgroup_create() as __ref to avoid false section mismatch warning.\n\nReported-by: Rakib Mullick \u003crakib.mullick@gmail.com\u003e\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nAcked-by; KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Balbir Singh \u003cbalbir@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": "46666d8ac42893f90edde7e57a11bc8749d7e89c",
      "tree": "363286b0f89e1e25695770074ecd87064f80e09a",
      "parents": [
        "4d1c627389c8ba6d9e703208567ffcdbd356f682"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Thu Jan 15 13:51:15 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 15 16:39:40 2009 -0800"
      },
      "message": "revert \"mm: vmalloc use mutex for purge\"\n\nRevert commit e97a630eb0f5b8b380fd67504de6cedebb489003 (\"mm: vmalloc use\nmutex for purge\")\n\nBryan Donlan reports:\n\n: After testing 2.6.29-rc1 on xen-x86 with a btrfs root filesystem, I\n: got the OOPS quoted below and a hard freeze shortly after boot.\n: Boot messages and config are attached.\n:\n: ------------[ cut here ]------------\n: Kernel BUG at c05ef80d [verbose debug info unavailable]\n: invalid opcode: 0000 [#1] SMP\n: last sysfs file: /sys/block/xvdc/size\n: Modules linked in:\n:\n: Pid: 0, comm: swapper Not tainted (2.6.29-rc1 #6)\n: EIP: 0061:[\u003cc05ef80d\u003e] EFLAGS: 00010087 CPU: 2\n: EIP is at schedule+0x7cd/0x950\n: EAX: d5aeca80 EBX: 00000002 ECX: 00000000 EDX: d4cb9a40\n: ESI: c12f5600 EDI: d4cb9a40 EBP: d6033fa4 ESP: d6033ef4\n:  DS: 007b ES: 007b FS: 00d8 GS: 0000 SS: 0069\n: Process swapper (pid: 0, ti\u003dd6032000 task\u003dd6020b70 task.ti\u003dd6032000)\n: Stack:\n:  000d85bc 00000000 000186a0 00000000 0dd11410 c0105417 c12efe00 0dc367c3\n:  00000011 c0105d46 d5a5d310 deadbeef d4cb9a40 c07cc600 c05f1340 c12e0060\n:  deadbeef d6020b70 d6020d08 00000002 c014377d 00000000 c12f5600 00002c22\n: Call Trace:\n:  [\u003cc0105417\u003e] xen_force_evtchn_callback+0x17/0x30\n:  [\u003cc0105d46\u003e] check_events+0x8/0x12\n:  [\u003cc05f1340\u003e] _spin_unlock_irqrestore+0x20/0x40\n:  [\u003cc014377d\u003e] hrtimer_start_range_ns+0x12d/0x2e0\n:  [\u003cc014c4f6\u003e] tick_nohz_restart_sched_tick+0x146/0x160\n:  [\u003cc0107485\u003e] cpu_idle+0xa5/0xc0\n\nand bisected it to this commit.\n\nLet\u0027s remove it now while we have a think about the problem.\n\nReported-by: Bryan Donlan \u003cbdonlan@gmail.com\u003e\nTested-by: Christophe Saout \u003cchristophe@saout.de\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Jeremy Fitzhardinge \u003cjeremy@goop.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4d1c627389c8ba6d9e703208567ffcdbd356f682",
      "tree": "535720830c6f547e2d544d1dd02d23bae41da45e",
      "parents": [
        "c268e9946d7dc30ac4e55cdc3f43c8af1ae8153c"
      ],
      "author": {
        "name": "Daisuke Nishimura",
        "email": "nishimura@mxp.nes.nec.co.jp",
        "time": "Thu Jan 15 13:51:14 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 15 16:39:39 2009 -0800"
      },
      "message": "memcg: make oom less frequently\n\nIn previous implementation, mem_cgroup_try_charge checked the return\nvalue of mem_cgroup_try_to_free_pages, and just retried if some pages\nhad been reclaimed.\nBut now, try_charge(and mem_cgroup_hierarchical_reclaim called from it)\nonly checks whether the usage is less than the limit.\n\nThis patch tries to change the behavior as before to cause oom less\nfrequently.\n\nSigned-off-by: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nAcked-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: 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": "c268e9946d7dc30ac4e55cdc3f43c8af1ae8153c",
      "tree": "24de026d333ae2d8137165398d71650307cd26c0",
      "parents": [
        "40d58138f832a48208cdce57d6572a033b1f7a23"
      ],
      "author": {
        "name": "Daisuke Nishimura",
        "email": "nishimura@mxp.nes.nec.co.jp",
        "time": "Thu Jan 15 13:51:13 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 15 16:39:39 2009 -0800"
      },
      "message": "memcg: fix hierarchical reclaim\n\nIf root_mem has no children, last_scaned_child is set to root_mem itself.\nBut after some children added to root_mem, mem_cgroup_get_next_node can\nmem_cgroup_put the root_mem although root_mem has not been mem_cgroup_get.\n\nThis patch fixes this behavior by:\n\n- Set last_scanned_child to NULL if root_mem has no children or DFS\n  search has returned to root_mem itself(root_mem is not a \"child\" of\n  root_mem).  Make mem_cgroup_get_first_node return root_mem in this case.\n   There are no mem_cgroup_get/put for root_mem.\n\n- Rename mem_cgroup_get_next_node to __mem_cgroup_get_next_node, and\n  mem_cgroup_get_first_node to mem_cgroup_get_next_node.  Make\n  mem_cgroup_hierarchical_reclaim call only new mem_cgroup_get_next_node.\n\nSigned-off-by: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: 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": "40d58138f832a48208cdce57d6572a033b1f7a23",
      "tree": "740c3ccefa96965cb5e27f4b13dc1e03e6f688a3",
      "parents": [
        "bd112db872c2f69993c86f458467acb4a14da010"
      ],
      "author": {
        "name": "Daisuke Nishimura",
        "email": "nishimura@mxp.nes.nec.co.jp",
        "time": "Thu Jan 15 13:51:12 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 15 16:39:39 2009 -0800"
      },
      "message": "memcg: fix error path of mem_cgroup_move_parent\n\nThere is a bug in error path of mem_cgroup_move_parent.\n\nExtra refcnt got from try_charge should be dropped, and usages incremented\nby try_charge should be decremented in both error paths:\n\n    A: failure at get_page_unless_zero\n    B: failure at isolate_lru_page\n\nThis bug makes this parent directory unremovable.\n\nIn case of A, rmdir doesn\u0027t return, because res.usage doesn\u0027t go down to 0\nat mem_cgroup_force_empty even after all the pc in lru are removed.\n\nIn case of B, rmdir fails and returns -EBUSY, because it has extra ref\ncounts even after res.usage goes down to 0.\n\nSigned-off-by: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nAcked-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: 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": "bd112db872c2f69993c86f458467acb4a14da010",
      "tree": "a227a3e92ec7fbb68d2c0ca02d9d6df95c206b70",
      "parents": [
        "c3d6362b8717759de7f2086f9665a4d96cacbc51"
      ],
      "author": {
        "name": "Daisuke Nishimura",
        "email": "nishimura@mxp.nes.nec.co.jp",
        "time": "Thu Jan 15 13:51:11 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 15 16:39:39 2009 -0800"
      },
      "message": "memcg: fix mem_cgroup_get_reclaim_stat_from_page\n\nIn case of swapin, a new page is added to lru before it is charged,\nso page-\u003epc-\u003emem_cgroup points to NULL or last mem_cgroup the page\nwas charged before.\n\nIn the latter case, if the mem_cgroup has already freed by rmdir,\nthe area pointed to by page-\u003epc-\u003emem_cgroup may have invalid data.\n\nActually, I saw general protection fault.\n\n    general protection fault: 0000 [#1] SMP\n    last sysfs file: /sys/devices/system/cpu/cpu15/cache/index1/shared_cpu_map\n    CPU 4\n    Modules linked in: ipt_REJECT xt_tcpudp iptable_filter ip_tables x_tables bridge stp ipv6 autofs4 hidp rfcomm l2cap bluetooth sunrpc dm_mirror dm_region_hash dm_log dm_multipath dm_mod rfkill input_polldev sbs sbshc battery ac lp sg ide_cd_mod cdrom button serio_raw acpi_memhotplug parport_pc e1000 rtc_cmos parport rtc_core rtc_lib i2c_i801 i2c_core shpchp pcspkr ata_piix libata megaraid_mbox megaraid_mm sd_mod scsi_mod ext3 jbd ehci_hcd ohci_hcd uhci_hcd [last unloaded: microcode]\n    Pid: 26038, comm: page01 Tainted: G        W  2.6.28-rc9-mm1-mmotm-2008-12-22-16-14-f2ab3dea #1\n    RIP: 0010:[\u003cffffffff8028e710\u003e]  [\u003cffffffff8028e710\u003e] update_page_reclaim_stat+0x2f/0x42\n    RSP: 0000:ffff8801ee457da8  EFLAGS: 00010002\n    RAX: 32353438312021c8 RBX: 0000000000000000 RCX: 32353438312021c8\n    RDX: 0000000000000000 RSI: ffff8800cb0b1000 RDI: ffff8801164d1d28\n    RBP: ffff880110002cb8 R08: ffff88010f2eae23 R09: 0000000000000001\n    R10: ffff8800bc514b00 R11: ffff880110002c00 R12: 0000000000000000\n    R13: ffff88000f484100 R14: 0000000000000003 R15: 00000000001200d2\n    FS:  00007f8a261726f0(0000) GS:ffff88010f2eaa80(0000) knlGS:0000000000000000\n    CS:  0010 DS: 0000 ES: 0000 CR0: 000000008005003b\n    CR2: 00007f8a25d22000 CR3: 00000001ef18c000 CR4: 00000000000006e0\n    DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000\n    DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400\n    Process page01 (pid: 26038, threadinfo ffff8801ee456000, task ffff8800b585b960)\n    Stack:\n     ffffe200071ee568 ffff880110001f00 0000000000000000 ffffffff8028ea17\n     ffff88000f484100 0000000000000000 0000000000000020 00007f8a25d22000\n     ffff8800bc514b00 ffffffff8028ec34 0000000000000000 0000000000016fd8\n    Call Trace:\n     [\u003cffffffff8028ea17\u003e] ? ____pagevec_lru_add+0xc1/0x13c\n     [\u003cffffffff8028ec34\u003e] ? drain_cpu_pagevecs+0x36/0x89\n     [\u003cffffffff802a4f8c\u003e] ? swapin_readahead+0x78/0x98\n     [\u003cffffffff8029a37a\u003e] ? handle_mm_fault+0x3d9/0x741\n     [\u003cffffffff804da654\u003e] ? do_page_fault+0x3ce/0x78c\n     [\u003cffffffff804d7a42\u003e] ? trace_hardirqs_off_thunk+0x3a/0x3c\n     [\u003cffffffff804d860f\u003e] ? page_fault+0x1f/0x30\n    Code: cc 55 48 8d af b8 0d 00 00 48 89 f7 53 89 d3 e8 39 85 02 00 48 63 d3 48 ff 44 d5 10 45 85 e4 74 05 48 ff 44 d5 00 48 85 c0 74 0e \u003c48\u003e ff 44 d0 10 45 85 e4 74 04 48 ff 04 d0 5b 5d 41 5c c3 41 54\n    RIP  [\u003cffffffff8028e710\u003e] update_page_reclaim_stat+0x2f/0x42\n     RSP \u003cffff8801ee457da8\u003e\n\nSigned-off-by: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: 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": "822c18f2e38cbc775792ab65ace4f9198678dec9",
      "tree": "3d14f9e7b479a786a87a481b8f429c753c5eb6fb",
      "parents": [
        "b46578ed094122a6b36002c644711cef68aa9c9e"
      ],
      "author": {
        "name": "Ivan Kokshaysky",
        "email": "ink@jurassic.park.msu.ru",
        "time": "Thu Jan 15 13:50:48 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 15 16:39:35 2009 -0800"
      },
      "message": "alpha: fix vmalloc breakage\n\nOn alpha, we have to map some stuff in the VMALLOC space very early in the\nboot process (to make SRM console callbacks work and so on, see\narch/alpha/mm/init.c).  For old VM allocator, we just manually placed a\nvm_struct onto the global vmlist and this worked for ages.\n\nUnfortunately, the new allocator isn\u0027t aware of this, so it constantly\ntries to allocate the VM space which is already in use, making vmalloc on\nalpha defunct.\n\nThis patch forces KVA to import vmlist entries on init.\n\n[akpm@linux-foundation.org: remove unneeded check (per Johannes)]\nSigned-off-by: Ivan Kokshaysky \u003cink@jurassic.park.msu.ru\u003e\nCc: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Richard Henderson \u003crth@twiddle.net\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "938bb9f5e840eddbf54e4f62f6c5ba9b3ae12c9d",
      "tree": "a25324159ed8cc96b97a4d39aaf228bbd07e3824",
      "parents": [
        "1e7bfb2134dfec37ce04fb3a4ca89299e892d10c"
      ],
      "author": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Wed Jan 14 14:14:30 2009 +0100"
      },
      "committer": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Wed Jan 14 14:15:30 2009 +0100"
      },
      "message": "[CVE-2009-0029] System call wrappers part 28\n\nSigned-off-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\n"
    },
    {
      "commit": "c4ea37c26a691ad0b7e86aa5884aab27830e95c9",
      "tree": "4a3bd25e61cd3782f535ad2140a01bf3835dca4f",
      "parents": [
        "d5460c9974a321a194aded4a8c4daaac68ea8171"
      ],
      "author": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Wed Jan 14 14:14:28 2009 +0100"
      },
      "committer": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Wed Jan 14 14:15:29 2009 +0100"
      },
      "message": "[CVE-2009-0029] System call wrappers part 26\n\nSigned-off-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\n"
    },
    {
      "commit": "3480b25743cb7404928d57efeaa3d085708b04c2",
      "tree": "14d7b42301f2e76cea6772c446f3ee920b29a1b6",
      "parents": [
        "6a6160a7b5c27b3c38651baef92a14fa7072b3c1"
      ],
      "author": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Wed Jan 14 14:14:16 2009 +0100"
      },
      "committer": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Wed Jan 14 14:15:24 2009 +0100"
      },
      "message": "[CVE-2009-0029] System call wrappers part 14\n\nSigned-off-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\n"
    },
    {
      "commit": "6a6160a7b5c27b3c38651baef92a14fa7072b3c1",
      "tree": "a4a7640bd12611c445dfc013f69ce307674d1b13",
      "parents": [
        "64fd1de3d821659ac0a3004fd5ee1de59e64af30"
      ],
      "author": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Wed Jan 14 14:14:15 2009 +0100"
      },
      "committer": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Wed Jan 14 14:15:23 2009 +0100"
      },
      "message": "[CVE-2009-0029] System call wrappers part 13\n\nSigned-off-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\n"
    },
    {
      "commit": "6673e0c3fbeaed2cd08e2fd4a4aa97382d6fedb0",
      "tree": "eb33a94f5e4b0e035001f7c96ef44cade0fbb489",
      "parents": [
        "ed6bb6194350dc6ae97a65dbf2d621a3dbe6bbe9"
      ],
      "author": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Wed Jan 14 14:14:02 2009 +0100"
      },
      "committer": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Wed Jan 14 14:15:18 2009 +0100"
      },
      "message": "[CVE-2009-0029] System call wrapper special cases\n\nSystem calls with an unsigned long long argument can\u0027t be converted with\nthe standard wrappers since that would include a cast to long, which in\nturn means that we would lose the upper 32 bit on 32 bit architectures.\nAlso semctl can\u0027t use the standard wrapper since it has a \u0027union\u0027\nparameter.\n\nSo we handle them as special case and add some extra wrappers instead.\n\nSigned-off-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\n"
    },
    {
      "commit": "2ed7c03ec17779afb4fcfa3b8c61df61bd4879ba",
      "tree": "4e0fefd574bab5470a02edf439727f472a9663c6",
      "parents": [
        "4c696ba7982501d43dea11dbbaabd2aa8a19cc42"
      ],
      "author": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Wed Jan 14 14:13:54 2009 +0100"
      },
      "committer": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Wed Jan 14 14:15:14 2009 +0100"
      },
      "message": "[CVE-2009-0029] Convert all system calls to return a long\n\nConvert all system calls to return a long. This should be a NOP since all\nconverted types should have the same size anyway.\nWith the exception of sys_exit_group which returned void. But that doesn\u0027t\nmatter since the system call doesn\u0027t return.\n\nSigned-off-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\n"
    },
    {
      "commit": "e4b866ed197cef9989348e0479fed8d864ea465b",
      "tree": "0420e59a2312f6d1156ec85e6895cf6f322e0c6f",
      "parents": [
        "afc7d20c8429f32f19d47367fdc36eeed2334ec3"
      ],
      "author": {
        "name": "venkatesh.pallipadi@intel.com",
        "email": "venkatesh.pallipadi@intel.com",
        "time": "Fri Jan 09 16:13:11 2009 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Jan 13 19:13:01 2009 +0100"
      },
      "message": "x86 PAT: change track_pfn_vma_new to take pgprot_t pointer param\n\nImpact: cleanup\n\nChange the protection parameter for track_pfn_vma_new() into a pgprot_t pointer.\nSubsequent patch changes the x86 PAT handling to return a compatible\nmemtype in pgprot_t, if what was requested cannot be allowed due to conflicts.\nNo fuctionality change in this patch.\n\nSigned-off-by: Venkatesh Pallipadi \u003cvenkatesh.pallipadi@intel.com\u003e\nSigned-off-by: Suresh Siddha \u003csuresh.b.siddha@intel.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "a36706131182f5507d1e2cfbf391b0fa8d72203c",
      "tree": "46aede534e494045b7cbe4df42b780ca138e6d3e",
      "parents": [
        "e0b325d310a6b11f1538413fd557d2eb98f2fae5"
      ],
      "author": {
        "name": "venkatesh.pallipadi@intel.com",
        "email": "venkatesh.pallipadi@intel.com",
        "time": "Fri Jan 09 16:13:09 2009 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Jan 13 19:12:59 2009 +0100"
      },
      "message": "x86 PAT: remove PFNMAP type on track_pfn_vma_new() error\n\nImpact: fix (harmless) double-free of memtype entries and avoid warning\n\nOn track_pfn_vma_new() failure, reset the vm_flags so that there will be\nno second cleanup happening when upper level routines call unmap_vmas().\n\nThis patch fixes part of the bug reported here:\n\n  http://marc.info/?l\u003dlinux-kernel\u0026m\u003d123108883716357\u0026w\u003d2\n\nSpecifically the error message:\n\n  X:5010 freeing invalid memtype d0000000-d0101000\n\nIs due to multiple frees on error path, will not happen with the patch below.\n\nSigned-off-by: Venkatesh Pallipadi \u003cvenkatesh.pallipadi@intel.com\u003e\nSigned-off-by: Suresh Siddha \u003csuresh.b.siddha@intel.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "95156f0051cba60ec674bbaa5cf7dc74a74c5612",
      "tree": "b2927d543b7b8e89e8dcb7ebf7f37d07afdc62f0",
      "parents": [
        "9d0793370987b98708d2f75ee3bba7c1008d8512"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Mon Jan 12 13:02:11 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jan 12 13:09:18 2009 +0100"
      },
      "message": "lockdep, mm: fix might_fault() annotation\n\nSome code (nfs/sunrpc) uses socket ops on kernel memory while holding\nthe mmap_sem, this is safe because kernel memory doesn\u0027t get paged out,\ntherefore we\u0027ll never actually fault, and the might_fault() annotations\nwill generate false positives.\n\nReported-by: \"J. Bruce Fields\" \u003cbfields@fieldses.org\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "c40f6f8bbc4cbd2902671aacd587400ddca62627",
      "tree": "a991e5521e10943f4457fb7f494e00aec75cc7df",
      "parents": [
        "1a7d0f0bec4be078ce2cfb11538c0f4ffbbed8e5",
        "cb6ff208076b5f434db1b8c983429269d719cef5"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 09 14:00:58 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 09 14:00:58 2009 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-2.6-nommu\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-2.6-nommu:\n  NOMMU: Support XIP on initramfs\n  NOMMU: Teach kobjsize() about VMA regions.\n  FLAT: Don\u0027t attempt to expand the userspace stack to fill the space allocated\n  FDPIC: Don\u0027t attempt to expand the userspace stack to fill the space allocated\n  NOMMU: Improve procfs output using per-MM VMAs\n  NOMMU: Make mmap allocation page trimming behaviour configurable.\n  NOMMU: Make VMAs per MM as for MMU-mode linux\n  NOMMU: Delete askedalloc and realalloc variables\n  NOMMU: Rename ARM\u0027s struct vm_region\n  NOMMU: Fix cleanup handling in ramfs_nommu_get_umapped_area()\n"
    },
    {
      "commit": "2cb378c862777d050c20db903b119a029845fdcb",
      "tree": "5512511acf9d66338039f9698e456f1e3254970b",
      "parents": [
        "999cd8a450f8f93701669a61cac4d3b19eca07e8"
      ],
      "author": {
        "name": "Paul Menage",
        "email": "menage@google.com",
        "time": "Wed Jan 07 18:08:37 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 08 08:31:10 2009 -0800"
      },
      "message": "cgroups: use hierarchy_mutex in memory controller\n\nUpdate the memory controller to use its hierarchy_mutex rather than\ncalling cgroup_lock() to protected against cgroup_mkdir()/cgroup_rmdir()\nfrom occurring in its hierarchy.\n\nSigned-off-by: Paul Menage \u003cmenage@google.com\u003e\nTested-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Li Zefan \u003clizf@cn.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": "b5a84319a4343a0db753436fd8147e61eaafa7ea",
      "tree": "5faae671b431b50a32a2d8c7a57cc9361d8f336d",
      "parents": [
        "544122e5e0ee27d5aac4a441f7746712afbf248c"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Wed Jan 07 18:08:35 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 08 08:31:10 2009 -0800"
      },
      "message": "memcg: fix shmem\u0027s swap accounting\n\nNow, you can see following even when swap accounting is enabled.\n\n 1. Create Group 01, and 02.\n 2. allocate a \"file\" on tmpfs by a task under 01.\n 3. swap out the \"file\" (by memory pressure)\n 4. Read \"file\" from a task in group 02.\n 5. the charge of \"file\" is moved to group 02.\n\nThis is not ideal behavior. This is because SwapCache which was loaded\nby read-ahead is not taken into account..\n\nThis is a patch to fix shmem\u0027s swapcache behavior.\n  - remove mem_cgroup_cache_charge_swapin().\n  - Add SwapCache handler routine to mem_cgroup_cache_charge().\n    By this, shmem\u0027s file cache is charged at add_to_page_cache()\n    with GFP_NOWAIT.\n  - pass the page of swapcache to shrink_mem_cgroup.\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "544122e5e0ee27d5aac4a441f7746712afbf248c",
      "tree": "8c5f87b19501478924654ae83a8751fde5dd51d4",
      "parents": [
        "54595fe2652f04dc8f5b985312c7cef5aa7bf722"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Wed Jan 07 18:08:34 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 08 08:31:10 2009 -0800"
      },
      "message": "memcg: fix LRU accounting for SwapCache\n\nNow, a page can be deleted from SwapCache while do_swap_page().\nmemcg-fix-swap-accounting-leak-v3.patch handles that, but, LRU handling is\nstill broken.  (above behavior broke assumption of memcg-synchronized-lru\npatch.)\n\nThis patch is a fix for LRU handling (especially for per-zone counters).\nAt charging SwapCache,\n - Remove page_cgroup from LRU if it\u0027s not used.\n - Add page cgroup to LRU if it\u0027s not linked to.\n\nReported-by: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: 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": "54595fe2652f04dc8f5b985312c7cef5aa7bf722",
      "tree": "4e63df850afb307a170c045217b2097aae271b78",
      "parents": [
        "a7ba0eef3af51cd1b6fc4028e4705b3ea2ea9469"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Wed Jan 07 18:08:33 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 08 08:31:10 2009 -0800"
      },
      "message": "memcg: use css_tryget in memcg\n\nFrom:KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\n\ncss_tryget() newly is added and we can know css is alive or not and get\nrefcnt of css in very safe way.  (\"alive\" here means \"rmdir/destroy\" is\nnot called.)\n\nThis patch replaces css_get() to css_tryget(), where I cannot explain\nwhy css_get() is safe. And removes memcg-\u003eobsolete flag.\n\nReviewed-by: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nCc: 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": "a7ba0eef3af51cd1b6fc4028e4705b3ea2ea9469",
      "tree": "70e43097041eed321be38d1af4ed65e41d1ebff9",
      "parents": [
        "03f3c433648a97ae7c86be789edba67690f6ea60"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Wed Jan 07 18:08:32 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 08 08:31:10 2009 -0800"
      },
      "message": "memcg: fix double free and make refcnt sane\n\n1. Fix double-free BUG in error route of mem_cgroup_create().\n    mem_cgroup_free() itself frees per-zone-info.\n 2. Making refcnt of memcg simple.\n    Add 1 refcnt at creation and call free when refcnt goes down to 0.\n\nReviewed-by: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nCc: 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": "03f3c433648a97ae7c86be789edba67690f6ea60",
      "tree": "d92a17f6fe9d90d3a6b46762742ef239bf5ecc44",
      "parents": [
        "42e9abb628def2c335a4ecf130bb6c88d916d885"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Wed Jan 07 18:08:31 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 08 08:31:10 2009 -0800"
      },
      "message": "memcg: fix swap accounting leak\n\nFix swapin charge operation of memcg.\n\nNow, memcg has hooks to swap-out operation and checks SwapCache is really\nunused or not.  That check depends on contents of struct page.  I.e.  If\nPageAnon(page) \u0026\u0026 page_mapped(page), the page is recoginized as\nstill-in-use.\n\nNow, reuse_swap_page() calles delete_from_swap_cache() before establishment\nof any rmap. Then, in followinig sequence\n\n\t(Page fault with WRITE)\n\ttry_charge() (charge +\u003d PAGESIZE)\n\tcommit_charge() (Check page_cgroup is used or not..)\n\treuse_swap_page()\n\t\t-\u003e delete_from_swapcache()\n\t\t\t-\u003e mem_cgroup_uncharge_swapcache() (charge -\u003d PAGESIZE)\n\t......\nNew charge is uncharged soon....\nTo avoid this,  move commit_charge() after page_mapcount() goes up to 1.\nBy this,\n\n\ttry_charge()\t\t(usage +\u003d PAGESIZE)\n\treuse_swap_page()\t(may usage -\u003d PAGESIZE if PCG_USED is set)\n\tcommit_charge()\t\t(If page_cgroup is not marked as PCG_USED,\n\t\t\t\t add new charge.)\nAccounting will be correct.\n\nChangelog (v2) -\u003e (v3)\n  - fixed invalid charge to swp_entry\u003d\u003d0.\n  - updated documentation.\nChangelog (v1) -\u003e (v2)\n  - fixed comment.\n\n[nishimura@mxp.nes.nec.co.jp: swap accounting leak doc fix]\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nAcked-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nTested-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nSigned-off-by: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.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": "42e9abb628def2c335a4ecf130bb6c88d916d885",
      "tree": "e626dcc9d8fff5834c419e39dce57bed765aa09a",
      "parents": [
        "7f4d454dee2e0bdd21bafd413d1c53e443a26540"
      ],
      "author": {
        "name": "Daisuke Nishimura",
        "email": "nishimura@mxp.nes.nec.co.jp",
        "time": "Wed Jan 07 18:08:30 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 08 08:31:09 2009 -0800"
      },
      "message": "memcg: change try_to_free_pages to hierarchical_reclaim\n\nmem_cgroup_hierarchicl_reclaim() works properly even when !use_hierarchy\nnow (by memcg-hierarchy-avoid-unnecessary-reclaim.patch), so, instead of\ntry_to_free_mem_cgroup_pages(), it should be used in many cases.\n\nThe only exception is force_empty.  The group has no children in this\ncase.\n\nSigned-off-by: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nAcked-by: Balbir Singh \u003cbalbir@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": "7f4d454dee2e0bdd21bafd413d1c53e443a26540",
      "tree": "abf54c2bd7c91fe09685e42b3a92d84679403058",
      "parents": [
        "a5e924f5f8abf97944e625d74967cc9452cfbce8"
      ],
      "author": {
        "name": "Daisuke Nishimura",
        "email": "nishimura@mxp.nes.nec.co.jp",
        "time": "Wed Jan 07 18:08:29 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 08 08:31:09 2009 -0800"
      },
      "message": "memcg: avoid deadlock caused by race between oom and cpuset_attach\n\nmpol_rebind_mm(), which can be called from cpuset_attach(), does\ndown_write(mm-\u003emmap_sem).  This means down_write(mm-\u003emmap_sem) can be\ncalled under cgroup_mutex.\n\nOTOH, page fault path does down_read(mm-\u003emmap_sem) and calls\nmem_cgroup_try_charge_xxx(), which may eventually calls\nmem_cgroup_out_of_memory().  And mem_cgroup_out_of_memory() calls\ncgroup_lock().  This means cgroup_lock() can be called under\ndown_read(mm-\u003emmap_sem).\n\nIf those two paths race, deadlock can happen.\n\nThis patch avoid this deadlock by:\n  - remove cgroup_lock() from mem_cgroup_out_of_memory().\n  - define new mutex (memcg_tasklist) and serialize mem_cgroup_move_task()\n    (-\u003eattach handler of memory cgroup) and mem_cgroup_out_of_memory.\n\nSigned-off-by: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nAcked-by: Balbir Singh \u003cbalbir@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": "a5e924f5f8abf97944e625d74967cc9452cfbce8",
      "tree": "3a90d35e270617933f352c8c748880a62fa6eeca",
      "parents": [
        "3bb4edf24b26358eccfc69ac8b9a9c36ccc312da"
      ],
      "author": {
        "name": "Daisuke Nishimura",
        "email": "nishimura@mxp.nes.nec.co.jp",
        "time": "Wed Jan 07 18:08:28 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 08 08:31:09 2009 -0800"
      },
      "message": "memcg: remove mem_cgroup_try_charge\n\nAfter previous patch, mem_cgroup_try_charge is not used by anyone, so we\ncan remove it.\n\nSigned-off-by: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\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": "3bb4edf24b26358eccfc69ac8b9a9c36ccc312da",
      "tree": "61093878836115496bd52646670d123809e1bc99",
      "parents": [
        "9836d89191edd4887ed026a9ce53d9dfac62ec1c"
      ],
      "author": {
        "name": "Daisuke Nishimura",
        "email": "nishimura@mxp.nes.nec.co.jp",
        "time": "Wed Jan 07 18:08:28 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 08 08:31:09 2009 -0800"
      },
      "message": "memcg: don\u0027t trigger oom at page migration\n\nI think triggering OOM at mem_cgroup_prepare_migration would be just a bit\noverkill.  Returning -ENOMEM would be enough for\nmem_cgroup_prepare_migration.  The caller would handle the case anyway.\n\nSigned-off-by: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nAcked-by: Balbir Singh \u003cbalbir@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": "fee7b548e6f2bd4bfd03a1a45d3afd593de7d5e9",
      "tree": "90a8b610298013c6ce2d9bb7970b8e6d2a66f488",
      "parents": [
        "c772be939e078afd2505ede7d596a30f8f61de95"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Wed Jan 07 18:08:26 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 08 08:31:09 2009 -0800"
      },
      "message": "memcg: show real limit under hierarchy mode\n\nShow \"real\" limit of memcg.  This helps my debugging and maybe useful for\nusers.\n\nWhile testing hierarchy like this\n\n\tmount -t cgroup none /cgroup -t memory\n\tmkdir /cgroup/A\n\tset use_hierarchy\u003d\u003d1 to \"A\"\n\tmkdir /cgroup/A/01\n\tmkdir /cgroup/A/01/02\n\tmkdir /cgroup/A/01/03\n\tmkdir /cgroup/A/01/03/04\n\tmkdir /cgroup/A/08\n\tmkdir /cgroup/A/08/01\n\t....\nand set each own limit to them, \"real\" limit of each memcg is unclear.\nThis patch shows real limit by checking all ancestors.\n\nChangelog: (v1) -\u003e (v2)\n\t- remove \"if\" and use \"min(a,b)\"\n\nAcked-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@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": "c772be939e078afd2505ede7d596a30f8f61de95",
      "tree": "2cf3157fdd2b3570e105f2d91576585750526fb3",
      "parents": [
        "a7885eb8ad465ec9db99ac5b5e6680f0ca8e11c8"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Wed Jan 07 18:08:25 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 08 08:31:09 2009 -0800"
      },
      "message": "memcg: fix calculation of active_ratio\n\nCurrently, inactive_ratio of memcg is calculated at setting limit.\nbecause page_alloc.c does so and current implementation is straightforward\nporting.\n\nHowever, memcg introduced hierarchy feature recently.  In hierarchy\nrestriction, memory limit is not only decided memory.limit_in_bytes of\ncurrent cgroup, but also parent limit and sibling memory usage.\n\nThen, The optimal inactive_ratio is changed frequently.  So, everytime\ncalculation is better.\n\nTested-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Balbir Singh \u003cbalbir@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": "a7885eb8ad465ec9db99ac5b5e6680f0ca8e11c8",
      "tree": "4f3ffaa399fbc16003cc1787228f10543dc9c3ef",
      "parents": [
        "2733c06ac864ed40b9dfbbd5270f3f16949bd4a1"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Wed Jan 07 18:08:24 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 08 08:31:08 2009 -0800"
      },
      "message": "memcg: swappiness\n\nCurrently, /proc/sys/vm/swappiness can change swappiness ratio for global\nreclaim.  However, memcg reclaim doesn\u0027t have tuning parameter for itself.\n\nIn general, the optimal swappiness depend on workload.  (e.g.  hpc\nworkload need to low swappiness than the others.)\n\nThen, per cgroup swappiness improve administrator tunability.\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@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": "2733c06ac864ed40b9dfbbd5270f3f16949bd4a1",
      "tree": "4847ad04739d6a25dede0e0329295c15cbb79dda",
      "parents": [
        "e72e2bd6747c7a5c432197b6614cf3a387e61a0e"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Wed Jan 07 18:08:23 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 08 08:31:08 2009 -0800"
      },
      "message": "memcg: protect prev_priority\n\nCurrently, mem_cgroup doesn\u0027t have own lock and almost its member doesn\u0027t\nneed.  (e.g.  mem_cgroup-\u003einfo is protected by zone lock, mem_cgroup-\u003estat\nis per cpu variable)\n\nHowever, there is one explict exception.  mem_cgroup-\u003eprev_priorit need\nlock, but doesn\u0027t protect.  Luckly, this is NOT bug because prev_priority\nisn\u0027t used for current reclaim code.\n\nHowever, we plan to use prev_priority future again.  Therefore, fixing is\nbetter.\n\nIn addition, we plan to reuse this lock for another member.  Then\n\"reclaim_param_lock\" name is better than \"prev_priority_lock\".\n\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@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": "e72e2bd6747c7a5c432197b6614cf3a387e61a0e",
      "tree": "2ab1a184ff5844c01a7c8b5a9392d1c906b37abe",
      "parents": [
        "7f016ee8b6a9a43f768e6252021f169abec4fa1f"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Wed Jan 07 18:08:23 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 08 08:31:08 2009 -0800"
      },
      "message": "memcg: rename scan global lru\n\nRename scan_global_lru() to scanning_global_lru().\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@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": "7f016ee8b6a9a43f768e6252021f169abec4fa1f",
      "tree": "68498191489e051a23da0d39de2b0257714e58b0",
      "parents": [
        "9439c1c95b5c25b8031b2a7eb7e1590eb84be7f5"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Wed Jan 07 18:08:22 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 08 08:31:08 2009 -0800"
      },
      "message": "memcg: show reclaim stat\n\nAdd the following four fields to memory.stat file:\n\n  - inactive_ratio\n  - recent_rotated_anon\n  - recent_rotated_file\n  - recent_scanned_anon\n  - recent_scanned_file\n\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@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": "9439c1c95b5c25b8031b2a7eb7e1590eb84be7f5",
      "tree": "79eaae56278407e0a223e562a2d0079834ca5529",
      "parents": [
        "3e2f41f1f64744f7942980d93cc93dd3e5924560"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Wed Jan 07 18:08:21 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 08 08:31:08 2009 -0800"
      },
      "message": "memcg: remove mem_cgroup_cal_reclaim()\n\nNow, get_scan_ratio() return correct value although memcg reclaim.  Then,\nmem_cgroup_calc_reclaim() can be removed.\n\nSo, memcg reclaim get the same capability of anon/file reclaim balancing\nas global reclaim now.\n\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@redhat.com\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@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": "3e2f41f1f64744f7942980d93cc93dd3e5924560",
      "tree": "7b605c407b7470877fd9c5c853407f75edcbeb49",
      "parents": [
        "a3d8e0549d913e30968fa02e505dfe02c0a23e0d"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Wed Jan 07 18:08:20 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 08 08:31:08 2009 -0800"
      },
      "message": "memcg: add zone_reclaim_stat\n\nIntroduce mem_cgroup_per_zone::reclaim_stat member and its statics\ncollecting function.\n\nNow, get_scan_ratio() can calculate correct value on memcg reclaim.\n\n[hugh@veritas.com: avoid reclaim_stat oops when disabled]\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a3d8e0549d913e30968fa02e505dfe02c0a23e0d",
      "tree": "e4d3df33666a18614289ae7bc76c27ad7950eb73",
      "parents": [
        "14797e2363c2b2f1ce139fd1c5a215e4e05aa1d9"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Wed Jan 07 18:08:19 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 08 08:31:08 2009 -0800"
      },
      "message": "memcg: add mem_cgroup_zone_nr_pages()\n\nIntroduce mem_cgroup_zone_nr_pages().  It is called by zone_nr_pages()\nhelper function.\n\nThis patch doesn\u0027t have any behavior change.\n\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nAcked-by: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@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": "14797e2363c2b2f1ce139fd1c5a215e4e05aa1d9",
      "tree": "a56edaa680c7c338a5a3043aa24897d7f668b6c9",
      "parents": [
        "549927620b04a8f8073ce2ee2a8977f209af2ee5"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Wed Jan 07 18:08:18 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 08 08:31:08 2009 -0800"
      },
      "message": "memcg: add inactive_anon_is_low()\n\nThe inactive_anon_is_low() is key component of active/inactive anon\nbalancing on reclaim.  However current inactive_anon_is_low() function\nonly consider global reclaim.\n\nTherefore, we need following ugly scan_global_lru() condition.\n\n\tif (lru \u003d\u003d LRU_ACTIVE_ANON \u0026\u0026\n\t    (!scan_global_lru(sc) || inactive_anon_is_low(zone))) {\n\t\tshrink_active_list(nr_to_scan, zone, sc, priority, file);\n\t\treturn 0;\n\nit cause that memcg reclaim always deactivate pages when shrink_list() is\ncalled.  To make mem_cgroup_inactive_anon_is_low() improve active/inactive\nanon balancing of memcgroup.\n\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Cyrill Gorcunov \u003cgorcunov@gmail.com\u003e\nCc: \"Pekka Enberg\" \u003cpenberg@cs.helsinki.fi\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@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": "549927620b04a8f8073ce2ee2a8977f209af2ee5",
      "tree": "6451507892fb353732fe959b2bf0a171fa3ac20b",
      "parents": [
        "eeee9a8cd1e93c8b94e7788790fa9e2f8910c779"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Wed Jan 07 18:08:18 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 08 08:31:07 2009 -0800"
      },
      "message": "memcg: add null check to page_cgroup_zoneinfo()\n\nIf CONFIG_CGROUP_MEM_RES_CTLR_SWAP\u003dy, page_cgroup::mem_cgroup can be NULL.\nTherefore null checking is better.\n\nA later patch uses this function.\n\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@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": "eeee9a8cd1e93c8b94e7788790fa9e2f8910c779",
      "tree": "2ef0a61a4ce12410ecfa48014a0181c03e73a3cb",
      "parents": [
        "c9f299d9862deadf9fbee3ca28d915fdb006975a"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Wed Jan 07 18:08:17 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 08 08:31:07 2009 -0800"
      },
      "message": "mm: make get_scan_ratio() safe for memcg\n\nCurrently, get_scan_ratio() always calculate the balancing value for\nglobal reclaim and memcg reclaim doesn\u0027t use it.  Therefore it doesn\u0027t\nhave scan_global_lru() condition.\n\nHowever, we plan to expand get_scan_ratio() to be usable for memcg too,\nlatter.  Then, The dependency code of global reclaim in the\nget_scan_ratio() insert into scan_global_lru() condision explictly.\n\nThis patch doesn\u0027t have any functional change.\n\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@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": "c9f299d9862deadf9fbee3ca28d915fdb006975a",
      "tree": "2979e1eb8fe7e15369f01bcb405a029c18ca3e66",
      "parents": [
        "6e9015716ae9b59e9635d692fddfcfb9582c146c"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Wed Jan 07 18:08:16 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 08 08:31:07 2009 -0800"
      },
      "message": "mm: add zone nr_pages helper function\n\nAdd zone_nr_pages() helper function.\n\nIt is used by a later patch.  This patch doesn\u0027t have any functional\nchange.\n\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@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": "6e9015716ae9b59e9635d692fddfcfb9582c146c",
      "tree": "e1876d3822c46a20e1c35b41580f5ef6b2f6e053",
      "parents": [
        "f89eb90e33fd4e4e0cc1a6d20afd63c5a561885a"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Wed Jan 07 18:08:15 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 08 08:31:07 2009 -0800"
      },
      "message": "mm: introduce zone_reclaim struct\n\nAdd zone_reclam_stat struct for later enhancement.\n\nA later patch uses this.  This patch doesn\u0027t any behavior change (yet).\n\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@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": "f89eb90e33fd4e4e0cc1a6d20afd63c5a561885a",
      "tree": "2e39e02196dda539c900383ab03f08a311124cd9",
      "parents": [
        "670ec2f170301425fc4fdfa63d40652071fe85f6"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Wed Jan 07 18:08:14 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 08 08:31:07 2009 -0800"
      },
      "message": "inactive_anon_is_low: move to vmscan\n\nThe inactive_anon_is_low() is called only vmscan.  Then it can move to\nvmscan.c\n\nThis patch doesn\u0027t have any functional change.\n\nReviewd-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@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": "670ec2f170301425fc4fdfa63d40652071fe85f6",
      "tree": "37a25cfc34c3ddada5bbb428cf1d4842ed30df1f",
      "parents": [
        "a7fe942e94b2f66aa0f11d37699c0ec8155d3ad1"
      ],
      "author": {
        "name": "Daisuke Nishimura",
        "email": "nishimura@mxp.nes.nec.co.jp",
        "time": "Wed Jan 07 18:08:13 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 08 08:31:07 2009 -0800"
      },
      "message": "memcg: hierarchy avoid unnecessary reclaim\n\nIf hierarchy is not used, no tree-walk is necessary.\n\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@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": "a7fe942e94b2f66aa0f11d37699c0ec8155d3ad1",
      "tree": "27525266a70f8bd9aadc45695ed8db220eaf2e9a",
      "parents": [
        "b85a96c0b6cb79c67e7b01b66368f2e31579d7c5"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Wed Jan 07 18:08:13 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 08 08:31:07 2009 -0800"
      },
      "message": "memcg: swapout refcnt fix\n\ncss\u0027s refcnt is dropped before end of following access.\nHold it until end of access.\n\nReported-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@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": "b85a96c0b6cb79c67e7b01b66368f2e31579d7c5",
      "tree": "178005176284faef0f8a47293eaddd2885062f53",
      "parents": [
        "f9717d28d673468883df8ac34b47268719ac5a3d"
      ],
      "author": {
        "name": "Daisuke Nishimura",
        "email": "nishimura@mxp.nes.nec.co.jp",
        "time": "Wed Jan 07 18:08:12 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 08 08:31:07 2009 -0800"
      },
      "message": "memcg: memory swap controller: fix limit check\n\nThere are scatterd calls of res_counter_check_under_limit(), and most of\nthem don\u0027t take mem+swap accounting into account.\n\ndefine mem_cgroup_check_under_limit() and avoid direct use of\nres_counter_check_limit().\n\nReported-by: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nSigned-off-by: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@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": "f9717d28d673468883df8ac34b47268719ac5a3d",
      "tree": "ecb16bf21d33c7eaa34bdfb4af3ecfe2ca11a9b6",
      "parents": [
        "2c26fdd70c3094fa3e84caf9ef434911933d5477"
      ],
      "author": {
        "name": "Nikanth Karthikesan",
        "email": "knikanth@suse.de",
        "time": "Wed Jan 07 18:08:11 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 08 08:31:06 2009 -0800"
      },
      "message": "memcg: check group leader fix\n\nRemove unnecessary codes (...fragments of not-implemented\nfunctionalilty...)\n\nReported-by: Nikanth Karthikesan \u003cknikanth@suse.de\u003e\nSigned-off-by: Nikanth Karthikesan \u003cknikanth@suse.de\u003e\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@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": "2c26fdd70c3094fa3e84caf9ef434911933d5477",
      "tree": "06a3bafc12f5f8fd91d9ed1fca5ea0a632ef2004",
      "parents": [
        "887007561ae58628f03aa9046949747c04f63be8"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Wed Jan 07 18:08:10 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 08 08:31:06 2009 -0800"
      },
      "message": "memcg: revert gfp mask fix\n\nMy patch, memcg-fix-gfp_mask-of-callers-of-charge.patch changed gfp_mask\nof callers of charge to be GFP_HIGHUSER_MOVABLE for showing what will\nhappen at memory reclaim.\n\nBut in recent discussion, it\u0027s NACKed because it sounds ugly.\n\nThis patch is for reverting it and add some clean up to gfp_mask of\ncallers of charge.  No behavior change but need review before generating\nHUNK in deep queue.\n\nThis patch also adds explanation to meaning of gfp_mask passed to charge\nfunctions in memcontrol.h.\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@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": "887007561ae58628f03aa9046949747c04f63be8",
      "tree": "2cc7e5b3028070303121457bc63dd155df2158b4",
      "parents": [
        "a636b327f731143ccc544b966cfd8de6cb6d72c6"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Wed Jan 07 18:08:09 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 08 08:31:06 2009 -0800"
      },
      "message": "memcg: fix reclaim result checks\n\ncheck_under_limit logic was wrong and this check should be against\nmem_over_limit rather than mem.\n\nReported-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nCc: Badari Pulavarty \u003cpbadari@us.ibm.com\u003e\nCc: Jan Blunck \u003cjblunck@suse.de\u003e\nCc: Hirokazu Takahashi \u003ctaka@valinux.co.jp\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a636b327f731143ccc544b966cfd8de6cb6d72c6",
      "tree": "e53b03b64e8ebca20649c2d877bc4c3ef54ec34c",
      "parents": [
        "2e4d40915fb85207fe48cfc31201824ec6d7426e"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Wed Jan 07 18:08:08 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 08 08:31:06 2009 -0800"
      },
      "message": "memcg: avoid unnecessary system-wide-oom-killer\n\nCurrent mmtom has new oom function as pagefault_out_of_memory().  It\u0027s\nadded for select bad process rathar than killing current.\n\nWhen memcg hit limit and calls OOM at page_fault, this handler called and\nsystem-wide-oom handling happens.  (means kernel panics if panic_on_oom is\ntrue....)\n\nTo avoid overkill, check memcg\u0027s recent behavior before starting\nsystem-wide-oom.\n\nAnd this patch also fixes to guarantee \"don\u0027t accnout against process with\nTIF_MEMDIE\".  This is necessary for smooth OOM.\n\n[akpm@linux-foundation.org: build fix]\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nCc: Badari Pulavarty \u003cpbadari@us.ibm.com\u003e\nCc: Jan Blunck \u003cjblunck@suse.de\u003e\nCc: Hirokazu Takahashi \u003ctaka@valinux.co.jp\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "18f59ea7de08db2449ba99185e8d8cc30e7acac5",
      "tree": "34aa342a7984c72f7c9fbae0dd95d2fe9e20bc25",
      "parents": [
        "6d61ef409d6ba168972f7c2f8c35baaade636a58"
      ],
      "author": {
        "name": "Balbir Singh",
        "email": "balbir@linux.vnet.ibm.com",
        "time": "Wed Jan 07 18:08:07 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 08 08:31:06 2009 -0800"
      },
      "message": "memcg: memory cgroup hierarchy feature selector\n\nDon\u0027t enable multiple hierarchy support by default.  This patch introduces\na features element that can be set to enable the nested depth hierarchy\nfeature.  This feature can only be enabled when the cgroup for which the\nfeature this is enabled, has no children.\n\nSigned-off-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: YAMAMOTO Takashi \u003cyamamoto@valinux.co.jp\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Pavel Emelianov \u003cxemul@openvz.org\u003e\nCc: Dhaval Giani \u003cdhaval@linux.vnet.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": "6d61ef409d6ba168972f7c2f8c35baaade636a58",
      "tree": "b43ef8d2426ced40bd3ed4741ea8523e4496da23",
      "parents": [
        "28dbc4b6a01fb579a9441c7b81e3d3413dc452df"
      ],
      "author": {
        "name": "Balbir Singh",
        "email": "balbir@linux.vnet.ibm.com",
        "time": "Wed Jan 07 18:08:06 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 08 08:31:06 2009 -0800"
      },
      "message": "memcg: memory cgroup hierarchical reclaim\n\nThis patch introduces hierarchical reclaim.  When an ancestor goes over\nits limit, the charging routine points to the parent that is above its\nlimit.  The reclaim process then starts from the last scanned child of the\nancestor and reclaims until the ancestor goes below its limit.\n\n[akpm@linux-foundation.org: coding-style fixes]\n[d-nishimura@mtf.biglobe.ne.jp: mem_cgroup_from_res_counter should handle both mem-\u003eres and mem-\u003ememsw]\nSigned-off-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: YAMAMOTO Takashi \u003cyamamoto@valinux.co.jp\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Pavel Emelianov \u003cxemul@openvz.org\u003e\nCc: Dhaval Giani \u003cdhaval@linux.vnet.ibm.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.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": "28dbc4b6a01fb579a9441c7b81e3d3413dc452df",
      "tree": "c45d94be6cd243f3e677ec8279bfec87855802d0",
      "parents": [
        "52bc0d82100cd896213a9a25ec01c1ba87b939db"
      ],
      "author": {
        "name": "Balbir Singh",
        "email": "balbir@linux.vnet.ibm.com",
        "time": "Wed Jan 07 18:08:05 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 08 08:31:05 2009 -0800"
      },
      "message": "memcg: memory cgroup resource counters for hierarchy\n\nAdd support for building hierarchies in resource counters.  Cgroups allows\nus to build a deep hierarchy, but we currently don\u0027t link the resource\ncounters belonging to the memory controller control groups, in the same\nfashion as the corresponding cgroup entries in the cgroup hierarchy.  This\npatch provides the infrastructure for resource counters that have the same\nhiearchy as their cgroup counter parts.\n\nThese set of patches are based on the resource counter hiearchy patches\nposted by Pavel Emelianov.\n\nNOTE: Building hiearchies is expensive, deeper hierarchies imply charging\nthe all the way up to the root.  It is known that hiearchies are\nexpensive, so the user needs to be careful and aware of the trade-offs\nbefore creating very deep ones.\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: YAMAMOTO Takashi \u003cyamamoto@valinux.co.jp\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Pavel Emelianov \u003cxemul@openvz.org\u003e\nCc: Dhaval Giani \u003cdhaval@linux.vnet.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": "f8d665422603ee1b8ed04dcad4242f14d623c941",
      "tree": "d872a12113998ed99ce22247091c481b9f465faa",
      "parents": [
        "08e552c69c6930d64722de3ec18c51844d06ee28"
      ],
      "author": {
        "name": "Hirokazu Takahashi",
        "email": "taka@valinux.co.jp",
        "time": "Wed Jan 07 18:08:02 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 08 08:31:05 2009 -0800"
      },
      "message": "memcg: add mem_cgroup_disabled()\n\nWe check mem_cgroup is disabled or not by checking\nmem_cgroup_subsys.disabled.  I think it has more references than expected,\nnow.\n\nreplacing\n   if (mem_cgroup_subsys.disabled)\nwith\n   if (mem_cgroup_disabled())\n\ngive us good look, I think.\n\n[kamezawa.hiroyu@jp.fujitsu.com: fix typo]\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "08e552c69c6930d64722de3ec18c51844d06ee28",
      "tree": "a744d57ed4b23401115f1033dcaac9e85d550e09",
      "parents": [
        "8c7c6e34a1256a5082d38c8e9bd1474476912715"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Wed Jan 07 18:08:01 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 08 08:31:05 2009 -0800"
      },
      "message": "memcg: synchronized LRU\n\nA big patch for changing memcg\u0027s LRU semantics.\n\nNow,\n  - page_cgroup is linked to mem_cgroup\u0027s its own LRU (per zone).\n\n  - LRU of page_cgroup is not synchronous with global LRU.\n\n  - page and page_cgroup is one-to-one and statically allocated.\n\n  - To find page_cgroup is on what LRU, you have to check pc-\u003emem_cgroup as\n    - lru \u003d page_cgroup_zoneinfo(pc, nid_of_pc, zid_of_pc);\n\n  - SwapCache is handled.\n\nAnd, when we handle LRU list of page_cgroup, we do following.\n\n\tpc \u003d lookup_page_cgroup(page);\n\tlock_page_cgroup(pc); .....................(1)\n\tmz \u003d page_cgroup_zoneinfo(pc);\n\tspin_lock(\u0026mz-\u003elru_lock);\n\t.....add to LRU\n\tspin_unlock(\u0026mz-\u003elru_lock);\n\tunlock_page_cgroup(pc);\n\nBut (1) is spin_lock and we have to be afraid of dead-lock with zone-\u003elru_lock.\nSo, trylock() is used at (1), now. Without (1), we can\u0027t trust \"mz\" is correct.\n\nThis is a trial to remove this dirty nesting of locks.\nThis patch changes mz-\u003elru_lock to be zone-\u003elru_lock.\nThen, above sequence will be written as\n\n        spin_lock(\u0026zone-\u003elru_lock); # in vmscan.c or swap.c via global LRU\n\tmem_cgroup_add/remove/etc_lru() {\n\t\tpc \u003d lookup_page_cgroup(page);\n\t\tmz \u003d page_cgroup_zoneinfo(pc);\n\t\tif (PageCgroupUsed(pc)) {\n\t\t\t....add to LRU\n\t\t}\n        spin_lock(\u0026zone-\u003elru_lock); # in vmscan.c or swap.c via global LRU\n\nThis is much simpler.\n(*) We\u0027re safe even if we don\u0027t take lock_page_cgroup(pc). Because..\n    1. When pc-\u003emem_cgroup can be modified.\n       - at charge.\n       - at account_move().\n    2. at charge\n       the PCG_USED bit is not set before pc-\u003emem_cgroup is fixed.\n    3. at account_move()\n       the page is isolated and not on LRU.\n\nPros.\n  - easy for maintenance.\n  - memcg can make use of laziness of pagevec.\n  - we don\u0027t have to duplicated LRU/Active/Unevictable bit in page_cgroup.\n  - LRU status of memcg will be synchronized with global LRU\u0027s one.\n  - # of locks are reduced.\n  - account_move() is simplified very much.\nCons.\n  - may increase cost of LRU rotation.\n    (no impact if memcg is not configured.)\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8c7c6e34a1256a5082d38c8e9bd1474476912715",
      "tree": "09f53c7c4bac5532a9ecbdadb4450702c744ea6f",
      "parents": [
        "27a7faa0779dd13729196c1a818c294f44bbd1ee"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Wed Jan 07 18:08:00 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 08 08:31:05 2009 -0800"
      },
      "message": "memcg: mem+swap controller core\n\nThis patch implements per cgroup limit for usage of memory+swap.  However\nthere are SwapCache, double counting of swap-cache and swap-entry is\navoided.\n\nMem+Swap controller works as following.\n  - memory usage is limited by memory.limit_in_bytes.\n  - memory + swap usage is limited by memory.memsw_limit_in_bytes.\n\nThis has following benefits.\n  - A user can limit total resource usage of mem+swap.\n\n    Without this, because memory resource controller doesn\u0027t take care of\n    usage of swap, a process can exhaust all the swap (by memory leak.)\n    We can avoid this case.\n\n    And Swap is shared resource but it cannot be reclaimed (goes back to memory)\n    until it\u0027s used. This characteristic can be trouble when the memory\n    is divided into some parts by cpuset or memcg.\n    Assume group A and group B.\n    After some application executes, the system can be..\n\n    Group A -- very large free memory space but occupy 99% of swap.\n    Group B -- under memory shortage but cannot use swap...it\u0027s nearly full.\n\n    Ability to set appropriate swap limit for each group is required.\n\nMaybe someone wonder \"why not swap but mem+swap ?\"\n\n  - The global LRU(kswapd) can swap out arbitrary pages. Swap-out means\n    to move account from memory to swap...there is no change in usage of\n    mem+swap.\n\n    In other words, when we want to limit the usage of swap without affecting\n    global LRU, mem+swap limit is better than just limiting swap.\n\nAccounting target information is stored in swap_cgroup which is\nper swap entry record.\n\nCharge is done as following.\n  map\n    - charge  page and memsw.\n\n  unmap\n    - uncharge page/memsw if not SwapCache.\n\n  swap-out (__delete_from_swap_cache)\n    - uncharge page\n    - record mem_cgroup information to swap_cgroup.\n\n  swap-in (do_swap_page)\n    - charged as page and memsw.\n      record in swap_cgroup is cleared.\n      memsw accounting is decremented.\n\n  swap-free (swap_free())\n    - if swap entry is freed, memsw is uncharged by PAGE_SIZE.\n\nThere are people work under never-swap environments and consider swap as\nsomething bad. For such people, this mem+swap controller extension is just an\noverhead.  This overhead is avoided by config or boot option.\n(see Kconfig. detail is not in this patch.)\n\nTODO:\n - maybe more optimization can be don in swap-in path. (but not very safe.)\n   But we just do simple accounting at this stage.\n\n[nishimura@mxp.nes.nec.co.jp: make resize limit hold mutex]\n[hugh@veritas.com: memswap controller core swapcache fixes]\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    }
  ],
  "next": "27a7faa0779dd13729196c1a818c294f44bbd1ee"
}
