)]}'
{
  "log": [
    {
      "commit": "49a78d085fa6b44d6ed791923c7172a6433589c2",
      "tree": "0fdf94bc4baf3e51f4b52c3718e6fa4f5dcb5032",
      "parents": [
        "3f5785ec31adcb7cafa9135087297a38d9698cf8"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 25 18:06:54 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 25 18:06:54 2011 -0700"
      },
      "message": "slub: remove no-longer used \u0027unlock_out\u0027 label\n\nCommit a71ae47a2cbf (\"slub: Fix double bit unlock in debug mode\")\nremoved the only goto to this label, resulting in\n\n  mm/slub.c: In function \u0027__slab_alloc\u0027:\n  mm/slub.c:1834: warning: label \u0027unlock_out\u0027 defined but not used\n\nfixed trivially by the removal of the label itself too.\n\nReported-by: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\nCc: Christoph Lameter \u003ccl@linux.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "798ce8f1cca29dcc3f4b55947f611f4ffb32ac2b",
      "tree": "15fba84ba4b930397c29fe562504f66211365699",
      "parents": [
        "22e12bbc9bc38c6d0bd541d061a0f547596fc19d",
        "1547010e6e15a3f44f49381246421a1e19de526e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 25 09:14:07 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 25 09:14:07 2011 -0700"
      },
      "message": "Merge branch \u0027for-2.6.40/core\u0027 of git://git.kernel.dk/linux-2.6-block\n\n* \u0027for-2.6.40/core\u0027 of git://git.kernel.dk/linux-2.6-block: (40 commits)\n  cfq-iosched: free cic_index if cfqd allocation fails\n  cfq-iosched: remove unused \u0027group_changed\u0027 in cfq_service_tree_add()\n  cfq-iosched: reduce bit operations in cfq_choose_req()\n  cfq-iosched: algebraic simplification in cfq_prio_to_maxrq()\n  blk-cgroup: Initialize ioc-\u003ecgroup_changed at ioc creation time\n  block: move bd_set_size() above rescan_partitions() in __blkdev_get()\n  block: call elv_bio_merged() when merged\n  cfq-iosched: Make IO merge related stats per cpu\n  cfq-iosched: Fix a memory leak of per cpu stats for root group\n  backing-dev: Kill set but not used var in  bdi_debug_stats_show()\n  block: get rid of on-stack plugging debug checks\n  blk-throttle: Make no throttling rule group processing lockless\n  blk-cgroup: Make cgroup stat reset path blkg-\u003elock free for dispatch stats\n  blk-cgroup: Make 64bit per cpu stats safe on 32bit arch\n  blk-throttle: Make dispatch stats per cpu\n  blk-throttle: Free up a group only after one rcu grace period\n  blk-throttle: Use helper function to add root throtl group to lists\n  blk-throttle: Introduce a helper function to fill in device details\n  blk-throttle: Dynamically allocate root group\n  blk-cgroup: Allow sleeping while dynamically allocating a group\n  ...\n"
    },
    {
      "commit": "f67d9b1576c1c6e02100f8b27f4e9d66bbeb4d49",
      "tree": "c70649a911f85418c10075901c489caa7d8a0762",
      "parents": [
        "eb709b0d062efd653a61183af8e27b2711c3cf5c"
      ],
      "author": {
        "name": "Bob Liu",
        "email": "lliubbo@gmail.com",
        "time": "Tue May 24 17:12:56 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 25 08:39:38 2011 -0700"
      },
      "message": "nommu: add page alignment to mmap\n\nCurrently on nommu arch mmap(),mremap() and munmap() doesn\u0027t do\npage_align() which isn\u0027t consist with mmu arch and cause some issues.\n\nFirst, some drivers\u0027 mmap() function depends on vma-\u003evm_end - vma-\u003estart\nis page aligned which is true on mmu arch but not on nommu.  eg: uvc\ncamera driver.\n\nSecond munmap() may return -EINVAL[split file] error in cases when end is\nnot page aligned(passed into from userspace) but vma-\u003evm_end is aligned\ndure to split or driver\u0027s mmap() ops.\n\nAdd page alignment to fix those issues.\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: Bob Liu \u003clliubbo@gmail.com\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: Greg Ungerer \u003cgerg@snapgear.com\u003e\nCc: Geert Uytterhoeven \u003cgeert@linux-m68k.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "eb709b0d062efd653a61183af8e27b2711c3cf5c",
      "tree": "ea0b4139854c2e713acab7ac679fa368ef9187ef",
      "parents": [
        "f68aa5b445fd00b67588ade611a4efb1a34dadb4"
      ],
      "author": {
        "name": "Shaohua Li",
        "email": "shaohua.li@intel.com",
        "time": "Tue May 24 17:12:55 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 25 08:39:37 2011 -0700"
      },
      "message": "mm: batch activate_page() to reduce lock contention\n\nThe zone-\u003elru_lock is heavily contented in workload where activate_page()\nis frequently used.  We could do batch activate_page() to reduce the lock\ncontention.  The batched pages will be added into zone list when the pool\nis full or page reclaim is trying to drain them.\n\nFor example, in a 4 socket 64 CPU system, create a sparse file and 64\nprocesses, processes shared map to the file.  Each process read access the\nwhole file and then exit.  The process exit will do unmap_vmas() and cause\na lot of activate_page() call.  In such workload, we saw about 58% total\ntime reduction with below patch.  Other workloads with a lot of\nactivate_page also benefits a lot too.\n\nAndrew Morton suggested activate_page() and putback_lru_pages() should\nfollow the same path to active pages, but this is hard to implement (see\ncommit 7a608572a282a (\"Revert \"mm: batch activate_page() to reduce lock\ncontention\")).  On the other hand, do we really need putback_lru_pages()\nto follow the same path?  I tested several FIO/FFSB benchmark (about 20\nscripts for each benchmark) in 3 machines here from 2 sockets to 4\nsockets.  My test doesn\u0027t show anything significant with/without below\npatch (there is slight difference but mostly some noise which we found\neven without below patch before).  Below patch basically returns to the\nsame as my first post.\n\nI tested some microbenchmarks:\n  case-anon-cow-rand-mt         0.58%\n  case-anon-cow-rand           -3.30%\n  case-anon-cow-seq-mt         -0.51%\n  case-anon-cow-seq            -5.68%\n  case-anon-r-rand-mt           0.23%\n  case-anon-r-rand              0.81%\n  case-anon-r-seq-mt           -0.71%\n  case-anon-r-seq              -1.99%\n  case-anon-rx-rand-mt          2.11%\n  case-anon-rx-seq-mt           3.46%\n  case-anon-w-rand-mt          -0.03%\n  case-anon-w-rand             -0.50%\n  case-anon-w-seq-mt           -1.08%\n  case-anon-w-seq              -0.12%\n  case-anon-wx-rand-mt         -5.02%\n  case-anon-wx-seq-mt          -1.43%\n  case-fork                     1.65%\n  case-fork-sleep              -0.07%\n  case-fork-withmem             1.39%\n  case-hugetlb                 -0.59%\n  case-lru-file-mmap-read-mt   -0.54%\n  case-lru-file-mmap-read       0.61%\n  case-lru-file-mmap-read-rand -2.24%\n  case-lru-file-readonce       -0.64%\n  case-lru-file-readtwice     -11.69%\n  case-lru-memcg               -1.35%\n  case-mmap-pread-rand-mt       1.88%\n  case-mmap-pread-rand        -15.26%\n  case-mmap-pread-seq-mt        0.89%\n  case-mmap-pread-seq         -69.72%\n  case-mmap-xread-rand-mt       0.71%\n  case-mmap-xread-seq-mt        0.38%\n\nThe most significent are:\n  case-lru-file-readtwice     -11.69%\n  case-mmap-pread-rand        -15.26%\n  case-mmap-pread-seq         -69.72%\n\nwhich use activate_page a lot.  others are basically variations because\neach run has slightly difference.\n\nIn UP case, \u0027size mm/swap.o\u0027\nbefore the two patches:\n   text    data     bss     dec     hex filename\n   6466     896       4    7366    1cc6 mm/swap.o\nafter the two patches:\n   text    data     bss     dec     hex filename\n   6343     896       4    7243    1c4b mm/swap.o\n\nSigned-off-by: Shaohua Li \u003cshaohua.li@intel.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Hiroyuki Kamezawa \u003ckamezawa.hiroyuki@gmail.com\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nCc: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\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": "cfa54a0fcfc1017c6f122b6f21aaba36daa07f71",
      "tree": "c6bcc41b79475854254384b7b4912a2101364183",
      "parents": [
        "a539f3533b78e39a22723d6d3e1e11b6c14454d9"
      ],
      "author": {
        "name": "Andrew Barry",
        "email": "abarry@cray.com",
        "time": "Tue May 24 17:12:52 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 25 08:39:36 2011 -0700"
      },
      "message": "mm/page_alloc.c: prevent unending loop in __alloc_pages_slowpath()\n\nI believe I found a problem in __alloc_pages_slowpath, which allows a\nprocess to get stuck endlessly looping, even when lots of memory is\navailable.\n\nRunning an I/O and memory intensive stress-test I see a 0-order page\nallocation with __GFP_IO and __GFP_WAIT, running on a system with very\nlittle free memory.  Right about the same time that the stress-test gets\nkilled by the OOM-killer, the utility trying to allocate memory gets stuck\nin __alloc_pages_slowpath even though most of the systems memory was freed\nby the oom-kill of the stress-test.\n\nThe utility ends up looping from the rebalance label down through the\nwait_iff_congested continiously.  Because order\u003d0,\n__alloc_pages_direct_compact skips the call to get_page_from_freelist.\nBecause all of the reclaimable memory on the system has already been\nreclaimed, __alloc_pages_direct_reclaim skips the call to\nget_page_from_freelist.  Since there is no __GFP_FS flag, the block with\n__alloc_pages_may_oom is skipped.  The loop hits the wait_iff_congested,\nthen jumps back to rebalance without ever trying to\nget_page_from_freelist.  This loop repeats infinitely.\n\nThe test case is pretty pathological.  Running a mix of I/O stress-tests\nthat do a lot of fork() and consume all of the system memory, I can pretty\nreliably hit this on 600 nodes, in about 12 hours.  32GB/node.\n\nSigned-off-by: Andrew Barry \u003cabarry@cray.com\u003e\nSigned-off-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nReviewed-by: Rik van Riel\u003criel@redhat.com\u003e\nAcked-by: Mel Gorman \u003cmgorman@suse.de\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": "a2c8990aed5ab000491732b07c8c4465d1b389b8",
      "tree": "1aaac1e831410ac3e59c969f05426315d2054c28",
      "parents": [
        "5b52fc890bece77bffb9fade69239f71384ef02b"
      ],
      "author": {
        "name": "Michal Hocko",
        "email": "mhocko@suse.cz",
        "time": "Tue May 24 17:12:50 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 25 08:39:36 2011 -0700"
      },
      "message": "memsw: remove noswapaccount kernel parameter\n\nThe noswapaccount parameter has been deprecated since 2.6.38 without any\ncomplaints from users so we can remove it.  swapaccount\u003d0|1 can be used\ninstead.\n\nAs we are removing the parameter we can also clean up swapaccount because\nit doesn\u0027t have to accept an empty string anymore (to match noswapaccount)\nand so we can push \u003d into __setup macro rather than checking \"\u003d1\" resp.\n\"\u003d0\" strings\n\nSigned-off-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Hiroyuki Kamezawa \u003ckamezawa.hiroyuki@gmail.com\u003e\nCc: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f69ff943df6972aae96c10733b6847fa094d8a59",
      "tree": "b0812b5e0b1376f193a9db088ebd8856deabed00",
      "parents": [
        "13057efb0a0063eb8042d99093ec88a52c4f1593"
      ],
      "author": {
        "name": "Stephen Wilson",
        "email": "wilsons@start.ca",
        "time": "Tue May 24 17:12:47 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 25 08:39:34 2011 -0700"
      },
      "message": "mm: proc: move show_numa_map() to fs/proc/task_mmu.c\n\nMoving show_numa_map() from mempolicy.c to task_mmu.c solves several\nissues.\n\n  - Having the show() operation \"miles away\" from the corresponding\n    seq_file iteration operations is a maintenance burden.\n\n  - The need to export ad hoc info like struct proc_maps_private is\n    eliminated.\n\n  - The implementation of show_numa_map() can be improved in a simple\n    manner by cooperating with the other seq_file operations (start,\n    stop, etc) -- something that would be messy to do without this\n    change.\n\nSigned-off-by: Stephen Wilson \u003cwilsons@start.ca\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9840e37239183a947a15d617c67e418c6e505dd8",
      "tree": "591ca1f930df133d9c212ccf09edcbd26b7d3d3e",
      "parents": [
        "722e2ee09b8dfc2ac5eedb802dc0d227702df084"
      ],
      "author": {
        "name": "Stephen Wilson",
        "email": "wilsons@start.ca",
        "time": "Tue May 24 17:12:45 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 25 08:39:33 2011 -0700"
      },
      "message": "mm: remove check_huge_range()\n\nThis function has been superseded by gather_hugetbl_stats() and is no\nlonger needed.\n\nSigned-off-by: Stephen Wilson \u003cwilsons@start.ca\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "722e2ee09b8dfc2ac5eedb802dc0d227702df084",
      "tree": "0ce839a50764cb5e50ad7e748773ae159a8dc9cc",
      "parents": [
        "b1f72d1857bb0de19ce20a59f3f85e6dc47bdec8"
      ],
      "author": {
        "name": "Stephen Wilson",
        "email": "wilsons@start.ca",
        "time": "Tue May 24 17:12:44 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 25 08:39:33 2011 -0700"
      },
      "message": "mm: make gather_stats() type-safe and remove forward declaration\n\nImprove the prototype of gather_stats() to take a struct numa_maps as\nargument instead of a generic void *.  Update all callers to make the\nrequired type explicit.\n\nSince gather_stats() is not needed before its definition and is scheduled\nto be moved out of mempolicy.c the declaration is removed as well.\n\nSigned-off-by: Stephen Wilson \u003cwilsons@start.ca\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b1f72d1857bb0de19ce20a59f3f85e6dc47bdec8",
      "tree": "4ce7e448a81f3315bb8aece1b38fc3cd15a7cf6d",
      "parents": [
        "29ea2f6982f1edc4302729116f2246dd7b45471d"
      ],
      "author": {
        "name": "Stephen Wilson",
        "email": "wilsons@start.ca",
        "time": "Tue May 24 17:12:43 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 25 08:39:33 2011 -0700"
      },
      "message": "mm: remove MPOL_MF_STATS\n\nMapping statistics in a NUMA environment is now computed using the generic\nwalk_page_range() logic.  Remove the old/equivalent functionality.\n\nSigned-off-by: Stephen Wilson \u003cwilsons@start.ca\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "29ea2f6982f1edc4302729116f2246dd7b45471d",
      "tree": "b40d85bf30c25537bd269407748abbdb3644a54f",
      "parents": [
        "d98f6cb67fb5b9376d4957d7ba9f32eac35c2e08"
      ],
      "author": {
        "name": "Stephen Wilson",
        "email": "wilsons@start.ca",
        "time": "Tue May 24 17:12:42 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 25 08:39:32 2011 -0700"
      },
      "message": "mm: use walk_page_range() instead of custom page table walking code\n\nConverting show_numa_map() to use the generic routine decouples the\nfunction from mempolicy.c, allowing it to be moved out of the mm subsystem\nand into fs/proc.\n\nAlso, include KSM pages in /proc/pid/numa_maps statistics.  The pagewalk\nlogic implemented by check_pte_range() failed to account for such pages as\nthey were not applicable to the page migration case.\n\nSigned-off-by: Stephen Wilson \u003cwilsons@start.ca\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d98f6cb67fb5b9376d4957d7ba9f32eac35c2e08",
      "tree": "e7fbb12bde5e30154403bf4e8cabf0bcf817aa65",
      "parents": [
        "c856507f2b2b47a49d8587afb58930b463f6bff4"
      ],
      "author": {
        "name": "Stephen Wilson",
        "email": "wilsons@start.ca",
        "time": "Tue May 24 17:12:41 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 25 08:39:32 2011 -0700"
      },
      "message": "mm: export get_vma_policy()\n\nIn commit 48fce3429d (\"mempolicies: unexport get_vma_policy()\")\nget_vma_policy() was marked static as all clients were local to\nmempolicy.c.\n\nHowever, the decision to generate /proc/pid/numa_maps in the numa memory\npolicy code and outside the procfs subsystem introduces an artificial\ninterdependency between the two systems.  Exporting get_vma_policy() once\nagain is the first step to clean up this interdependency.\n\nSigned-off-by: Stephen Wilson \u003cwilsons@start.ca\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b09e0fa4b4ea66266058eead43350bd7d55fec67",
      "tree": "35eed2e1bc39bbbca1c041b69e1e12e826241ccf",
      "parents": [
        "4eb317072be81bd93906f768679f745bc574e6b7"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Tue May 24 17:12:39 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 25 08:39:31 2011 -0700"
      },
      "message": "tmpfs: implement generic xattr support\n\nImplement generic xattrs for tmpfs filesystems.  The Feodra project, while\ntrying to replace suid apps with file capabilities, realized that tmpfs,\nwhich is used on the build systems, does not support file capabilities and\nthus cannot be used to build packages which use file capabilities.  Xattrs\nare also needed for overlayfs.\n\nThe xattr interface is a bit odd.  If a filesystem does not implement any\n{get,set,list}xattr functions the VFS will call into some random LSM hooks\nand the running LSM can then implement some method for handling xattrs.\nSELinux for example provides a method to support security.selinux but no\nother security.* xattrs.\n\nAs it stands today when one enables CONFIG_TMPFS_POSIX_ACL tmpfs will have\nxattr handler routines specifically to handle acls.  Because of this tmpfs\nwould loose the VFS/LSM helpers to support the running LSM.  To make up\nfor that tmpfs had stub functions that did nothing but call into the LSM\nhooks which implement the helpers.\n\nThis new patch does not use the LSM fallback functions and instead just\nimplements a native get/set/list xattr feature for the full security.* and\ntrusted.* namespace like a normal filesystem.  This means that tmpfs can\nnow support both security.selinux and security.capability, which was not\npreviously possible.\n\nThe basic implementation is that I attach a:\n\nstruct shmem_xattr {\n\tstruct list_head list; /* anchored by shmem_inode_info-\u003exattr_list */\n\tchar *name;\n\tsize_t size;\n\tchar value[0];\n};\n\nInto the struct shmem_inode_info for each xattr that is set.  This\nimplementation could easily support the user.* namespace as well, except\nsome care needs to be taken to prevent large amounts of unswappable memory\nbeing allocated for unprivileged users.\n\n[mszeredi@suse.cz: new config option, suport trusted.*, support symlinks]\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nAcked-by: Serge Hallyn \u003cserge.hallyn@ubuntu.com\u003e\nTested-by: Serge Hallyn \u003cserge.hallyn@ubuntu.com\u003e\nCc: Kyle McMartin \u003ckyle@mcmartin.ca\u003e\nAcked-by: Hugh Dickins \u003chughd@google.com\u003e\nTested-by: Jordi Pujol \u003cjordipujolp@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": "4eb317072be81bd93906f768679f745bc574e6b7",
      "tree": "74558ef8caca65ddf62fd93030dae44b5e51535c",
      "parents": [
        "8bba154ef29e16331e578029e9050c74b87b7ff9"
      ],
      "author": {
        "name": "Yinghai Lu",
        "email": "yinghai@kernel.org",
        "time": "Tue May 24 17:12:38 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 25 08:39:31 2011 -0700"
      },
      "message": "memblock/nobootmem: remove unneeded code from alloc_bootmem_node_high()\n\nThe bootmem wrapper with memblock supports top-down now, so we no longer\nneed this trick.\n\nSigned-off-by: Yinghai LU \u003cyinghai@kernel.org\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nCc: Olaf Hering \u003colaf@aepfle.de\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Lucas De Marchi \u003clucas.demarchi@profusion.mobi\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a197b59ae6e8bee56fcef37ea2482dc08414e2ac",
      "tree": "ead0890373cc9c36321364efbad73a25898076ab",
      "parents": [
        "ba93fa81b5f2bf0076407a3a777fff122ce16220"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Tue May 24 17:12:35 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 25 08:39:29 2011 -0700"
      },
      "message": "mm: fail GFP_DMA allocations when ZONE_DMA is not configured\n\nThe page allocator will improperly return a page from ZONE_NORMAL even\nwhen __GFP_DMA is passed if CONFIG_ZONE_DMA is disabled.  The caller\nexpects DMA memory, perhaps for ISA devices with 16-bit address registers,\nand may get higher memory resulting in undefined behavior.\n\nThis patch causes the page allocator to return NULL in such circumstances\nwith a warning emitted to the kernel log on the first occurrence.\n\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.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": "a3bc42f584cf9024580adeb4031d4202dac05858",
      "tree": "5b18fa3d8e04d14963796c0ad6f3270cacfc784b",
      "parents": [
        "821ed6bbed3cf41c4050a431eeb822b33868d36a"
      ],
      "author": {
        "name": "Daniel Kiper",
        "email": "dkiper@net-space.pl",
        "time": "Tue May 24 17:12:31 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 25 08:39:28 2011 -0700"
      },
      "message": "mm: remove dependency on CONFIG_FLATMEM from online_page()\n\nonline_pages() is only compiled for CONFIG_MEMORY_HOTPLUG_SPARSE, so there\nis no need to support CONFIG_FLATMEM code within it.\n\nThis patch removes code that is never used.\n\nSigned-off-by: Daniel Kiper \u003cdkiper@net-space.pl\u003e\nAcked-by: Dave Hansen \u003cdave@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": "821ed6bbed3cf41c4050a431eeb822b33868d36a",
      "tree": "50f6808a20263aaaf546a69218e1c1312ce7b51e",
      "parents": [
        "2cbea1d3ab11946885d37a2461072ee4d687cb4e"
      ],
      "author": {
        "name": "Minchan Kim",
        "email": "minchan.kim@gmail.com",
        "time": "Tue May 24 17:12:31 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 25 08:39:27 2011 -0700"
      },
      "message": "mm: filter unevictable page out in deactivate_page()\n\nIt\u0027s pointless that deactive_page\u0027s operates on unevictable pages.  This\npatch removes unnecessary overhead which might be a bit problem in case\nthat there are many unevictable page in system(ex, mprotect workload)\n\n[akpm@linux-foundation.org: tidy up comment]\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nReviewed-by: 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": "2cbea1d3ab11946885d37a2461072ee4d687cb4e",
      "tree": "aab301cb3da1e633bbd7df2acc4b4c2e4f777b35",
      "parents": [
        "207d04baa3591a354711e863dd90087fc75873b3"
      ],
      "author": {
        "name": "Wu Fengguang",
        "email": "fengguang.wu@intel.com",
        "time": "Tue May 24 17:12:30 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 25 08:39:27 2011 -0700"
      },
      "message": "readahead: trigger mmap sequential readahead on PG_readahead\n\nPreviously the mmap sequential readahead is triggered by updating\nra-\u003eprev_pos on each page fault and compare it with current page offset.\n\nIt costs dirtying the cache line on each _minor_ page fault.  So remove\nthe ra-\u003eprev_pos recording, and instead tag PG_readahead to trigger the\npossible sequential readahead.  It\u0027s not only more simple, but also will\nwork more reliably and reduce cache line bouncing on concurrent page\nfaults on shared struct file.\n\nIn the mosbench exim benchmark which does multi-threaded page faults on\nshared struct file, the ra-\u003emmap_miss and ra-\u003eprev_pos updates are found\nto cause excessive cache line bouncing on tmpfs, which actually disabled\nreadahead totally (shmem_backing_dev_info.ra_pages \u003d\u003d 0).\n\nSo remove the ra-\u003eprev_pos recording, and instead tag PG_readahead to\ntrigger the possible sequential readahead.  It\u0027s not only more simple, but\nalso will work more reliably on concurrent reads on shared struct file.\n\nSigned-off-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nTested-by: Tim Chen \u003ctim.c.chen@intel.com\u003e\nReported-by: Andi Kleen \u003cak@linux.intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "207d04baa3591a354711e863dd90087fc75873b3",
      "tree": "17498d55af5b2a588e7e7111e927a099236ca770",
      "parents": [
        "275b12bf5486f6f531111fd3d7dbbf01df427cfe"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "ak@linux.intel.com",
        "time": "Tue May 24 17:12:29 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 25 08:39:26 2011 -0700"
      },
      "message": "readahead: reduce unnecessary mmap_miss increases\n\nThe original INT_MAX is too large, reduce it to\n\n- avoid unnecessarily dirtying/bouncing the cache line\n\n- restore mmap read-around faster on changed access pattern\n\nBackground: in the mosbench exim benchmark which does multi-threaded page\nfaults on shared struct file, the ra-\u003emmap_miss updates are found to cause\nexcessive cache line bouncing on tmpfs.  The ra state updates are needless\nfor tmpfs because it actually disabled readahead totally\n(shmem_backing_dev_info.ra_pages \u003d\u003d 0).\n\nTested-by: Tim Chen \u003ctim.c.chen@intel.com\u003e\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\nSigned-off-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "275b12bf5486f6f531111fd3d7dbbf01df427cfe",
      "tree": "ebed0109eaa3e4a015bc1653f4d933f2e84c794f",
      "parents": [
        "1495f230fa7750479c79e3656286b9183d662077"
      ],
      "author": {
        "name": "Wu Fengguang",
        "email": "fengguang.wu@intel.com",
        "time": "Tue May 24 17:12:28 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 25 08:39:26 2011 -0700"
      },
      "message": "readahead: return early when readahead is disabled\n\nReduce readahead overheads by returning early in do_sync_mmap_readahead().\n\ntmpfs has ra_pages\u003d0 and it can page fault really fast (not constraint by\nIO if not swapping).\n\nSigned-off-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nTested-by: Tim Chen \u003ctim.c.chen@intel.com\u003e\nReported-by: Andi Kleen \u003cak@linux.intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1495f230fa7750479c79e3656286b9183d662077",
      "tree": "e5e233bb9fe1916ccc7281e7dcc71b1572fb22c5",
      "parents": [
        "a09ed5e00084448453c8bada4dcd31e5fbfc2f21"
      ],
      "author": {
        "name": "Ying Han",
        "email": "yinghan@google.com",
        "time": "Tue May 24 17:12:27 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 25 08:39:26 2011 -0700"
      },
      "message": "vmscan: change shrinker API by passing shrink_control struct\n\nChange each shrinker\u0027s API by consolidating the existing parameters into\nshrink_control struct.  This will simplify any further features added w/o\ntouching each file of shrinker.\n\n[akpm@linux-foundation.org: fix build]\n[akpm@linux-foundation.org: fix warning]\n[kosaki.motohiro@jp.fujitsu.com: fix up new shrinker API]\n[akpm@linux-foundation.org: fix xfs warning]\n[akpm@linux-foundation.org: update gfs2]\nSigned-off-by: Ying Han \u003cyinghan@google.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nAcked-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Dave Hansen \u003cdave@linux.vnet.ibm.com\u003e\nCc: Steven Whitehouse \u003cswhiteho@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": "a09ed5e00084448453c8bada4dcd31e5fbfc2f21",
      "tree": "493f5f2a93efb080cdcc28e793cbcfc7999e66eb",
      "parents": [
        "7b1de5868b124d8f399d8791ed30a9b679d64d4d"
      ],
      "author": {
        "name": "Ying Han",
        "email": "yinghan@google.com",
        "time": "Tue May 24 17:12:26 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 25 08:39:25 2011 -0700"
      },
      "message": "vmscan: change shrink_slab() interfaces by passing shrink_control\n\nConsolidate the existing parameters to shrink_slab() into a new\nshrink_control struct.  This is needed later to pass the same struct to\nshrinkers.\n\nSigned-off-by: Ying Han \u003cyinghan@google.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nAcked-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Dave Hansen \u003cdave@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": "7b1de5868b124d8f399d8791ed30a9b679d64d4d",
      "tree": "3a7d5d7a6ccc3226648cb0e56387614b7066c3ff",
      "parents": [
        "6d3163ce86dd386b4f7bda80241d7fea2bc0bb1d"
      ],
      "author": {
        "name": "Wu Fengguang",
        "email": "fengguang.wu@intel.com",
        "time": "Tue May 24 17:12:25 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 25 08:39:25 2011 -0700"
      },
      "message": "readahead: readahead page allocations are OK to fail\n\nPass __GFP_NORETRY|__GFP_NOWARN for readahead page allocations.\n\nreadahead page allocations are completely optional.  They are OK to fail\nand in particular shall not trigger OOM on themselves.\n\nReported-by: Dave Young \u003chidave.darkstar@gmail.com\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nReviewed-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nReviewed-by: Pekka Enberg \u003cpenberg@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": "6d3163ce86dd386b4f7bda80241d7fea2bc0bb1d",
      "tree": "169f74df152fa593e5dc9adfff7f6f7e31061028",
      "parents": [
        "0091a47da0b720ca39511c7d90dcc768cafcaf58"
      ],
      "author": {
        "name": "Arve Hjønnevåg",
        "email": "arve@android.com",
        "time": "Tue May 24 17:12:24 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 25 08:39:24 2011 -0700"
      },
      "message": "mm: check if any page in a pageblock is reserved before marking it MIGRATE_RESERVE\n\nThis fixes a problem where the first pageblock got marked MIGRATE_RESERVE\neven though it only had a few free pages.  eg, On current ARM port, The\nkernel starts at offset 0x8000 to leave room for boot parameters, and the\nmemory is freed later.\n\nThis in turn caused no contiguous memory to be reserved and frequent\nkswapd wakeups that emptied the caches to get more contiguous memory.\n\nUnfortunatelly, ARM needs order-2 allocation for pgd (see\narm/mm/pgd.c#pgd_alloc()).  Therefore the issue is not minor nor easy\navoidable.\n\n[kosaki.motohiro@jp.fujitsu.com: added some explanation]\n[kosaki.motohiro@jp.fujitsu.com: add !pfn_valid_within() to check]\n[minchan.kim@gmail.com: check end_pfn in pageblock_is_reserved]\nSigned-off-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\nSigned-off-by: Arve Hjønnevåg \u003carve@android.com\u003e\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nAcked-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nAcked-by: Dave Hansen \u003cdave@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": "0c917313a8d84fcc0c376db3f7edb7c06f06f920",
      "tree": "de95ed4a300d1034b1abae2eb8c7e509c9dfb341",
      "parents": [
        "bd486285f24ac2fd1ff64688fb0729712c5712c4"
      ],
      "author": {
        "name": "Konstantin Khlebnikov",
        "email": "khlebnikov@openvz.org",
        "time": "Tue May 24 17:12:21 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 25 08:39:23 2011 -0700"
      },
      "message": "mm: strictly require elevated page refcount in isolate_lru_page()\n\nisolate_lru_page() must be called only with stable reference to the page,\nthis is what is written in the comment above it, this is reasonable.\n\ncurrent isolate_lru_page() users and its page extra reference sources:\n\n mm/huge_memory.c:\n  __collapse_huge_page_isolate()\t- reference from pte\n\n mm/memcontrol.c:\n  mem_cgroup_move_parent()\t\t- get_page_unless_zero()\n  mem_cgroup_move_charge_pte_range()\t- reference from pte\n\n mm/memory-failure.c:\n  soft_offline_page()\t\t\t- fixed, reference from get_any_page()\n  delete_from_lru_cache() - reference from caller or get_page_unless_zero()\n\t[ seems like there bug, because __memory_failure() can call\n\t  page_action() for hpages tail, but it is ok for\n\t  isolate_lru_page(), tail getted and not in lru]\n\n mm/memory_hotplug.c:\n  do_migrate_range()\t\t\t- fixed, get_page_unless_zero()\n\n mm/mempolicy.c:\n  migrate_page_add()\t\t\t- reference from pte\n\n mm/migrate.c:\n  do_move_page_to_node_array()\t\t- reference from follow_page()\n\n mlock.c:\t\t\t\t- various external references\n\n mm/vmscan.c:\n  putback_lru_page()\t\t\t- reference from isolate_lru_page()\n\nIt seems that all isolate_lru_page() users are ready now for this\nrestriction.  So, let\u0027s replace redundant get_page_unless_zero() with\nget_page() and add page initial reference count check with VM_BUG_ON()\n\nSigned-off-by: Konstantin Khlebnikov \u003ckhlebnikov@openvz.org\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Lee Schermerhorn \u003clee.schermerhorn@hp.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": "bd486285f24ac2fd1ff64688fb0729712c5712c4",
      "tree": "d0fde80eb5c05893ba3b624b8219436b3efb274a",
      "parents": [
        "700c2a46e88265326764197d5b8842490bae5569"
      ],
      "author": {
        "name": "Konstantin Khlebnikov",
        "email": "khlebnikov@openvz.org",
        "time": "Tue May 24 17:12:20 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 25 08:39:23 2011 -0700"
      },
      "message": "mem-hwpoison: fix page refcount around isolate_lru_page()\n\nDrop first page reference only after calling isolate_lru_page() to keep\npage stable reference while isolating.\n\nSigned-off-by: Konstantin Khlebnikov \u003ckhlebnikov@openvz.org\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Lee Schermerhorn \u003clee.schermerhorn@hp.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": "700c2a46e88265326764197d5b8842490bae5569",
      "tree": "65f02f083e5eebfab0296499318e5a40992116a9",
      "parents": [
        "22943ab116af1ead4dc112ec408a93cf1365b34a"
      ],
      "author": {
        "name": "Konstantin Khlebnikov",
        "email": "khlebnikov@openvz.org",
        "time": "Tue May 24 17:12:19 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 25 08:39:22 2011 -0700"
      },
      "message": "mem-hotplug: call isolate_lru_page with elevated refcount\n\nisolate_lru_page() must be called only with stable reference to page.  So,\nlet\u0027s grab normal page reference.\n\nSigned-off-by: Konstantin Khlebnikov \u003ckhlebnikov@openvz.org\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Lee Schermerhorn \u003clee.schermerhorn@hp.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": "22943ab116af1ead4dc112ec408a93cf1365b34a",
      "tree": "97fcfd64dc06ac9b60fb48c0cd331249fb96f13d",
      "parents": [
        "a238ab5b0239575c179f4976064192c3f7409dad"
      ],
      "author": {
        "name": "Dave Hansen",
        "email": "dave@linux.vnet.ibm.com",
        "time": "Tue May 24 17:12:18 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 25 08:39:22 2011 -0700"
      },
      "message": "mm: print vmalloc() state after allocation failures\n\nI was tracking down a page allocation failure that ended up in vmalloc().\nSince vmalloc() uses 0-order pages, if somebody asks for an insane amount\nof memory, we\u0027ll still get a warning with \"order:0\" in it.  That\u0027s not\nvery useful.\n\nDuring recovery, vmalloc() also nicely frees all of the memory that it got\nup to the point of the failure.  That is wonderful, but it also quickly\nhides any issues.  We have a much different sitation if vmalloc()\nrepeatedly fails 10GB in to:\n\n\tvmalloc(100 * 1\u003c\u003c30);\n\nversus repeatedly failing 4096 bytes in to a:\n\n\tvmalloc(8192);\n\nThis patch will print out messages that look like this:\n\n[   68.123503] vmalloc: allocation failure, allocated 6680576 of 13426688 bytes\n[   68.124218] bash: page allocation failure: order:0, mode:0xd2\n[   68.124811] Pid: 3770, comm: bash Not tainted 2.6.39-rc3-00082-g85f2e68-dirty #333\n[   68.125579] Call Trace:\n[   68.125853]  [\u003cffffffff810f6da6\u003e] warn_alloc_failed+0x146/0x170\n[   68.126464]  [\u003cffffffff8107e05c\u003e] ? printk+0x6c/0x70\n[   68.126791]  [\u003cffffffff8112b5d4\u003e] ? alloc_pages_current+0x94/0xe0\n[   68.127661]  [\u003cffffffff8111ed37\u003e] __vmalloc_node_range+0x237/0x290\n...\n\nThe \u0027order\u0027 variable is added for clarity when calling warn_alloc_failed()\nto avoid having an unexplained \u00270\u0027 as an argument.\n\nThe \u0027tmp_mask\u0027 is because adding an open-coded \u0027| __GFP_NOWARN\u0027 would take\nus over 80 columns for the alloc_pages_node() call.  If we are going to\nadd a line, it might as well be one that makes the sucker easier to read.\n\nAs a side issue, I also noticed that ctl_ioctl() does vmalloc() based\nsolely on an unverified value passed in from userspace.  Granted, it\u0027s\nunder CAP_SYS_ADMIN, but it still frightens me a bit.\n\nSigned-off-by: Dave Hansen \u003cdave@linux.vnet.ibm.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Michal Nazarewicz \u003cmina86@mina86.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a238ab5b0239575c179f4976064192c3f7409dad",
      "tree": "bed3d186bee49318e1984eeac489a614ad6acb1b",
      "parents": [
        "de03c72cfce5b263a674d04348b58475ec50163c"
      ],
      "author": {
        "name": "Dave Hansen",
        "email": "dave@linux.vnet.ibm.com",
        "time": "Tue May 24 17:12:16 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 25 08:39:21 2011 -0700"
      },
      "message": "mm: break out page allocation warning code\n\nThis originally started as a simple patch to give vmalloc() some more\nverbose output on failure on top of the plain page allocator messages.\nJohannes suggested that it might be nicer to lead with the vmalloc() info\n_before_ the page allocator messages.\n\nBut, I do think there\u0027s a lot of value in what __alloc_pages_slowpath()\ndoes with its filtering and so forth.\n\nThis patch creates a new function which other allocators can call instead\nof relying on the internal page allocator warnings.  It also gives this\nfunction private rate-limiting which separates it from other\nprintk_ratelimit() users.\n\nSigned-off-by: Dave Hansen \u003cdave@linux.vnet.ibm.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Michal Nazarewicz \u003cmina86@mina86.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "de03c72cfce5b263a674d04348b58475ec50163c",
      "tree": "e2b035234440bcd1aa88078c3f9c8457d461ef9c",
      "parents": [
        "692e0b35427a088bf75d9363788c61c7edbe93a5"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Tue May 24 17:12:15 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 25 08:39:21 2011 -0700"
      },
      "message": "mm: convert mm-\u003ecpu_vm_cpumask into cpumask_var_t\n\ncpumask_t is very big struct and cpu_vm_mask is placed wrong position.\nIt might lead to reduce cache hit ratio.\n\nThis patch has two change.\n1) Move the place of cpumask into last of mm_struct. Because usually cpumask\n   is accessed only front bits when the system has cpu-hotplug capability\n2) Convert cpu_vm_mask into cpumask_var_t. It may help to reduce memory\n   footprint if cpumask_size() will use nr_cpumask_bits properly in future.\n\nIn addition, this patch change the name of cpu_vm_mask with cpu_vm_mask_var.\nIt may help to detect out of tree cpu_vm_mask users.\n\nThis patch has no functional change.\n\n[akpm@linux-foundation.org: build fix]\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: Koichi Yasutake \u003cyasutake.koichi@jp.panasonic.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Chris Metcalf \u003ccmetcalf@tilera.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "692e0b35427a088bf75d9363788c61c7edbe93a5",
      "tree": "db1b4365b70fbe809753e6ac097b60fb4f7299a8",
      "parents": [
        "9547d01bfb9c351dc19067f8a4cea9d3955f4125"
      ],
      "author": {
        "name": "Andrea Arcangeli",
        "email": "aarcange@redhat.com",
        "time": "Tue May 24 17:12:14 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 25 08:39:21 2011 -0700"
      },
      "message": "mm: thp: optimize memcg charge in khugepaged\n\nWe don\u0027t need to hold the mmmap_sem through mem_cgroup_newpage_charge(),\nthe mmap_sem is only hold for keeping the vma stable and we don\u0027t need the\nvma stable anymore after we return from alloc_hugepage_vma().\n\nSigned-off-by: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Johannes Weiner \u003cjweiner@redhat.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: 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": "9547d01bfb9c351dc19067f8a4cea9d3955f4125",
      "tree": "3c32521dbbf380471e1eef3e11ae656b24164255",
      "parents": [
        "88c22088bf235f50b09a10bd9f022b0472bcb6b5"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue May 24 17:12:14 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 25 08:39:20 2011 -0700"
      },
      "message": "mm: uninline large generic tlb.h functions\n\nSome of these functions have grown beyond inline sanity, move them\nout-of-line.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nRequested-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nRequested-by: 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": "88c22088bf235f50b09a10bd9f022b0472bcb6b5",
      "tree": "8859c39a8e48bf41b5bd48e9e279571ca56ec1b0",
      "parents": [
        "2b575eb64f7a9c701fb4bfdb12388ac547f6c2b6"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue May 24 17:12:13 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 25 08:39:20 2011 -0700"
      },
      "message": "mm: optimize page_lock_anon_vma() fast-path\n\nOptimize the page_lock_anon_vma() fast path to be one atomic op, instead\nof two.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: David Miller \u003cdavem@davemloft.net\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Russell King \u003crmk@arm.linux.org.uk\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: Jeff Dike \u003cjdike@addtoit.com\u003e\nCc: Richard Weinberger \u003crichard@nod.at\u003e\nCc: Tony Luck \u003ctony.luck@intel.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Nick Piggin \u003cnpiggin@kernel.dk\u003e\nCc: Namhyung Kim \u003cnamhyung@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": "2b575eb64f7a9c701fb4bfdb12388ac547f6c2b6",
      "tree": "965739cbf570567a26f1512ae9a9fe35ce1afbed",
      "parents": [
        "746b18d421da7f27e948e8af1ad82b6d0309324d"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue May 24 17:12:11 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 25 08:39:19 2011 -0700"
      },
      "message": "mm: convert anon_vma-\u003elock to a mutex\n\nStraightforward conversion of anon_vma-\u003elock to a mutex.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nAcked-by: Hugh Dickins \u003chughd@google.com\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: David Miller \u003cdavem@davemloft.net\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Russell King \u003crmk@arm.linux.org.uk\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: Jeff Dike \u003cjdike@addtoit.com\u003e\nCc: Richard Weinberger \u003crichard@nod.at\u003e\nCc: Tony Luck \u003ctony.luck@intel.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Nick Piggin \u003cnpiggin@kernel.dk\u003e\nCc: Namhyung Kim \u003cnamhyung@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": "746b18d421da7f27e948e8af1ad82b6d0309324d",
      "tree": "d4e756977673b7b8166c00e34a21d85c5e26ea6e",
      "parents": [
        "6111e4ca6829a0e8b092b8e5eeb6b5366091f29c"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue May 24 17:12:10 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 25 08:39:19 2011 -0700"
      },
      "message": "mm: use refcounts for page_lock_anon_vma()\n\nConvert page_lock_anon_vma() over to use refcounts.  This is done to\nprepare for the conversion of anon_vma from spinlock to mutex.\n\nSadly this inceases the cost of page_lock_anon_vma() from one to two\natomics, a follow up patch addresses this, lets keep that simple for now.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nAcked-by: Hugh Dickins \u003chughd@google.com\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: David Miller \u003cdavem@davemloft.net\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Russell King \u003crmk@arm.linux.org.uk\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: Jeff Dike \u003cjdike@addtoit.com\u003e\nCc: Richard Weinberger \u003crichard@nod.at\u003e\nCc: Tony Luck \u003ctony.luck@intel.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Nick Piggin \u003cnpiggin@kernel.dk\u003e\nCc: Namhyung Kim \u003cnamhyung@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": "6111e4ca6829a0e8b092b8e5eeb6b5366091f29c",
      "tree": "12d0f6bf4dad72e6842b8d68b72f24fd23bb236c",
      "parents": [
        "25aeeb046e695c3093a86aa9386128ffb3b1bc32"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue May 24 17:12:08 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 25 08:39:18 2011 -0700"
      },
      "message": "mm: improve page_lock_anon_vma() comment\n\nA slightly more verbose comment to go along with the trickery in\npage_lock_anon_vma().\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nReviewed-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: Hugh Dickins \u003chughd@google.com\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: David Miller \u003cdavem@davemloft.net\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Russell King \u003crmk@arm.linux.org.uk\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: Jeff Dike \u003cjdike@addtoit.com\u003e\nCc: Richard Weinberger \u003crichard@nod.at\u003e\nCc: Tony Luck \u003ctony.luck@intel.com\u003e\nCc: Nick Piggin \u003cnpiggin@kernel.dk\u003e\nCc: Namhyung Kim \u003cnamhyung@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": "25aeeb046e695c3093a86aa9386128ffb3b1bc32",
      "tree": "3ccd60d5459baa4dc4d0245d764a7cae2496c876",
      "parents": [
        "3d48ae45e72390ddf8cc5256ac32ed6f7a19cbea"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue May 24 17:12:07 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 25 08:39:18 2011 -0700"
      },
      "message": "mm: revert page_lock_anon_vma() lock annotation\n\nIts beyond ugly and gets in the way.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nAcked-by: Hugh Dickins \u003chughd@google.com\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: David Miller \u003cdavem@davemloft.net\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Russell King \u003crmk@arm.linux.org.uk\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: Jeff Dike \u003cjdike@addtoit.com\u003e\nCc: Richard Weinberger \u003crichard@nod.at\u003e\nCc: Tony Luck \u003ctony.luck@intel.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Namhyung Kim \u003cnamhyung@gmail.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Nick Piggin \u003cnpiggin@kernel.dk\u003e\nCc: Namhyung Kim \u003cnamhyung@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": "3d48ae45e72390ddf8cc5256ac32ed6f7a19cbea",
      "tree": "1f46db3a8424090dd8e0b58991fa5acc1a73e680",
      "parents": [
        "97a894136f29802da19a15541de3c019e1ca147e"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue May 24 17:12:06 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 25 08:39:18 2011 -0700"
      },
      "message": "mm: Convert i_mmap_lock to a mutex\n\nStraightforward conversion of i_mmap_lock to a mutex.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nAcked-by: Hugh Dickins \u003chughd@google.com\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: David Miller \u003cdavem@davemloft.net\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Russell King \u003crmk@arm.linux.org.uk\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: Jeff Dike \u003cjdike@addtoit.com\u003e\nCc: Richard Weinberger \u003crichard@nod.at\u003e\nCc: Tony Luck \u003ctony.luck@intel.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Nick Piggin \u003cnpiggin@kernel.dk\u003e\nCc: Namhyung Kim \u003cnamhyung@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": "97a894136f29802da19a15541de3c019e1ca147e",
      "tree": "1fd3f92ba92a37d5d8527a1f41458091d0a944dc",
      "parents": [
        "e4c70a6629f9c74c4b0de258a3951890e9047c82"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue May 24 17:12:04 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 25 08:39:17 2011 -0700"
      },
      "message": "mm: Remove i_mmap_lock lockbreak\n\nHugh says:\n \"The only significant loser, I think, would be page reclaim (when\n  concurrent with truncation): could spin for a long time waiting for\n  the i_mmap_mutex it expects would soon be dropped? \"\n\nCounter points:\n - cpu contention makes the spin stop (need_resched())\n - zap pages should be freeing pages at a higher rate than reclaim\n   ever can\n\nI think the simplification of the truncate code is definitely worth it.\n\nEffectively reverts: 2aa15890f3c (\"mm: prevent concurrent\nunmap_mapping_range() on the same inode\") and takes out the code that\ncaused its problem.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: David Miller \u003cdavem@davemloft.net\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Russell King \u003crmk@arm.linux.org.uk\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: Jeff Dike \u003cjdike@addtoit.com\u003e\nCc: Richard Weinberger \u003crichard@nod.at\u003e\nCc: Tony Luck \u003ctony.luck@intel.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Nick Piggin \u003cnpiggin@kernel.dk\u003e\nCc: Namhyung Kim \u003cnamhyung@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": "e303297e6c3a7b847c4731eb14006ca6b435ecca",
      "tree": "c2bbec8fb0cad1405f4a3ff908cd1d22abcd3e77",
      "parents": [
        "267239116987d64850ad2037d8e0f3071dc3b5ce"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue May 24 17:12:01 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 25 08:39:16 2011 -0700"
      },
      "message": "mm: extended batches for generic mmu_gather\n\nInstead of using a single batch (the small on-stack, or an allocated\npage), try and extend the batch every time it runs out and only flush once\neither the extend fails or we\u0027re done.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nRequested-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nAcked-by: Hugh Dickins \u003chughd@google.com\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: David Miller \u003cdavem@davemloft.net\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Russell King \u003crmk@arm.linux.org.uk\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: Jeff Dike \u003cjdike@addtoit.com\u003e\nCc: Richard Weinberger \u003crichard@nod.at\u003e\nCc: Tony Luck \u003ctony.luck@intel.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Nick Piggin \u003cnpiggin@kernel.dk\u003e\nCc: Namhyung Kim \u003cnamhyung@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": "267239116987d64850ad2037d8e0f3071dc3b5ce",
      "tree": "142595897f7fc7bb673b791891dcc2fab31f6e91",
      "parents": [
        "1c395176962176660bb108f90e97e1686cfe0d85"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue May 24 17:12:00 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 25 08:39:16 2011 -0700"
      },
      "message": "mm, powerpc: move the RCU page-table freeing into generic code\n\nIn case other architectures require RCU freed page-tables to implement\ngup_fast() and software filled hashes and similar things, provide the\nmeans to do so by moving the logic into generic code.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nRequested-by: David Miller \u003cdavem@davemloft.net\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Russell King \u003crmk@arm.linux.org.uk\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: Jeff Dike \u003cjdike@addtoit.com\u003e\nCc: Richard Weinberger \u003crichard@nod.at\u003e\nCc: Tony Luck \u003ctony.luck@intel.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Nick Piggin \u003cnpiggin@kernel.dk\u003e\nCc: Namhyung Kim \u003cnamhyung@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": "d16dfc550f5326a4000f3322582a7c05dec91d7a",
      "tree": "8ee963542705cbf2187777f1d3f2b209cbda827a",
      "parents": [
        "d05f3169c0fbca16132ec7c2be71685c6de638b5"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue May 24 17:11:45 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 25 08:39:12 2011 -0700"
      },
      "message": "mm: mmu_gather rework\n\nRework the existing mmu_gather infrastructure.\n\nThe direct purpose of these patches was to allow preemptible mmu_gather,\nbut even without that I think these patches provide an improvement to the\nstatus quo.\n\nThe first 9 patches rework the mmu_gather infrastructure.  For review\npurpose I\u0027ve split them into generic and per-arch patches with the last of\nthose a generic cleanup.\n\nThe next patch provides generic RCU page-table freeing, and the followup\nis a patch converting s390 to use this.  I\u0027ve also got 4 patches from\nDaveM lined up (not included in this series) that uses this to implement\ngup_fast() for sparc64.\n\nThen there is one patch that extends the generic mmu_gather batching.\n\nAfter that follow the mm preemptibility patches, these make part of the mm\na lot more preemptible.  It converts i_mmap_lock and anon_vma-\u003elock to\nmutexes which together with the mmu_gather rework makes mmu_gather\npreemptible as well.\n\nMaking i_mmap_lock a mutex also enables a clean-up of the truncate code.\n\nThis also allows for preemptible mmu_notifiers, something that XPMEM I\nthink wants.\n\nFurthermore, it removes the new and universially detested unmap_mutex.\n\nThis patch:\n\nRemove the first obstacle towards a fully preemptible mmu_gather.\n\nThe current scheme assumes mmu_gather is always done with preemption\ndisabled and uses per-cpu storage for the page batches.  Change this to\ntry and allocate a page for batching and in case of failure, use a small\non-stack array to make some progress.\n\nPreemptible mmu_gather is desired in general and usable once i_mmap_lock\nbecomes a mutex.  Doing it before the mutex conversion saves us from\nhaving to rework the code by moving the mmu_gather bits inside the\npte_lock.\n\nAlso avoid flushing the tlb batches from under the pte lock, this is\nuseful even without the i_mmap_lock conversion as it significantly reduces\npte lock hold times.\n\n[akpm@linux-foundation.org: fix comment tpyo]\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: David Miller \u003cdavem@davemloft.net\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Russell King \u003crmk@arm.linux.org.uk\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: Jeff Dike \u003cjdike@addtoit.com\u003e\nCc: Richard Weinberger \u003crichard@nod.at\u003e\nCc: Tony Luck \u003ctony.luck@intel.com\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nAcked-by: Hugh Dickins \u003chughd@google.com\u003e\nAcked-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Nick Piggin \u003cnpiggin@kernel.dk\u003e\nCc: Namhyung Kim \u003cnamhyung@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": "d05f3169c0fbca16132ec7c2be71685c6de638b5",
      "tree": "37d82004869fa4e530617883f12cab7538dbd4a6",
      "parents": [
        "248ac0e1943ad1796393d281b096184719eb3f97"
      ],
      "author": {
        "name": "Michal Hocko",
        "email": "mhocko@suse.cz",
        "time": "Tue May 24 17:11:44 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 25 08:39:12 2011 -0700"
      },
      "message": "mm: make expand_downwards() symmetrical with expand_upwards()\n\nCurrently we have expand_upwards exported while expand_downwards is\naccessible only via expand_stack or expand_stack_downwards.\n\ncheck_stack_guard_page is a nice example of the asymmetry.  It uses\nexpand_stack for VM_GROWSDOWN while expand_upwards is called for\nVM_GROWSUP case.\n\nLet\u0027s clean this up by exporting both functions and make those names\nconsistent.  Let\u0027s use expand_{upwards,downwards} because expanding\ndoesn\u0027t always involve stack manipulation (an example is\nia64_do_page_fault which uses expand_upwards for registers backing store\nexpansion).  expand_downwards has to be defined for both\nCONFIG_STACK_GROWS{UP,DOWN} because get_arg_page calls the downwards\nversion in the early process initialization phase for growsup\nconfiguration.\n\nSigned-off-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nAcked-by: Hugh Dickins \u003chughd@google.com\u003e\nCc: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\nCc: \"Luck, Tony\" \u003ctony.luck@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "248ac0e1943ad1796393d281b096184719eb3f97",
      "tree": "5188b0957a0c1250d8424f24fe5517ca8c417f93",
      "parents": [
        "82d4b5779a75887750748609f3415f01c1bb9f81"
      ],
      "author": {
        "name": "Johannes Weiner",
        "email": "hannes@cmpxchg.org",
        "time": "Tue May 24 17:11:43 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 25 08:39:11 2011 -0700"
      },
      "message": "mm/vmalloc: remove guard page from between vmap blocks\n\nThe vmap allocator is used to, among other things, allocate per-cpu vmap\nblocks, where each vmap block is naturally aligned to its own size.\nObviously, leaving a guard page after each vmap area forbids packing vmap\nblocks efficiently and can make the kernel run out of possible vmap blocks\nlong before overall vmap space is exhausted.\n\nThe new interface to map a user-supplied page array into linear vmalloc\nspace (vm_map_ram) insists on allocating from a vmap block (instead of\nfalling back to a custom area) when the area size is below a certain\nthreshold.  With heavy users of this interface (e.g.  XFS) and limited\nvmalloc space on 32-bit, vmap block exhaustion is a real problem.\n\nRemove the guard page from the core vmap allocator.  vmalloc and the old\nvmap interface enforce a guard page on their own at a higher level.\n\nNote that without this patch, we had accidental guard pages after those\nvm_map_ram areas that happened to be at the end of a vmap block, but not\nbetween every area.  This patch removes this accidental guard page only.\n\nIf we want guard pages after every vm_map_ram area, this should be done\nseparately.  And just like with vmalloc and the old interface on a\ndifferent level, not in the core allocator.\n\nMel pointed out: \"If necessary, the guard page could be reintroduced as a\ndebugging-only option (CONFIG_DEBUG_PAGEALLOC?).  Otherwise it seems\nreasonable.\"\n\nSigned-off-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Nick Piggin \u003cnpiggin@kernel.dk\u003e\nCc: Dave Chinner \u003cdavid@fromorbit.com\u003e\nAcked-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "72788c385604523422592249c19cba0187021e9b",
      "tree": "3552a4b6ae4adb77e723d8a8d1d2669bfb04a8bb",
      "parents": [
        "c6a140bf164829769499b5e50d380893da39b29e"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Tue May 24 17:11:40 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 25 08:39:10 2011 -0700"
      },
      "message": "oom: replace PF_OOM_ORIGIN with toggling oom_score_adj\n\nThere\u0027s a kernel-wide shortage of per-process flags, so it\u0027s always\nhelpful to trim one when possible without incurring a significant penalty.\n It\u0027s even more important when you\u0027re planning on adding a per- process\nflag yourself, which I plan to do shortly for transparent hugepages.\n\nPF_OOM_ORIGIN is used by ksm and swapoff to prefer current since it has a\ntendency to allocate large amounts of memory and should be preferred for\nkilling over other tasks.  We\u0027d rather immediately kill the task making\nthe errant syscall rather than penalizing an innocent task.\n\nThis patch removes PF_OOM_ORIGIN since its behavior is equivalent to\nsetting the process\u0027s oom_score_adj to OOM_SCORE_ADJ_MAX.\n\nThe process\u0027s old oom_score_adj is stored and then set to\nOOM_SCORE_ADJ_MAX during the time it used to have PF_OOM_ORIGIN.  The old\nvalue is then reinstated when the process should no longer be considered a\nhigh priority for oom killing.\n\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nReviewed-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Izik Eidus \u003cieidus@redhat.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": "c6a140bf164829769499b5e50d380893da39b29e",
      "tree": "0cfcbd5356cd3cebabba2334dcfdaec6ea47d816",
      "parents": [
        "a6cccdc36c966e51fd969560d870cfd37afbfa9c"
      ],
      "author": {
        "name": "Andrea Arcangeli",
        "email": "aarcange@redhat.com",
        "time": "Tue May 24 17:11:38 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 25 08:39:10 2011 -0700"
      },
      "message": "mm/compaction: reverse the change that forbade sync migraton with __GFP_NO_KSWAPD\n\nIt\u0027s uncertain this has been beneficial, so it\u0027s safer to undo it.  All\nother compaction users would still go in synchronous mode if a first\nattempt at async compaction failed.  Hopefully we don\u0027t need to force\nspecial behavior for THP (which is the only __GFP_NO_KSWAPD user so far\nand it\u0027s the easier to exercise and to be noticeable).  This also make\n__GFP_NO_KSWAPD return to its original strict semantics specific to bypass\nkswapd, as THP allocations have khugepaged for the async THP\nallocations/compactions.\n\nSigned-off-by: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Alex Villacis Lasso \u003cavillaci@fiec.espol.edu.ec\u003e\nCc: 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": "a6cccdc36c966e51fd969560d870cfd37afbfa9c",
      "tree": "17c48382275e1852604e4a513121760a013dd2c6",
      "parents": [
        "1b79acc91115ba47e744b70bb166b77bd94f5855"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Tue May 24 17:11:33 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 25 08:39:09 2011 -0700"
      },
      "message": "mm, mem-hotplug: update pcp-\u003estat_threshold when memory hotplug occur\n\nCurrently, cpu hotplug updates pcp-\u003estat_threshold, but memory hotplug\ndoesn\u0027t.  There is no reason for this.\n\n[akpm@linux-foundation.org: fix CONFIG_SMP\u003dn build]\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: Christoph Lameter \u003ccl@linux.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1b79acc91115ba47e744b70bb166b77bd94f5855",
      "tree": "9097834522de3840845368312c09b5ad4a98e5e5",
      "parents": [
        "839a4fcc8af7412be2efd11f0bd0504757f79f08"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Tue May 24 17:11:32 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 25 08:39:09 2011 -0700"
      },
      "message": "mm, mem-hotplug: recalculate lowmem_reserve when memory hotplug occurs\n\nCurrently, memory hotplug calls setup_per_zone_wmarks() and\ncalculate_zone_inactive_ratio(), but doesn\u0027t call\nsetup_per_zone_lowmem_reserve().\n\nIt means the number of reserved pages aren\u0027t updated even if memory hot\nplug occur.  This patch fixes 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\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": "839a4fcc8af7412be2efd11f0bd0504757f79f08",
      "tree": "8387ca9f25f2896dda53c222cd6c7a7cc41b9d74",
      "parents": [
        "37b23e0525d393d48a7d59f870b3bc061a30ccdb"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Tue May 24 17:11:31 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 25 08:39:08 2011 -0700"
      },
      "message": "mm, mem-hotplug: fix section mismatch. setup_per_zone_inactive_ratio() should be __meminit.\n\nCommit bce7394a3e (\"page-allocator: reset wmark_min and inactive ratio of\nzone when hotplug happens\") introduced invalid section references.  Now,\nsetup_per_zone_inactive_ratio() is marked __init and then it can\u0027t be\nreferenced from memory hotplug code.\n\nThis patch marks it as __meminit and also marks caller as __ref.\n\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nReviewed-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: Yasunori Goto \u003cy-goto@jp.fujitsu.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nReviewed-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": "37b23e0525d393d48a7d59f870b3bc061a30ccdb",
      "tree": "467e6fcd785108a21d836e1aad8fc1a68aa72e17",
      "parents": [
        "f62e00cc3a00bfbd394a79fc22b334c31f91bd5f"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Tue May 24 17:11:30 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 25 08:39:08 2011 -0700"
      },
      "message": "x86,mm: make pagefault killable\n\nWhen an oom killing occurs, almost all processes are getting stuck at the\nfollowing two points.\n\n\t1) __alloc_pages_nodemask\n\t2) __lock_page_or_retry\n\n1) is not very problematic because TIF_MEMDIE leads to an allocation\nfailure and getting out from page allocator.\n\n2) is more problematic.  In an OOM situation, zones typically don\u0027t have\npage cache at all and memory starvation might lead to greatly reduced IO\nperformance.  When a fork bomb occurs, TIF_MEMDIE tasks don\u0027t die quickly,\nmeaning that a fork bomb may create new process quickly rather than the\noom-killer killing it.  Then, the system may become livelocked.\n\nThis patch makes the pagefault interruptible by SIGKILL.\n\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: Matthew Wilcox \u003cwilly@linux.intel.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f62e00cc3a00bfbd394a79fc22b334c31f91bd5f",
      "tree": "29e0a3ac793e4a5a15bbbe4b4945470a41e820e7",
      "parents": [
        "fa25c503dfa203b921199ea42c0046c89f2ed49f"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Tue May 24 17:11:29 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 25 08:39:08 2011 -0700"
      },
      "message": "mm: introduce wait_on_page_locked_killable()\n\ncommit 2687a356 (\"Add lock_page_killable\") introduced killable\nlock_page().  Similarly this patch introdues killable\nwait_on_page_locked().\n\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nReviewed-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: Matthew Wilcox \u003cwilly@linux.intel.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "fa25c503dfa203b921199ea42c0046c89f2ed49f",
      "tree": "9a56c17ffda1183c66dc112ceba76ece65f0a4e6",
      "parents": [
        "bb005a59e08733bb416126dc184f73120fc6366b"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Tue May 24 17:11:28 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 25 08:39:07 2011 -0700"
      },
      "message": "mm: per-node vmstat: show proper vmstats\n\ncommit 2ac390370a (\"writeback: add\n/sys/devices/system/node/\u003cnode\u003e/vmstat\") added vmstat entry.  But\nstrangely it only show nr_written and nr_dirtied.\n\n        # cat /sys/devices/system/node/node20/vmstat\n        nr_written 0\n        nr_dirtied 0\n\nOf course, It\u0027s not adequate.  With this patch, the vmstat show all vm\nstastics as /proc/vmstat.\n\n        # cat /sys/devices/system/node/node0/vmstat\n\tnr_free_pages 899224\n\tnr_inactive_anon 201\n\tnr_active_anon 17380\n\tnr_inactive_file 31572\n\tnr_active_file 28277\n\tnr_unevictable 0\n\tnr_mlock 0\n\tnr_anon_pages 17321\n\tnr_mapped 8640\n\tnr_file_pages 60107\n\tnr_dirty 33\n\tnr_writeback 0\n\tnr_slab_reclaimable 6850\n\tnr_slab_unreclaimable 7604\n\tnr_page_table_pages 3105\n\tnr_kernel_stack 175\n\tnr_unstable 0\n\tnr_bounce 0\n\tnr_vmscan_write 0\n\tnr_writeback_temp 0\n\tnr_isolated_anon 0\n\tnr_isolated_file 0\n\tnr_shmem 260\n\tnr_dirtied 1050\n\tnr_written 938\n\tnuma_hit 962872\n\tnuma_miss 0\n\tnuma_foreign 0\n\tnuma_interleave 8617\n\tnuma_local 962872\n\tnuma_other 0\n\tnr_anon_transparent_hugepages 0\n\n[akpm@linux-foundation.org: no externs in .c files]\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Michael Rubin \u003cmrubin@google.com\u003e\nCc: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nAcked-by: David Rientjes \u003crientjes@google.com\u003e\nCc: Randy Dunlap \u003crdunlap@xenotime.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bb005a59e08733bb416126dc184f73120fc6366b",
      "tree": "f02e152c9f1af2c979b11ff4b3fcc7820b5644f5",
      "parents": [
        "7223bb4a829628bdf37d544ed4363d99bac1ade6"
      ],
      "author": {
        "name": "Namhyung Kim",
        "email": "namhyung@gmail.com",
        "time": "Tue May 24 17:11:27 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 25 08:39:07 2011 -0700"
      },
      "message": "mm: nommu: fix a compile warning in do_mmap_pgoff()\n\nBecause \u0027ret\u0027 is declared as int, not unsigned long, no need to cast the\nerror contants into unsigned long.  If you compile this code on a 64-bit\nmachine somehow, you\u0027ll see following warning:\n\n    CC      mm/nommu.o\n  mm/nommu.c: In function `do_mmap_pgoff\u0027:\n  mm/nommu.c:1411: warning: overflow in implicit constant conversion\n\nSigned-off-by: Namhyung Kim \u003cnamhyung@gmail.com\u003e\nAcked-by: Greg Ungerer \u003cgerg@uclinux.org\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: Geert Uytterhoeven \u003cgeert@linux-m68k.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7223bb4a829628bdf37d544ed4363d99bac1ade6",
      "tree": "4c300b6753a2346d24503e3d3d8f4a699758d21f",
      "parents": [
        "d75a310c42c616c168953ed45c1091074f97828c"
      ],
      "author": {
        "name": "Namhyung Kim",
        "email": "namhyung@gmail.com",
        "time": "Tue May 24 17:11:26 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 25 08:39:06 2011 -0700"
      },
      "message": "mm: nommu: fix a potential memory leak in do_mmap_private()\n\nIf f_op-\u003eread() fails and sysctl_nr_trim_pages \u003e 1, there could be a\nmemory leak between @region-\u003evm_end and @region-\u003evm_top.\n\nSigned-off-by: Namhyung Kim \u003cnamhyung@gmail.com\u003e\nAcked-by: Greg Ungerer \u003cgerg@uclinux.org\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: Geert Uytterhoeven \u003cgeert@linux-m68k.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d75a310c42c616c168953ed45c1091074f97828c",
      "tree": "95b4f45787b3d1820987439c8e8bbbbd5158fe14",
      "parents": [
        "e922c4c5360980bfeb862b3ec307d36bb344dcae"
      ],
      "author": {
        "name": "Namhyung Kim",
        "email": "namhyung@gmail.com",
        "time": "Tue May 24 17:11:25 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 25 08:39:06 2011 -0700"
      },
      "message": "mm: nommu: check the vma list when unmapping file-mapped vma\n\nNow we have the sorted vma list, use it in do_munmap() to check that we\nhave an exact match.\n\nSigned-off-by: Namhyung Kim \u003cnamhyung@gmail.com\u003e\nAcked-by: Greg Ungerer \u003cgerg@uclinux.org\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: Geert Uytterhoeven \u003cgeert@linux-m68k.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e922c4c5360980bfeb862b3ec307d36bb344dcae",
      "tree": "e8f4339b198dbb9830ec5313c6cc7ca639704c33",
      "parents": [
        "b951bf2c4693bfc9744e11293be859209f65f579"
      ],
      "author": {
        "name": "Namhyung Kim",
        "email": "namhyung@gmail.com",
        "time": "Tue May 24 17:11:24 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 25 08:39:06 2011 -0700"
      },
      "message": "mm: nommu: find vma using the sorted vma list\n\nNow we have the sorted vma list, use it in the find_vma[_exact]() rather\nthan doing linear search on the rb-tree.\n\nSigned-off-by: Namhyung Kim \u003cnamhyung@gmail.com\u003e\nAcked-by: Greg Ungerer \u003cgerg@uclinux.org\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: Geert Uytterhoeven \u003cgeert@linux-m68k.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b951bf2c4693bfc9744e11293be859209f65f579",
      "tree": "05f0bce8e2c2cd9053d761b17abc8101aab30a3e",
      "parents": [
        "6038def0d11b322019d0dbb43f2a611247dfbdb6"
      ],
      "author": {
        "name": "Namhyung Kim",
        "email": "namhyung@gmail.com",
        "time": "Tue May 24 17:11:23 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 25 08:39:05 2011 -0700"
      },
      "message": "mm: nommu: don\u0027t scan the vma list when deleting\n\nSince commit 297c5eee3724 (\"mm: make the vma list be doubly linked\") made\nit a doubly linked list, we don\u0027t need to scan the list when deleting\n@vma.\n\nAnd the original code didn\u0027t update the prev pointer. Fix it too.\n\nSigned-off-by: Namhyung Kim \u003cnamhyung@gmail.com\u003e\nAcked-by: Greg Ungerer \u003cgerg@uclinux.org\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: Geert Uytterhoeven \u003cgeert@linux-m68k.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6038def0d11b322019d0dbb43f2a611247dfbdb6",
      "tree": "3b7bd8a20af5749566bfba9ca39a3d0c2cc25e0a",
      "parents": [
        "ac3bbec5ec69b973317677e038de2d1a0c90c18c"
      ],
      "author": {
        "name": "Namhyung Kim",
        "email": "namhyung@gmail.com",
        "time": "Tue May 24 17:11:22 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 25 08:39:05 2011 -0700"
      },
      "message": "mm: nommu: sort mm-\u003emmap list properly\n\nWhen I was reading nommu code, I found that it handles the vma list/tree\nin an unusual way.  IIUC, because there can be more than one\nidentical/overrapped vmas in the list/tree, it sorts the tree more\nstrictly and does a linear search on the tree.  But it doesn\u0027t applied to\nthe list (i.e.  the list could be constructed in a different order than\nthe tree so that we can\u0027t use the list when finding the first vma in that\norder).\n\nSince inserting/sorting a vma in the tree and link is done at the same\ntime, we can easily construct both of them in the same order.  And linear\nsearching on the tree could be more costly than doing it on the list, it\ncan be converted to use the list.\n\nAlso, after the commit 297c5eee3724 (\"mm: make the vma list be doubly\nlinked\") made the list be doubly linked, there were a couple of code need\nto be fixed to construct the list properly.\n\nPatch 1/6 is a preparation.  It maintains the list sorted same as the tree\nand construct doubly-linked list properly.  Patch 2/6 is a simple\noptimization for the vma deletion.  Patch 3/6 and 4/6 convert tree\ntraversal to list traversal and the rest are simple fixes and cleanups.\n\nThis patch:\n\n@vma added into @mm should be sorted by start addr, end addr and VMA\nstruct addr in that order because we may get identical VMAs in the @mm.\nHowever this was true only for the rbtree, not for the list.\n\nThis patch fixes this by remembering \u0027rb_prev\u0027 during the tree traversal\nlike find_vma_prepare() does and linking the @vma via __vma_link_list().\nAfter this patch, we can iterate the whole VMAs in correct order simply by\nusing @mm-\u003emmap list.\n\n[akpm@linux-foundation.org: avoid duplicating __vma_link_list()]\nSigned-off-by: Namhyung Kim \u003cnamhyung@gmail.com\u003e\nAcked-by: Greg Ungerer \u003cgerg@uclinux.org\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: Geert Uytterhoeven \u003cgeert@linux-m68k.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ac3bbec5ec69b973317677e038de2d1a0c90c18c",
      "tree": "7df84a9ba812c1759a035428f6bad78b6e73b8a9",
      "parents": [
        "965f55dea0e331152fa53941a51e4e16f9f06fae"
      ],
      "author": {
        "name": "Sergey Senozhatsky",
        "email": "sergey.senozhatsky@gmail.com",
        "time": "Tue May 24 17:11:21 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 25 08:39:04 2011 -0700"
      },
      "message": "mm: remove unused zone_idx variable from set_migratetype_isolate\n\nSigned-off-by: Sergey Senozhatsky \u003csergey.senozhatsky@gmail.com\u003e\nReviewed-by: Christoph Lameter \u003ccl@linux.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": "965f55dea0e331152fa53941a51e4e16f9f06fae",
      "tree": "3cf8beb31bac7b325b62e8ef75618e0086a3c760",
      "parents": [
        "5f70b962ccc2f2e6259417cf3d1233dc9e16cf5e"
      ],
      "author": {
        "name": "Shaohua Li",
        "email": "shaohua.li@intel.com",
        "time": "Tue May 24 17:11:20 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 25 08:39:04 2011 -0700"
      },
      "message": "mmap: avoid merging cloned VMAs\n\nAvoid merging a VMA with another VMA which is cloned from the parent process.\n\nThe cloned VMA shares the anon_vma lock with the parent process\u0027s VMA.  If\nwe do the merge, more vmas (even the new range is only for current\nprocess) use the perent process\u0027s anon_vma lock.  This introduces\nscalability issues.  find_mergeable_anon_vma() already considers this\ncase.\n\nSigned-off-by: Shaohua Li \u003cshaohua.li@intel.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5f70b962ccc2f2e6259417cf3d1233dc9e16cf5e",
      "tree": "5e3d83554554e3c315a7bab654fc51345078bc9d",
      "parents": [
        "34679d7eac9ecc20face093db9aa610f1e9c893a"
      ],
      "author": {
        "name": "Shaohua Li",
        "email": "shaohua.li@intel.com",
        "time": "Tue May 24 17:11:19 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 25 08:39:04 2011 -0700"
      },
      "message": "mmap: avoid unnecessary anon_vma lock\n\nIf we only change vma-\u003evm_end, we can avoid taking anon_vma lock even if\n\u0027insert\u0027 isn\u0027t NULL, which is the case of split_vma.\n\nAs I understand it, we need the lock before because rmap must get the\n\u0027insert\u0027 VMA when we adjust old VMA\u0027s vm_end (the \u0027insert\u0027 VMA is linked\nto anon_vma list in __insert_vm_struct before).\n\nBut now this isn\u0027t true any more.  The \u0027insert\u0027 VMA is already linked to\nanon_vma list in __split_vma(with anon_vma_clone()) instead of\n__insert_vm_struct.  There is no race rmap can\u0027t get required VMAs.  So\nthe anon_vma lock is unnecessary, and this can reduce one locking in brk\ncase and improve scalability.\n\nSigned-off-by: Shaohua Li\u003cshaohua.li@intel.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nAcked-by: Hugh Dickins \u003chughd@google.com\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "34679d7eac9ecc20face093db9aa610f1e9c893a",
      "tree": "b959da55ed4ff4f4bbd536320cb8205377a46301",
      "parents": [
        "7bf02ea22c6cdd09e2d3f1d3c3fe366b834ae9af"
      ],
      "author": {
        "name": "Shaohua Li",
        "email": "shaohua.li@intel.com",
        "time": "Tue May 24 17:11:18 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 25 08:39:03 2011 -0700"
      },
      "message": "mmap: add alignment for some variables\n\nMake some variables have correct alignment/section to avoid cache issue.\nIn a workload which heavily does mmap/munmap, the variables will be used\nfrequently.\n\nSigned-off-by: Shaohua Li \u003cshaohua.li@intel.com\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nCc: Rik van Riel \u003criel@redhat.com\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": "7bf02ea22c6cdd09e2d3f1d3c3fe366b834ae9af",
      "tree": "c1c8aa415910e0f0deea1181759ddd2b5d6067fb",
      "parents": [
        "851cc856d73d1185243c149ed0c0839df8a1b2fe"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Tue May 24 17:11:16 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 25 08:39:03 2011 -0700"
      },
      "message": "arch, mm: filter disallowed nodes from arch specific show_mem functions\n\nArchitectures that implement their own show_mem() function did not pass\nthe filter argument to show_free_areas() to appropriately avoid emitting\nthe state of nodes that are disallowed in the current context.  This patch\nnow passes the filter argument to show_free_areas() so those nodes are now\navoided.\n\nThis patch also removes the show_free_areas() wrapper around\n__show_free_areas() and converts existing callers to pass an empty filter.\n\nia64 emits additional information for each node, so skip_free_areas_zone()\nmust be made global to filter disallowed nodes and it is converted to use\na nid argument rather than a zone for this use case.\n\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nCc: Russell King \u003clinux@arm.linux.org.uk\u003e\nCc: Tony Luck \u003ctony.luck@intel.com\u003e\nCc: Fenghua Yu \u003cfenghua.yu@intel.com\u003e\nCc: Kyle McMartin \u003ckyle@mcmartin.ca\u003e\nCc: Helge Deller \u003cdeller@gmx.de\u003e\nCc: James Bottomley \u003cjejb@parisc-linux.org\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: Guan Xuetao \u003cgxt@mprc.pku.edu.cn\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f06590bd718ed950c98828e30ef93204028f3210",
      "tree": "60d1c52a538618a16ebcd82a4d949446fd2036c7",
      "parents": [
        "afc7e326a3f5bafc41324d7926c324414e343ee5"
      ],
      "author": {
        "name": "Minchan Kim",
        "email": "minchan.kim@gmail.com",
        "time": "Tue May 24 17:11:11 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 25 08:39:01 2011 -0700"
      },
      "message": "mm: vmscan: correctly check if reclaimer should schedule during shrink_slab\n\nIt has been reported on some laptops that kswapd is consuming large\namounts of CPU and not being scheduled when SLUB is enabled during large\namounts of file copying.  It is expected that this is due to kswapd\nmissing every cond_resched() point because;\n\nshrink_page_list() calls cond_resched() if inactive pages were isolated\n        which in turn may not happen if all_unreclaimable is set in\n        shrink_zones(). If for whatver reason, all_unreclaimable is\n        set on all zones, we can miss calling cond_resched().\n\nbalance_pgdat() only calls cond_resched if the zones are not\n        balanced. For a high-order allocation that is balanced, it\n        checks order-0 again. During that window, order-0 might have\n        become unbalanced so it loops again for order-0 and returns\n        that it was reclaiming for order-0 to kswapd(). It can then\n        find that a caller has rewoken kswapd for a high-order and\n        re-enters balance_pgdat() without ever calling cond_resched().\n\nshrink_slab only calls cond_resched() if we are reclaiming slab\n\tpages. If there are a large number of direct reclaimers, the\n\tshrinker_rwsem can be contended and prevent kswapd calling\n\tcond_resched().\n\nThis patch modifies the shrink_slab() case.  If the semaphore is\ncontended, the caller will still check cond_resched().  After each\nsuccessful call into a shrinker, the check for cond_resched() remains in\ncase one shrinker is particularly slow.\n\n[mgorman@suse.de: preserve call to cond_resched after each call into shrinker]\nSigned-off-by: Mel Gorman \u003cmgorman@suse.de\u003e\nSigned-off-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nCc: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\nTested-by: Colin King \u003ccolin.king@canonical.com\u003e\nCc: Raghavendra D Prabhu \u003craghu.prabhu13@gmail.com\u003e\nCc: Jan Kara \u003cjack@suse.cz\u003e\nCc: Chris Mason \u003cchris.mason@oracle.com\u003e\nCc: Christoph Lameter \u003ccl@linux.com\u003e\nCc: Pekka Enberg \u003cpenberg@kernel.org\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: \u003cstable@kernel.org\u003e\t\t[2.6.38+]\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "afc7e326a3f5bafc41324d7926c324414e343ee5",
      "tree": "c7b06a424b7a35840a41dca008291ca5dcad9b42",
      "parents": [
        "a71ae47a2cbfa542c69f695809124da4e4dd9e8f"
      ],
      "author": {
        "name": "Johannes Weiner",
        "email": "hannes@cmpxchg.org",
        "time": "Tue May 24 17:11:09 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 25 08:39:01 2011 -0700"
      },
      "message": "mm: vmscan: correct use of pgdat_balanced in sleeping_prematurely\n\nThere are a few reports of people experiencing hangs when copying large\namounts of data with kswapd using a large amount of CPU which appear to be\ndue to recent reclaim changes.  SLUB using high orders is the trigger but\nnot the root cause as SLUB has been using high orders for a while.  The\nroot cause was bugs introduced into reclaim which are addressed by the\nfollowing two patches.\n\nPatch 1 corrects logic introduced by commit 1741c877 (\"mm: kswapd:\n        keep kswapd awake for high-order allocations until a percentage of\n        the node is balanced\") to allow kswapd to go to sleep when\n        balanced for high orders.\n\nPatch 2 notes that it is possible for kswapd to miss every\n        cond_resched() and updates shrink_slab() so it\u0027ll at least reach\n        that scheduling point.\n\nChris Wood reports that these two patches in isolation are sufficient to\nprevent the system hanging.  AFAIK, they should also resolve similar hangs\nexperienced by James Bottomley.\n\nThis patch:\n\nJohannes Weiner poined out that the logic in commit 1741c877 (\"mm: kswapd:\nkeep kswapd awake for high-order allocations until a percentage of the\nnode is balanced\") is backwards.  Instead of allowing kswapd to go to\nsleep when balancing for high order allocations, it keeps it kswapd\nrunning uselessly.\n\nSigned-off-by: Mel Gorman \u003cmgorman@suse.de\u003e\nReviewed-by: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nReviewed-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nCc: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\nTested-by: Colin King \u003ccolin.king@canonical.com\u003e\nCc: Raghavendra D Prabhu \u003craghu.prabhu13@gmail.com\u003e\nCc: Jan Kara \u003cjack@suse.cz\u003e\nCc: Chris Mason \u003cchris.mason@oracle.com\u003e\nCc: Christoph Lameter \u003ccl@linux.com\u003e\nCc: Pekka Enberg \u003cpenberg@kernel.org\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nReviewed-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nReviewed-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nCc: \u003cstable@kernel.org\u003e\t\t[2.6.38+]\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a71ae47a2cbfa542c69f695809124da4e4dd9e8f",
      "tree": "a6b563bbab796f404fc68fdeebdf9a1c1e2fc27b",
      "parents": [
        "4a7df24ddc7097cd789a7527187826552ea0765e"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "cl@linux.com",
        "time": "Wed May 25 09:47:43 2011 -0500"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 25 08:38:24 2011 -0700"
      },
      "message": "slub: Fix double bit unlock in debug mode\n\nCommit 442b06bcea23 (\"slub: Remove node check in slab_free\") added a\ncall to deactivate_slab() in the debug case in __slab_alloc(), which\nunlocks the current slab used for allocation.  Going to the label\n\u0027unlock_out\u0027 then does it again.\n\nAlso, in the debug case we do not need all the other processing that the\n\u0027unlock_out\u0027 path does.  We always fall back to the slow path in the\ndebug case.  So the tid update is useless.\n\nSimilarly, ALLOC_SLOWPATH would just be incremented for all allocations.\nAlso a pretty useless thing.\n\nSo simply restore irq flags and return the object.\n\nSigned-off-by: Christoph Lameter \u003ccl@linux.com\u003e\nReported-and-bisected-by: James Morris \u003cjmorris@namei.org\u003e\nReported-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nReported-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\nCc: Pekka Enberg \u003cpenberg@kernel.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0d66cba1ac3ad38614077443d604d6a09cec99de",
      "tree": "383981fd93c7e6d467fb239edd51f935f1a481dd",
      "parents": [
        "4637f40f200063973553ce3c4c1ac6c247e4535c",
        "5bd418784a2764a8d9de177a5462bfc008fd334a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 24 12:06:02 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 24 12:06:02 2011 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git390.marist.edu/pub/scm/linux-2.6\n\n* \u0027for-linus\u0027 of git://git390.marist.edu/pub/scm/linux-2.6: (29 commits)\n  [S390] cpu hotplug: fix external interrupt subclass mask handling\n  [S390] oprofile: dont access lowcore\n  [S390] oprofile: add missing irq stats counter\n  [S390] Ignore sendmmsg system call note wired up warning\n  [S390] s390,oprofile: fix compile error for !CONFIG_SMP\n  [S390] s390,oprofile: fix alert counter increment\n  [S390] Remove unused includes in process.c\n  [S390] get CPC image name\n  [S390] sclp: event buffer dissection\n  [S390] chsc: process channel-path-availability information\n  [S390] refactor page table functions for better pgste support\n  [S390] merge page_test_dirty and page_clear_dirty\n  [S390] qdio: prevent compile warning\n  [S390] sclp: remove unnecessary sendmask check\n  [S390] convert old cpumask API into new one\n  [S390] pfault: cleanup code\n  [S390] pfault: cpu hotplug vs missing completion interrupts\n  [S390] smp: add __noreturn attribute to cpu_die()\n  [S390] percpu: implement arch specific irqsafe_cpu_ops\n  [S390] vdso: disable gcov profiling\n  ...\n"
    },
    {
      "commit": "5129df03d0c44b2d5a5f9d7d52f3b079706b9a8f",
      "tree": "799e309a7db032cb7abe9f0fa910c2989c3fdab5",
      "parents": [
        "4d429480352c63db2228489f0db9fd381cdc3c9c",
        "6988f20fe04e9ef3aea488cb8ab57fbeb78e12f0"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 24 11:53:42 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 24 11:53:42 2011 -0700"
      },
      "message": "Merge branch \u0027for-2.6.40\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu\n\n* \u0027for-2.6.40\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu:\n  percpu: Unify input section names\n  percpu: Avoid extra NOP in percpu_cmpxchg16b_double\n  percpu: Cast away printk format warning\n  percpu: Always align percpu output section to PAGE_SIZE\n\nFix up fairly trivial conflict in arch/x86/include/asm/percpu.h as per Tejun\n"
    },
    {
      "commit": "6988f20fe04e9ef3aea488cb8ab57fbeb78e12f0",
      "tree": "c9d7fc50a2e2147a5ca07e3096e7eeb916ad2da9",
      "parents": [
        "0415b00d175e0d8945e6785aad21b5f157976ce0",
        "6ea0c34dac89611126455537552cffe6c7e832ad"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue May 24 09:59:36 2011 +0200"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue May 24 09:59:36 2011 +0200"
      },
      "message": "Merge branch \u0027fixes-2.6.39\u0027 into for-2.6.40\n"
    },
    {
      "commit": "4867faab1e3eb8cc3f74e390357615d9b8e8cda6",
      "tree": "7a6cb9175c483a0f7e3672185e7f9fb25f74caa3",
      "parents": [
        "6fad2b5b649fa1fa6ee7293222815f5b62499889",
        "bfb91fb650e988c3c347e50fc75fedb7d4f0c018"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon May 23 10:10:44 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon May 23 10:10:44 2011 -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  slub: Deal with hyperthetical case of PAGE_SIZE \u003e 2M\n  slub: Remove node check in slab_free\n  slub: avoid label inside conditional\n  slub: Make CONFIG_DEBUG_PAGE_ALLOC work with new fastpath\n  slub: Avoid warning for !CONFIG_SLUB_DEBUG\n  slub: Remove CONFIG_CMPXCHG_LOCAL ifdeffery\n  slub: Move debug handlign in __slab_free\n  slub: Move node determination out of hotpath\n  slub: Eliminate repeated use of c-\u003epage through a new page variable\n  slub: get_map() function to establish map of free objects in a slab\n  slub: Use NUMA_NO_NODE in get_partial\n  slub: Fix a typo in config name\n"
    },
    {
      "commit": "bfb91fb650e988c3c347e50fc75fedb7d4f0c018",
      "tree": "0e8d89e0ceffb9001da2082998222da8b39185c1",
      "parents": [
        "caebc160ce3f76761cc62ad96ef6d6f30f54e3dd",
        "3e0c2ab67e48f77c2da0a5c826aac397792a214e"
      ],
      "author": {
        "name": "Pekka Enberg",
        "email": "penberg@kernel.org",
        "time": "Mon May 23 19:50:39 2011 +0300"
      },
      "committer": {
        "name": "Pekka Enberg",
        "email": "penberg@kernel.org",
        "time": "Mon May 23 19:50:39 2011 +0300"
      },
      "message": "Merge branch \u0027slab/next\u0027 into for-linus\n\nConflicts:\n\tmm/slub.c\n"
    },
    {
      "commit": "57d19e80f459dd845fb3cfeba8e6df8471bac142",
      "tree": "8254766715720228db3d50f1ef3c7fe003c06d65",
      "parents": [
        "ee9ec4f82049c678373a611ce20ac67fe9ad836e",
        "e64851f5a0ad6ec991f74ebb3108c35aa0323d5f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon May 23 09:12:26 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon May 23 09:12:26 2011 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (39 commits)\n  b43: fix comment typo reqest -\u003e request\n  Haavard Skinnemoen has left Atmel\n  cris: typo in mach-fs Makefile\n  Kconfig: fix copy/paste-ism for dell-wmi-aio driver\n  doc: timers-howto: fix a typo (\"unsgined\")\n  perf: Only include annotate.h once in tools/perf/util/ui/browsers/annotate.c\n  md, raid5: Fix spelling error in comment (\u0027Ofcourse\u0027 --\u003e \u0027Of course\u0027).\n  treewide: fix a few typos in comments\n  regulator: change debug statement be consistent with the style of the rest\n  Revert \"arm: mach-u300/gpio: Fix mem_region resource size miscalculations\"\n  audit: acquire creds selectively to reduce atomic op overhead\n  rtlwifi: don\u0027t touch with treewide double semicolon removal\n  treewide: cleanup continuations and remove logging message whitespace\n  ath9k_hw: don\u0027t touch with treewide double semicolon removal\n  include/linux/leds-regulator.h: fix syntax in example code\n  tty: fix typo in descripton of tty_termios_encode_baud_rate\n  xtensa: remove obsolete BKL kernel option from defconfig\n  m68k: fix comment typo \u0027occcured\u0027\n  arch:Kconfig.locks Remove unused config option.\n  treewide: remove extra semicolons\n  ...\n"
    },
    {
      "commit": "2d42552d1c1659b014851cf449ad2fe458509128",
      "tree": "b9ef22867ce52e23b5249a7ad38637eec40363b8",
      "parents": [
        "c26001d4e9133fe45e47eee18cfd826219e71fb9"
      ],
      "author": {
        "name": "Martin Schwidefsky",
        "email": "schwidefsky@de.ibm.com",
        "time": "Mon May 23 10:24:39 2011 +0200"
      },
      "committer": {
        "name": "Martin Schwidefsky",
        "email": "schwidefsky@de.ibm.com",
        "time": "Mon May 23 10:24:31 2011 +0200"
      },
      "message": "[S390] merge page_test_dirty and page_clear_dirty\n\nThe page_clear_dirty primitive always sets the default storage key\nwhich resets the access control bits and the fetch protection bit.\nThat will surprise a KVM guest that sets non-zero access control\nbits or the fetch protection bit. Merge page_test_dirty and\npage_clear_dirty back to a single function and only clear the\ndirty bit from the storage key.\n\nIn addition move the function page_test_and_clear_dirty and\npage_test_and_clear_young to page.h where they belong. This\nrequires to change the parameter from a struct page * to a page\nframe number.\n\nSigned-off-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\n"
    },
    {
      "commit": "442b06bcea23a01934d3da7ec5898fa154a6cafb",
      "tree": "bc08b4a9d7723057a1ff1687a90cdb608b3c8cce",
      "parents": [
        "bd07d87fd4b8a6af9820544b6bc6c37215d6f8ad"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "cl@linux.com",
        "time": "Tue May 17 16:29:31 2011 -0500"
      },
      "committer": {
        "name": "Pekka Enberg",
        "email": "penberg@kernel.org",
        "time": "Sat May 21 12:53:53 2011 +0300"
      },
      "message": "slub: Remove node check in slab_free\n\nWe can set the page pointing in the percpu structure to\nNULL to have the same effect as setting c-\u003enode to NUMA_NO_NODE.\n\nGets rid of one check in slab_free() that was only used for\nforcing the slab_free to the slowpath for debugging.\n\nWe still need to set c-\u003enode to NUMA_NO_NODE to force the\nslab_alloc() fastpath to the slowpath in case of debugging.\n\nSigned-off-by: Christoph Lameter \u003ccl@linux.com\u003e\nSigned-off-by: Pekka Enberg \u003cpenberg@kernel.org\u003e\n"
    },
    {
      "commit": "e6c9366b2adb52cba64b359b3050200743c7568c",
      "tree": "8e092d9b865734f31116583a2db20971e1c352ee",
      "parents": [
        "6de06f313a65d0ecabf055e708d082002b568866"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hughd@google.com",
        "time": "Fri May 20 15:47:33 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 20 16:23:19 2011 -0700"
      },
      "message": "tmpfs: fix highmem swapoff crash regression\n\nCommit 778dd893ae78 (\"tmpfs: fix race between umount and swapoff\")\nforgot the new rules for strict atomic kmap nesting, causing\n\n  WARNING: at arch/x86/mm/highmem_32.c:81\n\nfrom __kunmap_atomic(), then\n\n  BUG: unable to handle kernel paging request at fffb9000\n\nfrom shmem_swp_set() when shmem_unuse_inode() is handling swapoff with\nhighmem in use.  My disgrace again.\n\nSee\n  https://bugzilla.kernel.org/show_bug.cgi?id\u003d35352\n\nReported-by: Witold Baryluk \u003cbaryluk@smp.if.uj.edu.pl\u003e\nSigned-off-by: Hugh Dickins \u003chughd@google.com\u003e\nCc: stable@kernel.org\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "268bb0ce3e87872cb9290c322b0d35bce230d88f",
      "tree": "c8331ade4a3e24fc589c4eb62731bc2312d35333",
      "parents": [
        "257313b2a87795e07a0bdf58d0fffbdba8b31051"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 20 12:50:29 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 20 12:50:29 2011 -0700"
      },
      "message": "sanitize \u003clinux/prefetch.h\u003e usage\n\nCommit e66eed651fd1 (\"list: remove prefetching from regular list\niterators\") removed the include of prefetch.h from list.h, which\nuncovered several cases that had apparently relied on that rather\nobscure header file dependency.\n\nSo this fixes things up a bit, using\n\n   grep -L linux/prefetch.h $(git grep -l \u0027[^a-z_]prefetchw*(\u0027 -- \u0027*.[ch]\u0027)\n   grep -L \u0027prefetchw*(\u0027 $(git grep -l \u0027linux/prefetch.h\u0027 -- \u0027*.[ch]\u0027)\n\nto guide us in finding files that either need \u003clinux/prefetch.h\u003e\ninclusion, or have it despite not needing it.\n\nThere are more of them around (mostly network drivers), but this gets\nmany core ones.\n\nReported-by: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "345227d705f2318e9bc088e79fe71a38bb5fe82b",
      "tree": "63db4303b1d077d244d492d430da3d6f0c51a5fc",
      "parents": [
        "771949d03b4f5295f648f09141325fd478f6c7ce"
      ],
      "author": {
        "name": "Gustavo F. Padovan",
        "email": "padovan@profusion.mobi",
        "time": "Fri May 20 21:23:37 2011 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Fri May 20 21:23:37 2011 +0200"
      },
      "message": "backing-dev: Kill set but not used var in  bdi_debug_stats_show()\n\nSigned-off-by: Gustavo F. Padovan \u003cpadovan@profusion.mobi\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "83d7e948754cf021ed7343b122940fcc27c1bd88",
      "tree": "f04ba1ecb4fa337fc2bbd49b44df07775e4636ff",
      "parents": [
        "fce4a1dda2f1a9a25b3e5b7cd951070e0b42a818",
        "9b090f2da85bd0df5e1a1ecfe4120b7b50358f48"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 19 16:44:13 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 19 16:44:13 2011 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/cmarinas/linux-2.6-cm\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/cmarinas/linux-2.6-cm:\n  kmemleak: Initialise kmemleak after debug_objects_mem_init()\n  kmemleak: Select DEBUG_FS unconditionally in DEBUG_KMEMLEAK\n  kmemleak: Do not return a pointer to an object that kmemleak did not get\n"
    },
    {
      "commit": "52c3ce4ec5601ee383a14f1485f6bac7b278896e",
      "tree": "c987bc17100f9b5e5bdaa3b2b83612fe65bbb39a",
      "parents": [
        "8e10cd74342c7f5ce259cceca36f6eba084f5d58"
      ],
      "author": {
        "name": "Catalin Marinas",
        "email": "catalin.marinas@arm.com",
        "time": "Wed Apr 27 16:44:26 2011 +0100"
      },
      "committer": {
        "name": "Catalin Marinas",
        "email": "catalin.marinas@arm.com",
        "time": "Thu May 19 17:35:28 2011 +0100"
      },
      "message": "kmemleak: Do not return a pointer to an object that kmemleak did not get\n\nThe kmemleak_seq_next() function tries to get an object (and increment\nits use count) before returning it. If it could not get the last object\nduring list traversal (because it may have been freed), the function\nshould return NULL rather than a pointer to such object that it did not\nget.\n\nSigned-off-by: Catalin Marinas \u003ccatalin.marinas@arm.com\u003e\nReported-by: Phil Carmody \u003cext-phil.2.carmody@nokia.com\u003e\nAcked-by: Phil Carmody \u003cext-phil.2.carmody@nokia.com\u003e\nCc: \u003cstable@kernel.org\u003e\n"
    },
    {
      "commit": "d6c438b6cd733834a3cec55af8577a8fc3548016",
      "tree": "95c7719415aecf9f2a09b1e885d23ba54eb9b5b8",
      "parents": [
        "d5f33d45e4c0e306e8d16b4573891a65d9ad544f"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Tue May 17 15:44:10 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 18 02:55:23 2011 -0700"
      },
      "message": "memcg: fix zone congestion\n\nZONE_CONGESTED should be a state of global memory reclaim.  If not, a busy\nmemcg sets this and give unnecessary throttoling in wait_iff_congested()\nagainst memory recalim in other contexts.  This makes system performance\nbad.\n\nI\u0027ll think about \"memcg is congested!\" flag is required or not, later.\nBut this fix is required first.\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nReviewed-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nAcked-by: Ying Han \u003cyinghan@google.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Johannes Weiner \u003cjweiner@redhat.com\u003e\nCc: Michal Hocko \u003cmhocko@suse.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bd07d87fd4b8a6af9820544b6bc6c37215d6f8ad",
      "tree": "521042275e3bf152056b5683f637f5750ccf9edb",
      "parents": [
        "1393d9a1857471f816d0be1ccc1d6433a86050f6"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Thu May 12 13:10:49 2011 -0700"
      },
      "committer": {
        "name": "Pekka Enberg",
        "email": "penberg@kernel.org",
        "time": "Tue May 17 22:19:00 2011 +0300"
      },
      "message": "slub: avoid label inside conditional\n\nJumping to a label inside a conditional is considered poor style,\nespecially considering the current organization of __slab_alloc().\n\nThis removes the \u0027load_from_page\u0027 label and just duplicates the three\nlines of code that it uses:\n\n\tc-\u003enode \u003d page_to_nid(page);\n\tc-\u003epage \u003d page;\n\tgoto load_freelist;\n\nsince it\u0027s probably not worth making this a separate helper function.\n\nAcked-by: Christoph Lameter \u003ccl@linux.com\u003e\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Pekka Enberg \u003cpenberg@kernel.org\u003e\n"
    },
    {
      "commit": "1393d9a1857471f816d0be1ccc1d6433a86050f6",
      "tree": "2bcad46d15f1dc7ea6e458f2ab4d7f17b766dd66",
      "parents": [
        "6332aa9d25e911cc97aa9cc09acee21afda07ea6"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "cl@linux.com",
        "time": "Mon May 16 15:26:08 2011 -0500"
      },
      "committer": {
        "name": "Pekka Enberg",
        "email": "penberg@kernel.org",
        "time": "Tue May 17 22:18:55 2011 +0300"
      },
      "message": "slub: Make CONFIG_DEBUG_PAGE_ALLOC work with new fastpath\n\nFastpath can do a speculative access to a page that CONFIG_DEBUG_PAGE_ALLOC may have\nmarked as invalid to retrieve the pointer to the next free object.\n\nUse probe_kernel_read in that case in order not to cause a page fault.\n\nCc: \u003cstable@kernel.org\u003e # 38.x\nReported-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: Christoph Lameter \u003ccl@linux.com\u003e\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: Pekka Enberg \u003cpenberg@kernel.org\u003e\n"
    },
    {
      "commit": "6332aa9d25e911cc97aa9cc09acee21afda07ea6",
      "tree": "6b931efc6453812784948ab33a0e0aa123f689c1",
      "parents": [
        "1759415e630e5db0dd2390df9f94892cbfb9a8a2"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "cl@linux.com",
        "time": "Mon May 16 15:26:06 2011 -0500"
      },
      "committer": {
        "name": "Pekka Enberg",
        "email": "penberg@kernel.org",
        "time": "Tue May 17 22:16:08 2011 +0300"
      },
      "message": "slub: Avoid warning for !CONFIG_SLUB_DEBUG\n\nMove the #ifdef so that get_map is only defined if CONFIG_SLUB_DEBUG is defined.\n\nReported-by: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Christoph Lameter \u003ccl@linux.com\u003e\nSigned-off-by: Pekka Enberg \u003cpenberg@kernel.org\u003e\n"
    },
    {
      "commit": "b5e6ab589d570ac79cc939517fab05c87a23c262",
      "tree": "db9014f2b0897c9f3ada5b4077995e679aa36fbb",
      "parents": [
        "93d2175d3d31f11ba04fcfa0e9a496a1b4bc8b34"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Mon May 16 13:16:54 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon May 16 18:34:30 2011 -0700"
      },
      "message": "mm: fix kernel-doc warning in page_alloc.c\n\nFix new kernel-doc warning in mm/page_alloc.c:\n\n  Warning(mm/page_alloc.c:2370): No description found for parameter \u0027nid\u0027\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "05bf86b4ccfd0f197da61c67bd372111d15a6620",
      "tree": "23db61517fad9b68b19fdbe044fa3dbe8fc2bd19",
      "parents": [
        "afa49791caae70cc3fd665a182eea61250795265"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hughd@google.com",
        "time": "Sat May 14 12:06:42 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat May 14 12:18:55 2011 -0700"
      },
      "message": "tmpfs: fix race between swapoff and writepage\n\nShame on me!  Commit b1dea800ac39 \"tmpfs: fix race between umount and\nwritepage\" fixed the advertized race, but introduced another: as even\nits comment makes clear, we cannot safely rely on a peek at list_empty()\nwhile holding no lock - until info-\u003eswapped is set, shmem_unuse_inode()\nmay delete any formerly-swapped inode from the shmem_swaplist, which\nin this case would leave a swap area impossible to swapoff.\n\nAlthough I don\u0027t relish taking the mutex every time, I don\u0027t care much\nfor the alternatives either; and at least the peek at list_empty() in\nshmem_evict_inode() (a hotter path since most inodes would never have\nbeen swapped) remains safe, because we already truncated the whole file.\n\nSigned-off-by: Hugh Dickins \u003chughd@google.com\u003e\nCc: stable@kernel.org\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "59a16ead572330deb38e5848151d30ed1af754bc",
      "tree": "792b1f35e11e0f49170b0d306d45706de54afeae",
      "parents": [
        "778dd893ae785c5fd505dac30b5fc40aae188bf1"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hughd@google.com",
        "time": "Wed May 11 15:13:38 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 11 18:50:45 2011 -0700"
      },
      "message": "tmpfs: fix spurious ENOSPC when racing with unswap\n\nTesting the shmem_swaplist replacements for igrab() revealed another bug:\nwrites to /dev/loop0 on a tmpfs file which fills its filesystem were\nsometimes failing with \"Buffer I/O error\"s.\n\nThese came from ENOSPC failures of shmem_getpage(), when racing with\nswapoff: the same could happen when racing with another shmem_getpage(),\npulling the page in from swap in between our find_lock_page() and our\ntaking the info-\u003elock (though not in the single-threaded loop case).\n\nThis is unacceptable, and surprising that I\u0027ve not noticed it before:\nit dates back many years, but (presumably) was made a lot easier to\nreproduce in 2.6.36, which sited a page preallocation in the race window.\n\nFix it by rechecking the page cache before settling on an ENOSPC error.\n\nSigned-off-by: Hugh Dickins \u003chughd@google.com\u003e\nCc: Konstantin Khlebnikov \u003ckhlebnikov@openvz.org\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": "778dd893ae785c5fd505dac30b5fc40aae188bf1",
      "tree": "e9ff9c1efa2105740b5be0c368bfbc89ee85a01b",
      "parents": [
        "b1dea800ac39599301d4bb8dcf2b1d29c2558211"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hughd@google.com",
        "time": "Wed May 11 15:13:37 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 11 18:50:45 2011 -0700"
      },
      "message": "tmpfs: fix race between umount and swapoff\n\nThe use of igrab() in swapoff\u0027s shmem_unuse_inode() is just as vulnerable\nto umount as that in shmem_writepage().\n\nFix this instance by extending the protection of shmem_swaplist_mutex\nright across shmem_unuse_inode(): while it\u0027s on the list, the inode cannot\nbe evicted (and the filesystem cannot be unmounted) without\nshmem_evict_inode() taking that mutex to remove it from the list.\n\nBut since shmem_writepage() might take that mutex, we should avoid making\nmemory allocations or memcg charges while holding it: prepare them at the\nouter level in shmem_unuse().  When mem_cgroup_cache_charge() was\noriginally placed, we didn\u0027t know until that point that the page from swap\nwas actually a shmem page; but nowadays it\u0027s noted in the swap_map, so\nwe\u0027re safe to charge upfront.  For the radix_tree, do as is done in\nshmem_getpage(): preload upfront, but don\u0027t pin to the cpu; so we make a\nhabit of refreshing the node pool, but might dip into GFP_NOWAIT reserves\non occasion if subsequently preempted.\n\nWith the allocation and charge moved out from shmem_unuse_inode(),\nwe can also hold index map and info-\u003elock over from finding the entry.\n\nSigned-off-by: Hugh Dickins \u003chughd@google.com\u003e\nCc: Konstantin Khlebnikov \u003ckhlebnikov@openvz.org\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": "b1dea800ac39599301d4bb8dcf2b1d29c2558211",
      "tree": "c5a650a0d41936dac47aa42e554e1ebc3029e926",
      "parents": [
        "21a3c9646873ae0919415d635b671d6a58758ede"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hughd@google.com",
        "time": "Wed May 11 15:13:36 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 11 18:50:45 2011 -0700"
      },
      "message": "tmpfs: fix race between umount and writepage\n\nKonstanin Khlebnikov reports that a dangerous race between umount and\nshmem_writepage can be reproduced by this script:\n\n  for i in {1..300} ; do\n\tmkdir $i\n\twhile true ; do\n\t\tmount -t tmpfs none $i\n\t\tdd if\u003d/dev/zero of\u003d$i/test bs\u003d1M count\u003d$(($RANDOM % 100))\n\t\tumount $i\n\tdone \u0026\n  done\n\non a 6xCPU node with 8Gb RAM: kernel very unstable after this accident. \u003d)\n\nKernel log:\n\n  VFS: Busy inodes after unmount of tmpfs.\n                 Self-destruct in 5 seconds.  Have a nice day...\n\n  WARNING: at lib/list_debug.c:53 __list_del_entry+0x8d/0x98()\n  list_del corruption. prev-\u003enext should be ffff880222fdaac8, but was (null)\n  Pid: 11222, comm: mount.tmpfs Not tainted 2.6.39-rc2+ #4\n  Call Trace:\n   warn_slowpath_common+0x80/0x98\n   warn_slowpath_fmt+0x41/0x43\n   __list_del_entry+0x8d/0x98\n   evict+0x50/0x113\n   iput+0x138/0x141\n  ...\n  BUG: unable to handle kernel paging request at ffffffffffffffff\n  IP: shmem_free_blocks+0x18/0x4c\n  Pid: 10422, comm: dd Tainted: G        W   2.6.39-rc2+ #4\n  Call Trace:\n   shmem_recalc_inode+0x61/0x66\n   shmem_writepage+0xba/0x1dc\n   pageout+0x13c/0x24c\n   shrink_page_list+0x28e/0x4be\n   shrink_inactive_list+0x21f/0x382\n  ...\n\nshmem_writepage() calls igrab() on the inode for the page which came from\npage reclaim, to add it later into shmem_swaplist for swapoff operation.\n\nThis igrab() can race with super-block deactivating process:\n\n  shrink_inactive_list()          deactivate_super()\n  pageout()                       tmpfs_fs_type-\u003ekill_sb()\n  shmem_writepage()               kill_litter_super()\n                                  generic_shutdown_super()\n                                   evict_inodes()\n   igrab()\n                                    atomic_read(\u0026inode-\u003ei_count)\n                                     skip-inode\n   iput()\n                                   if (!list_empty(\u0026sb-\u003es_inodes))\n                                          printk(\"VFS: Busy inodes after...\n\nThis igrap-iput pair was added in commit 1b1b32f2c6f6 \"tmpfs: fix\nshmem_swaplist races\" based on incorrect assumptions: igrab() protects the\ninode from concurrent eviction by deletion, but it does nothing to protect\nit from concurrent unmounting, which goes ahead despite the raised\ni_count.\n\nSo this use of igrab() was wrong all along, but the race made much worse\nin 2.6.37 when commit 63997e98a3be \"split invalidate_inodes()\" replaced\ntwo attempts at invalidate_inodes() by a single evict_inodes().\n\nKonstantin posted a plausible patch, raising sb-\u003es_active too: I\u0027m unsure\nwhether it was correct or not; but burnt once by igrab(), I am sure that\nwe don\u0027t want to rely more deeply upon externals here.\n\nFix it by adding the inode to shmem_swaplist earlier, while the page lock\non page in page cache still secures the inode against eviction, without\nartifically raising i_count.  It was originally added later because\nshmem_unuse_inode() is liable to remove an inode from the list while it\u0027s\nunswapped; but we can guard against that by taking spinlock before\ndropping mutex.\n\nReported-by: Konstantin Khlebnikov \u003ckhlebnikov@openvz.org\u003e\nSigned-off-by: Hugh Dickins \u003chughd@google.com\u003e\nTested-by: Konstantin Khlebnikov \u003ckhlebnikov@openvz.org\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": "21a3c9646873ae0919415d635b671d6a58758ede",
      "tree": "fa91720382d748b9d01f2dc48ed198bdfc3290cb",
      "parents": [
        "ee85c2e1454603ebb9f8d87223ac79dcdc87fa32"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "ak@linux.intel.com",
        "time": "Wed May 11 15:13:35 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 11 18:50:45 2011 -0700"
      },
      "message": "memcg: allocate memory cgroup structures in local nodes\n\nCommit dde79e005a769 (\"page_cgroup: reduce allocation overhead for\npage_cgroup array for CONFIG_SPARSEMEM\") added a regression that the\nmemory cgroup data structures all end up in node 0 because the first\nattempt at allocating them would not pass in a node hint.  Since the\ninitialization runs on CPU #0 it would all end up node 0.  This is a\nproblem on large memory systems, where node 0 would lose a lot of\nmemory.\n\nChange the alloc_pages_exact() to alloc_pages_exact_nid().  This will\nstill fall back to other nodes if not enough memory is available.\n\n [ RED-PEN: right now it would fall back first before trying\n   vmalloc_node.  Probably not the best strategy ...  But I left it like\n   that for now. ]\n\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\nReported-by: Doug Nelson\nCc: David Rientjes \u003crientjes@google.com\u003e\nReviewed-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Dave Hansen \u003cdave@linux.vnet.ibm.com\u003e\nAcked-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nAcked-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ee85c2e1454603ebb9f8d87223ac79dcdc87fa32",
      "tree": "1e5f85fcd35083116e6bc88f6e995b4351e987f1",
      "parents": [
        "71a6d0af5b031d27029fda64fbab9b9d953d2b33"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "ak@linux.intel.com",
        "time": "Wed May 11 15:13:34 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 11 18:50:45 2011 -0700"
      },
      "message": "mm: add alloc_pages_exact_nid()\n\nAdd a alloc_pages_exact_nid() that allocates on a specific node.\n\nThe naming is quite broken, but fixing that would need a larger renaming\naction.\n\n[akpm@linux-foundation.org: coding-style fixes]\n[akpm@linux-foundation.org: tweak comment]\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\nCc: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Dave Hansen \u003cdave@linux.vnet.ibm.com\u003e\nCc: David Rientjes \u003crientjes@google.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": "8f389a99b652aab5b42297280bd94d95933ad12f",
      "tree": "a61c5507962055c9e495c469f805381c18bf06dc",
      "parents": [
        "bad49d9c89d8755a1289d68e6d0127a6ee79e119"
      ],
      "author": {
        "name": "Yinghai Lu",
        "email": "yinghai@kernel.org",
        "time": "Wed May 11 15:13:32 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 11 18:50:44 2011 -0700"
      },
      "message": "mm: use alloc_bootmem_node_nopanic() on really needed path\n\nStefan found nobootmem does not work on his system that has only 8M of\nRAM.  This causes an early panic:\n\n  BIOS-provided physical RAM map:\n   BIOS-88: 0000000000000000 - 000000000009f000 (usable)\n   BIOS-88: 0000000000100000 - 0000000000840000 (usable)\n  bootconsole [earlyser0] enabled\n  Notice: NX (Execute Disable) protection missing in CPU or disabled in BIOS!\n  DMI not present or invalid.\n  last_pfn \u003d 0x840 max_arch_pfn \u003d 0x100000\n  init_memory_mapping: 0000000000000000-0000000000840000\n  8MB LOWMEM available.\n    mapped low ram: 0 - 00840000\n    low ram: 0 - 00840000\n  Zone PFN ranges:\n    DMA      0x00000001 -\u003e 0x00001000\n    Normal   empty\n  Movable zone start PFN for each node\n  early_node_map[2] active PFN ranges\n      0: 0x00000001 -\u003e 0x0000009f\n      0: 0x00000100 -\u003e 0x00000840\n  BUG: Int 6: CR2 (null)\n       EDI c034663c  ESI (null)  EBP c0329f38  ESP c0329ef4\n       EBX c0346380  EDX 00000006  ECX ffffffff  EAX fffffff4\n       err (null)  EIP c0353191   CS c0320060  flg 00010082\n  Stack: (null) c030c533 000007cd (null) c030c533 00000001 (null) (null)\n         00000003 0000083f 00000018 00000002 00000002 c0329f6c c03534d6 (null)\n         (null) 00000100 00000840 (null) c0329f64 00000001 00001000 (null)\n  Pid: 0, comm: swapper Not tainted 2.6.36 #5\n  Call Trace:\n   [\u003cc02e3707\u003e] ? 0xc02e3707\n   [\u003cc035e6e5\u003e] 0xc035e6e5\n   [\u003cc0353191\u003e] ? 0xc0353191\n   [\u003cc03534d6\u003e] 0xc03534d6\n   [\u003cc034f1cd\u003e] 0xc034f1cd\n   [\u003cc034a824\u003e] 0xc034a824\n   [\u003cc03513cb\u003e] ? 0xc03513cb\n   [\u003cc0349432\u003e] 0xc0349432\n   [\u003cc0349066\u003e] 0xc0349066\n\nIt turns out that we should ignore the low limit of 16M.\n\nUse alloc_bootmem_node_nopanic() in this case.\n\n[akpm@linux-foundation.org: less mess]\nSigned-off-by: Yinghai LU \u003cyinghai@kernel.org\u003e\nReported-by: Stefan Hellermann \u003cstefan@the2masters.de\u003e\nTested-by: Stefan Hellermann \u003cstefan@the2masters.de\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: \"H. Peter Anvin\" \u003chpa@linux.intel.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: \u003cstable@kernel.org\u003e\t\t[2.6.34+]\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bad49d9c89d8755a1289d68e6d0127a6ee79e119",
      "tree": "cae49afedfa97a2ba02dd4e7987e469a60fa2b65",
      "parents": [
        "52cd4e5c620af9e21b5298bf01844b98573505a7"
      ],
      "author": {
        "name": "Minchan Kim",
        "email": "minchan.kim@gmail.com",
        "time": "Wed May 11 15:13:30 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 11 18:50:44 2011 -0700"
      },
      "message": "mm: check PageUnevictable in lru_deactivate_fn()\n\nThe lru_deactivate_fn should not move page which in on unevictable lru\ninto inactive list.  Otherwise, we can meet BUG when we use\nisolate_lru_pages as __isolate_lru_page could return -EINVAL.\n\nReported-by: Ying Han \u003cyinghan@google.com\u003e\nTested-by: Ying Han \u003cyinghan@google.com\u003e\nSigned-off-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nReviewed-by: 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": "42c36f63ac1366ab0ecc2d5717821362c259f517",
      "tree": "1b711b7f5c1f486a07289edb43db4f99f05d6e5a",
      "parents": [
        "c191f6ccee11b79fb562c36007a5af31c705c9e2"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hughd@google.com",
        "time": "Mon May 09 17:44:42 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon May 09 17:52:17 2011 -0700"
      },
      "message": "vm: fix vm_pgoff wrap in upward expansion\n\nCommit a626ca6a6564 (\"vm: fix vm_pgoff wrap in stack expansion\") fixed\nthe case of an expanding mapping causing vm_pgoff wrapping when you had\ndownward stack expansion.  But there was another case where IA64 and\nPA-RISC expand mappings: upward expansion.\n\nThis fixes that case too.\n\nSigned-off-by: Hugh Dickins \u003chughd@google.com\u003e\nCc: stable@kernel.org\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a09a79f66874c905af35d5bb5e5f2fdc7b6b894d",
      "tree": "9cb2ae1fef7083af91a49c19411e9871e0e59a37",
      "parents": [
        "26822eebb25500fb0776c7c256a6af041e9f538b"
      ],
      "author": {
        "name": "Mikulas Patocka",
        "email": "mikulas@artax.karlin.mff.cuni.cz",
        "time": "Mon May 09 13:01:09 2011 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon May 09 16:22:07 2011 -0700"
      },
      "message": "Don\u0027t lock guardpage if the stack is growing up\n\nLinux kernel excludes guard page when performing mlock on a VMA with\ndown-growing stack. However, some architectures have up-growing stack\nand locking the guard page should be excluded in this case too.\n\nThis patch fixes lvm2 on PA-RISC (and possibly other architectures with\nup-growing stack). lvm2 calculates number of used pages when locking and\nwhen unlocking and reports an internal error if the numbers mismatch.\n\n[ Patch changed fairly extensively to also fix /proc/\u003cpid\u003e/maps for the\n  grows-up case, and to move things around a bit to clean it all up and\n  share the infrstructure with the /proc bits.\n\n  Tested on ia64 that has both grow-up and grow-down segments  - Linus ]\n\nSigned-off-by: Mikulas Patocka \u003cmikulas@artax.karlin.mff.cuni.cz\u003e\nTested-by: Tony Luck \u003ctony.luck@gmail.com\u003e\nCc: stable@kernel.org\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1759415e630e5db0dd2390df9f94892cbfb9a8a2",
      "tree": "bfae4443c70ee88c54aa9743ca19ed122af45f8f",
      "parents": [
        "8dc16c6c04b1a82d00a8464ccc08e1fe17d0ff82"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "cl@linux.com",
        "time": "Thu May 05 15:23:54 2011 -0500"
      },
      "committer": {
        "name": "Pekka Enberg",
        "email": "penberg@kernel.org",
        "time": "Sat May 07 20:25:38 2011 +0300"
      },
      "message": "slub: Remove CONFIG_CMPXCHG_LOCAL ifdeffery\n\nRemove the #ifdefs. This means that the irqsafe_cpu_cmpxchg_double() is used\neverywhere.\n\nThere may be performance implications since:\n\nA. We now have to manage a transaction ID for all arches\n\nB. The interrupt holdoff for arches not supporting CONFIG_CMPXCHG_LOCAL is reduced\nto a very short irqoff section.\n\nThere are no multiple irqoff/irqon sequences as a result of this change. Even in the fallback\ncase we only have to do one disable and enable like before.\n\nSigned-off-by: Christoph Lameter \u003ccl@linux.com\u003e\nSigned-off-by: Pekka Enberg \u003cpenberg@kernel.org\u003e\n"
    },
    {
      "commit": "a1fde08c74e90accd62d4cfdbf580d2ede938fe7",
      "tree": "bdf58078fd37484729e350acb066dc1b1fa890ee",
      "parents": [
        "5895198c56d131cc696556a45f7ff0ea99ac297b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 04 21:30:28 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 04 21:30:28 2011 -0700"
      },
      "message": "VM: skip the stack guard page lookup in get_user_pages only for mlock\n\nThe logic in __get_user_pages() used to skip the stack guard page lookup\nwhenever the caller wasn\u0027t interested in seeing what the actual page\nwas.  But Michel Lespinasse points out that there are cases where we\ndon\u0027t care about the physical page itself (so \u0027pages\u0027 may be NULL), but\ndo want to make sure a page is mapped into the virtual address space.\n\nSo using the existence of the \"pages\" array as an indication of whether\nto look up the guard page or not isn\u0027t actually so great, and we really\nshould just use the FOLL_MLOCK bit.  But because that bit was only set\nfor the VM_LOCKED case (and not all vma\u0027s necessarily have it, even for\nmlock()), we couldn\u0027t do that originally.\n\nFix that by moving the VM_LOCKED check deeper into the call-chain, which\nactually simplifies many things.  Now mlock() gets simpler, and we can\nalso check for FOLL_MLOCK in __get_user_pages() and the code ends up\nmuch more straightforward.\n\nReported-and-reviewed-by: Michel Lespinasse \u003cwalken@google.com\u003e\nCc: stable@kernel.org\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "30106b8ce2cc2243514116d6f29086e6deecc754",
      "tree": "a2fe06bb2b47a508eaa38680112066bb2eb0bb6b",
      "parents": [
        "0ee5623f9a6e52df90a78bd21179f8ab370e102e"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Wed May 04 15:38:19 2011 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 04 14:20:20 2011 -0700"
      },
      "message": "slub: Fix the lockless code on 32-bit platforms with no 64-bit cmpxchg\n\nThe SLUB allocator use of the cmpxchg_double logic was wrong: it\nactually needs the irq-safe one.\n\nThat happens automatically when we use the native unlocked \u0027cmpxchg8b\u0027\ninstruction, but when compiling the kernel for older x86 CPUs that do\nnot support that instruction, we fall back to the generic emulation\ncode.\n\nAnd if you don\u0027t specify that you want the irq-safe version, the generic\ncode ends up just open-coding the cmpxchg8b equivalent without any\nprotection against interrupts or preemption.  Which definitely doesn\u0027t\nwork for SLUB.\n\nThis was reported by Werner Landgraf \u003cw.landgraf@ru.ru\u003e, who saw\ninstability with his distro-kernel that was compiled to support pretty\nmuch everything under the sun.  Most big Linux distributions tend to\ncompile for PPro and later, and would never have noticed this problem.\n\nThis also fixes the prototypes for the irqsafe cmpxchg_double functions\nto use \u0027bool\u0027 like they should.\n\n[ Btw, that whole \"generic code defaults to no protection\" design just\n  sounds stupid - if the code needs no protection, there is no reason to\n  use \"cmpxchg_double\" to begin with.  So we should probably just remove\n  the unprotected version entirely as pointless.   - Linus ]\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nReported-and-tested-by: werner \u003cw.landgraf@ru.ru\u003e\nAcked-and-tested-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nAcked-by: Christoph Lameter \u003ccl@linux.com\u003e\nCc: Pekka Enberg \u003cpenberg@kernel.org\u003e\nCc: Jens Axboe \u003caxboe@kernel.dk\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nLink: http://lkml.kernel.org/r/alpine.LFD.2.02.1105041539050.3005@ionos\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "cc03638df20acbec5d0d0d9e07234aadde9e698d",
      "tree": "462baff7982f3b58a647fc895ec3a62402e3d0b3",
      "parents": [
        "1409f141ac719b994d2832911b1e9ec928943fc2"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mgorman@suse.de",
        "time": "Wed Apr 27 15:26:56 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 28 11:28:21 2011 -0700"
      },
      "message": "mm: check if PTE is already allocated during page fault\n\nWith transparent hugepage support, handle_mm_fault() has to be careful\nthat a normal PMD has been established before handling a PTE fault.  To\nachieve this, it used __pte_alloc() directly instead of pte_alloc_map as\npte_alloc_map is unsafe to run against a huge PMD.  pte_offset_map() is\ncalled once it is known the PMD is safe.\n\npte_alloc_map() is smart enough to check if a PTE is already present\nbefore calling __pte_alloc but this check was lost.  As a consequence,\nPTEs may be allocated unnecessarily and the page table lock taken.  Thi\nuseless PTE does get cleaned up but it\u0027s a performance hit which is\nvisible in page_test from aim9.\n\nThis patch simply re-adds the check normally done by pte_alloc_map to\ncheck if the PTE needs to be allocated before taking the page table lock.\nThe effect is noticable in page_test from aim9.\n\n  AIM9\n                  2.6.38-vanilla 2.6.38-checkptenone\n  creat-clo      446.10 ( 0.00%)   424.47 (-5.10%)\n  page_test       38.10 ( 0.00%)    42.04 ( 9.37%)\n  brk_test        52.45 ( 0.00%)    51.57 (-1.71%)\n  exec_test      382.00 ( 0.00%)   456.90 (16.39%)\n  fork_test       60.11 ( 0.00%)    67.79 (11.34%)\n  MMTests Statistics: duration\n  Total Elapsed Time (seconds)                611.90    612.22\n\n(While this affects 2.6.38, it is a performance rather than a functional\nbug and normally outside the rules -stable.  While the big performance\ndifferences are to a microbench, the difference in fork and exec\nperformance may be significant enough that -stable wants to consider the\npatch)\n\nReported-by: Raz Ben Yehuda \u003craziebe@gmail.com\u003e\nSigned-off-by: Mel Gorman \u003cmgorman@suse.de\u003e\nReviewed-by: Rik van Riel \u003criel@redhat.com\u003e\nReviewed-by: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nReviewed-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nAcked-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: \u003cstable@kernel.org\u003e\t\t[2.6.38.x]\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f755a042d82b51b54f3bdd0890e5ea56c0fb6807",
      "tree": "15c51ff44a31c4686dbc7161184ef7f306010e0c",
      "parents": [
        "0dcecae203cd407678e7257efbc9cdd0130967cf"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Wed Apr 27 15:26:50 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 28 11:28:21 2011 -0700"
      },
      "message": "oom: use pte pages in OOM score\n\nPTE pages eat up memory just like anything else, but we do not account for\nthem in any way in the OOM scores.  They are also _guaranteed_ to get\nfreed up when a process is OOM killed, while RSS is not.\n\nReported-by: Dave Hansen \u003cdave@linux.vnet.ibm.com\u003e\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: David Rientjes \u003crientjes@google.com\u003e\nCc: \u003cstable@kernel.org\u003e\t\t[2.6.36+]\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "78f11a255749d09025f54d4e2df4fbcb031530e2",
      "tree": "20f8ffaf8548d963ffb519631f5c7d7372e9ca42",
      "parents": [
        "6d4831c283530a5f2c6bd8172c13efa236eb149d"
      ],
      "author": {
        "name": "Andrea Arcangeli",
        "email": "aarcange@redhat.com",
        "time": "Wed Apr 27 15:26:45 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 28 11:28:20 2011 -0700"
      },
      "message": "mm: thp: fix /dev/zero MAP_PRIVATE and vm_flags cleanups\n\nThe huge_memory.c THP page fault was allowed to run if vm_ops was null\n(which would succeed for /dev/zero MAP_PRIVATE, as the f_op-\u003emmap wouldn\u0027t\nsetup a special vma-\u003evm_ops and it would fallback to regular anonymous\nmemory) but other THP logics weren\u0027t fully activated for vmas with vm_file\nnot NULL (/dev/zero has a not NULL vma-\u003evm_file).\n\nSo this removes the vm_file checks so that /dev/zero also can safely use\nTHP (the other albeit safer approach to fix this bug would have been to\nprevent the THP initial page fault to run if vm_file was set).\n\nAfter removing the vm_file checks, this also makes huge_memory.c stricter\nin khugepaged for the DEBUG_VM\u003dy case.  It doesn\u0027t replace the vm_file\ncheck with a is_pfn_mapping check (but it keeps checking for VM_PFNMAP\nunder VM_BUG_ON) because for a is_cow_mapping() mapping VM_PFNMAP should\nonly be allowed to exist before the first page fault, and in turn when\nvma-\u003eanon_vma is null (so preventing khugepaged registration).  So I tend\nto think the previous comment saying if vm_file was set, VM_PFNMAP might\nhave been set and we could still be registered in khugepaged (despite\nanon_vma was not NULL to be registered in khugepaged) was too paranoid.\nThe is_linear_pfn_mapping check is also I think superfluous (as described\nby comment) but under DEBUG_VM it is safe to stay.\n\nAddresses https://bugzilla.kernel.org/show_bug.cgi?id\u003d33682\n\nSigned-off-by: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nReported-by: Caspar Zhang \u003cbugs@casparzhang.com\u003e\nAcked-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nCc: \u003cstable@kernel.org\u003e\t\t[2.6.38.x]\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    }
  ],
  "next": "07f9479a40cc778bc1462ada11f95b01360ae4ff"
}
