)]}'
{
  "log": [
    {
      "commit": "ff3cb3fec3c5bbb5110e652bbdd410bc99a47e9f",
      "tree": "5b6834a3a4ecd479d544f8cc8cd10811c1ae13e1",
      "parents": [
        "6ccaa3172941c0a97c7f1c5155b1d32ecd27ec2f",
        "be14eb619108fa8b7120eb2c42d66d5f623ae10e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Sep 10 07:26:27 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Sep 10 07:26:27 2010 -0700"
      },
      "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: Range check cpu in blk_cpu_to_group\n  scatterlist: prevent invalid free when alloc fails\n  writeback: Fix lost wake-up shutting down writeback thread\n  writeback: do not lose wakeup events when forking bdi threads\n  cciss: fix reporting of max queue depth since init\n  block: switch s390 tape_block and mg_disk to elevator_change()\n  block: add function call to switch the IO scheduler from a driver\n  fs/bio-integrity.c: return -ENOMEM on kmalloc failure\n  bio-integrity.c: remove dependency on __GFP_NOFAIL\n  BLOCK: fix bio.bi_rw handling\n  block: put dev-\u003ekobj in blk_register_queue fail path\n  cciss: handle allocation failure\n  cfq-iosched: Documentation help for new tunables\n  cfq-iosched: blktrace print per slice sector stats\n  cfq-iosched: Implement tunable group_idle\n  cfq-iosched: Do group share accounting in IOPS when slice_idle\u003d0\n  cfq-iosched: Do not idle if slice_idle\u003d0\n  cciss: disable doorbell reset on reset_devices\n  blkio: Fix return code for mkdir calls\n"
    },
    {
      "commit": "9ee493ce0a60bf42c0f8fd0b0fe91df5704a1cbf",
      "tree": "8dbdbf3d053281291ddc6ebe50d5d0afb5ce22d7",
      "parents": [
        "aa45484031ddee09b06350ab8528bfe5b2c76d1c"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mel@csn.ul.ie",
        "time": "Thu Sep 09 16:38:18 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 09 18:57:25 2010 -0700"
      },
      "message": "mm: page allocator: drain per-cpu lists after direct reclaim allocation fails\n\nWhen under significant memory pressure, a process enters direct reclaim\nand immediately afterwards tries to allocate a page.  If it fails and no\nfurther progress is made, it\u0027s possible the system will go OOM.  However,\non systems with large amounts of memory, it\u0027s possible that a significant\nnumber of pages are on per-cpu lists and inaccessible to the calling\nprocess.  This leads to a process entering direct reclaim more often than\nit should increasing the pressure on the system and compounding the\nproblem.\n\nThis patch notes that if direct reclaim is making progress but allocations\nare still failing that the system is already under heavy pressure.  In\nthis case, it drains the per-cpu lists and tries the allocation a second\ntime before continuing.\n\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nReviewed-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nReviewed-by: Christoph Lameter \u003ccl@linux.com\u003e\nCc: Dave Chinner \u003cdavid@fromorbit.com\u003e\nCc: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nCc: 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": "aa45484031ddee09b06350ab8528bfe5b2c76d1c",
      "tree": "6758072232db9a54453022ec3e6cede35d52001c",
      "parents": [
        "72853e2991a2702ae93aaf889ac7db743a415dd3"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "cl@linux.com",
        "time": "Thu Sep 09 16:38:17 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 09 18:57:25 2010 -0700"
      },
      "message": "mm: page allocator: calculate a better estimate of NR_FREE_PAGES when memory is low and kswapd is awake\n\nOrdinarily watermark checks are based on the vmstat NR_FREE_PAGES as it is\ncheaper than scanning a number of lists.  To avoid synchronization\noverhead, counter deltas are maintained on a per-cpu basis and drained\nboth periodically and when the delta is above a threshold.  On large CPU\nsystems, the difference between the estimated and real value of\nNR_FREE_PAGES can be very high.  If NR_FREE_PAGES is much higher than\nnumber of real free page in buddy, the VM can allocate pages below min\nwatermark, at worst reducing the real number of pages to zero.  Even if\nthe OOM killer kills some victim for freeing memory, it may not free\nmemory if the exit path requires a new page resulting in livelock.\n\nThis patch introduces a zone_page_state_snapshot() function (courtesy of\nChristoph) that takes a slightly more accurate view of an arbitrary vmstat\ncounter.  It is used to read NR_FREE_PAGES while kswapd is awake to avoid\nthe watermark being accidentally broken.  The estimate is not perfect and\nmay result in cache line bounces but is expected to be lighter than the\nIPI calls necessary to continually drain the per-cpu counters while kswapd\nis awake.\n\nSigned-off-by: Christoph Lameter \u003ccl@linux.com\u003e\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "72853e2991a2702ae93aaf889ac7db743a415dd3",
      "tree": "814f3cc13f0d1133bcb4fd7ab9f429775774607b",
      "parents": [
        "5ee28a447625b9fe64fbf7cff026561084fc5f16"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mel@csn.ul.ie",
        "time": "Thu Sep 09 16:38:16 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 09 18:57:25 2010 -0700"
      },
      "message": "mm: page allocator: update free page counters after pages are placed on the free list\n\nWhen allocating a page, the system uses NR_FREE_PAGES counters to\ndetermine if watermarks would remain intact after the allocation was made.\nThis check is made without interrupts disabled or the zone lock held and\nso is race-prone by nature.  Unfortunately, when pages are being freed in\nbatch, the counters are updated before the pages are added on the list.\nDuring this window, the counters are misleading as the pages do not exist\nyet.  When under significant pressure on systems with large numbers of\nCPUs, it\u0027s possible for processes to make progress even though they should\nhave been stalled.  This is particularly problematic if a number of the\nprocesses are using GFP_ATOMIC as the min watermark can be accidentally\nbreached and in extreme cases, the system can livelock.\n\nThis patch updates the counters after the pages have been added to the\nlist.  This makes the allocator more cautious with respect to preserving\nthe watermarks and mitigates livelock possibilities.\n\n[akpm@linux-foundation.org: avoid modifying incoming args]\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nReviewed-by: Rik van Riel \u003criel@redhat.com\u003e\nReviewed-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nReviewed-by: Christoph Lameter \u003ccl@linux.com\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nAcked-by: 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": "5ee28a447625b9fe64fbf7cff026561084fc5f16",
      "tree": "345e3afc3ce70af1892ce1c0ec953b68ef8a1770",
      "parents": [
        "3ab04d5cf9736b7a4e9dfcf28285d8663b01aa0e"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Thu Sep 09 16:38:14 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 09 18:57:25 2010 -0700"
      },
      "message": "vmstat: update zone stat threshold when onlining a cpu\n\nrefresh_zone_stat_thresholds() calculates parameter based on the number of\nonline cpus.  It\u0027s called at cpu offlining but needs to be called at\nonlining, too.\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nAcked-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3399446632739fcd05fd8b272b476a69c6e6d14a",
      "tree": "986d5b880aa69a16c8f3a6bded68cb50f9418d29",
      "parents": [
        "8f2ae0faa3a119158c4dcfe89926d6fad5f5332c"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hughd@google.com",
        "time": "Thu Sep 09 16:38:11 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 09 18:57:25 2010 -0700"
      },
      "message": "swap: discard while swapping only if SWAP_FLAG_DISCARD\n\nTests with recent firmware on Intel X25-M 80GB and OCZ Vertex 60GB SSDs\nshow a shift since I last tested in December: in part because of firmware\nupdates, in part because of the necessary move from barriers to awaiting\ncompletion at the block layer.  While discard at swapon still shows as\nslightly beneficial on both, discarding 1MB swap cluster when allocating\nis now disadvanteous: adds 25% overhead on Intel, adds 230% on OCZ (YMMV).\n\nSurrender: discard as presently implemented is more hindrance than help\nfor swap; but might prove useful on other devices, or with improvements.\nSo continue to do the discard at swapon, but make discard while swapping\nconditional on a SWAP_FLAG_DISCARD to sys_swapon() (which has been using\nonly the lower 16 bits of int flags).\n\nWe can add a --discard or -d to swapon(8), and a \"discard\" to swap in\n/etc/fstab: matching the mount option for btrfs, ext4, fat, gfs2, nilfs2.\n\nSigned-off-by: Hugh Dickins \u003chughd@google.com\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Nigel Cunningham \u003cnigel@tuxonice.net\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Jens Axboe \u003cjaxboe@fusionio.com\u003e\nCc: James Bottomley \u003cJames.Bottomley@hansenpartnership.com\u003e\nCc: \"Martin K. Petersen\" \u003cmartin.petersen@oracle.com\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8f2ae0faa3a119158c4dcfe89926d6fad5f5332c",
      "tree": "720272512fd0dfd1d865d2dc64b30fed811f2d13",
      "parents": [
        "b73d7fcecd93dc15eaa3c45c8c587b613f6673c4"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Thu Sep 09 16:38:10 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 09 18:57:25 2010 -0700"
      },
      "message": "swap: do not send discards as barriers\n\nThe swap code already uses synchronous discards, no need to add I/O\nbarriers.\n\nThis fixes the worst of the terrible slowdown in swap allocation for\nhibernation, reported on 2.6.35 by Nigel Cunningham; but does not entirely\neliminate that regression.\n\n[tj@kernel.org: superflous newlines removed]\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nTested-by: Nigel Cunningham \u003cnigel@tuxonice.net\u003e\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Hugh Dickins \u003chughd@google.com\u003e\nCc: Jens Axboe \u003cjaxboe@fusionio.com\u003e\nCc: James Bottomley \u003cJames.Bottomley@hansenpartnership.com\u003e\nCc: \"Martin K. Petersen\" \u003cmartin.petersen@oracle.com\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b73d7fcecd93dc15eaa3c45c8c587b613f6673c4",
      "tree": "ebf5a5e10fb246237807317a81f6f40c3eebcd9c",
      "parents": [
        "910321ea817a202ff70fac666e37e2c8e2f88823"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hughd@google.com",
        "time": "Thu Sep 09 16:38:09 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 09 18:57:25 2010 -0700"
      },
      "message": "swap: prevent reuse during hibernation\n\nMove the hibernation check from scan_swap_map() into try_to_free_swap():\nto catch not only the common case when hibernation\u0027s allocation itself\ntriggers swap reuse, but also the less likely case when concurrent page\nreclaim (shrink_page_list) might happen to try_to_free_swap from a page.\n\nHibernation already clears __GFP_IO from the gfp_allowed_mask, to stop\nreclaim from going to swap: check that to prevent swap reuse too.\n\nSigned-off-by: Hugh Dickins \u003chughd@google.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: \"Rafael J. Wysocki\" \u003crjw@sisk.pl\u003e\nCc: Ondrej Zary \u003clinux@rainbow-software.org\u003e\nCc: Andrea Gelmini \u003candrea.gelmini@gmail.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Nigel Cunningham \u003cnigel@tuxonice.net\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "910321ea817a202ff70fac666e37e2c8e2f88823",
      "tree": "aaead29e7797986e2b804746b565bb5d05117c54",
      "parents": [
        "ac8456d6f9a3011c824176bd6084d39e5f70a382"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hughd@google.com",
        "time": "Thu Sep 09 16:38:07 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 09 18:57:25 2010 -0700"
      },
      "message": "swap: revert special hibernation allocation\n\nPlease revert 2.6.36-rc commit d2997b1042ec150616c1963b5e5e919ffd0b0ebf\n\"hibernation: freeze swap at hibernation\".  It complicated matters by\nadding a second swap allocation path, just for hibernation; without in any\nway fixing the issue that it was intended to address - page reclaim after\nfixing the hibernation image might free swap from a page already imaged as\nswapcache, letting its swap be reallocated to store a different page of\nthe image: resulting in data corruption if the imaged page were freed as\nclean then swapped back in.  Pages freed to si-\u003eswap_map were still in\ndanger of being reallocated by the alternative allocation path.\n\nI guess it inadvertently fixed slow SSD swap allocation for hibernation,\nas reported by Nigel Cunningham: by missing out the discards that occur on\nthe usual swap allocation path; but that was unintentional, and needs a\nseparate fix.\n\nSigned-off-by: Hugh Dickins \u003chughd@google.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: \"Rafael J. Wysocki\" \u003crjw@sisk.pl\u003e\nCc: Ondrej Zary \u003clinux@rainbow-software.org\u003e\nCc: Andrea Gelmini \u003candrea.gelmini@gmail.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Nigel Cunningham \u003cnigel@tuxonice.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ac8456d6f9a3011c824176bd6084d39e5f70a382",
      "tree": "8973f7b5f9993d34d0301380972475dca2410afd",
      "parents": [
        "47016434257b90445113eed1c5b8b57eb2d35330"
      ],
      "author": {
        "name": "Gary King",
        "email": "gking@nvidia.com",
        "time": "Thu Sep 09 16:38:05 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 09 18:57:25 2010 -0700"
      },
      "message": "bounce: call flush_dcache_page() after bounce_copy_vec()\n\nI have been seeing problems on Tegra 2 (ARMv7 SMP) systems with HIGHMEM\nenabled on 2.6.35 (plus some patches targetted at 2.6.36 to perform cache\nmaintenance lazily), and the root cause appears to be that the mm bouncing\ncode is calling flush_dcache_page before it copies the bounce buffer into\nthe bio.\n\nThe bounced page needs to be flushed after data is copied into it, to\nensure that architecture implementations can synchronize instruction and\ndata caches if necessary.\n\nSigned-off-by: Gary King \u003cgking@nvidia.com\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Russell King \u003crmk@arm.linux.org.uk\u003e\nAcked-by: Jens Axboe \u003caxboe@kernel.dk\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0dcc48c15f63ee86c2fcd33968b08d651f0360a5",
      "tree": "d182a43200204be2fea04bcb80b824c6f4941267",
      "parents": [
        "bc6930457460788e14b2c0808ed4632a1592bd61"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Thu Sep 09 16:38:01 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 09 18:57:24 2010 -0700"
      },
      "message": "memory hotplug: fix next block calculation in is_removable\n\nnext_active_pageblock() is for finding next _used_ freeblock.  It skips\nseveral blocks when it finds there are a chunk of free pages lager than\npageblock.  But it has 2 bugs.\n\n  1. We have no lock. page_order(page) - pageblock_order can be minus.\n  2. pageblocks_stride +\u003d is wrong. it should skip page_order(p) of pages.\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bc6930457460788e14b2c0808ed4632a1592bd61",
      "tree": "78e562bc90b3b99f1ba1dbc32c846127f10a67e3",
      "parents": [
        "1c24de60e50fb19b94d94225458da17c720f0729"
      ],
      "author": {
        "name": "Minchan Kim",
        "email": "minchan.kim@gmail.com",
        "time": "Thu Sep 09 16:38:00 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 09 18:57:24 2010 -0700"
      },
      "message": "mm: compaction: handle active and inactive fairly in too_many_isolated\n\nIram reported that compaction\u0027s too_many_isolated() loops forever.\n(http://www.spinics.net/lists/linux-mm/msg08123.html)\n\nThe meminfo when the situation happened was inactive anon is zero.  That\u0027s\nbecause the system has no memory pressure until then.  While all anon\npages were in the active lru, compaction could select active lru as well\nas inactive lru.  That\u0027s a different thing from vmscan\u0027s isolated.  So we\nhas been two too_many_isolated.\n\nWhile compaction can isolate pages in both active and inactive, current\nimplementation of too_many_isolated only considers inactive.  It made\nIram\u0027s problem.\n\nThis patch handles active and inactive fairly.  That\u0027s because we can\u0027t\nexpect where from and how many compaction would isolated pages.\n\nThis patch changes (nr_isolated \u003e nr_inactive) with\nnr_isolated \u003e (nr_active + nr_inactive) / 2.\n\nSigned-off-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nReported-by: Iram Shahzad \u003ciram.shahzad@jp.fujitsu.com\u003e\nAcked-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nAcked-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "152e0659fc001029c70fa4373af1792b1ae0d01c",
      "tree": "f9cdfd684fc585f884b5344af2fda3988018be00",
      "parents": [
        "4969c1192d15afa3389e7ae3302096ff684ba655"
      ],
      "author": {
        "name": "Andrea Arcangeli",
        "email": "aarcange@redhat.com",
        "time": "Thu Sep 09 16:37:53 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 09 18:57:24 2010 -0700"
      },
      "message": "mm: avoid warning when COMPACTION is selected\n\nCOMPACTION enables MIGRATION, but MIGRATION spawns a warning if numa or\nmemhotplug aren\u0027t selected.  However MIGRATION doesn\u0027t depend on them.  I\nguess it\u0027s just trying to be strict doing a double check on who\u0027s enabling\nit, but it doesn\u0027t know that compaction also enables MIGRATION.\n\nSigned-off-by: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nAcked-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4969c1192d15afa3389e7ae3302096ff684ba655",
      "tree": "abe560c8f293191be65488c49f4db3f3a626e63c",
      "parents": [
        "7c5367f205f7d53659fb19b9fdf65b7bc1a592c6"
      ],
      "author": {
        "name": "Andrea Arcangeli",
        "email": "aarcange@redhat.com",
        "time": "Thu Sep 09 16:37:52 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 09 18:57:24 2010 -0700"
      },
      "message": "mm: fix swapin race condition\n\nThe pte_same check is reliable only if the swap entry remains pinned (by\nthe page lock on swapcache).  We\u0027ve also to ensure the swapcache isn\u0027t\nremoved before we take the lock as try_to_free_swap won\u0027t care about the\npage pin.\n\nOne of the possible impacts of this patch is that a KSM-shared page can\npoint to the anon_vma of another process, which could exit before the page\nis freed.\n\nThis can leave a page with a pointer to a recycled anon_vma object, or\nworse, a pointer to something that is no longer an anon_vma.\n\n[riel@redhat.com: changelog help]\nSigned-off-by: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nAcked-by: Hugh Dickins \u003chughd@google.com\u003e\nReviewed-by: Rik van Riel \u003criel@redhat.com\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "39aa3cb3e8250db9188a6f1e3fb62ffa1a717678",
      "tree": "266640c10436e9bda9bc283fbe5db22761a7cc7c",
      "parents": [
        "26a94e81ded0fcdc0bf96b5fea7343311f1a220b"
      ],
      "author": {
        "name": "Stefan Bader",
        "email": "stefan.bader@canonical.com",
        "time": "Tue Aug 31 15:52:27 2010 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 09 09:05:06 2010 -0700"
      },
      "message": "mm: Move vma_stack_continue into mm.h\n\nSo it can be used by all that need to check for that.\n\nSigned-off-by: Stefan Bader \u003cstefan.bader@canonical.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ce7db282a3830f57f5b05ec48288c23a5c4d66d5",
      "tree": "8e191c4b2ffa1658d5c014da5cc6230fc58c1a59",
      "parents": [
        "cd4d4fc4137502f88ee871fc015a934dc28535e3",
        "54157c44471f5e266508ac08d270f2bc5857e8bb"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 07 14:08:37 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 07 14:08:37 2010 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu:\n  percpu: fix a mismatch between code and comment\n  percpu: fix a memory leak in pcpu_extend_area_map()\n  percpu: add __percpu notations to UP allocator\n  percpu: handle __percpu notations in UP accessors\n"
    },
    {
      "commit": "997396a73a94de7d92d82e30d7bb1d931e38cb16",
      "tree": "2190a66e085f16a1985e008be167d6fc4ea6734d",
      "parents": [
        "6f4dbeca1a5bac4552d49d9e7b774da9f6625e74",
        "b545787dbb00a041c541a4759d938ddb0108295a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Aug 28 14:07:20 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Aug 28 14:07:20 2010 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client:\n  ceph: fix get_ticket_handler() error handling\n  ceph: don\u0027t BUG on ENOMEM during mds reconnect\n  ceph: ceph_mdsc_build_path() returns an ERR_PTR\n  ceph: Fix warnings\n  ceph: ceph_get_inode() returns an ERR_PTR\n  ceph: initialize fields on new dentry_infos\n  ceph: maintain i_head_snapc when any caps are dirty, not just for data\n  ceph: fix osd request lru adjustment when sending request\n  ceph: don\u0027t improperly set dir complete when holding EXCL cap\n  mm: exporting account_page_dirty\n  ceph: direct requests in snapped namespace based on nonsnap parent\n  ceph: queue cap snap writeback for realm children on snap update\n  ceph: include dirty xattrs state in snapped caps\n  ceph: fix xattr cap writeback\n  ceph: fix multiple mds session shutdown\n"
    },
    {
      "commit": "f18194275c39835cb84563500995e0d503a32d9a",
      "tree": "ec3221ba856e6580e844c4bff200c48f2618c6ac",
      "parents": [
        "d4348c678977c7093438bbbf2067c49396ae941b"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hughd@google.com",
        "time": "Wed Aug 25 23:12:54 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Aug 28 13:54:12 2010 -0700"
      },
      "message": "mm: fix hang on anon_vma-\u003eroot-\u003elock\n\nAfter several hours, kbuild tests hang with anon_vma_prepare() spinning on\na newly allocated anon_vma\u0027s lock - on a box with CONFIG_TREE_PREEMPT_RCU\u003dy\n(which makes this very much more likely, but it could happen without).\n\nThe ever-subtle page_lock_anon_vma() now needs a further twist: since\nanon_vma_prepare() and anon_vma_fork() are liable to change the -\u003eroot\nof a reused anon_vma structure at any moment, page_lock_anon_vma()\nneeds to check page_mapped() again before succeeding, otherwise\npage_unlock_anon_vma() might address a different root-\u003elock.\n\nSigned-off-by: Hugh Dickins \u003chughd@google.com\u003e\nReviewed-by: Rik van Riel \u003criel@redhat.com\u003e\nCc: Christoph Lameter \u003ccl@linux.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "54157c44471f5e266508ac08d270f2bc5857e8bb",
      "tree": "ecc31a0fee9ffc75875e51b71ae07010fb4bc07b",
      "parents": [
        "a002d148426f40bc2b7dc066982eb177cdebeaaa"
      ],
      "author": {
        "name": "Namhyung Kim",
        "email": "namhyung@gmail.com",
        "time": "Wed Aug 11 11:19:19 2010 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Fri Aug 27 11:36:19 2010 +0200"
      },
      "message": "percpu: fix a mismatch between code and comment\n\nWhen pcpu_build_alloc_info() searches best_upa value, it ignores current value\nif the number of waste units exceeds 1/3 of the number of total cpus. But the\ncomment on the code says that it will ignore if wastage is over 25%.\nModify the comment.\n\nSigned-off-by: Namhyung Kim \u003cnamhyung@gmail.com\u003e\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\n"
    },
    {
      "commit": "a002d148426f40bc2b7dc066982eb177cdebeaaa",
      "tree": "2b499e19cd7431b077eefe53dbcde8dbe71d3097",
      "parents": [
        "94cb121c9483f1ec9b1ef0c249fbfc49c628fa6b"
      ],
      "author": {
        "name": "Huang Shijie",
        "email": "shijie8@gmail.com",
        "time": "Sun Aug 08 14:39:07 2010 +0200"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Fri Aug 27 11:36:08 2010 +0200"
      },
      "message": "percpu: fix a memory leak in pcpu_extend_area_map()\n\nThe original code did not free the old map.  This patch fixes it.\n\ntj: use @old as memcpy source instead of @chunk-\u003emap, and indentation\n    and description update\n\nSigned-off-by: Huang Shijie \u003cshijie8@gmail.com\u003e\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "6628bc74f1aa9c35dd386320bf7ec04f12edb1b3",
      "tree": "c51e82966384fcdda25594372197d80fcb6a649b",
      "parents": [
        "2a643ec67f9efc4b6921a3dd6e257f3b5360622b"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Fri Aug 27 09:15:09 2010 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Fri Aug 27 09:16:18 2010 +0200"
      },
      "message": "writeback: do not lose wakeup events when forking bdi threads\n\nThis patch fixes the following issue:\n\nINFO: task mount.nfs4:1120 blocked for more than 120 seconds.\n\"echo 0 \u003e /proc/sys/kernel/hung_task_timeout_secs\" disables this message.\nmount.nfs4    D 00000000fffc6a21     0  1120   1119 0x00000000\n ffff880235643948 0000000000000046 ffffffff00000000 ffffffff00000000\n ffff880235643fd8 ffff880235314760 00000000001d44c0 ffff880235643fd8\n 00000000001d44c0 00000000001d44c0 00000000001d44c0 00000000001d44c0\nCall Trace:\n [\u003cffffffff813bc747\u003e] schedule_timeout+0x34/0xf1\n [\u003cffffffff813bc530\u003e] ? wait_for_common+0x3f/0x130\n [\u003cffffffff8106b50b\u003e] ? trace_hardirqs_on+0xd/0xf\n [\u003cffffffff813bc5c3\u003e] wait_for_common+0xd2/0x130\n [\u003cffffffff8104159c\u003e] ? default_wake_function+0x0/0xf\n [\u003cffffffff813beaa0\u003e] ? _raw_spin_unlock+0x26/0x2a\n [\u003cffffffff813bc6bb\u003e] wait_for_completion+0x18/0x1a\n [\u003cffffffff81101a03\u003e] sync_inodes_sb+0xca/0x1bc\n [\u003cffffffff811056a6\u003e] __sync_filesystem+0x47/0x7e\n [\u003cffffffff81105798\u003e] sync_filesystem+0x47/0x4b\n [\u003cffffffff810e7ffd\u003e] generic_shutdown_super+0x22/0xd2\n [\u003cffffffff810e80f8\u003e] kill_anon_super+0x11/0x4f\n [\u003cffffffffa00d06d7\u003e] nfs4_kill_super+0x3f/0x72 [nfs]\n [\u003cffffffff810e7b68\u003e] deactivate_locked_super+0x21/0x41\n [\u003cffffffff810e7fd6\u003e] deactivate_super+0x40/0x45\n [\u003cffffffff810fc66c\u003e] mntput_no_expire+0xb8/0xed\n [\u003cffffffff810fc73b\u003e] release_mounts+0x9a/0xb0\n [\u003cffffffff810fc7bb\u003e] put_mnt_ns+0x6a/0x7b\n [\u003cffffffffa00d0fb2\u003e] nfs_follow_remote_path+0x19a/0x296 [nfs]\n [\u003cffffffffa00d11ca\u003e] nfs4_try_mount+0x75/0xaf [nfs]\n [\u003cffffffffa00d1790\u003e] nfs4_get_sb+0x276/0x2ff [nfs]\n [\u003cffffffff810e7dba\u003e] vfs_kern_mount+0xb8/0x196\n [\u003cffffffff810e7ef6\u003e] do_kern_mount+0x48/0xe8\n [\u003cffffffff810fdf68\u003e] do_mount+0x771/0x7e8\n [\u003cffffffff810fe062\u003e] sys_mount+0x83/0xbd\n [\u003cffffffff810089c2\u003e] system_call_fastpath+0x16/0x1b\n\nThe reason of this hang was a race condition: when the flusher thread is\nforking a bdi thread, we use \u0027kthread_run()\u0027, so we run it _before_ we make it\nvisible in \u0027bdi-\u003ewb.task\u0027. The bdi thread runs, does all works, and goes sleep.\n\u0027bdi-\u003ewb.task\u0027 is still NULL. And this is a dangerous time window.\n\nIf at this time someone queues a work for this bdi, he does not see the bdi\nthread and wakes up the forker thread instead! But the forker has already\nforked this bdi thread, but just did not make it visible yet!\n\nThe result is that we lose the wake up event for this bdi thread and the NFS4\ncode waits forever.\n\nTo fix the problem, we should use \u0027ktrhead_create()\u0027 for creating bdi threads,\nthen make them visible in \u0027bdi-\u003ewb.task\u0027, and only after this wake them up.\nThis is exactly what this patch does.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "871eae4891a844e1fd065467b940f98dbf7aad1c",
      "tree": "30c0ea313fc55a3091a40893b77600b8f3daf63f",
      "parents": [
        "502adf5778f4151dcba3f64dd6ed322151f3712c",
        "b5420f235953448eeae615b3361584dc5e414f34"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Aug 25 08:39:07 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Aug 25 08:39:07 2010 -0700"
      },
      "message": "Merge branch \u00272.6.36-fixes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/dgc/xfsdev\n\n* \u00272.6.36-fixes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/dgc/xfsdev:\n  xfs: do not discard page cache data on EAGAIN\n  xfs: don\u0027t do memory allocation under the CIL context lock\n  xfs: Reduce log force overhead for delayed logging\n  xfs: dummy transactions should not dirty VFS state\n  xfs: ensure f_ffree returned by statfs() is non-negative\n  xfs: handle negative wbc-\u003enr_to_write during sync writeback\n  writeback: write_cache_pages doesn\u0027t terminate at nr_to_write \u003c\u003d 0\n  xfs: fix untrusted inode number lookup\n  xfs: ensure we mark all inodes in a freed cluster XFS_ISTALE\n  xfs: unlock items before allowing the CIL to commit\n"
    },
    {
      "commit": "8ca3eb08097f6839b2206e2242db4179aee3cfb3",
      "tree": "32b9f033230d615d248fa0bbfa1a0c644a422ed8",
      "parents": [
        "9559fcdbff4f93d29af04478bbc48294519424f5"
      ],
      "author": {
        "name": "Luck, Tony",
        "email": "tony.luck@intel.com",
        "time": "Tue Aug 24 11:44:18 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Aug 24 12:13:20 2010 -0700"
      },
      "message": "guard page for stacks that grow upwards\n\npa-risc and ia64 have stacks that grow upwards. Check that\nthey do not run into other mappings. By making VM_GROWSUP\n0x0 on architectures that do not ever use it, we can avoid\nsome unpleasant #ifdefs in check_stack_guard_page().\n\nSigned-off-by: Tony Luck \u003ctony.luck@intel.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "546a1924224078c6f582e68f890b05b387b42653",
      "tree": "f863df4fd74f85c8177d9eb1467a351cd6d0acfc",
      "parents": [
        "4536f2ad8b330453d7ebec0746c4374eadd649b1"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Tue Aug 24 11:44:34 2010 +1000"
      },
      "committer": {
        "name": "Dave Chinner",
        "email": "david@fromorbit.com",
        "time": "Tue Aug 24 11:44:34 2010 +1000"
      },
      "message": "writeback: write_cache_pages doesn\u0027t terminate at nr_to_write \u003c\u003d 0\n\nI noticed XFS writeback in 2.6.36-rc1 was much slower than it should have\nbeen. Enabling writeback tracing showed:\n\n    flush-253:16-8516  [007] 1342952.351608: wbc_writepage: bdi 253:16: towrt\u003d1024 skip\u003d0 mode\u003d0 kupd\u003d0 bgrd\u003d1 reclm\u003d0 cyclic\u003d1 more\u003d0 older\u003d0x0 start\u003d0x0 end\u003d0x0\n    flush-253:16-8516  [007] 1342952.351654: wbc_writepage: bdi 253:16: towrt\u003d1023 skip\u003d0 mode\u003d0 kupd\u003d0 bgrd\u003d1 reclm\u003d0 cyclic\u003d1 more\u003d0 older\u003d0x0 start\u003d0x0 end\u003d0x0\n    flush-253:16-8516  [000] 1342952.369520: wbc_writepage: bdi 253:16: towrt\u003d0 skip\u003d0 mode\u003d0 kupd\u003d0 bgrd\u003d1 reclm\u003d0 cyclic\u003d1 more\u003d0 older\u003d0x0 start\u003d0x0 end\u003d0x0\n    flush-253:16-8516  [000] 1342952.369542: wbc_writepage: bdi 253:16: towrt\u003d-1 skip\u003d0 mode\u003d0 kupd\u003d0 bgrd\u003d1 reclm\u003d0 cyclic\u003d1 more\u003d0 older\u003d0x0 start\u003d0x0 end\u003d0x0\n    flush-253:16-8516  [000] 1342952.369549: wbc_writepage: bdi 253:16: towrt\u003d-2 skip\u003d0 mode\u003d0 kupd\u003d0 bgrd\u003d1 reclm\u003d0 cyclic\u003d1 more\u003d0 older\u003d0x0 start\u003d0x0 end\u003d0x0\n\nWriteback is not terminating in background writeback if -\u003ewritepage is\nreturning with wbc-\u003enr_to_write \u003d\u003d 0, resulting in sub-optimal single page\nwriteback on XFS.\n\nFix the write_cache_pages loop to terminate correctly when this situation\noccurs and so prevent this sub-optimal background writeback pattern. This\nimproves sustained sequential buffered write performance from around\n250MB/s to 750MB/s for a 100GB file on an XFS filesystem on my 8p test VM.\n\nCc:\u003cstable@kernel.org\u003e\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nReviewed-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "679ceace848e9fd570678396ffe1ef034e00e82d",
      "tree": "670768527852f134cfe3e20d425534a16edd968a",
      "parents": [
        "eb6bb1c5bdc6e455a9d16cb845cc65afc9b0a617"
      ],
      "author": {
        "name": "Michael Rubin",
        "email": "mrubin@google.com",
        "time": "Fri Aug 20 02:31:26 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Sun Aug 22 15:16:51 2010 -0700"
      },
      "message": "mm: exporting account_page_dirty\n\nThis allows code outside of the mm core to safely manipulate page state\nand not worry about the other accounting. Not using these routines means\nthat some code will lose track of the accounting and we get bugs. This\nhas happened once already.\n\nSigned-off-by: Michael Rubin \u003cmrubin@google.com\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "bc584c5107bfd97e2aa41c798e3b213bcdd4eae7",
      "tree": "13cb518e2f4f2aac46aefbbaacb6e4fa3fbb58a2",
      "parents": [
        "a28e0852d45e65d9edf249c36e432b5e0a80f01d",
        "1ab335d8f85792e3b107ff8237d53cf64db714df"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Aug 22 10:08:52 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Aug 22 10:08:52 2010 -0700"
      },
      "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  slab: fix object alignment\n  slub: add missing __percpu markup in mm/slub_def.h\n"
    },
    {
      "commit": "0e8e50e20c837eeec8323bba7dcd25fe5479194c",
      "tree": "12c7ec767a4a8508be33442c6fb55c28a26c94cd",
      "parents": [
        "7798330ac8114c731cfab83e634c6ecedaa233d7"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 20 16:49:40 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Aug 21 08:50:00 2010 -0700"
      },
      "message": "mm: make stack guard page logic use vm_prev pointer\n\nLike the mlock() change previously, this makes the stack guard check\ncode use vma-\u003evm_prev to see what the mapping below the current stack\nis, rather than have to look it up with find_vma().\n\nAlso, accept an abutting stack segment, since that happens naturally if\nyou split the stack with mlock or mprotect.\n\nTested-by: Ian Campbell \u003cijc@hellion.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7798330ac8114c731cfab83e634c6ecedaa233d7",
      "tree": "76c15db91609ad3355add2a6f23823ea27cf920d",
      "parents": [
        "297c5eee372478fc32fec5fe8eed711eedb13f3d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 20 16:39:25 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Aug 21 08:49:50 2010 -0700"
      },
      "message": "mm: make the mlock() stack guard page checks stricter\n\nIf we\u0027ve split the stack vma, only the lowest one has the guard page.\nNow that we have a doubly linked list of vma\u0027s, checking this is trivial.\n\nTested-by: Ian Campbell \u003cijc@hellion.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "297c5eee372478fc32fec5fe8eed711eedb13f3d",
      "tree": "18415eae0833ff4767943f985900524d6b1d73f1",
      "parents": [
        "36423a5ed5e4ea95ceedb68fad52965033e11639"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 20 16:24:55 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Aug 21 08:49:21 2010 -0700"
      },
      "message": "mm: make the vma list be doubly linked\n\nIt\u0027s a really simple list, and several of the users want to go backwards\nin it to find the previous vma.  So rather than have to look up the\nprevious entry with \u0027find_vma_prev()\u0027 or something similar, just make it\ndoubly linked instead.\n\nTested-by: Ian Campbell \u003cijc@hellion.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8d6c83f0ba5e1bd1e8bb2e3c7de4c276dc247f99",
      "tree": "58b777adffdaf754b97e6359a325bccdd8919346",
      "parents": [
        "b52723c5607f7684c2c0c075f86f86da0d7fb6d0"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Thu Aug 19 14:13:39 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 20 09:34:55 2010 -0700"
      },
      "message": "oom: __task_cred() need rcu_read_lock()\n\ndump_tasks() needs to hold the RCU read lock around its access of the\ntarget task\u0027s UID.  To this end it should use task_uid() as it only needs\nthat one thing from the creds.\n\nThe fact that dump_tasks() holds tasklist_lock is insufficient to prevent the\ntarget process replacing its credentials on another CPU.\n\nThen, this patch change to call rcu_read_lock() explicitly.\n\n\t\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\t[ INFO: suspicious rcu_dereference_check() usage. ]\n\t---------------------------------------------------\n\tmm/oom_kill.c:410 invoked rcu_dereference_check() without protection!\n\n\tother info that might help us debug this:\n\n\trcu_scheduler_active \u003d 1, debug_locks \u003d 1\n\t4 locks held by kworker/1:2/651:\n\t #0:  (events){+.+.+.}, at: [\u003cffffffff8106aae7\u003e]\n\tprocess_one_work+0x137/0x4a0\n\t #1:  (moom_work){+.+...}, at: [\u003cffffffff8106aae7\u003e]\n\tprocess_one_work+0x137/0x4a0\n\t #2:  (tasklist_lock){.+.+..}, at: [\u003cffffffff810fafd4\u003e]\n\tout_of_memory+0x164/0x3f0\n\t #3:  (\u0026(\u0026p-\u003ealloc_lock)-\u003erlock){+.+...}, at: [\u003cffffffff810fa48e\u003e]\n\tfind_lock_task_mm+0x2e/0x70\n\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nAcked-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": "b52723c5607f7684c2c0c075f86f86da0d7fb6d0",
      "tree": "97db08ef9d74c8fcacff6a96070854a5bc276419",
      "parents": [
        "be71cf2202971e50ce4953d473649c724799eb8a"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Thu Aug 19 14:13:39 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 20 09:34:55 2010 -0700"
      },
      "message": "oom: fix tasklist_lock leak\n\nCommit 0aad4b3124 (\"oom: fold __out_of_memory into out_of_memory\")\nintroduced a tasklist_lock leak.  Then it caused following obvious\ndanger warnings and panic.\n\n    \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n    [ BUG: lock held when returning to user space! ]\n    ------------------------------------------------\n    rsyslogd/1422 is leaving the kernel with locks still held!\n    1 lock held by rsyslogd/1422:\n     #0:  (tasklist_lock){.+.+.+}, at: [\u003cffffffff810faf64\u003e] out_of_memory+0x164/0x3f0\n    BUG: scheduling while atomic: rsyslogd/1422/0x00000002\n    INFO: lockdep is turned off.\n\nThis patch fixes it.\n\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nReviewed-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nAcked-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": "be71cf2202971e50ce4953d473649c724799eb8a",
      "tree": "4bc4b927c3f55c12128929ab0d52e061c2a257ec",
      "parents": [
        "f522886e202a34a2191dd5d471b3c4d46410a9a0"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Thu Aug 19 14:13:38 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 20 09:34:55 2010 -0700"
      },
      "message": "oom: fix NULL pointer dereference\n\nCommit b940fd7035 (\"oom: remove unnecessary code and cleanup\") added an\nunnecessary NULL pointer dereference.  remove it.\n\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nReviewed-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nAcked-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": "d5ed3a4af77b851b6271ad3d9abc4c57fa3ce0f5",
      "tree": "f06894404e4af25051e8918bfd3fdac95974fc97",
      "parents": [
        "f2e41e910320197d55b52e28d99a07130f2ae738"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Thu Aug 19 14:13:33 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 20 09:34:55 2010 -0700"
      },
      "message": "lib/radix-tree.c: fix overflow in radix_tree_range_tag_if_tagged()\n\nWhen radix_tree_maxindex() is ~0UL, it can happen that scanning overflows\nindex and tree traversal code goes astray reading memory until it hits\nunreadable memory.  Check for overflow and exit in that case.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nCc: Christoph Hellwig \u003chch@lst.de\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": "602586a83b719df0fbd94196a1359ed35aeb2df3",
      "tree": "1ff381d77769e352397edd2f6a7aa8ca5ba929f1",
      "parents": [
        "19147d0eb1472eac690a9a708893d4de096bbfcf"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hughd@google.com",
        "time": "Tue Aug 17 15:23:56 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Aug 17 18:33:11 2010 -0700"
      },
      "message": "shmem: put_super must percpu_counter_destroy\n\nlist_add() corruption messages reported from shmem_fill_super()\u0027s recently\nintroduced percpu_counter_init(): shmem_put_super() needs to remember to\npercpu_counter_destroy().  And also check error from percpu_counter_init().\n\nReported-bisected-and-tested-by: Tetsuo Handa \u003cpenguin-kernel@i-love.sakura.ne.jp\u003e\nSigned-off-by: Hugh Dickins \u003chughd@google.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d7824370e26325c881b665350ce64fb0a4fde24a",
      "tree": "c3fb9ceb074d52c3edd166a927314c642f2fe631",
      "parents": [
        "1b68c9596ce17a1e06918ed65fc3d19b92b04aab"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Aug 15 11:35:52 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Aug 15 11:35:52 2010 -0700"
      },
      "message": "mm: fix up some user-visible effects of the stack guard page\n\nThis commit makes the stack guard page somewhat less visible to user\nspace. It does this by:\n\n - not showing the guard page in /proc/\u003cpid\u003e/maps\n\n   It looks like lvm-tools will actually read /proc/self/maps to figure\n   out where all its mappings are, and effectively do a specialized\n   \"mlockall()\" in user space.  By not showing the guard page as part of\n   the mapping (by just adding PAGE_SIZE to the start for grows-up\n   pages), lvm-tools ends up not being aware of it.\n\n - by also teaching the _real_ mlock() functionality not to try to lock\n   the guard page.\n\n   That would just expand the mapping down to create a new guard page,\n   so there really is no point in trying to lock it in place.\n\nIt would perhaps be nice to show the guard page specially in\n/proc/\u003cpid\u003e/maps (or at least mark grow-down segments some way), but\nlet\u0027s not open ourselves up to more breakage by user space from programs\nthat depends on the exact deails of the \u0027maps\u0027 file.\n\nSpecial thanks to Henrique de Moraes Holschuh for diving into lvm-tools\nsource code to see what was going on with the whole new warning.\n\nReported-and-tested-by: François Valenduc \u003cfrancois.valenduc@tvcablenet.be\nReported-by: Henrique de Moraes Holschuh \u003chmh@hmh.eng.br\u003e\nCc: stable@kernel.org\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "03ab450f030b08d786c7a262b67816396f09c7ab",
      "tree": "1c6e245f823bd3c2c3f5b584f6f25cf83d1c2447",
      "parents": [
        "163475fb111cb2f85aef2428a6c1f9eefba8be23"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Sat Aug 14 13:05:17 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Aug 14 16:20:59 2010 -0700"
      },
      "message": "mm/page-writeback: fix non-kernel-doc function comments\n\nRemove leading /** from non-kernel-doc function comments to prevent\nkernel-doc warnings.\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "11ac552477e32835cb6970bf0a70c210807f5673",
      "tree": "959521ee3e217da81b08209df0f0db760e1efdb8",
      "parents": [
        "92fa5bd9a946b6e7aab6764e7312e4e3d9bed295"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Aug 14 11:44:56 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Aug 14 11:44:56 2010 -0700"
      },
      "message": "mm: fix page table unmap for stack guard page properly\n\nWe do in fact need to unmap the page table _before_ doing the whole\nstack guard page logic, because if it is needed (mainly 32-bit x86 with\nPAE and CONFIG_HIGHPTE, but other architectures may use it too) then it\nwill do a kmap_atomic/kunmap_atomic.\n\nAnd those kmaps will create an atomic region that we cannot do\nallocations in.  However, the whole stack expand code will need to do\nanon_vma_prepare() and vma_lock_anon_vma() and they cannot do that in an\natomic region.\n\nNow, a better model might actually be to do the anon_vma_prepare() when\n_creating_ a VM_GROWSDOWN segment, and not have to worry about any of\nthis at page fault time.  But in the meantime, this is the\nstraightforward fix for the issue.\n\nSee https://bugzilla.kernel.org/show_bug.cgi?id\u003d16588 for details.\n\nReported-by: Wylda \u003cwylda@volny.cz\u003e\nReported-by: Sedat Dilek \u003csedat.dilek@gmail.com\u003e\nReported-by: Mike Pagano \u003cmpagano@gentoo.org\u003e\nReported-by: François Valenduc \u003cfrancois.valenduc@tvcablenet.be\u003e\nTested-by: Ed Tomlinson \u003cedt@aei.ca\u003e\nCc: Pekka Enberg \u003cpenberg@kernel.org\u003e\nCc: Greg KH \u003cgregkh@suse.de\u003e\nCc: stable@kernel.org\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "fe622e76fddd986e56f22842a6ce292504727ef1",
      "tree": "7e901e8d5f42a76c0e9e8e33d75b6ff791a7b759",
      "parents": [
        "c7887325230aec47d47a32562a6e26014a0fafca"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Aug 13 11:25:12 2010 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 13 16:55:25 2010 -0700"
      },
      "message": "NOMMU: Remove an extraneous no_printk()\n\nRemove an extraneous no_printk() in mm/nommu.c that got missed when the\nfunction got generalised from several things that used it in commit\n12fdff3fc248 (\"Add a dummy printk function for the maintenance of unused\nprintks\").\n\nWithout this, the following error is observed:\n\n  mm/nommu.c:41: error: conflicting types for \u0027no_printk\u0027\n  include/linux/kernel.h:314: error: previous definition of \u0027no_printk\u0027 was here\n\nReported-by: Michal Simek \u003cmonstr@monstr.eu\u003e\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5528f9132cf65d4d892bcbc5684c61e7822b21e9",
      "tree": "46ad9b7a106a42579b869b42bf237a663370a613",
      "parents": [
        "320b2b8de12698082609ebbc1a17165727f4c893"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 13 09:24:04 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 13 09:24:04 2010 -0700"
      },
      "message": "mm: fix missing page table unmap for stack guard page failure case\n\n.. which didn\u0027t show up in my tests because it\u0027s a no-op on x86-64 and\nmost other architectures.  But we enter the function with the last-level\npage table mapped, and should unmap it at exit.\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "320b2b8de12698082609ebbc1a17165727f4c893",
      "tree": "bb62fe1ba3bb8bf68ff1fd44e613ece9c9581c36",
      "parents": [
        "2069601b3f0ea38170d4b509b89f3ca0a373bdc1"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Aug 12 17:54:33 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Aug 12 17:54:33 2010 -0700"
      },
      "message": "mm: keep a guard page below a grow-down stack segment\n\nThis is a rather minimally invasive patch to solve the problem of the\nuser stack growing into a memory mapped area below it.  Whenever we fill\nthe first page of the stack segment, expand the segment down by one\npage.\n\nNow, admittedly some odd application might _want_ the stack to grow down\ninto the preceding memory mapping, and so we may at some point need to\nmake this a process tunable (some people might also want to have more\nthan a single page of guarding), but let\u0027s try the minimal approach\nfirst.\n\nTested with trivial application that maps a single page just below the\nstack, and then starts recursing.  Without this, we will get a SIGSEGV\n_after_ the stack has smashed the mapping.  With this patch, we\u0027ll get a\nnice SIGBUS just as the stack touches the page just above the mapping.\n\nRequested-by: Keith Packard \u003ckeithp@keithp.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1021a645344d4a77333e19e60d37b9343be0d7b7",
      "tree": "7a78ab55f27f97209ed1b85ccfd88c6d5b8416d3",
      "parents": [
        "7367f5b013fee33f7d40a5a10a39d5134f529ec8",
        "28957a5467bab9ed51a237d21e31055fad987887"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Aug 12 10:15:10 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Aug 12 10:15:10 2010 -0700"
      },
      "message": "Merge branch \u0027hwpoison\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ak/linux-mce-2.6\n\n* \u0027hwpoison\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ak/linux-mce-2.6:\n  hugetlb: add missing unlock in avoidcopy path in hugetlb_cow()\n  hwpoison: rename CONFIG\n  HWPOISON, hugetlb: support hwpoison injection for hugepage\n  HWPOISON, hugetlb: detect hwpoison in hugetlb code\n  HWPOISON, hugetlb: isolate corrupted hugepage\n  HWPOISON, hugetlb: maintain mce_bad_pages in handling hugepage error\n  HWPOISON, hugetlb: set/clear PG_hwpoison bits on hugepage\n  HWPOISON, hugetlb: enable error handling path for hugepage\n  hugetlb, rmap: add reverse mapping for hugepage\n  hugetlb: move definition of is_vm_hugetlb_page() to hugepage_inline.h\n\nFix up trivial conflicts in mm/memory-failure.c\n"
    },
    {
      "commit": "26f0cf91813bdc8e61595f8ad6660251e2ee9cf6",
      "tree": "db129d45fba03e3e59392410d0f35ba7d3e438e6",
      "parents": [
        "d862b13bc8cbab9692fbe0ef44c40d0488b81af1",
        "fe96eb404e33b59bb39f7050205f7c56c1c7d686"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Aug 12 09:09:41 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Aug 12 09:09:41 2010 -0700"
      },
      "message": "Merge branch \u0027stable/xen-swiotlb-0.8.6\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen\n\n* \u0027stable/xen-swiotlb-0.8.6\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen:\n  x86: Detect whether we should use Xen SWIOTLB.\n  pci-swiotlb-xen: Add glue code to setup dma_ops utilizing xen_swiotlb_* functions.\n  swiotlb-xen: SWIOTLB library for Xen PV guest with PCI passthrough.\n  xen/mmu: inhibit vmap aliases rather than trying to clear them out\n  vmap: add flag to allow lazy unmap to be disabled at runtime\n  xen: Add xen_create_contiguous_region\n  xen: Rename the balloon lock\n  xen: Allow unprivileged Xen domains to create iomap pages\n  xen: use _PAGE_IOMAP in ioremap to do machine mappings\n\nFix up trivial conflicts (adding both xen swiotlb and xen pci platform\ndriver setup close to each other) in drivers/xen/{Kconfig,Makefile} and\ninclude/xen/xen-ops.h\n"
    },
    {
      "commit": "1babe18385d3976043c04237ce837f3736197eb4",
      "tree": "c766bb0022ec5188cd7e991fc1f9ad51687e8aca",
      "parents": [
        "16c4042f08919f447d6b2a55679546c9b97c7264"
      ],
      "author": {
        "name": "Wu Fengguang",
        "email": "fengguang.wu@intel.com",
        "time": "Wed Aug 11 14:17:40 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Aug 12 08:43:30 2010 -0700"
      },
      "message": "writeback: add comment to the dirty limit functions\n\nDocument global_dirty_limits() and bdi_dirty_limit().\n\nSigned-off-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nCc: Dave Chinner \u003cdavid@fromorbit.com\u003e\nCc: Jens Axboe \u003caxboe@kernel.dk\u003e\nCc: 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": "16c4042f08919f447d6b2a55679546c9b97c7264",
      "tree": "0248b64d46237854ebe67efe8c742cb5878d8611",
      "parents": [
        "e50e37201ae2e7d6a52e87815759e6481f0bcfb9"
      ],
      "author": {
        "name": "Wu Fengguang",
        "email": "fengguang.wu@intel.com",
        "time": "Wed Aug 11 14:17:39 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Aug 12 08:43:29 2010 -0700"
      },
      "message": "writeback: avoid unnecessary calculation of bdi dirty thresholds\n\nSplit get_dirty_limits() into global_dirty_limits()+bdi_dirty_limit(), so\nthat the latter can be avoided when under global dirty background\nthreshold (which is the normal state for most systems).\n\nSigned-off-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nCc: Dave Chinner \u003cdavid@fromorbit.com\u003e\nCc: Jens Axboe \u003caxboe@kernel.dk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e50e37201ae2e7d6a52e87815759e6481f0bcfb9",
      "tree": "efb500382d5e9628351cb16286f579ad9bd455db",
      "parents": [
        "a292dfa01794477126d3f022559eb235edde00b0"
      ],
      "author": {
        "name": "Wu Fengguang",
        "email": "fengguang.wu@intel.com",
        "time": "Wed Aug 11 14:17:37 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Aug 12 08:43:29 2010 -0700"
      },
      "message": "writeback: balance_dirty_pages(): reduce calls to global_page_state\n\nReducing the number of times balance_dirty_pages calls global_page_state\nreduces the cache references and so improves write performance on a\nvariety of workloads.\n\n\u0027perf stats\u0027 of simple fio write tests shows the reduction in cache\naccess.  Where the test is fio \u0027write,mmap,600Mb,pre_read\u0027 on AMD AthlonX2\nwith 3Gb memory (dirty_threshold approx 600 Mb) running each test 10\ntimes, dropping the fasted \u0026 slowest values then taking the average \u0026\nstandard deviation\n\n\t\taverage (s.d.) in millions (10^6)\n2.6.31-rc8\t648.6 (14.6)\n+patch\t\t620.1 (16.5)\n\nAchieving this reduction is by dropping clip_bdi_dirty_limit as it rereads\nthe counters to apply the dirty_threshold and moving this check up into\nbalance_dirty_pages where it has already read the counters.\n\nAlso by rearrange the for loop to only contain one copy of the limit tests\nallows the pdflush test after the loop to use the local copies of the\ncounters rather than rereading them.\n\nIn the common case with no throttling it now calls global_page_state 5\nfewer times and bdi_stat 2 fewer.\n\nFengguang:\n\nThis patch slightly changes behavior by replacing clip_bdi_dirty_limit()\nwith the explicit check (nr_reclaimable + nr_writeback \u003e\u003d dirty_thresh) to\navoid exceeding the dirty limit.  Since the bdi dirty limit is mostly\naccurate we don\u0027t need to do routinely clip.  A simple dirty limit check\nwould be enough.\n\nThe check is necessary because, in principle we should throttle everything\ncalling balance_dirty_pages() when we\u0027re over the total limit, as said by\nPeter.\n\nWe now set and clear dirty_exceeded not only based on bdi dirty limits,\nbut also on the global dirty limit.  The global limit check is added in\nplace of clip_bdi_dirty_limit() for safety and not intended as a behavior\nchange.  The bdi limits should be tight enough to keep all dirty pages\nunder the global limit at most time; occasional small exceeding should be\nOK though.  The change makes the logic more obvious: the global limit is\nthe ultimate goal and shall be always imposed.\n\nWe may now start background writeback work based on outdated conditions.\nThat\u0027s safe because the bdi flush thread will (and have to) double check\nthe states.  It reduces overall overheads because the test based on old\nstates still have good chance to be right.\n\n[akpm@linux-foundation.org] fix uninitialized dirty_exceeded\nSigned-off-by: Richard Kennedy \u003crichard@rsk.demon.co.uk\u003e\nSigned-off-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nCc: Jan Kara \u003cjack@suse.cz\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nCc: Dave Chinner \u003cdavid@fromorbit.com\u003e\nCc: Jens Axboe \u003caxboe@kernel.dk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3c111a071da260aa1e9cae3e882e2109c4e9bdfc",
      "tree": "27a830f9981dc1a9734a190d9890d4eddf0e6357",
      "parents": [
        "0a7992c90828a65281c3c9cf180be3b432d277b2"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Wed Aug 11 14:17:30 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Aug 12 08:43:29 2010 -0700"
      },
      "message": "mm: fix fatal kernel-doc error\n\nFix a fatal kernel-doc error due to a #define coming between a function\u0027s\nkernel-doc notation and the function signature.  (kernel-doc cannot handle\nthis)\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "13d7e3a2dba6a79589ed34dc0b9114d7b5ff9eab",
      "tree": "b22db0b9ab3af864c7517ca38887048423194e41",
      "parents": [
        "00918b6ab89df8984ca06397cb77994dabd73f9b"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Tue Aug 10 18:03:06 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Aug 11 08:59:19 2010 -0700"
      },
      "message": "memcg: convert to use zone_to_nid() from bare zone-\u003ezone_pgdat-\u003enode_id\n\nWe have zone_to_nid().  this patch convert all existing users of\nzone-\u003ezone_pgdat-\u003enode_id.\n\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nAcked-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Nishimura Daisuke \u003cd-nishimura@mtf.biglobe.ne.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "00918b6ab89df8984ca06397cb77994dabd73f9b",
      "tree": "2ca2f0f0e7f3ca235c254f05759f96f160e3c0ab",
      "parents": [
        "14fec79680f7cc4617d6ba69324e63d4a732986c"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Tue Aug 10 18:03:05 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Aug 11 08:59:19 2010 -0700"
      },
      "message": "memcg: remove nid and zid argument from mem_cgroup_soft_limit_reclaim()\n\nmem_cgroup_soft_limit_reclaim() has zone, nid and zid argument.  but nid\nand zid can be calculated from zone.  So remove it.\n\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nAcked-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Nishimura Daisuke \u003cd-nishimura@mtf.biglobe.ne.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "14fec79680f7cc4617d6ba69324e63d4a732986c",
      "tree": "f8a9b627a03d04ec7c76fb67f8ea66c81c57a92f",
      "parents": [
        "da280d636b83f0f5d92921c99ef5c7d7c3e751cc"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Tue Aug 10 18:03:05 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Aug 11 08:59:19 2010 -0700"
      },
      "message": "memcg: mem_cgroup_shrink_node_zone() doesn\u0027t need sc.nodemask\n\nCurrently mem_cgroup_shrink_node_zone() call shrink_zone() directly.  thus\nit doesn\u0027t need to initialize sc.nodemask because shrink_zone() doesn\u0027t\nuse it at all.\n\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nAcked-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Nishimura Daisuke \u003cd-nishimura@mtf.biglobe.ne.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "da280d636b83f0f5d92921c99ef5c7d7c3e751cc",
      "tree": "8f64c4234031589b7818f3d90a1a9552016161ff",
      "parents": [
        "b8f5c5664d51776d74c84228c4b7165abfa92a18"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Tue Aug 10 18:03:04 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Aug 11 08:59:19 2010 -0700"
      },
      "message": "memcg: kill unnecessary initialization in mem_cgroup_shrink_node_zone()\n\nsc.nr_reclaimed and sc.nr_scanned have already been initialized few lines\nabove \"struct scan_control sc \u003d {}\" statement.\n\nSo, This patch remove this unnecessary code.\n\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Nishimura Daisuke \u003cd-nishimura@mtf.biglobe.ne.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b8f5c5664d51776d74c84228c4b7165abfa92a18",
      "tree": "951e09e1810a356d8ecff7a85637e9c2e2f4e49d",
      "parents": [
        "f75ca962037ffd639a44fd88933cd9b84c4c4411"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Tue Aug 10 18:03:02 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Aug 11 08:59:19 2010 -0700"
      },
      "message": "memcg: sc.nr_to_reclaim should be initialized\n\nCurrently, mem_cgroup_shrink_node_zone() initialize sc.nr_to_reclaim as 0.\n It mean shrink_zone() only scan 32 pages and immediately return even if\nit doesn\u0027t reclaim any pages.\n\nThis patch fixes it.\n\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nAcked-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Nishimura Daisuke \u003cd-nishimura@mtf.biglobe.ne.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f75ca962037ffd639a44fd88933cd9b84c4c4411",
      "tree": "4773cd57ae45831c11783cd355f9dcb516eb66f0",
      "parents": [
        "158e0a2d1b3cffed8b46cbc56393a1394672ef79"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Tue Aug 10 18:03:02 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Aug 11 08:59:19 2010 -0700"
      },
      "message": "memcg: avoid css_get()\n\nNow, memory cgroup increments css(cgroup subsys state)\u0027s reference count\nper a charged page.  And the reference count is kept until the page is\nuncharged.  But this has 2 bad effect.\n\n 1. Because css_get/put calls atomic_inc()/dec, heavy call of them\n    on large smp will not scale well.\n 2. Because css\u0027s refcnt cannot be in a state as \"ready-to-release\",\n    cgroup\u0027s notify_on_release handler can\u0027t work with memcg.\n 3. css\u0027s refcnt is atomic_t, it means smaller than 32bit. Maybe too small.\n\nThis has been a problem since the 1st merge of memcg.\n\nThis is a trial to remove css\u0027s refcnt per a page. Even if we remove\nrefcnt, pre_destroy() does enough synchronization as\n  - check res-\u003eusage \u003d\u003d 0.\n  - check no pages on LRU.\n\nThis patch removes css\u0027s refcnt per page.  Even after this patch, at the\n1st look, it seems css_get() is still called in try_charge().\n\nBut the logic is.\n\n  - If a memcg of mm-\u003eowner is cached one, consume_stock() will work.\n    At success, return immediately.\n  - If consume_stock returns false, css_get() is called and go to\n    slow path which may be blocked. At the end of slow path,\n    css_put() is called and restart from the start if necessary.\n\nSo, in the fast path, we don\u0027t call css_get() and can avoid access to\nshared counter. This patch can make the most possible case fast.\n\nHere is a result of multi-threaded page fault benchmark.\n\n[Before]\n    25.32%  multi-fault-all  [kernel.kallsyms]      [k] clear_page_c\n     9.30%  multi-fault-all  [kernel.kallsyms]      [k] _raw_spin_lock_irqsave\n     8.02%  multi-fault-all  [kernel.kallsyms]      [k] try_get_mem_cgroup_from_mm \u003c\u003d\u003d\u003d\u003d\u003d(*)\n     7.83%  multi-fault-all  [kernel.kallsyms]      [k] down_read_trylock\n     5.38%  multi-fault-all  [kernel.kallsyms]      [k] __css_put\n     5.29%  multi-fault-all  [kernel.kallsyms]      [k] __alloc_pages_nodemask\n     4.92%  multi-fault-all  [kernel.kallsyms]      [k] _raw_spin_lock_irq\n     4.24%  multi-fault-all  [kernel.kallsyms]      [k] up_read\n     3.53%  multi-fault-all  [kernel.kallsyms]      [k] css_put\n     2.11%  multi-fault-all  [kernel.kallsyms]      [k] handle_mm_fault\n     1.76%  multi-fault-all  [kernel.kallsyms]      [k] __rmqueue\n     1.64%  multi-fault-all  [kernel.kallsyms]      [k] __mem_cgroup_commit_charge\n\n[After]\n    28.41%  multi-fault-all  [kernel.kallsyms]      [k] clear_page_c\n    10.08%  multi-fault-all  [kernel.kallsyms]      [k] _raw_spin_lock_irq\n     9.58%  multi-fault-all  [kernel.kallsyms]      [k] down_read_trylock\n     9.38%  multi-fault-all  [kernel.kallsyms]      [k] _raw_spin_lock_irqsave\n     5.86%  multi-fault-all  [kernel.kallsyms]      [k] __alloc_pages_nodemask\n     5.65%  multi-fault-all  [kernel.kallsyms]      [k] up_read\n     2.82%  multi-fault-all  [kernel.kallsyms]      [k] handle_mm_fault\n     2.64%  multi-fault-all  [kernel.kallsyms]      [k] mem_cgroup_add_lru_list\n     2.48%  multi-fault-all  [kernel.kallsyms]      [k] __mem_cgroup_commit_charge\n\nThen, 8.02% of try_get_mem_cgroup_from_mm() disappears because this patch\nremoves css_tryget() in it. (But yes, this is an extreme case.)\n\nSigned-off-by: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\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": "158e0a2d1b3cffed8b46cbc56393a1394672ef79",
      "tree": "a044d53137609fdfc8c1afdde366b3e205c96eda",
      "parents": [
        "73045c47b6facbdf4656e6763c8cb469de4337e2"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Tue Aug 10 18:03:00 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Aug 11 08:59:19 2010 -0700"
      },
      "message": "memcg: use find_lock_task_mm() in memory cgroups oom\n\nWhen the OOM killer scans task, it check a task is under memcg or\nnot when it\u0027s called via memcg\u0027s context.\n\nBut, as Oleg pointed out, a thread group leader may have NULL -\u003emm\nand task_in_mem_cgroup() may do wrong decision. We have to use\nfind_lock_task_mm() in memcg as generic OOM-Killer does.\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nReviewed-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "73045c47b6facbdf4656e6763c8cb469de4337e2",
      "tree": "e791667803261eb9ae5325dcd8c70acefeee9196",
      "parents": [
        "bd0d24bfe8a8f8d2400569740874a67d164d40a9"
      ],
      "author": {
        "name": "Daisuke Nishimura",
        "email": "nishimura@mxp.nes.nec.co.jp",
        "time": "Tue Aug 10 18:02:59 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Aug 11 08:59:19 2010 -0700"
      },
      "message": "memcg: remove mem from arg of charge_common\n\nmem_cgroup_charge_common() is always called with @mem \u003d NULL, so it\u0027s\nmeaningless.  This patch removes it.\n\nSigned-off-by: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bd0d24bfe8a8f8d2400569740874a67d164d40a9",
      "tree": "9d592f6566adacc3e8da3d2c06411a16b2d45763",
      "parents": [
        "2bd9bb206b338888b226e70139a25a67d10007f0"
      ],
      "author": {
        "name": "Daisuke Nishimura",
        "email": "nishimura@mxp.nes.nec.co.jp",
        "time": "Tue Aug 10 18:02:59 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Aug 11 08:59:18 2010 -0700"
      },
      "message": "memcg: remove redundant code\n\n- try_get_mem_cgroup_from_mm() calls rcu_read_lock/unlock by itself, so we\n  don\u0027t have to call them in task_in_mem_cgroup().\n- *mz is not used in __mem_cgroup_uncharge_common().\n- we don\u0027t have to call lookup_page_cgroup() in mem_cgroup_end_migration()\n  after we\u0027ve cleared PCG_MIGRATION of @oldpage.\n- remove empty comment.\n- remove redundant empty line in mem_cgroup_cache_charge().\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\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2bd9bb206b338888b226e70139a25a67d10007f0",
      "tree": "ac556b1bfa52f06fe2998371d10edec38d5cf2a9",
      "parents": [
        "4b53433468c87794b523e4683fbd4e8e8aca1f63"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Tue Aug 10 18:02:58 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Aug 11 08:59:18 2010 -0700"
      },
      "message": "memcg: clean up waiting move acct\n\nNow, for checking a memcg is under task-account-moving, we do css_tryget()\nagainst mc.to and mc.from.  But this is just complicating things.  This\npatch makes the check easier.\n\nThis patch adds a spinlock to move_charge_struct and guard modification of\nmc.to and mc.from.  By this, we don\u0027t have to think about complicated\nraces arount this not-critical path.\n\n[balbir@linux.vnet.ibm.com: don\u0027t crash on a null memcg being passed]\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.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": "4b53433468c87794b523e4683fbd4e8e8aca1f63",
      "tree": "08f80fd5ec5d824a28aa4e0b15c7e2e83eed9fec",
      "parents": [
        "65e0e811667dedd4f19b268df9d856ecacb629de"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Tue Aug 10 18:02:57 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Aug 11 08:59:18 2010 -0700"
      },
      "message": "memcg: clean up try_charge main loop\n\nmem_cgroup_try_charge() has a big loop in it and seems to be hard to read.\n Most of routines are for slow path.  This patch moves codes out from the\nloop and make it clear what\u0027s done.\n\nSummary:\n - refactoring a function to detect a memcg is under acccount move or not.\n - refactoring a function to wait for the end of moving task acct.\n - refactoring a main loop(\u0027s slow path) as a function and make it clear\n   why we retry or quit by return code.\n - add fatal_signal_pending() check for bypassing charge loops.\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\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "28957a5467bab9ed51a237d21e31055fad987887",
      "tree": "1bc0a2bee4744516fb9874e36bbd7eb6cd9020b3",
      "parents": [
        "e3390f67a7267daa227380b6f1bbf13c7ddd4aff"
      ],
      "author": {
        "name": "Naoya Horiguchi",
        "email": "n-horiguchi@ah.jp.nec.com",
        "time": "Fri Jul 02 14:47:20 2010 +0900"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "ak@linux.intel.com",
        "time": "Wed Aug 11 09:23:48 2010 +0200"
      },
      "message": "hugetlb: add missing unlock in avoidcopy path in hugetlb_cow()\n\nThis patch fixes possible deadlock in hugepage lock_page()\nby adding missing unlock_page().\n\nlibhugetlbfs test will hit this bug when the next patch in this\npatchset (\"hugetlb, HWPOISON: move PG_HWPoison bit check\") is applied.\n\nSigned-off-by: Naoya Horiguchi \u003cn-horiguchi@ah.jp.nec.com\u003e\nSigned-off-by: Jun\u0027ichi Nomura \u003cj-nomura@ce.jp.nec.com\u003e\nAcked-by: Fengguang Wu \u003cfengguang.wu@intel.com\u003e\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\n"
    },
    {
      "commit": "e3390f67a7267daa227380b6f1bbf13c7ddd4aff",
      "tree": "7f0285b20cc844b9ea403d5d1278a9643a1baec5",
      "parents": [
        "43131e141abdb44c487cf79af3ef1fe5164dcef9"
      ],
      "author": {
        "name": "Naoya Horiguchi",
        "email": "n-horiguchi@ah.jp.nec.com",
        "time": "Tue Jun 15 13:18:13 2010 +0900"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "ak@linux.intel.com",
        "time": "Wed Aug 11 09:23:22 2010 +0200"
      },
      "message": "hwpoison: rename CONFIG\n\nCONFIG_HUGETLBFS controls hugetlbfs interface code.\nOTOH, CONFIG_HUGETLB_PAGE controls hugepage management code.\nSo we should use CONFIG_HUGETLB_PAGE here.\n\nSigned-off-by: Naoya Horiguchi \u003cn-horiguchi@ah.jp.nec.com\u003e\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\n"
    },
    {
      "commit": "43131e141abdb44c487cf79af3ef1fe5164dcef9",
      "tree": "374312457143abd52f1c4b0dbada363f5a69ba55",
      "parents": [
        "fd6a03edd271cf2d69a61aa8df98dd05fa6b9afd"
      ],
      "author": {
        "name": "Naoya Horiguchi",
        "email": "n-horiguchi@ah.jp.nec.com",
        "time": "Fri May 28 09:29:22 2010 +0900"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "ak@linux.intel.com",
        "time": "Wed Aug 11 09:23:11 2010 +0200"
      },
      "message": "HWPOISON, hugetlb: support hwpoison injection for hugepage\n\nThis patch enables hwpoison injection through debug/hwpoison interfaces,\nwith which we can test memory error handling for free or reserved\nhugepages (which cannot be tested by madvise() injector).\n\n[AK: Export PageHuge too for the injection module]\nSigned-off-by: Naoya Horiguchi \u003cn-horiguchi@ah.jp.nec.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nAcked-by: Fengguang Wu \u003cfengguang.wu@intel.com\u003e\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\n"
    },
    {
      "commit": "fd6a03edd271cf2d69a61aa8df98dd05fa6b9afd",
      "tree": "32d3e89f1f66a3d9b68bccc88fec548acc361bf5",
      "parents": [
        "93f70f900da36fbc19c13c2aa04b2e468c8d00fb"
      ],
      "author": {
        "name": "Naoya Horiguchi",
        "email": "n-horiguchi@ah.jp.nec.com",
        "time": "Fri May 28 09:29:21 2010 +0900"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "ak@linux.intel.com",
        "time": "Wed Aug 11 09:23:01 2010 +0200"
      },
      "message": "HWPOISON, hugetlb: detect hwpoison in hugetlb code\n\nThis patch enables to block access to hwpoisoned hugepage and\nalso enables to block unmapping for it.\n\nDependency:\n  \"HWPOISON, hugetlb: enable error handling path for hugepage\"\n\nSigned-off-by: Naoya Horiguchi \u003cn-horiguchi@ah.jp.nec.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nAcked-by: Fengguang Wu \u003cfengguang.wu@intel.com\u003e\nAcked-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\n"
    },
    {
      "commit": "93f70f900da36fbc19c13c2aa04b2e468c8d00fb",
      "tree": "7868f891bca0ed18c9806771a68feac0b4010517",
      "parents": [
        "c9fbdd5f131440981b124883656ea21fb12cde4a"
      ],
      "author": {
        "name": "Naoya Horiguchi",
        "email": "n-horiguchi@ah.jp.nec.com",
        "time": "Fri May 28 09:29:20 2010 +0900"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "ak@linux.intel.com",
        "time": "Wed Aug 11 09:22:46 2010 +0200"
      },
      "message": "HWPOISON, hugetlb: isolate corrupted hugepage\n\nIf error hugepage is not in-use, we can fully recovery from error\nby dequeuing it from freelist, so return RECOVERY.\nOtherwise whether or not we can recovery depends on user processes,\nso return DELAYED.\n\nDependency:\n  \"HWPOISON, hugetlb: enable error handling path for hugepage\"\n\nSigned-off-by: Naoya Horiguchi \u003cn-horiguchi@ah.jp.nec.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nAcked-by: Fengguang Wu \u003cfengguang.wu@intel.com\u003e\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\n"
    },
    {
      "commit": "c9fbdd5f131440981b124883656ea21fb12cde4a",
      "tree": "72de1cb1bb49525fca9e3f77678db9c77b94d912",
      "parents": [
        "7013febc8940960eaaba039bac0f80910f679ce1"
      ],
      "author": {
        "name": "Naoya Horiguchi",
        "email": "n-horiguchi@ah.jp.nec.com",
        "time": "Fri May 28 09:29:19 2010 +0900"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "ak@linux.intel.com",
        "time": "Wed Aug 11 09:22:32 2010 +0200"
      },
      "message": "HWPOISON, hugetlb: maintain mce_bad_pages in handling hugepage error\n\nFor now all pages in the error hugepage are considered as hwpoisoned,\nso count all of them in mce_bad_pages.\n\nDependency:\n  \"HWPOISON, hugetlb: enable error handling path for hugepage\"\n\nSigned-off-by: Naoya Horiguchi \u003cn-horiguchi@ah.jp.nec.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nAcked-by: Fengguang Wu \u003cfengguang.wu@intel.com\u003e\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\n"
    },
    {
      "commit": "7013febc8940960eaaba039bac0f80910f679ce1",
      "tree": "27a61a69ae8c1df5149ba9ac98cc573e8bf19b95",
      "parents": [
        "7af446a841a264a1a9675001005b29ce01d1fc57"
      ],
      "author": {
        "name": "Naoya Horiguchi",
        "email": "n-horiguchi@ah.jp.nec.com",
        "time": "Fri May 28 09:29:18 2010 +0900"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "ak@linux.intel.com",
        "time": "Wed Aug 11 09:22:12 2010 +0200"
      },
      "message": "HWPOISON, hugetlb: set/clear PG_hwpoison bits on hugepage\n\nTo avoid race condition between concurrent memory errors on identified\nhugepage, we atomically test and set PG_hwpoison bit on the head page.\nAll pages in the error hugepage are considered as hwpoisoned\nfor now, so set and clear all PG_hwpoison bits in the hugepage\nwith page lock of the head page held.\n\nDependency:\n  \"HWPOISON, hugetlb: enable error handling path for hugepage\"\n\nSigned-off-by: Naoya Horiguchi \u003cn-horiguchi@ah.jp.nec.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nAcked-by: Fengguang Wu \u003cfengguang.wu@intel.com\u003e\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\n"
    },
    {
      "commit": "7af446a841a264a1a9675001005b29ce01d1fc57",
      "tree": "902fec55a889d33771f267fc6242b1de43d9d0c6",
      "parents": [
        "0fe6e20b9c4c53b3e97096ee73a0857f60aad43f"
      ],
      "author": {
        "name": "Naoya Horiguchi",
        "email": "n-horiguchi@ah.jp.nec.com",
        "time": "Fri May 28 09:29:17 2010 +0900"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "ak@linux.intel.com",
        "time": "Wed Aug 11 09:21:36 2010 +0200"
      },
      "message": "HWPOISON, hugetlb: enable error handling path for hugepage\n\nThis patch just enables handling path. Real containing and\nrecovering operation will be implemented in following patches.\n\nDependency:\n  \"hugetlb, rmap: add reverse mapping for hugepage.\"\n\nSigned-off-by: Naoya Horiguchi \u003cn-horiguchi@ah.jp.nec.com\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nAcked-by: Fengguang Wu \u003cfengguang.wu@intel.com\u003e\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\n"
    },
    {
      "commit": "0fe6e20b9c4c53b3e97096ee73a0857f60aad43f",
      "tree": "3014636f2ed66fdebecb6f6bab338b39c3543a07",
      "parents": [
        "8edf344c66a3f214d709dad1421c29d678915b3f"
      ],
      "author": {
        "name": "Naoya Horiguchi",
        "email": "n-horiguchi@ah.jp.nec.com",
        "time": "Fri May 28 09:29:16 2010 +0900"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "ak@linux.intel.com",
        "time": "Wed Aug 11 09:21:15 2010 +0200"
      },
      "message": "hugetlb, rmap: add reverse mapping for hugepage\n\nThis patch adds reverse mapping feature for hugepage by introducing\nmapcount for shared/private-mapped hugepage and anon_vma for\nprivate-mapped hugepage.\n\nWhile hugepage is not currently swappable, reverse mapping can be useful\nfor memory error handler.\n\nWithout this patch, memory error handler cannot identify processes\nusing the bad hugepage nor unmap it from them. That is:\n- for shared hugepage:\n  we can collect processes using a hugepage through pagecache,\n  but can not unmap the hugepage because of the lack of mapcount.\n- for privately mapped hugepage:\n  we can neither collect processes nor unmap the hugepage.\nThis patch solves these problems.\n\nThis patch include the bug fix given by commit 23be7468e8, so reverts it.\n\nDependency:\n  \"hugetlb: move definition of is_vm_hugetlb_page() to hugepage_inline.h\"\n\nChangeLog since May 24.\n- create hugetlb_inline.h and move is_vm_hugetlb_index() in it.\n- move functions setting up anon_vma for hugepage into mm/rmap.c.\n\nChangeLog since May 13.\n- rebased to 2.6.34\n- fix logic error (in case that private mapping and shared mapping coexist)\n- move is_vm_hugetlb_page() into include/linux/mm.h to use this function\n  from linear_page_index()\n- define and use linear_hugepage_index() instead of compound_order()\n- use page_move_anon_rmap() in hugetlb_cow()\n- copy exclusive switch of __set_page_anon_rmap() into hugepage counterpart.\n- revert commit 24be7468 completely\n\nSigned-off-by: Naoya Horiguchi \u003cn-horiguchi@ah.jp.nec.com\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Larry Woodman \u003clwoodman@redhat.com\u003e\nCc: Lee Schermerhorn \u003cLee.Schermerhorn@hp.com\u003e\nAcked-by: Fengguang Wu \u003cfengguang.wu@intel.com\u003e\nAcked-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\n"
    },
    {
      "commit": "2f9e825d3e0e2b407ae8f082de5c00afcf7378fb",
      "tree": "f8b3ee40674ce4acd5508a0a0bf52a30904caf6c",
      "parents": [
        "7ae0dea900b027cd90e8a3e14deca9a19e17638b",
        "de75d60d5ea235e6e09f4962ab22541ce0fe176a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Aug 10 15:22:42 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Aug 10 15:22:42 2010 -0700"
      },
      "message": "Merge branch \u0027for-2.6.36\u0027 of git://git.kernel.dk/linux-2.6-block\n\n* \u0027for-2.6.36\u0027 of git://git.kernel.dk/linux-2.6-block: (149 commits)\n  block: make sure that REQ_* types are seen even with CONFIG_BLOCK\u003dn\n  xen-blkfront: fix missing out label\n  blkdev: fix blkdev_issue_zeroout return value\n  block: update request stacking methods to support discards\n  block: fix missing export of blk_types.h\n  writeback: fix bad _bh spinlock nesting\n  drbd: revert \"delay probes\", feature is being re-implemented differently\n  drbd: Initialize all members of sync_conf to their defaults [Bugz 315]\n  drbd: Disable delay probes for the upcomming release\n  writeback: cleanup bdi_register\n  writeback: add new tracepoints\n  writeback: remove unnecessary init_timer call\n  writeback: optimize periodic bdi thread wakeups\n  writeback: prevent unnecessary bdi threads wakeups\n  writeback: move bdi threads exiting logic to the forker thread\n  writeback: restructure bdi forker loop a little\n  writeback: move last_active to bdi\n  writeback: do not remove bdi from bdi_list\n  writeback: simplify bdi code a little\n  writeback: do not lose wake-ups in bdi threads\n  ...\n\nFixed up pretty trivial conflicts in drivers/block/virtio_blk.c and\ndrivers/scsi/scsi_error.c as per Jens.\n"
    },
    {
      "commit": "4c619407b0439c59c20398b9459020c0d297f424",
      "tree": "17d5401aebd5fe00a4878353353e29fc8c569b89",
      "parents": [
        "26b55633a891a28bf04f42882de145eb8e9cb9ad",
        "145b64b9588c123d2bd00981c5ce8e03215ed2ee"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Aug 10 13:58:11 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Aug 10 13:58:11 2010 -0700"
      },
      "message": "Merge branch \u0027kmemleak\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/cmarinas/linux-2.6-cm\n\n* \u0027kmemleak\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/cmarinas/linux-2.6-cm:\n  kmemleak: Fix typo in the comment\n  lib/scatterlist: Hook sg_kmalloc into kmemleak (v2)\n  kmemleak: Add DocBook style comments to kmemleak.c\n  kmemleak: Introduce a default off mode for kmemleak\n  kmemleak: Show more information for objects found by alias\n"
    },
    {
      "commit": "5f248c9c251c60af3403902b26e08de43964ea0b",
      "tree": "6d3328e72a7e4015a64017eb30be18095c6a3c64",
      "parents": [
        "f6cec0ae58c17522a7bc4e2f39dae19f199ab534",
        "dca332528bc69e05f67161e1ed59929633d5e63d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Aug 10 11:26:52 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Aug 10 11:26:52 2010 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6: (96 commits)\n  no need for list_for_each_entry_safe()/resetting with superblock list\n  Fix sget() race with failing mount\n  vfs: don\u0027t hold s_umount over close_bdev_exclusive() call\n  sysv: do not mark superblock dirty on remount\n  sysv: do not mark superblock dirty on mount\n  btrfs: remove junk sb_dirt change\n  BFS: clean up the superblock usage\n  AFFS: wait for sb synchronization when needed\n  AFFS: clean up dirty flag usage\n  cifs: truncate fallout\n  mbcache: fix shrinker function return value\n  mbcache: Remove unused features\n  add f_flags to struct statfs(64)\n  pass a struct path to vfs_statfs\n  update VFS documentation for method changes.\n  All filesystems that need invalidate_inode_buffers() are doing that explicitly\n  convert remaining -\u003eclear_inode() to -\u003eevict_inode()\n  Make -\u003edrop_inode() just return whether inode needs to be dropped\n  fs/inode.c:clear_inode() is gone\n  fs/inode.c:evict() doesn\u0027t care about delete vs. non-delete paths now\n  ...\n\nFix up trivial conflicts in fs/nilfs2/super.c\n"
    },
    {
      "commit": "1989425a3aed215f1accd5d8019b18b345166a63",
      "tree": "edf01f8cddce137588a501d74eedb43e98911c62",
      "parents": [
        "0fc2f137226eff4c9dd90864dda5c237474c3ec5",
        "e32e78c5ee8aadef020fbaecbe6fb741ed9029fd"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 09 21:02:42 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 09 21:02:42 2010 -0700"
      },
      "message": "Merge branch \u0027merge\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc\n\n* \u0027merge\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc:\n  powerpc: fix build with make 3.82\n  Revert \"Input: appletouch - fix integer overflow issue\"\n  memblock: Fix memblock_is_region_reserved() to return a boolean\n  powerpc: Trim defconfigs\n  powerpc: fix i8042 module build error\n  sound/soc: mpc5200_psc_ac97: Use gpio pins for cold reset\n  powerpc/5200: add mpc5200_psc_ac97_gpio_reset\n"
    },
    {
      "commit": "d2997b1042ec150616c1963b5e5e919ffd0b0ebf",
      "tree": "c970746ad3d5c3e0ccbd1695d07144dbe4534ec4",
      "parents": [
        "966cca029f739716fbcc8068b8c6dfe381f86fc3"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Mon Aug 09 17:20:11 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 09 20:45:04 2010 -0700"
      },
      "message": "hibernation: freeze swap at hibernation\n\nWhen taking a memory snapshot in hibernate_snapshot(), all (directly\ncalled) memory allocations use GFP_ATOMIC.  Hence swap misusage during\nhibernation never occurs.\n\nBut from a pessimistic point of view, there is no guarantee that no page\nallcation has __GFP_WAIT.  It is better to have a global indication \"we\nenter hibernation, don\u0027t use swap!\".\n\nThis patch tries to freeze new-swap-allocation during hibernation.  (All\nuser processes are frozenm so swapin is not a concern).\n\nThis way, no updates will happen to swap_map[] between\nhibernate_snapshot() and save_image().  Swap is thawed when swsusp_free()\nis called.  We can be assured that swap corruption will not occur.\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: \"Rafael J. Wysocki\" \u003crjw@sisk.pl\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Ondrej Zary \u003clinux@rainbow-software.org\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "966cca029f739716fbcc8068b8c6dfe381f86fc3",
      "tree": "838686762076c262c425e3dc09d0cda4e9e5e83d",
      "parents": [
        "979f867191f80e74713394cf8c0a3c1b3662b648"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Mon Aug 09 17:20:09 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 09 20:45:04 2010 -0700"
      },
      "message": "mm: fix corruption of hibernation caused by reusing swap during image saving\n\nSince 2.6.31, swap_map[]\u0027s refcounting was changed to show that a used\nswap entry is just for swap-cache, can be reused.  Then, while scanning\nfree entry in swap_map[], a swap entry may be able to be reclaimed and\nreused.  It was caused by commit c9e444103b5e7a5 (\"mm: reuse unused swap\nentry if necessary\").\n\nBut this caused deta corruption at resume. The scenario is\n\n- Assume a clean-swap cache, but mapped.\n\n- at hibernation_snapshot[], clean-swap-cache is saved as\n  clean-swap-cache and swap_map[] is marked as SWAP_HAS_CACHE.\n\n- then, save_image() is called.  And reuse SWAP_HAS_CACHE entry to save\n  image, and break the contents.\n\nAfter resume:\n\n- the memory reclaim runs and finds clean-not-referenced-swap-cache and\n  discards it because it\u0027s marked as clean.  But here, the contents on\n  disk and swap-cache is inconsistent.\n\nHance memory is corrupted.\n\nThis patch avoids the bug by not reclaiming swap-entry during hibernation.\nThis is a quick fix for backporting.\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nReported-by: Ondreg Zary \u003clinux@rainbow-software.org\u003e\nTested-by: Ondreg Zary \u003clinux@rainbow-software.org\u003e\nTested-by: Andrea Gelmini \u003candrea.gelmini@gmail.com\u003e\nAcked-by: Hugh Dickins \u003chughd@google.com\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d9f8984c2c23b91e202a764fe4b15041a29a201a",
      "tree": "d211f4ee42c5c0859f30d26296d053aac8df3657",
      "parents": [
        "e31f3698cd3499e676f6b0ea12e3528f569c4fa3"
      ],
      "author": {
        "name": "Lai Jiangshan",
        "email": "laijs@cn.fujitsu.com",
        "time": "Mon Aug 09 17:20:02 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 09 20:45:03 2010 -0700"
      },
      "message": "ksm: cleanup for mm_slots_hash\n\nUse compile-allocated memory instead of dynamic allocated memory for\nmm_slots_hash.\n\nUse hash_ptr() instead divisions for bucket calculation.\n\nSigned-off-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nSigned-off-by: Izik Eidus \u003cieidus@redhat.com\u003e\nCc: Avi Kivity \u003cavi@redhat.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e31f3698cd3499e676f6b0ea12e3528f569c4fa3",
      "tree": "0133cc0e11384c7293bdf0812ee04996a02c8826",
      "parents": [
        "51980ac9e72fb5f22c81b7798d65b691125d70ee"
      ],
      "author": {
        "name": "Wu Fengguang",
        "email": "fengguang.wu@intel.com",
        "time": "Mon Aug 09 17:20:01 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 09 20:45:03 2010 -0700"
      },
      "message": "vmscan: raise the bar to PAGEOUT_IO_SYNC stalls\n\nFix \"system goes unresponsive under memory pressure and lots of\ndirty/writeback pages\" bug.\n\n\thttp://lkml.org/lkml/2010/4/4/86\n\nIn the above thread, Andreas Mohr described that\n\n\tInvoking any command locked up for minutes (note that I\u0027m\n\ttalking about attempted additional I/O to the _other_,\n\t_unaffected_ main system HDD - such as loading some shell\n\tbinaries -, NOT the external SSD18M!!).\n\nThis happens when the two conditions are both meet:\n- under memory pressure\n- writing heavily to a slow device\n\nOOM also happens in Andreas\u0027 system.  The OOM trace shows that 3 processes\nare stuck in wait_on_page_writeback() in the direct reclaim path.  One in\ndo_fork() and the other two in unix_stream_sendmsg().  They are blocked on\nthis condition:\n\n\t(sc-\u003eorder \u0026\u0026 priority \u003c DEF_PRIORITY - 2)\n\nwhich was introduced in commit 78dc583d (vmscan: low order lumpy reclaim\nalso should use PAGEOUT_IO_SYNC) one year ago.  That condition may be too\npermissive.  In Andreas\u0027 case, 512MB/1024 \u003d 512KB.  If the direct reclaim\nfor the order-1 fork() allocation runs into a range of 512KB\nhard-to-reclaim LRU pages, it will be stalled.\n\nIt\u0027s a severe problem in three ways.\n\nFirstly, it can easily happen in daily desktop usage.  vmscan priority can\neasily go below (DEF_PRIORITY - 2) on _local_ memory pressure.  Even if\nthe system has 50% globally reclaimable pages, it still has good\nopportunity to have 0.1% sized hard-to-reclaim ranges.  For example, a\nsimple dd can easily create a big range (up to 20%) of dirty pages in the\nLRU lists.  And order-1 to order-3 allocations are more than common with\nSLUB.  Try \"grep -v \u00271 :\u0027 /proc/slabinfo\" to get the list of high order\nslab caches.  For example, the order-1 radix_tree_node slab cache may\nstall applications at swap-in time; the order-3 inode cache on most\nfilesystems may stall applications when trying to read some file; the\norder-2 proc_inode_cache may stall applications when trying to open a\n/proc file.\n\nSecondly, once triggered, it will stall unrelated processes (not doing IO\nat all) in the system.  This \"one slow USB device stalls the whole system\"\navalanching effect is very bad.\n\nThirdly, once stalled, the stall time could be intolerable long for the\nusers.  When there are 20MB queued writeback pages and USB 1.1 is writing\nthem in 1MB/s, wait_on_page_writeback() will stuck for up to 20 seconds.\nNot to mention it may be called multiple times.\n\nSo raise the bar to only enable PAGEOUT_IO_SYNC when priority goes below\nDEF_PRIORITY/3, or 6.25% LRU size.  As the default dirty throttle ratio is\n20%, it will hardly be triggered by pure dirty pages.  We\u0027d better treat\nPAGEOUT_IO_SYNC as some last resort workaround -- its stall time is so\nuncomfortably long (easily goes beyond 1s).\n\nThe bar is only raised for (order \u003c PAGE_ALLOC_COSTLY_ORDER) allocations,\nwhich are easy to satisfy in 1TB memory boxes.  So, although 6.25% of\nmemory could be an awful lot of pages to scan on a system with 1TB of\nmemory, it won\u0027t really have to busy scan that much.\n\nAndreas tested an older version of this patch and reported that it mostly\nfixed his problem.  Mel Gorman helped improve it and KOSAKI Motohiro will\nfix it further in the next patch.\n\nReported-by: Andreas Mohr \u003candi@lisas.de\u003e\nReviewed-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nSigned-off-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "51980ac9e72fb5f22c81b7798d65b691125d70ee",
      "tree": "fc12938848882bd76f7420f28d723056d9e5518e",
      "parents": [
        "cc8e970c3ce4d98afa8eb02dbd2526ce57f7611a"
      ],
      "author": {
        "name": "Kulikov Vasiliy",
        "email": "segooon@gmail.com",
        "time": "Mon Aug 09 17:19:58 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 09 20:45:03 2010 -0700"
      },
      "message": "mm/vmalloc.c: check kmalloc() return value\n\nkmalloc() may fail, if so return -ENOMEM.\n\nSigned-off-by: Kulikov Vasiliy \u003csegooon@gmail.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": "cc8e970c3ce4d98afa8eb02dbd2526ce57f7611a",
      "tree": "621ce988444b6df6eb67058b05ca5ddef23f6103",
      "parents": [
        "e17613c39b8894c164df782d0508c27ca559c24b"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Mon Aug 09 17:19:57 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 09 20:45:03 2010 -0700"
      },
      "message": "memcg: add mm_vmscan_memcg_isolate tracepoint\n\nMemcg also need to trace page isolation information as global reclaim.\nThis patch does it.\n\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nAcked-by: Mel Gorman \u003cmel@csn.ul.ie\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": "bdce6d9ebf52c1f6c23163d1a33320ce7c007f73",
      "tree": "6070de94cdece474e277d8878721421671e212eb",
      "parents": [
        "cf4dcc3e9b374e1b61a7c22faf868707ce78d6a9"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Mon Aug 09 17:19:56 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 09 20:45:03 2010 -0700"
      },
      "message": "memcg, vmscan: add memcg reclaim tracepoint\n\nMemcg also need to trace reclaim progress as direct reclaim.  This patch\nadd it.\n\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nAcked-by: Mel Gorman \u003cmel@csn.ul.ie\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": "4dc4b3d971b23e12d483ba9f3b93b648c54b298a",
      "tree": "845cc8debe146f683510841982323c338eb10000",
      "parents": [
        "57250a5bf0f6ff68dc339572adbd881a11f366fa"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Mon Aug 09 17:19:54 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 09 20:45:03 2010 -0700"
      },
      "message": "vmscan: shrink_slab() requires the number of lru_pages, not the page order\n\nPresently shrink_slab() has the following scanning equation.\n\n                            lru_scanned        max_pass\n  basic_scan_objects \u003d 4 x -------------  x -----------------------------\n                            lru_pages        shrinker-\u003eseeks (default:2)\n\n  scan_objects \u003d min(basic_scan_objects, max_pass * 2)\n\nIf we pass very small value as lru_pages instead real number of lru pages,\nshrink_slab() drop much objects rather than necessary.  And now,\n__zone_reclaim() pass \u0027order\u0027 as lru_pages by mistake.  That produces a\nbad result.\n\nFor example, if we receive very low memory pressure (scan \u003d 32, order \u003d\n0), shrink_slab() via zone_reclaim() always drop _all_ icache/dcache\nobjects.  (see above equation, very small lru_pages make very big\nscan_objects result).\n\nThis patch fixes it.\n\n[akpm@linux-foundation.org: fix layout, typos]\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nReviewed-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nAcked-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\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": "57250a5bf0f6ff68dc339572adbd881a11f366fa",
      "tree": "ef11c141a9f89403bcd4b1fc705d672c0ff41818",
      "parents": [
        "58c37f6e0dfaaab85a3c11fcbf24451dfe70c721"
      ],
      "author": {
        "name": "Jeremy Fitzhardinge",
        "email": "jeremy@goop.org",
        "time": "Mon Aug 09 17:19:52 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 09 20:45:03 2010 -0700"
      },
      "message": "mmu-notifiers: remove mmu notifier calls in apply_to_page_range()\n\nIt is not appropriate for apply_to_page_range() to directly call any mmu\nnotifiers, because it is a general purpose function whose effect depends\non what context it is called in and what the callback function does.\n\nIn particular, if it is being used as part of an mmu notifier\nimplementation, the recursive calls can be particularly problematic.\n\nIt is up to apply_to_page_range\u0027s caller to do any notifier calls if\nnecessary.  It does not affect any in-tree users because they all operate\non init_mm, and mmu notifiers only pertain to usermode mappings.\n\n[stefano.stabellini@eu.citrix.com: remove unused local `start\u0027]\nSigned-off-by: Jeremy Fitzhardinge \u003cjeremy.fitzhardinge@citrix.com\u003e\nSigned-off-by: Stefano Stabellini \u003cstefano.stabellini@eu.citrix.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Stefano Stabellini \u003cstefano.stabellini@eu.citrix.com\u003e\nCc: Avi Kivity \u003cavi@qumranet.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "58c37f6e0dfaaab85a3c11fcbf24451dfe70c721",
      "tree": "f1d6f6299059e5aa5fc3668ef9f561605491deb3",
      "parents": [
        "15748048991e801a2d18ce5da4e0d528852bc106"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Mon Aug 09 17:19:51 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 09 20:45:02 2010 -0700"
      },
      "message": "vmscan: protect reading of reclaim_stat with lru_lock\n\nRik van Riel pointed out reading reclaim_stat should be protected\nlru_lock, otherwise vmscan might sweep 2x much pages.\n\nThis fault was introduced by\n\n  commit 4f98a2fee8acdb4ac84545df98cccecfd130f8db\n  Author: Rik van Riel \u003criel@redhat.com\u003e\n  Date:   Sat Oct 18 20:26:32 2008 -0700\n\n    vmscan: split LRU lists into anon \u0026 file sets\n\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nReviewed-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "15748048991e801a2d18ce5da4e0d528852bc106",
      "tree": "e31dcdf36bbcfdd1c78546637d59faa963597bac",
      "parents": [
        "7ee92255470daa0edb93866aec6e27534cd9a177"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Mon Aug 09 17:19:50 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 09 20:45:02 2010 -0700"
      },
      "message": "vmscan: avoid subtraction of unsigned types\n\n\u0027slab_reclaimable\u0027 and \u0027nr_pages\u0027 are unsigned.  Subtraction is unsafe\nbecause negative results would be misinterpreted.\n\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nReviewed-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Rik van Riel \u003criel@redhat.com\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": "9a5b489b870def9a93f5e89dac03ebe136f901db",
      "tree": "df7f0acfdb81ce0d77b78ff4d131c40472731994",
      "parents": [
        "ad8c2ee801ad7a52d919b478d9b2c7b39a72d295"
      ],
      "author": {
        "name": "Andrea Arcangeli",
        "email": "aarcange@redhat.com",
        "time": "Mon Aug 09 17:19:49 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 09 20:45:02 2010 -0700"
      },
      "message": "mm: set VM_FAULT_WRITE in do_swap_page()\n\nSet the flag if do_swap_page is decowing the page the same way do_wp_page\nwould too.\n\nSigned-off-by: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Hugh Dickins \u003chughd@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": "ad8c2ee801ad7a52d919b478d9b2c7b39a72d295",
      "tree": "bc56cc023da3467447b0aecd30c0516881d53992",
      "parents": [
        "51b1bd2ace1595b72956224deda349efa880b693"
      ],
      "author": {
        "name": "Rik van Riel",
        "email": "riel@redhat.com",
        "time": "Mon Aug 09 17:19:48 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 09 20:45:02 2010 -0700"
      },
      "message": "rmap: add exclusive page to private anon_vma on swapin\n\nOn swapin it is fairly common for a page to be owned exclusively by one\nprocess.  In that case we want to add the page to the anon_vma of that\nprocess\u0027s VMA, instead of to the root anon_vma.\n\nThis will reduce the amount of rmap searching that the swapout code needs\nto do.\n\nSigned-off-by: Rik van Riel \u003criel@redhat.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.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": "a63d83f427fbce97a6cea0db2e64b0eb8435cd10",
      "tree": "8ac229cdf6e2289d97e82e35774057106fe7f4a2",
      "parents": [
        "74bcbf40546bb7500f2a7ba4ff3cc056a6bd004a"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Mon Aug 09 17:19:46 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 09 20:45:02 2010 -0700"
      },
      "message": "oom: badness heuristic rewrite\n\nThis a complete rewrite of the oom killer\u0027s badness() heuristic which is\nused to determine which task to kill in oom conditions.  The goal is to\nmake it as simple and predictable as possible so the results are better\nunderstood and we end up killing the task which will lead to the most\nmemory freeing while still respecting the fine-tuning from userspace.\n\nInstead of basing the heuristic on mm-\u003etotal_vm for each task, the task\u0027s\nrss and swap space is used instead.  This is a better indication of the\namount of memory that will be freeable if the oom killed task is chosen\nand subsequently exits.  This helps specifically in cases where KDE or\nGNOME is chosen for oom kill on desktop systems instead of a memory\nhogging task.\n\nThe baseline for the heuristic is a proportion of memory that each task is\ncurrently using in memory plus swap compared to the amount of \"allowable\"\nmemory.  \"Allowable,\" in this sense, means the system-wide resources for\nunconstrained oom conditions, the set of mempolicy nodes, the mems\nattached to current\u0027s cpuset, or a memory controller\u0027s limit.  The\nproportion is given on a scale of 0 (never kill) to 1000 (always kill),\nroughly meaning that if a task has a badness() score of 500 that the task\nconsumes approximately 50% of allowable memory resident in RAM or in swap\nspace.\n\nThe proportion is always relative to the amount of \"allowable\" memory and\nnot the total amount of RAM systemwide so that mempolicies and cpusets may\noperate in isolation; they shall not need to know the true size of the\nmachine on which they are running if they are bound to a specific set of\nnodes or mems, respectively.\n\nRoot tasks are given 3% extra memory just like __vm_enough_memory()\nprovides in LSMs.  In the event of two tasks consuming similar amounts of\nmemory, it is generally better to save root\u0027s task.\n\nBecause of the change in the badness() heuristic\u0027s baseline, it is also\nnecessary to introduce a new user interface to tune it.  It\u0027s not possible\nto redefine the meaning of /proc/pid/oom_adj with a new scale since the\nABI cannot be changed for backward compatability.  Instead, a new tunable,\n/proc/pid/oom_score_adj, is added that ranges from -1000 to +1000.  It may\nbe used to polarize the heuristic such that certain tasks are never\nconsidered for oom kill while others may always be considered.  The value\nis added directly into the badness() score so a value of -500, for\nexample, means to discount 50% of its memory consumption in comparison to\nother tasks either on the system, bound to the mempolicy, in the cpuset,\nor sharing the same memory controller.\n\n/proc/pid/oom_adj is changed so that its meaning is rescaled into the\nunits used by /proc/pid/oom_score_adj, and vice versa.  Changing one of\nthese per-task tunables will rescale the value of the other to an\nequivalent meaning.  Although /proc/pid/oom_adj was originally defined as\na bitshift on the badness score, it now shares the same linear growth as\n/proc/pid/oom_score_adj but with different granularity.  This is required\nso the ABI is not broken with userspace applications and allows oom_adj to\nbe deprecated for future removal.\n\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nCc: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.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": "cef1d3523d33ebc35fc29e454b1f4bab953fabbf",
      "tree": "3688cf9e7c3b1bd4e1d473d79fd1a959bd4306fb",
      "parents": [
        "93b43fa55088fe977503a156d1097cc2055449a2"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Mon Aug 09 17:19:42 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 09 20:45:02 2010 -0700"
      },
      "message": "oom: multi threaded process coredump don\u0027t make deadlock\n\nOleg pointed out current PF_EXITING check is wrong. Because PF_EXITING\nis per-thread flag, not per-process flag. He said,\n\n   Two threads, group-leader L and its sub-thread T. T dumps the code.\n   In this case both threads have -\u003emm !\u003d NULL, L has PF_EXITING.\n\n   The first problem is, select_bad_process() always return -1 in this\n   case (even if the caller is T, this doesn\u0027t matter).\n\n   The second problem is that we should add TIF_MEMDIE to T, not L.\n\nI think we can remove this dubious PF_EXITING check. but as first step,\nThis patch add the protection of multi threaded issue.\n\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: David Rientjes \u003crientjes@google.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": "93b43fa55088fe977503a156d1097cc2055449a2",
      "tree": "32c688e20c3ac9b30edd9c240c98f2f779b20e67",
      "parents": [
        "19b4586cd9c8ed642798902e55c6f61ed576ad93"
      ],
      "author": {
        "name": "Luis Claudio R. Goncalves",
        "email": "lclaudio@uudg.org",
        "time": "Mon Aug 09 17:19:41 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 09 20:45:02 2010 -0700"
      },
      "message": "oom: give the dying task a higher priority\n\nIn a system under heavy load it was observed that even after the\noom-killer selects a task to die, the task may take a long time to die.\n\nRight after sending a SIGKILL to the task selected by the oom-killer this\ntask has its priority increased so that it can exit() soon, freeing\nmemory.  That is accomplished by:\n\n        /*\n         * We give our sacrificial lamb high priority and access to\n         * all the memory it needs. That way it should be able to\n         * exit() and clear out its resources quickly...\n         */\n \tp-\u003ert.time_slice \u003d HZ;\n \tset_tsk_thread_flag(p, TIF_MEMDIE);\n\nIt sounds plausible giving the dying task an even higher priority to be\nsure it will be scheduled sooner and free the desired memory.  It was\nsuggested on LKML using SCHED_FIFO:1, the lowest RT priority so that this\ntask won\u0027t interfere with any running RT task.\n\nIf the dying task is already an RT task, leave it untouched.  Another good\nsuggestion, implemented here, was to avoid boosting the dying task\npriority in case of mem_cgroup OOM.\n\nSigned-off-by: Luis Claudio R. Goncalves \u003clclaudio@uudg.org\u003e\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nReviewed-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "19b4586cd9c8ed642798902e55c6f61ed576ad93",
      "tree": "9db6c100cbb1337b584e0b7011ee1c736a210cd0",
      "parents": [
        "df1090a8dda40b6e11d8cd09e8fc900cfe913b38"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Mon Aug 09 17:19:39 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 09 20:45:02 2010 -0700"
      },
      "message": "oom: remove child-\u003emm check from oom_kill_process()\n\nThe current \"child-\u003emm \u003d\u003d p-\u003emm\" check prevents selection of vfork()ed\ntask.  But we don\u0027t have any reason to don\u0027t consider vfork().\n\nRemoved.\n\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "df1090a8dda40b6e11d8cd09e8fc900cfe913b38",
      "tree": "9bc8a81f66a0a3a8c29685fba7389378fe9f768c",
      "parents": [
        "a96cfd6e9176ad442233001b7d15e9ed42234320"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Mon Aug 09 17:19:39 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 09 20:45:01 2010 -0700"
      },
      "message": "oom: cleanup has_intersects_mems_allowed()\n\npresently has_intersects_mems_allowed() has own thread iterate logic, but\nit should use while_each_thread().\n\nIt slightly improve the code readability.\n\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nReviewed-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a96cfd6e9176ad442233001b7d15e9ed42234320",
      "tree": "6aa70841f3f2c3ff39a75d0014b9a235810ccd08",
      "parents": [
        "113e27f36dff9895049df324f292474854750d21"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Mon Aug 09 17:19:38 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 09 20:45:01 2010 -0700"
      },
      "message": "oom: move OOM_DISABLE check from oom_kill_task to out_of_memory()\n\nPresently if oom_kill_allocating_task is enabled and current have\nOOM_DISABLED, following printk in oom_kill_process is called twice.\n\n    pr_err(\"%s: Kill process %d (%s) score %lu or sacrifice child\\n\",\n            message, task_pid_nr(p), p-\u003ecomm, points);\n\nSo, OOM_DISABLE check should be more early.\n\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "113e27f36dff9895049df324f292474854750d21",
      "tree": "5e4e0bcee4d26ff15123d10d7d86db1eb1c382c8",
      "parents": [
        "26ebc984913b6a8d86d724b3a79d2ed4ed574612"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Mon Aug 09 17:19:37 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 09 20:45:01 2010 -0700"
      },
      "message": "oom: kill duplicate OOM_DISABLE check\n\nselect_bad_process() and badness() have the same OOM_DISABLE check.  This\npatch kills one.\n\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nReviewed-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "26ebc984913b6a8d86d724b3a79d2ed4ed574612",
      "tree": "9d293c6f8b1bc5120beaa173590dcd83cd0e2eb0",
      "parents": [
        "f88ccad5886d5a864b8b0d48c666ee9998dec53f"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Mon Aug 09 17:19:37 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 09 20:45:01 2010 -0700"
      },
      "message": "oom: /proc/\u003cpid\u003e/oom_score treat kernel thread honestly\n\nIf a kernel thread is using use_mm(), badness() returns a positive value.\nThis is not a big issue because caller take care of it correctly.  But\nthere is one exception, /proc/\u003cpid\u003e/oom_score calls badness() directly and\ndoesn\u0027t care that the task is a regular process.\n\nAnother example, /proc/1/oom_score return !0 value.  But it\u0027s unkillable.\nThis incorrectness makes administration a little confusing.\n\nThis patch fixes it.\n\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f88ccad5886d5a864b8b0d48c666ee9998dec53f",
      "tree": "fc6da2064c660a270cff82bb2f97f21ce537a369",
      "parents": [
        "ab290adbaf8f46770f014ea87968de5baca29c30"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Mon Aug 09 17:19:36 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 09 20:45:01 2010 -0700"
      },
      "message": "oom: oom_kill_process() needs to check that p is unkillable\n\nWhen oom_kill_allocating_task is enabled, an argument task of\noom_kill_process is not selected by select_bad_process(), It\u0027s just\nout_of_memory() caller task.  It mean the task can be unkillable.  check\nit first.\n\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nReviewed-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ab290adbaf8f46770f014ea87968de5baca29c30",
      "tree": "e6d9673a76ed7804d0b3ff858c2ac401971c1560",
      "parents": [
        "2c5ea53ce46ebb232e0d9a475fdd2b166d2a516b"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Mon Aug 09 17:19:35 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 09 20:45:01 2010 -0700"
      },
      "message": "oom: make oom_unkillable_task() helper function\n\nPresently we have the same task check in two places. Unify it.\n\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nReviewed-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2c5ea53ce46ebb232e0d9a475fdd2b166d2a516b",
      "tree": "0dc0883ee29201600ec3950142d69f9860af2527",
      "parents": [
        "7c59aec830c7ed6c745bd513982cee3563ed20c1"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Mon Aug 09 17:19:34 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 09 20:45:01 2010 -0700"
      },
      "message": "oom: oom_kill_process() doesn\u0027t select kthread child\n\nPresently select_bad_process() has a PF_KTHREAD check, but\noom_kill_process doesn\u0027t.  It mean oom_kill_process() may choose wrong\ntask, especially, when the child are using use_mm().\n\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nReviewed-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7c59aec830c7ed6c745bd513982cee3563ed20c1",
      "tree": "f06d2c626d0ab0ff2f9880d98a50e60be4af7816",
      "parents": [
        "1489fa14cb757b496c8fa2b63097dbcee6690695"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Mon Aug 09 17:19:33 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 09 20:45:00 2010 -0700"
      },
      "message": "oom: don\u0027t try to kill oom_unkillable child\n\nPresently, badness() doesn\u0027t care about either CPUSET nor mempolicy.  Then\nif the victim child process have disjoint nodemask, OOM Killer might kill\ninnocent process.\n\nThis patch fixes it.\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nReviewed-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1489fa14cb757b496c8fa2b63097dbcee6690695",
      "tree": "288905eab717db3cf1f6b7419e1989e89411ce04",
      "parents": [
        "abe4c3b50c3f25cb1baf56036024860f12f96015"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mel@csn.ul.ie",
        "time": "Mon Aug 09 17:19:33 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 09 20:45:00 2010 -0700"
      },
      "message": "vmscan: update isolated page counters outside of main path in shrink_inactive_list()\n\nWhen shrink_inactive_list() isolates pages, it updates a number of\ncounters using temporary variables to gather them.  These consume stack\nand it\u0027s in the main path that calls -\u003ewritepage().  This patch moves the\naccounting updates outside of the main path to reduce stack usage.\n\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nReviewed-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nCc: Dave Chinner \u003cdavid@fromorbit.com\u003e\nCc: Chris Mason \u003cchris.mason@oracle.com\u003e\nCc: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Michael Rubin \u003cmrubin@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": "abe4c3b50c3f25cb1baf56036024860f12f96015",
      "tree": "20ac47ac168b30f1dde6773d103ed13432802049",
      "parents": [
        "666356297ec4e9e6594c6008803f2b1403ff7950"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mel@csn.ul.ie",
        "time": "Mon Aug 09 17:19:31 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 09 20:45:00 2010 -0700"
      },
      "message": "vmscan: set up pagevec as late as possible in shrink_page_list()\n\nshrink_page_list() sets up a pagevec to release pages as according as they\nare free.  It uses significant amounts of stack on the pagevec.  This\npatch adds pages to be freed via pagevec to a linked list which is then\nfreed en-masse at the end.  This avoids using stack in the main path that\npotentially calls writepage().\n\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nReviewed-by: Rik van Riel \u003criel@redhat.com\u003e\nCc: Dave Chinner \u003cdavid@fromorbit.com\u003e\nCc: Chris Mason \u003cchris.mason@oracle.com\u003e\nCc: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Michael Rubin \u003cmrubin@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": "666356297ec4e9e6594c6008803f2b1403ff7950",
      "tree": "aaa1e60f81588d0d90c2279c9812a32e5a085a27",
      "parents": [
        "d4debc66d1fc1b98a68081c4c8156f171841dca8"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mel@csn.ul.ie",
        "time": "Mon Aug 09 17:19:30 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 09 20:45:00 2010 -0700"
      },
      "message": "vmscan: set up pagevec as late as possible in shrink_inactive_list()\n\nshrink_inactive_list() sets up a pagevec to release unfreeable pages.  It\nuses significant amounts of stack doing this.  This patch splits\nshrink_inactive_list() to take the stack usage out of the main path so\nthat callers to writepage() do not contain an unused pagevec on the stack.\n\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nReviewed-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nCc: Dave Chinner \u003cdavid@fromorbit.com\u003e\nCc: Chris Mason \u003cchris.mason@oracle.com\u003e\nCc: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Michael Rubin \u003cmrubin@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": "d4debc66d1fc1b98a68081c4c8156f171841dca8",
      "tree": "35bc1d2212e3c70ded11d31d28698fee0beeb3b2",
      "parents": [
        "e247dbce5cc747a714e8dcbd6b3f442cc2a284cf"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mel@csn.ul.ie",
        "time": "Mon Aug 09 17:19:29 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 09 20:45:00 2010 -0700"
      },
      "message": "vmscan: remove unnecessary temporary vars in do_try_to_free_pages\n\nRemove temporary variable that is only used once and does not help clarify\ncode.\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nReviewed-by: Rik van Riel \u003criel@redhat.com\u003e\nCc: Dave Chinner \u003cdavid@fromorbit.com\u003e\nCc: Chris Mason \u003cchris.mason@oracle.com\u003e\nCc: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Michael Rubin \u003cmrubin@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": "e247dbce5cc747a714e8dcbd6b3f442cc2a284cf",
      "tree": "9ade331a0be10aab1a67160b6feebc2ef06d5878",
      "parents": [
        "25edde0332916ae706ccf83de688be57bcc844b7"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Mon Aug 09 17:19:28 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 09 20:45:00 2010 -0700"
      },
      "message": "vmscan: simplify shrink_inactive_list()\n\nNow, max_scan of shrink_inactive_list() is always passed less than\nSWAP_CLUSTER_MAX.  then, we can remove scanning pages loop in it.  This\npatch also help stack diet.\n\ndetail\n - remove \"while (nr_scanned \u003c max_scan)\" loop\n - remove nr_freed (now, we use nr_reclaimed directly)\n - remove nr_scan (now, we use nr_scanned directly)\n - rename max_scan to nr_to_scan\n - pass nr_to_scan into isolate_pages() directly instead\n   using SWAP_CLUSTER_MAX\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nReviewed-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nReviewed-by: Rik van Riel \u003criel@redhat.com\u003e\nCc: Dave Chinner \u003cdavid@fromorbit.com\u003e\nCc: Chris Mason \u003cchris.mason@oracle.com\u003e\nCc: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Michael Rubin \u003cmrubin@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    }
  ],
  "next": "25edde0332916ae706ccf83de688be57bcc844b7"
}
