)]}'
{
  "log": [
    {
      "commit": "9144f3821d2cba9f16cdf3ff1b881384f4b68b53",
      "tree": "f5835554ac585c56e76e6fd66b49d9ca81bcf19c",
      "parents": [
        "6572a281cfd805dd54718597d6c33261b5be052b",
        "6597cb84c86cefe4e174533b79e17b86f634b5e0"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Nov 06 15:56:29 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Nov 06 15:56:29 2008 -0800"
      },
      "message": "Merge master.kernel.org:/home/rmk/linux-2.6-arm\n\n* master.kernel.org:/home/rmk/linux-2.6-arm:\n  [ARM] xsc3: fix xsc3_l2_inv_range\n  [ARM] mm: fix page table initialization\n  [ARM] fix naming of MODULE_START / MODULE_END\n  ARM: OMAP: Fix define for twl4030 irqs\n  ARM: OMAP: Fix get_irqnr_and_base to clear spurious interrupt bits\n  ARM: OMAP: Fix debugfs_create_*\u0027s error checking method for arm/plat-omap\n  ARM: OMAP: Fix compiler warnings in gpmc.c\n  [ARM] fix VFP+softfloat binaries\n"
    },
    {
      "commit": "a70dcb969f64e2fa98c24f47854f20bf02ff0092",
      "tree": "2224e321ba5d5455fd36ec2cf14f11ff97aa8931",
      "parents": [
        "c87591b719737b4e91eb1a9fa8fd55a4ff1886d6"
      ],
      "author": {
        "name": "Gerald Schaefer",
        "email": "gerald.schaefer@de.ibm.com",
        "time": "Thu Nov 06 12:53:36 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Nov 06 15:41:19 2008 -0800"
      },
      "message": "memory hotplug: fix page_zone() calculation in test_pages_isolated()\n\nMy last bugfix here (adding zone-\u003elock) introduced a new problem: Using\npage_zone(pfn_to_page(pfn)) to get the zone after the for() loop is wrong.\n pfn will then be \u003e\u003d end_pfn, which may be in a different zone or not\npresent at all.  This may lead to an addressing exception in page_zone()\nor spin_lock_irqsave().\n\nNow I use __first_valid_page() again after the loop to find a valid page\nfor page_zone().\n\nSigned-off-by: Gerald Schaefer \u003cgerald.schaefer@de.ibm.com\u003e\nAcked-by: Nathan Fontenot \u003cnfont@austin.ibm.com\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": "fbdd12676c83df77480f00ebd32fc98fbe3bf836",
      "tree": "cba7d12d8fdacec6139a567a1a3e2a07c5af683c",
      "parents": [
        "fd96feb2583688ad13d8467ded442f9c8d73cc4b"
      ],
      "author": {
        "name": "Qinghuang Feng",
        "email": "qhfeng.kernel@gmail.com",
        "time": "Thu Nov 06 12:53:34 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Nov 06 15:41:19 2008 -0800"
      },
      "message": "mm/oom_kill.c: fix badness() kerneldoc\n\nParamter @mem has been removed since v2.6.26, now delete it\u0027s comment.\n\nSigned-off-by: Qinghuang Feng \u003cqhfeng.kernel@gmail.com\u003e\nAcked-by: 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": "b41ad14c30acf023d09ac064096a4cf41248ce46",
      "tree": "30609ac0611f9172cecf846a5b67a65f973adf78",
      "parents": [
        "0aedadf91a70a11c4a3e7c7d99b21e5528af8d5d"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Thu Nov 06 12:53:31 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Nov 06 15:41:19 2008 -0800"
      },
      "message": "vmemmap: warn about page_structs with remote distance\n\nIt\u0027s insufficient to simply compare node ids when warning about offnode\npage_structs since it\u0027s possible to still have local affinity.\n\nAcked-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0aedadf91a70a11c4a3e7c7d99b21e5528af8d5d",
      "tree": "9e2529fa79ff4134f99772b5ed3693316e2221a5",
      "parents": [
        "17a1217e12d8c8434f8a3deef7bf980c724a6ac7"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "cl@linux-foundation.org",
        "time": "Thu Nov 06 12:53:30 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Nov 06 15:41:18 2008 -0800"
      },
      "message": "mm: move migrate_prep out from under mmap_sem\n\nMove the migrate_prep outside the mmap_sem for the following system calls\n\n1. sys_move_pages\n2. sys_migrate_pages\n3. sys_mbind()\n\nIt really does not matter when we flush the lru.  The system is free to\nadd pages onto the lru even during migration which will make the page\nmigration either skip the page (mbind, migrate_pages) or return a busy\nstate (move_pages).\n\nFixes this lockdep warning (and potential deadlock):\n\nSome VM place has\n      mmap_sem -\u003e kevent_wq via lru_add_drain_all()\n\nnet/core/dev.c::dev_ioctl()  has\n     rtnl_lock  -\u003e  mmap_sem        (*) the ioctl has copy_from_user() and it can do page fault.\n\nlinkwatch_event has\n     kevent_wq -\u003e rtnl_lock\n\nSigned-off-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nReported-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b4416d2bea007f07f2e74cdc4cb64042ec996c83",
      "tree": "a7b8250e3ab4f9de7c55a5b502238767aff90665",
      "parents": [
        "953a64798d82ee5467da2bdc0e467ef874fbc208"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Thu Nov 06 12:53:29 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Nov 06 15:41:18 2008 -0800"
      },
      "message": "oom: do not dump task state for non thread group leaders\n\nWhen /proc/sys/vm/oom_dump_tasks is enabled, it\u0027s only necessary to dump\ntask state information for thread group leaders.  The kernel log gets\nquickly overwhelmed on machines with a massive number of threads by\ndumping non-thread group leaders.\n\nReviewed-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "18229df5b613ed0732a766fc37850de2e7988e43",
      "tree": "ab235f27a5a9d93b8f94773252a1d8f660b9fad1",
      "parents": [
        "69d177c2fc702d402b17fdca2190d5a7e3ca55c5"
      ],
      "author": {
        "name": "Andy Whitcroft",
        "email": "apw@shadowen.org",
        "time": "Thu Nov 06 12:53:27 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Nov 06 15:41:18 2008 -0800"
      },
      "message": "hugetlb: pull gigantic page initialisation out of the default path\n\nAs we can determine exactly when a gigantic page is in use we can optimise\nthe common regular page cases by pulling out gigantic page initialisation\ninto its own function.  As gigantic pages are never released to buddy we\ndo not need a destructor.  This effectivly reverts the previous change to\nthe main buddy allocator.  It also adds a paranoid check to ensure we\nnever release gigantic pages from hugetlbfs to the main buddy.\n\nSigned-off-by: Andy Whitcroft \u003capw@shadowen.org\u003e\nCc: Jon Tollefson \u003ckniht@linux.vnet.ibm.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: \u003cstable@kernel.org\u003e\t\t[2.6.27.x]\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "69d177c2fc702d402b17fdca2190d5a7e3ca55c5",
      "tree": "2040e0a84b7c07c29ac6fb6e51e125de52256f5d",
      "parents": [
        "22bece00dc1f28dd3374c55e464c9f02eb642876"
      ],
      "author": {
        "name": "Andy Whitcroft",
        "email": "apw@shadowen.org",
        "time": "Thu Nov 06 12:53:26 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Nov 06 15:41:18 2008 -0800"
      },
      "message": "hugetlbfs: handle pages higher order than MAX_ORDER\n\nWhen working with hugepages, hugetlbfs assumes that those hugepages are\nsmaller than MAX_ORDER.  Specifically it assumes that the mem_map is\ncontigious and uses that to optimise access to the elements of the mem_map\nthat represent the hugepage.  Gigantic pages (such as 16GB pages on\npowerpc) by definition are of greater order than MAX_ORDER (larger than\nMAX_ORDER_NR_PAGES in size).  This means that we can no longer make use of\nthe buddy alloctor guarentees for the contiguity of the mem_map, which\nensures that the mem_map is at least contigious for maximmally aligned\nareas of MAX_ORDER_NR_PAGES pages.\n\nThis patch adds new mem_map accessors and iterator helpers which handle\nany discontiguity at MAX_ORDER_NR_PAGES boundaries.  It then uses these to\nimplement gigantic page versions of copy_huge_page and clear_huge_page,\nand to allow follow_hugetlb_page handle gigantic pages.\n\nSigned-off-by: Andy Whitcroft \u003capw@shadowen.org\u003e\nCc: Jon Tollefson \u003ckniht@linux.vnet.ibm.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: \u003cstable@kernel.org\u003e\t\t[2.6.27.x]\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ab4f2ee130d5ffcf35616e1f5c6ab75af5b463b6",
      "tree": "7532eb50e674402f8f658094acb71b8dfb1117bf",
      "parents": [
        "d2ed5cb80a241518dd71f467c884bfabbe15f68c"
      ],
      "author": {
        "name": "Russell King",
        "email": "rmk@dyn-67.arm.linux.org.uk",
        "time": "Thu Nov 06 17:11:07 2008 +0000"
      },
      "committer": {
        "name": "Russell King",
        "email": "rmk+kernel@arm.linux.org.uk",
        "time": "Thu Nov 06 17:13:47 2008 +0000"
      },
      "message": "[ARM] fix naming of MODULE_START / MODULE_END\n\nAs of 73bdf0a60e607f4b8ecc5aec597105976565a84f, the kernel needs\nto know where modules are located in the virtual address space.\nOn ARM, we located this region between MODULE_START and MODULE_END.\nUnfortunately, everyone else calls it MODULES_VADDR and MODULES_END.\nUpdate ARM to use the same naming, so is_vmalloc_or_module_addr()\ncan work properly.  Also update the comment on mm/vmalloc.c to\nreflect that ARM also places modules in a separate region from the\nvmalloc space.\n\nSigned-off-by: Russell King \u003crmk+kernel@arm.linux.org.uk\u003e\n"
    },
    {
      "commit": "731572d39fcd3498702eda4600db4c43d51e0b26",
      "tree": "f892907ae20539845f353d72d2a2bf202b67e007",
      "parents": [
        "6c89161b10f5771ee0b51ada0fce0e8835e72ade"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@redhat.com",
        "time": "Wed Oct 29 14:01:20 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 30 11:38:47 2008 -0700"
      },
      "message": "nfsd: fix vm overcommit crash\n\nJunjiro R.  Okajima reported a problem where knfsd crashes if you are\nusing it to export shmemfs objects and run strict overcommit.  In this\nsituation the current-\u003emm based modifier to the overcommit goes through a\nNULL pointer.\n\nWe could simply check for NULL and skip the modifier but we\u0027ve caught\nother real bugs in the past from mm being NULL here - cases where we did\nneed a valid mm set up (eg the exec bug about a year ago).\n\nTo preserve the checks and get the logic we want shuffle the checking\naround and add a new helper to the vm_ security wrappers\n\nAlso fix a current-\u003emm reference in nommu that should use the passed mm\n\n[akpm@linux-foundation.org: coding-style fixes]\n[akpm@linux-foundation.org: fix build]\nReported-by: Junjiro R. Okajima \u003chooanon05@yahoo.co.jp\u003e\nAcked-by: James Morris \u003cjmorris@namei.org\u003e\nSigned-off-by: Alan Cox \u003calan@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": "e99c97ade53fb6f5e665f2960eb86c624a532d7b",
      "tree": "45ffef1f849bae8cd469e7b228191c23bd7d4dcc",
      "parents": [
        "b77b0ef207624c9d9f8064ccbfd6da169780df44"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Wed Oct 29 14:01:09 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 30 11:38:46 2008 -0700"
      },
      "message": "mm: fix kernel-doc function notation\n\nDelete excess kernel-doc notation in mm/ subdirectory.\nActually this is a kernel-doc notation fix.\n\nWarning(/var/linsrc/linux-2.6.27-git10//mm/vmalloc.c:902): Excess function parameter or struct member \u0027returns\u0027 description in \u0027vm_map_ram\u0027\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4e02ed4b4a2fae34aae766a5bb93ae235f60adb8",
      "tree": "bddfb61b7cc4a4007ae176ccb1ace5740b61da8d",
      "parents": [
        "9b913735e53ab0da4a792bac0de8e178cc13dcfb"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Wed Oct 29 14:00:55 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 30 11:38:45 2008 -0700"
      },
      "message": "fs: remove prepare_write/commit_write\n\nNothing uses prepare_write or commit_write. Remove them from the tree\ncompletely.\n\n[akpm@linux-foundation.org: schedule simple_prepare_write() for unexporting]\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "88ed86fee6651033de9b7038dac7869a9f19775a",
      "tree": "38b638d2e7cba110ec271275738f221feb7e0a37",
      "parents": [
        "3856d30ded1fe43c6657927ebad402d25cd128f4",
        "59c7572e82d69483a66eaa67b46548baeb69ecf4"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 23 12:04:37 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 23 12:04:37 2008 -0700"
      },
      "message": "Merge branch \u0027proc\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/adobriyan/proc\n\n* \u0027proc\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/adobriyan/proc: (35 commits)\n  proc: remove fs/proc/proc_misc.c\n  proc: move /proc/vmcore creation to fs/proc/vmcore.c\n  proc: move pagecount stuff to fs/proc/page.c\n  proc: move all /proc/kcore stuff to fs/proc/kcore.c\n  proc: move /proc/schedstat boilerplate to kernel/sched_stats.h\n  proc: move /proc/modules boilerplate to kernel/module.c\n  proc: move /proc/diskstats boilerplate to block/genhd.c\n  proc: move /proc/zoneinfo boilerplate to mm/vmstat.c\n  proc: move /proc/vmstat boilerplate to mm/vmstat.c\n  proc: move /proc/pagetypeinfo boilerplate to mm/vmstat.c\n  proc: move /proc/buddyinfo boilerplate to mm/vmstat.c\n  proc: move /proc/vmallocinfo to mm/vmalloc.c\n  proc: move /proc/slabinfo boilerplate to mm/slub.c, mm/slab.c\n  proc: move /proc/slab_allocators boilerplate to mm/slab.c\n  proc: move /proc/interrupts boilerplate code to fs/proc/interrupts.c\n  proc: move /proc/stat to fs/proc/stat.c\n  proc: move rest of /proc/partitions code to block/genhd.c\n  proc: move /proc/cpuinfo code to fs/proc/cpuinfo.c\n  proc: move /proc/devices code to fs/proc/devices.c\n  proc: move rest of /proc/locks to fs/locks.c\n  ...\n"
    },
    {
      "commit": "94b6da5ab8293b04a300ba35c72eddfa94db8b02",
      "tree": "8ca1c8abb7934ab51657fffeb26a5f5aabd34743",
      "parents": [
        "be07c4ed4043ab8c26f222348136141335e47a2f"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Wed Oct 22 14:15:05 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 23 08:55:02 2008 -0700"
      },
      "message": "memcg: fix page_cgroup allocation\n\npage_cgroup_init() is called from mem_cgroup_init(). But at this\npoint, we cannot call alloc_bootmem().\n(and this caused panic at boot.)\n\nThis patch moves page_cgroup_init() to init/main.c.\n\nTime table is following:\n\u003d\u003d\n  parse_args(). # we can trust mem_cgroup_subsys.disabled bit after this.\n  ....\n  cgroup_init_early()  # \"early\" init of cgroup.\n  ....\n  setup_arch()         # memmap is allocated.\n  ...\n  page_cgroup_init();\n  mem_init();   # we cannot call alloc_bootmem after this.\n  ....\n  cgroup_init() # mem_cgroup is initialized.\n\u003d\u003d\n\nBefore page_cgroup_init(), mem_map must be initialized. So,\nI added page_cgroup_init() to init/main.c directly.\n\n(*) maybe this is not very clean but\n    - cgroup_init_early() is too early\n    - in cgroup_init(), we have to use vmalloc instead of alloc_bootmem().\n    use of vmalloc area in x86-32 is important and we should avoid very large\n    vmalloc() in x86-32. So, we want to use alloc_bootmem() and added page_cgroup_init()\n    directly to init/main.c\n\n[akpm@linux-foundation.org: remove unneeded/bad mem_cgroup_subsys declaration]\n[akpm@linux-foundation.org: fix build]\nAcked-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nTested-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nSigned-off-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": "4c8210427bd1b7efa1dabf93f4d2312f29908d8f",
      "tree": "23f4c918e7e2135b565d14fca463bf0906e6e880",
      "parents": [
        "9bf9b2f3ad6362cdc9ef79291d440a92960b8f51"
      ],
      "author": {
        "name": "Paul Mundt",
        "email": "lethal@linux-sh.org",
        "time": "Wed Oct 22 14:14:58 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 23 08:55:01 2008 -0700"
      },
      "message": "mm: page_cgroup needs linux/vmalloc.h for vmalloc_node()/vfree().\n\nmm/page_cgroup.c: In function \u0027init_section_page_cgroup\u0027:\nmm/page_cgroup.c:111: error: implicit declaration of function \u0027vmalloc_node\u0027\nmm/page_cgroup.c:111: warning: assignment makes pointer from integer without a cast\nmm/page_cgroup.c: In function \u0027__free_page_cgroup\u0027:\nmm/page_cgroup.c:140: error: implicit declaration of function \u0027vfree\u0027\n\nSigned-off-by: Paul Mundt \u003clethal@linux-sh.org\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Heiko Carstens \u003cheiko.carstens@de.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": "5c9fe6281b75832e8d2555ec8700ea763d9a865e",
      "tree": "a8ef6a23598322e1f93ba5e7ed8d24981f73ac8b",
      "parents": [
        "b6aa44ab698c7df9d951d3eb45c4fcb8ba68fb25"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Mon Oct 06 04:19:42 2008 +0400"
      },
      "committer": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Thu Oct 23 17:35:04 2008 +0400"
      },
      "message": "proc: move /proc/zoneinfo boilerplate to mm/vmstat.c\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nAcked-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b6aa44ab698c7df9d951d3eb45c4fcb8ba68fb25",
      "tree": "3ddf82053cc10e4811e77918fb00aad1c09c94c1",
      "parents": [
        "74e2e8e8ce7b3c0f878a349f9fa6cf2831548eef"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Mon Oct 06 04:17:48 2008 +0400"
      },
      "committer": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Thu Oct 23 17:12:51 2008 +0400"
      },
      "message": "proc: move /proc/vmstat boilerplate to mm/vmstat.c\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nAcked-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\n"
    },
    {
      "commit": "74e2e8e8ce7b3c0f878a349f9fa6cf2831548eef",
      "tree": "1de0e09b982c8c152f93b74842587e4c56df5484",
      "parents": [
        "8f32f7e5ac2ed11b0659b6b55af926f3d58ffd9d"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Mon Oct 06 04:15:36 2008 +0400"
      },
      "committer": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Thu Oct 23 16:33:29 2008 +0400"
      },
      "message": "proc: move /proc/pagetypeinfo boilerplate to mm/vmstat.c\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\n"
    },
    {
      "commit": "8f32f7e5ac2ed11b0659b6b55af926f3d58ffd9d",
      "tree": "fa577deb5c664169ba3f7715006657fb7834ac32",
      "parents": [
        "5f6a6a9c4e4d790aae55cb412a7643329057c5e0"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Mon Oct 06 04:13:52 2008 +0400"
      },
      "committer": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Thu Oct 23 16:12:04 2008 +0400"
      },
      "message": "proc: move /proc/buddyinfo boilerplate to mm/vmstat.c\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\n"
    },
    {
      "commit": "5f6a6a9c4e4d790aae55cb412a7643329057c5e0",
      "tree": "06b984b29e2e100874a4627ba6e22eb3e96a2640",
      "parents": [
        "7b3c3a50a3e0ea46815150d420fa276ac254572b"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Mon Oct 06 03:50:47 2008 +0400"
      },
      "committer": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Thu Oct 23 15:48:28 2008 +0400"
      },
      "message": "proc: move /proc/vmallocinfo to mm/vmalloc.c\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nAcked-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7b3c3a50a3e0ea46815150d420fa276ac254572b",
      "tree": "a49118d99ae5bac99b660d8a44c20df2b15a7037",
      "parents": [
        "a0ec95a8e69792e4ad642daac037c9b01ea3e2cd"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Mon Oct 06 02:42:17 2008 +0400"
      },
      "committer": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Thu Oct 23 15:20:06 2008 +0400"
      },
      "message": "proc: move /proc/slabinfo boilerplate to mm/slub.c, mm/slab.c\n\nLose dummy -\u003ewrite hook in case of SLUB, it\u0027s possible now.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nAcked-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\n"
    },
    {
      "commit": "a0ec95a8e69792e4ad642daac037c9b01ea3e2cd",
      "tree": "ec8f483871151c152c198b605ab7ebd6046271b8",
      "parents": [
        "d6917e19f3fda8e1f88bc23ddceed952927bd716"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Mon Oct 06 00:59:10 2008 +0400"
      },
      "committer": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Thu Oct 23 15:17:27 2008 +0400"
      },
      "message": "proc: move /proc/slab_allocators boilerplate to mm/slab.c\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nAcked-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\n"
    },
    {
      "commit": "e1759c215bee5abbcb6cb066590ab20905154ed5",
      "tree": "14a43e259767082706dab112292ff92e13ce42a4",
      "parents": [
        "9617760287eec9091d26e6967bd3e4194de18f97"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Wed Oct 15 23:50:22 2008 +0400"
      },
      "committer": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Thu Oct 23 13:52:40 2008 +0400"
      },
      "message": "proc: switch /proc/meminfo to seq_file\n\nand move it to fs/proc/meminfo.c while I\u0027m at it.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\n"
    },
    {
      "commit": "a50c22eed593f474e75f693381e4d42e81762de8",
      "tree": "1190f39419d8068a6b735c0d9761ef80f1a12543",
      "parents": [
        "e798ba57e9f423dddbf1bdeb20a62bdd0593890f"
      ],
      "author": {
        "name": "Huang Weiyi",
        "email": "weiyi.huang@gmail.com",
        "time": "Tue Oct 21 06:43:33 2008 +0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 20 16:17:42 2008 -0700"
      },
      "message": "mm: remove duplicated #include\u0027s\n\nRemoved duplicated #include \u003clinux/vmalloc.h\u003e in mm/vmalloc.c and\n\"internal.h\" in mm/memory.c.\n\nSigned-off-by: Huang Weiyi \u003cweiyi.huang@gmail.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e798ba57e9f423dddbf1bdeb20a62bdd0593890f",
      "tree": "a6f427f3e4e86e8a45681792a16e227fd47f7029",
      "parents": [
        "653c03168348ac7aebb969931f87ba281749d7dd"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Tue Oct 21 00:04:04 2008 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 20 16:17:42 2008 -0700"
      },
      "message": "Export tiny shmem_file_setup for DRM-GEM\n\nWe\u0027re trying to keep the !CONFIG_SHMEM tiny-shmem.c (using ramfs without\nswap) in synch with CONFIG_SHMEM shmem.c (and mpm is preparing patches\nto combine them).  I was glad to see EXPORT_SYMBOL_GPL(shmem_file_setup)\ngo into shmem.c, but why not support DRM-GEM when !CONFIG_SHMEM too?\nBut caution says still depend on MMU, since !CONFIG_MMU is.. different.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nAcked-by: Matt Mackall \u003cmpm@selenic.com\u003e\nAcked-by: Dave Airlie \u003cairlied@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b9d7ccf56be1ac77b71a284a1c0e6337f9a7aff0",
      "tree": "6440e1c679e097d0ea23bf879cd30983c5838419",
      "parents": [
        "9301975ec251bab1ad7cfcb84a688b26187e4e4a",
        "3038edabf48f01421c621cb77a712b446d3a5d67"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 20 13:27:05 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 20 13:27:05 2008 -0700"
      },
      "message": "Merge branch \u0027x86-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027x86-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  x86 ACPI: fix breakage of resume on 64-bit UP systems with SMP kernel\n  Introduce is_vmalloc_or_module_addr() and use with DEBUG_VIRTUAL\n"
    },
    {
      "commit": "fdd2e5f88a259a537bb239e0c03c973cb6ea402a",
      "tree": "e97192ba1a7b7f341c8d3debc3fe7639b2eaa284",
      "parents": [
        "1a651a00e20fd4997f0b91258f6f95b7d96edcd9"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@kernel.org",
        "time": "Sat Oct 18 20:28:38 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 20 08:52:40 2008 -0700"
      },
      "message": "make mm/rmap.c:anon_vma_cachep static\n\nThis patch makes the needlessly global anon_vma_cachep static.\n\nSigned-off-by: Adrian Bunk \u003cbunk@kernel.org\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nAcked-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "52d4b9ac0b985168009c2a57098324e67bae171f",
      "tree": "b3e3b854166930af893be90ea30a7ab0d65c59e7",
      "parents": [
        "c05555b572921c464d064d9267f7f7bc06d424fa"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Sat Oct 18 20:28:16 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 20 08:52:39 2008 -0700"
      },
      "message": "memcg: allocate all page_cgroup at boot\n\nAllocate all page_cgroup at boot and remove page_cgroup poitner from\nstruct page.  This patch adds an interface as\n\n struct page_cgroup *lookup_page_cgroup(struct page*)\n\nAll FLATMEM/DISCONTIGMEM/SPARSEMEM  and MEMORY_HOTPLUG is supported.\n\nRemove page_cgroup pointer reduces the amount of memory by\n - 4 bytes per PAGE_SIZE.\n - 8 bytes per PAGE_SIZE\nif memory controller is disabled. (even if configured.)\n\nOn usual 8GB x86-32 server, this saves 8MB of NORMAL_ZONE memory.\nOn my x86-64 server with 48GB of memory, this saves 96MB of memory.\nI think this reduction makes sense.\n\nBy pre-allocation, kmalloc/kfree in charge/uncharge are removed.\nThis means\n  - we\u0027re not necessary to be afraid of kmalloc faiulre.\n    (this can happen because of gfp_mask type.)\n  - we can avoid calling kmalloc/kfree.\n  - we can avoid allocating tons of small objects which can be fragmented.\n  - we can know what amount of memory will be used for this extra-lru handling.\n\nI added printk message as\n\n\t\"allocated %ld bytes of page_cgroup\"\n        \"please try cgroup_disable\u003dmemory option if you don\u0027t want\"\n\nmaybe enough informative for users.\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nReviewed-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c05555b572921c464d064d9267f7f7bc06d424fa",
      "tree": "48d4dbc315eeb4c851c6c484ef75bc816360d510",
      "parents": [
        "addb9efebb2ee2202d324e75b593b39868528f68"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Sat Oct 18 20:28:11 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 20 08:52:39 2008 -0700"
      },
      "message": "memcg: atomic ops for page_cgroup-\u003eflags\n\nThis patch makes page_cgroup-\u003eflags to be atomic_ops and define functions\n(and macros) to access it.\n\nBefore trying to modify memory resource controller, this atomic operation\non flags is necessary.  Most of flags in this patch is for LRU and modfied\nunder mz-\u003elru_lock but we\u0027ll add another flags which is not for LRU soon.\nFor example, we\u0027ll place LOCK bit on flags field.  We need atomic\noperation to modify LRU bit without LOCK.\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nAcked-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "addb9efebb2ee2202d324e75b593b39868528f68",
      "tree": "0d0a6b3c4ce3e3b668adab9f463957e506e9b733",
      "parents": [
        "5b4e655e948d8b6e9b0d001616d4c9d7e7ffe924"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Sat Oct 18 20:28:10 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 20 08:52:39 2008 -0700"
      },
      "message": "memcg: optimize per-cpu statistics\n\nSome obvious optimization to memcg.\n\nI found mem_cgroup_charge_statistics() is a little big (in object) and\ndoes unnecessary address calclation.  This patch is for optimization to\nreduce the size of this function.\n\nAnd res_counter_charge() is \u0027likely\u0027 to succeed.\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nAcked-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5b4e655e948d8b6e9b0d001616d4c9d7e7ffe924",
      "tree": "2822f944d1bdbc8414a65cd94b982c51b5032b50",
      "parents": [
        "b7abea9630bc8ffc663a751e46680db25c4cdf8d"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Sat Oct 18 20:28:10 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 20 08:52:38 2008 -0700"
      },
      "message": "memcg: avoid accounting special pages\n\nThere are not-on-LRU pages which can be mapped and they are not worth to\nbe accounted.  (becasue we can\u0027t shrink them and need dirty codes to\nhandle specical case) We\u0027d like to make use of usual objrmap/radix-tree\u0027s\nprotcol and don\u0027t want to account out-of-vm\u0027s control pages.\n\nWhen special_mapping_fault() is called, page-\u003emapping is tend to be NULL\nand it\u0027s charged as Anonymous page.  insert_page() also handles some\nspecial pages from drivers.\n\nThis patch is for avoiding to account special pages.\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nCc: Balbir Singh \u003cbalbir@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": "b7abea9630bc8ffc663a751e46680db25c4cdf8d",
      "tree": "b37d5ba073ccea31328812c74598872d49a85735",
      "parents": [
        "073e587ec2cc377867e53d8b8959738a8e16cff6"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Sat Oct 18 20:28:09 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 20 08:52:38 2008 -0700"
      },
      "message": "memcg: make page-\u003emapping NULL before uncharge\n\nThis patch tries to make page-\u003emapping to be NULL before\nmem_cgroup_uncharge_cache_page() is called.\n\n\"page-\u003emapping \u003d\u003d NULL\" is a good check for \"whether the page is still\nradix-tree or not\".  This patch also adds BUG_ON() to\nmem_cgroup_uncharge_cache_page();\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nReviewed-by: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nCc: Balbir Singh \u003cbalbir@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": "073e587ec2cc377867e53d8b8959738a8e16cff6",
      "tree": "856aac72b818de4f52ce38448b852930554b3efa",
      "parents": [
        "47c59803becb55b72b26cdab3838d621a15badc8"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Sat Oct 18 20:28:08 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 20 08:52:38 2008 -0700"
      },
      "message": "memcg: move charge swapin under lock\n\nWhile page-cache\u0027s charge/uncharge is done under page_lock(), swap-cache\nisn\u0027t.  (anonymous page is charged when it\u0027s newly allocated.)\n\nThis patch moves do_swap_page()\u0027s charge() call under lock.  I don\u0027t see\nany bad problem *now* but this fix will be good for future for avoiding\nunnecessary racy state.\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nReviewed-by: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nAcked-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5e9a0f023bee02bfb94e08590d998660c01f5a49",
      "tree": "3cd2131f12a09cc9c84c31f99375256148e400fd",
      "parents": [
        "2f007e74bb85b9fc4eab28524052161703300f1a"
      ],
      "author": {
        "name": "Brice Goglin",
        "email": "Brice.Goglin@inria.fr",
        "time": "Sat Oct 18 20:27:17 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 20 08:52:33 2008 -0700"
      },
      "message": "mm: extract do_pages_move() out of sys_move_pages()\n\nTo prepare the chunking, move the sys_move_pages() code that is used when\nnodes!\u003dNULL into do_pages_move().  And rename do_move_pages() into\ndo_move_page_to_node_array().\n\nSigned-off-by: Brice Goglin \u003cBrice.Goglin@inria.fr\u003e\nAcked-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2f007e74bb85b9fc4eab28524052161703300f1a",
      "tree": "8fa77e687aa5fd807767484bdafcce86e46a56af",
      "parents": [
        "e78bbfa8262424417a29349a8064a535053912b9"
      ],
      "author": {
        "name": "Brice Goglin",
        "email": "Brice.Goglin@inria.fr",
        "time": "Sat Oct 18 20:27:16 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 20 08:52:33 2008 -0700"
      },
      "message": "mm: don\u0027t vmalloc a huge page_to_node array for do_pages_stat()\n\ndo_pages_stat() does not need any page_to_node entry for real.  Just pass\nthe pointers to the user-space page address array and to the user-space\nstatus array, and have do_pages_stat() traverse the former and fill the\nlatter directly.\n\nSigned-off-by: Brice Goglin \u003cBrice.Goglin@inria.fr\u003e\nAcked-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e78bbfa8262424417a29349a8064a535053912b9",
      "tree": "dc1f1cdd4390b3f817a2d3a2835c11eb3b41b3ea",
      "parents": [
        "de7f0cba96786cf9ec9da4532c1b25f733da9b6f"
      ],
      "author": {
        "name": "Brice Goglin",
        "email": "Brice.Goglin@inria.fr",
        "time": "Sat Oct 18 20:27:15 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 20 08:52:33 2008 -0700"
      },
      "message": "mm: stop returning -ENOENT from sys_move_pages() if nothing got migrated\n\nA patchset reworking sys_move_pages().  It removes the possibly large\nvmalloc by using multiple chunks when migrating large buffers.  It also\ndramatically increases the throughput for large buffers since the lookup\nin new_page_node() is now limited to a single chunk, causing the quadratic\ncomplexity to have a much slower impact.  There is no need to use any\nradix-tree-like structure to improve this lookup.\n\nsys_move_pages() duration on a 4-quadcore-opteron 2347HE (1.9Gz),\nmigrating between nodes #2 and #3:\n\n\tlength\t\tmove_pages (us)\t\tmove_pages+patch (us)\n\t4kB\t\t126\t\t\t98\n\t40kB\t\t198\t\t\t168\n\t400kB\t\t963\t\t\t937\n\t4MB\t\t12503\t\t\t11930\n\t40MB\t\t246867\t\t\t11848\n\nPatches #1 and #4 are the important ones:\n1) stop returning -ENOENT from sys_move_pages() if nothing got migrated\n2) don\u0027t vmalloc a huge page_to_node array for do_pages_stat()\n3) extract do_pages_move() out of sys_move_pages()\n4) rework do_pages_move() to work on page_sized chunks\n5) move_pages: no need to set pp-\u003epage to ZERO_PAGE(0) by default\n\nThis patch:\n\nThere is no point in returning -ENOENT from sys_move_pages() if all pages\nwere already on the right node, while we return 0 if only 1 page was not.\nMost application don\u0027t know where their pages are allocated, so it\u0027s not\nan error to try to migrate them anyway.\n\nJust return 0 and let the status array in user-space be checked if the\napplication needs details.\n\nIt will make the upcoming chunked-move_pages() support much easier.\n\nSigned-off-by: Brice Goglin \u003cBrice.Goglin@inria.fr\u003e\nAcked-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "de7f0cba96786cf9ec9da4532c1b25f733da9b6f",
      "tree": "fc0273587d255ac3f1b554b4a98229c3e231ebf6",
      "parents": [
        "7a6560e02556b6f0a798c247f3a557c523d9701b"
      ],
      "author": {
        "name": "Nathan Fontenot",
        "email": "nfont@austin.ibm.com",
        "time": "Sat Oct 18 20:27:14 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 20 08:52:32 2008 -0700"
      },
      "message": "memory hotplug: release memory regions in PAGES_PER_SECTION chunks\n\nDuring hotplug memory remove, memory regions should be released on a\nPAGES_PER_SECTION size chunks.  This mirrors the code in add_memory where\nresources are requested on a PAGES_PER_SECTION size.\n\nAttempting to release the entire memory region fails because there is not\na single resource for the total number of pages being removed.  Instead\nthe resources for the pages are split in PAGES_PER_SECTION size chunks as\nrequested during memory add.\n\nSigned-off-by: Nathan Fontenot \u003cnfont@austin.ibm.com\u003e\nSigned-off-by: Badari Pulavarty \u003cpbadari@us.ibm.com\u003e\nAcked-by: Yasunori Goto \u003cy-goto@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": "1125b4e3949949b44a7c80b619507c6f61d62911",
      "tree": "74d1461ce1bb7eec62ce5f020061c4d7c1a4feba",
      "parents": [
        "4b2e38ad703541f7845c2d766426148b8d1aa329"
      ],
      "author": {
        "name": "Gerald Schaefer",
        "email": "gerald.schaefer@de.ibm.com",
        "time": "Sat Oct 18 20:27:11 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 20 08:52:32 2008 -0700"
      },
      "message": "setup_per_zone_pages_min(): take zone-\u003elock instead of zone-\u003elru_lock\n\nThis replaces zone-\u003elru_lock in setup_per_zone_pages_min() with zone-\u003elock.\nThere seems to be no need for the lru_lock anymore, but there is a need for\nzone-\u003elock instead, because that function may call move_freepages() via\nsetup_zone_migrate_reserve().\n\nSigned-off-by: Gerald Schaefer \u003cgerald.schaefer@de.ibm.com\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nTested-by: Yasunori Goto \u003cy-goto@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": "4b2e38ad703541f7845c2d766426148b8d1aa329",
      "tree": "aaafbec5325d15c38c382c655120fb6492c11f82",
      "parents": [
        "e575f111dc0f27044e170580e7de50985ab3e011"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Sat Oct 18 20:27:10 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 20 08:52:32 2008 -0700"
      },
      "message": "hugepage: support ZERO_PAGE()\n\nPresently hugepage doesn\u0027t use zero page at all because zero page is only\nused for coredumping and hugepage can\u0027t core dump.\n\nHowever we have now implemented hugepage coredumping.  Therefore we should\nimplement the zero page of hugepage.\n\nImplementation note:\n\no Why do we only check VM_SHARED for zero page?\n  normal page checked as ..\n\n\tstatic inline int use_zero_page(struct vm_area_struct *vma)\n\t{\n\t        if (vma-\u003evm_flags \u0026 (VM_LOCKED | VM_SHARED))\n\t                return 0;\n\n\t        return !vma-\u003evm_ops || !vma-\u003evm_ops-\u003efault;\n\t}\n\nFirst, hugepages are never mlock()ed.  We aren\u0027t concerned with VM_LOCKED.\n\nSecond, hugetlbfs is a pseudo filesystem, not a real filesystem and it\ndoesn\u0027t have any file backing.  Thus ops-\u003efault checking is meaningless.\n\no Why don\u0027t we use zero page if !pte.\n\n!pte indicate {pud, pmd} doesn\u0027t exist or some error happened.  So we\nshouldn\u0027t return zero page if any error occurred.\n\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Adam Litke \u003cagl@us.ibm.com\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: Kawai Hidehiro \u003chidehiro.kawai.ez@hitachi.com\u003e\nCc: Mel Gorman \u003cmel@skynet.ie\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d903ef9f38813e7eb268744a7e579e92f411c83a",
      "tree": "7d9337e6c27fcbc78569757d6dd6399a318174ca",
      "parents": [
        "2a4b3ded5c76fbe373d6415b1b3ad4841f15c9bd"
      ],
      "author": {
        "name": "Yinghai Lu",
        "email": "yhlu.kernel@gmail.com",
        "time": "Sat Oct 18 20:27:06 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 20 08:52:32 2008 -0700"
      },
      "message": "mm: print out meminit for memmap\n\nImprove debuggability of memory setup problems.\n\nSigned-off-by: Yinghai Lu \u003cyhlu.kernel@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2a4b3ded5c76fbe373d6415b1b3ad4841f15c9bd",
      "tree": "32569113d280e8b69c81359246a51173b187ed74",
      "parents": [
        "db64fe02258f1507e13fe5212a989922323685ce"
      ],
      "author": {
        "name": "Harvey Harrison",
        "email": "harvey.harrison@gmail.com",
        "time": "Sat Oct 18 20:27:06 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 20 08:52:32 2008 -0700"
      },
      "message": "mm: hugetlb.c make functions static, use NULL rather than 0\n\nmm/hugetlb.c:265:17: warning: symbol \u0027resv_map_alloc\u0027 was not declared. Should it be static?\nmm/hugetlb.c:277:6: warning: symbol \u0027resv_map_release\u0027 was not declared. Should it be static?\nmm/hugetlb.c:292:9: warning: Using plain integer as NULL pointer\nmm/hugetlb.c:1750:5: warning: symbol \u0027unmap_ref_private\u0027 was not declared. Should it be static?\n\nSigned-off-by: Harvey Harrison \u003charvey.harrison@gmail.com\u003e\nAcked-by: Andy Whitcroft \u003capw@shadowen.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "db64fe02258f1507e13fe5212a989922323685ce",
      "tree": "ed24c8d4e3b0bcadfce3a8c3916a6b35d6c891cb",
      "parents": [
        "cb8f488c33539f096580e202f5438a809195008f"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Sat Oct 18 20:27:03 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 20 08:52:32 2008 -0700"
      },
      "message": "mm: rewrite vmap layer\n\nRewrite the vmap allocator to use rbtrees and lazy tlb flushing, and\nprovide a fast, scalable percpu frontend for small vmaps (requires a\nslightly different API, though).\n\nThe biggest problem with vmap is actually vunmap.  Presently this requires\na global kernel TLB flush, which on most architectures is a broadcast IPI\nto all CPUs to flush the cache.  This is all done under a global lock.  As\nthe number of CPUs increases, so will the number of vunmaps a scaled\nworkload will want to perform, and so will the cost of a global TLB flush.\n This gives terrible quadratic scalability characteristics.\n\nAnother problem is that the entire vmap subsystem works under a single\nlock.  It is a rwlock, but it is actually taken for write in all the fast\npaths, and the read locking would likely never be run concurrently anyway,\nso it\u0027s just pointless.\n\nThis is a rewrite of vmap subsystem to solve those problems.  The existing\nvmalloc API is implemented on top of the rewritten subsystem.\n\nThe TLB flushing problem is solved by using lazy TLB unmapping.  vmap\naddresses do not have to be flushed immediately when they are vunmapped,\nbecause the kernel will not reuse them again (would be a use-after-free)\nuntil they are reallocated.  So the addresses aren\u0027t allocated again until\na subsequent TLB flush.  A single TLB flush then can flush multiple\nvunmaps from each CPU.\n\nXEN and PAT and such do not like deferred TLB flushing because they can\u0027t\nalways handle multiple aliasing virtual addresses to a physical address.\nThey now call vm_unmap_aliases() in order to flush any deferred mappings.\nThat call is very expensive (well, actually not a lot more expensive than\na single vunmap under the old scheme), however it should be OK if not\ncalled too often.\n\nThe virtual memory extent information is stored in an rbtree rather than a\nlinked list to improve the algorithmic scalability.\n\nThere is a per-CPU allocator for small vmaps, which amortizes or avoids\nglobal locking.\n\nTo use the per-CPU interface, the vm_map_ram / vm_unmap_ram interfaces\nmust be used in place of vmap and vunmap.  Vmalloc does not use these\ninterfaces at the moment, so it will not be quite so scalable (although it\nwill use lazy TLB flushing).\n\nAs a quick test of performance, I ran a test that loops in the kernel,\nlinearly mapping then touching then unmapping 4 pages.  Different numbers\nof tests were run in parallel on an 4 core, 2 socket opteron.  Results are\nin nanoseconds per map+touch+unmap.\n\nthreads           vanilla         vmap rewrite\n1                 14700           2900\n2                 33600           3000\n4                 49500           2800\n8                 70631           2900\n\nSo with a 8 cores, the rewritten version is already 25x faster.\n\nIn a slightly more realistic test (although with an older and less\nscalable version of the patch), I ripped the not-very-good vunmap batching\ncode out of XFS, and implemented the large buffer mapping with vm_map_ram\nand vm_unmap_ram...  along with a couple of other tricks, I was able to\nspeed up a large directory workload by 20x on a 64 CPU system.  I believe\nvmap/vunmap is actually sped up a lot more than 20x on such a system, but\nI\u0027m running into other locks now.  vmap is pretty well blown off the\nprofiles.\n\nBefore:\n1352059 total                                      0.1401\n798784 _write_lock                              8320.6667 \u003c- vmlist_lock\n529313 default_idle                             1181.5022\n 15242 smp_call_function                         15.8771  \u003c- vmap tlb flushing\n  2472 __get_vm_area_node                         1.9312  \u003c- vmap\n  1762 remove_vm_area                             4.5885  \u003c- vunmap\n   316 map_vm_area                                0.2297  \u003c- vmap\n   312 kfree                                      0.1950\n   300 _spin_lock                                 3.1250\n   252 sn_send_IPI_phys                           0.4375  \u003c- tlb flushing\n   238 vmap                                       0.8264  \u003c- vmap\n   216 find_lock_page                             0.5192\n   196 find_next_bit                              0.3603\n   136 sn2_send_IPI                               0.2024\n   130 pio_phys_write_mmr                         2.0312\n   118 unmap_kernel_range                         0.1229\n\nAfter:\n 78406 total                                      0.0081\n 40053 default_idle                              89.4040\n 33576 ia64_spinlock_contention                 349.7500\n  1650 _spin_lock                                17.1875\n   319 __reg_op                                   0.5538\n   281 _atomic_dec_and_lock                       1.0977\n   153 mutex_unlock                               1.5938\n   123 iget_locked                                0.1671\n   117 xfs_dir_lookup                             0.1662\n   117 dput                                       0.1406\n   114 xfs_iget_core                              0.0268\n    92 xfs_da_hashname                            0.1917\n    75 d_alloc                                    0.0670\n    68 vmap_page_range                            0.0462 \u003c- vmap\n    58 kmem_cache_alloc                           0.0604\n    57 memset                                     0.0540\n    52 rb_next                                    0.1625\n    50 __copy_user                                0.0208\n    49 bitmap_find_free_region                    0.2188 \u003c- vmap\n    46 ia64_sn_udelay                             0.1106\n    45 find_inode_fast                            0.1406\n    42 memcmp                                     0.2188\n    42 finish_task_switch                         0.1094\n    42 __d_lookup                                 0.0410\n    40 radix_tree_lookup_slot                     0.1250\n    37 _spin_unlock_irqrestore                    0.3854\n    36 xfs_bmapi                                  0.0050\n    36 kmem_cache_free                            0.0256\n    35 xfs_vn_getattr                             0.0322\n    34 radix_tree_lookup                          0.1062\n    33 __link_path_walk                           0.0035\n    31 xfs_da_do_buf                              0.0091\n    30 _xfs_buf_find                              0.0204\n    28 find_get_page                              0.0875\n    27 xfs_iread                                  0.0241\n    27 __strncpy_from_user                        0.2812\n    26 _xfs_buf_initialize                        0.0406\n    24 _xfs_buf_lookup_pages                      0.0179\n    24 vunmap_page_range                          0.0250 \u003c- vunmap\n    23 find_lock_page                             0.0799\n    22 vm_map_ram                                 0.0087 \u003c- vmap\n    20 kfree                                      0.0125\n    19 put_page                                   0.0330\n    18 __kmalloc                                  0.0176\n    17 xfs_da_node_lookup_int                     0.0086\n    17 _read_lock                                 0.0885\n    17 page_waitqueue                             0.0664\n\nvmap has gone from being the top 5 on the profiles and flushing the crap\nout of all TLBs, to using less than 1% of kernel time.\n\n[akpm@linux-foundation.org: cleanups, section fix]\n[akpm@linux-foundation.org: fix build on alpha]\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Jeremy Fitzhardinge \u003cjeremy@goop.org\u003e\nCc: Krzysztof Helt \u003ckrzysztof.h1@poczta.fm\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "cb8f488c33539f096580e202f5438a809195008f",
      "tree": "888b60a8638774d50ba897526e24b25ccc28c30f",
      "parents": [
        "51b07fc3c5c830bb49c80fc5eac041e1f66a72e7"
      ],
      "author": {
        "name": "Denys Vlasenko",
        "email": "vda.linux@googlemail.com",
        "time": "Sat Oct 18 20:27:01 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 20 08:52:32 2008 -0700"
      },
      "message": "mmap.c: deinline a few functions\n\n__vma_link_file and expand_downwards functions are not small, yeat they\nare marked inline.  They probably had one callsite sometime in the past,\nbut now they have more.  In order to prevent similar thing, I also\ndeinlined expand_upwards, despite it having only pne callsite.  Nowadays\ngcc auto-inlines such static functions anyway.  In find_extend_vma, I\nremoved one extra level of indirection.\n\nPatch is deliberately generated with -U $BIGNUM to make\nit easier to see that functions are big.\n\nResult:\n\n# size */*/mmap.o */vmlinux\n   text    data     bss     dec     hex filename\n   9514     188      16    9718    25f6 0.org/mm/mmap.o\n   9237     188      16    9441    24e1 deinline/mm/mmap.o\n6124402  858996  389480 7372878  70804e 0.org/vmlinux\n6124113  858996  389480 7372589  707f2d deinline/vmlinux\n\nSigned-off-by: Denys Vlasenko \u003cvda.linux@googlemail.com\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8413ac9d8c9a1366a4f57880723126cd24e5a5c3",
      "tree": "fcee6ff670dcfccf895a48e92d27f52902d34301",
      "parents": [
        "a978d6f521063514812a7094dbe5036e056e4de3"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Sat Oct 18 20:26:59 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 20 08:52:32 2008 -0700"
      },
      "message": "mm: page lock use lock bitops\n\ntrylock_page, unlock_page open and close a critical section. Hence,\nwe can use the lock bitops to get the desired memory ordering.\n\nAlso, mark trylock as likely to succeed (and remove the annotation from\ncallers).\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a978d6f521063514812a7094dbe5036e056e4de3",
      "tree": "aaaed7caff558d8f9676f8cfd16b50ae6ca99573",
      "parents": [
        "f45840b5c128445da70e7ec33adc47b4a12bdaf4"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Sat Oct 18 20:26:58 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 20 08:52:32 2008 -0700"
      },
      "message": "mm: unlockless reclaim\n\nunlock_page is fairly expensive.  It can be avoided in page reclaim\nsuccess path.  By definition if we have any other references to the page\nit would be a bug anyway.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\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": "f45840b5c128445da70e7ec33adc47b4a12bdaf4",
      "tree": "3815a03d12d1c69d71a48c44cd216c3e1e84272a",
      "parents": [
        "9978ad583e100945b74e4f33e73317983ea32df9"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Sat Oct 18 20:26:57 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 20 08:52:31 2008 -0700"
      },
      "message": "mm: pagecache insertion fewer atomics\n\nSetting and clearing the page locked when inserting it into swapcache /\npagecache when it has no other references can use non-atomic page flags\noperations because no other CPU may be operating on it at this time.\n\nThis saves one atomic operation when inserting a page into pagecache.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9978ad583e100945b74e4f33e73317983ea32df9",
      "tree": "132d3a06664e04cac4635ddba55a0ec36ff2a001",
      "parents": [
        "c11d69d8c830e09a0e7b3935c952afb26c48bba8"
      ],
      "author": {
        "name": "Lee Schermerhorn",
        "email": "lee.schermerhorn@hp.com",
        "time": "Sat Oct 18 20:26:56 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 20 08:52:31 2008 -0700"
      },
      "message": "mlock: make mlock error return Posixly Correct\n\nRework Posix error return for mlock().\n\nPosix requires error code for mlock*() system calls for some conditions\nthat differ from what kernel low level functions, such as\nget_user_pages(), return for those conditions.  For more info, see:\n\nhttp://marc.info/?l\u003dlinux-kernel\u0026m\u003d121750892930775\u0026w\u003d2\n\nThis patch provides the same translation of get_user_pages()\nerror codes to posix specified error codes in the context\nof the mlock rework for unevictable lru.\n\n[akpm@linux-foundation.org: fix build]\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c11d69d8c830e09a0e7b3935c952afb26c48bba8",
      "tree": "c419910614bf29a77b3491014e13a7089093993a",
      "parents": [
        "e0f79b8f1f3394bb344b7b83d6f121ac2af327de"
      ],
      "author": {
        "name": "Lee Schermerhorn",
        "email": "lee.schermerhorn@hp.com",
        "time": "Sat Oct 18 20:26:56 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 20 08:52:31 2008 -0700"
      },
      "message": "mlock: revert mainline handling of mlock error return\n\nThis change is intended to make mlock() error returns correct.\nmake_page_present() is a lower level function used by more than mlock().\nSubsequent patch[es] will add this error return fixup in an mlock specific\npath.\n\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e0f79b8f1f3394bb344b7b83d6f121ac2af327de",
      "tree": "71fbe51998f2e22889bb59d361acf36898d71732",
      "parents": [
        "902d2e8ae0de29f483840ba1134af27343b9564d"
      ],
      "author": {
        "name": "Johannes Weiner",
        "email": "hannes@saeurebad.de",
        "time": "Sat Oct 18 20:26:55 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 20 08:52:31 2008 -0700"
      },
      "message": "vmscan: don\u0027t accumulate scan pressure on unrelated lists\n\nDuring each reclaim scan we accumulate scan pressure on unrelated lists\nwhich will result in bogus scans and unwanted reclaims eventually.\n\nScanning lists with few reclaim candidates results in a lot of rotation\nand therefor also disturbs the list balancing, putting even more\npressure on the wrong lists.\n\nIn a test-case with much streaming IO, and therefor a crowded inactive\nfile page list, swapping started because\n\n  a) anon pages were reclaimed after swap_cluster_max reclaim\n  invocations -- nr_scan of this list has just accumulated\n\n  b) active file pages were scanned because *their* nr_scan has also\n  accumulated through the same logic.  And this in return created a\n  lot of rotation for file pages and resulted in a decrease of file\n  list priority, again increasing the pressure on anon pages.\n\nThe result was an evicted working set of anon pages while there were\ntons of inactive file pages that should have been taken instead.\n\nSigned-off-by: Johannes Weiner \u003channes@saeurebad.de\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": "985737cf2ea096ea946aed82c7484d40defc71a8",
      "tree": "b96dc3b8c28f743857a7a1fff25472d6e0f60120",
      "parents": [
        "af936a1606246a10c145feac3770f6287f483f02"
      ],
      "author": {
        "name": "Lee Schermerhorn",
        "email": "lee.schermerhorn@hp.com",
        "time": "Sat Oct 18 20:26:53 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 20 08:52:31 2008 -0700"
      },
      "message": "mlock: count attempts to free mlocked page\n\nAllow free of mlock()ed pages.  This shouldn\u0027t happen, but during\ndevelopement, it occasionally did.\n\nThis patch allows us to survive that condition, while keeping the\nstatistics and events correct for debug.\n\nSigned-off-by: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nSigned-off-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": "af936a1606246a10c145feac3770f6287f483f02",
      "tree": "8b1ca7fabb5c749ffdecd654519889c6c2ed2fb6",
      "parents": [
        "64d6519dda3905dfb94d3f93c07c5f263f41813f"
      ],
      "author": {
        "name": "Lee Schermerhorn",
        "email": "lee.schermerhorn@hp.com",
        "time": "Sat Oct 18 20:26:53 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 20 08:52:31 2008 -0700"
      },
      "message": "vmscan: unevictable LRU scan sysctl\n\nThis patch adds a function to scan individual or all zones\u0027 unevictable\nlists and move any pages that have become evictable onto the respective\nzone\u0027s inactive list, where shrink_inactive_list() will deal with them.\n\nAdds sysctl to scan all nodes, and per node attributes to individual\nnodes\u0027 zones.\n\nKosaki: If evictable page found in unevictable lru when write\n/proc/sys/vm/scan_unevictable_pages, print filename and file offset of\nthese pages.\n\n[akpm@linux-foundation.org: fix one CONFIG_MMU\u003dn build error]\n[kosaki.motohiro@jp.fujitsu.com: adapt vmscan-unevictable-lru-scan-sysctl.patch to new sysfs API]\nSigned-off-by: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nSigned-off-by: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "64d6519dda3905dfb94d3f93c07c5f263f41813f",
      "tree": "62cae88edcb858c42a5b4b568eb77801299250bb",
      "parents": [
        "5344b7e648980cc2ca613ec03a56a8222ff48820"
      ],
      "author": {
        "name": "Lee Schermerhorn",
        "email": "lee.schermerhorn@hp.com",
        "time": "Sat Oct 18 20:26:52 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 20 08:52:31 2008 -0700"
      },
      "message": "swap: cull unevictable pages in fault path\n\nIn the fault paths that install new anonymous pages, check whether the\npage is evictable or not using lru_cache_add_active_or_unevictable().  If\nthe page is evictable, just add it to the active lru list [via the pagevec\ncache], else add it to the unevictable list.\n\nThis \"proactive\" culling in the fault path mimics the handling of mlocked\npages in Nick Piggin\u0027s series to keep mlocked pages off the lru lists.\n\nNotes:\n\n1) This patch is optional--e.g., if one is concerned about the\n   additional test in the fault path.  We can defer the moving of\n   nonreclaimable pages until when vmscan [shrink_*_list()]\n   encounters them.  Vmscan will only need to handle such pages\n   once, but if there are a lot of them it could impact system\n   performance.\n\n2) The \u0027vma\u0027 argument to page_evictable() is require to notice that\n   we\u0027re faulting a page into an mlock()ed vma w/o having to scan the\n   page\u0027s rmap in the fault path.   Culling mlock()ed anon pages is\n   currently the only reason for this patch.\n\n3) We can\u0027t cull swap pages in read_swap_cache_async() because the\n   vma argument doesn\u0027t necessarily correspond to the swap cache\n   offset passed in by swapin_readahead().  This could [did!] result\n   in mlocking pages in non-VM_LOCKED vmas if [when] we tried to\n   cull in this path.\n\n4) Move set_pte_at() to after where we add page to lru to keep it\n   hidden from other tasks that might walk the page table.\n   We already do it in this order in do_anonymous() page.  And,\n   these are COW\u0027d anon pages.  Is this safe?\n\n[riel@redhat.com: undo an overzealous code cleanup]\nSigned-off-by: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nSigned-off-by: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-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": "5344b7e648980cc2ca613ec03a56a8222ff48820",
      "tree": "f9f8773ae8e38fb91aec52ca9ad2bd81f039b565",
      "parents": [
        "ba470de43188cdbff795b5da43a1474523c6c2fb"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Sat Oct 18 20:26:51 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 20 08:52:31 2008 -0700"
      },
      "message": "vmstat: mlocked pages statistics\n\nAdd NR_MLOCK zone page state, which provides a (conservative) count of\nmlocked pages (actually, the number of mlocked pages moved off the LRU).\n\nReworked by lts to fit in with the modified mlock page support in the\nReclaim Scalability series.\n\n[kosaki.motohiro@jp.fujitsu.com: fix incorrect Mlocked field of /proc/meminfo]\n[lee.schermerhorn@hp.com: mlocked-pages: add event counting with statistics]\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nSigned-off-by: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-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": "ba470de43188cdbff795b5da43a1474523c6c2fb",
      "tree": "0477460fa8c3e61edd9f1534cd2193656e586f8b",
      "parents": [
        "8edb08caf68184fb170f4f69c7445929e199eaea"
      ],
      "author": {
        "name": "Rik van Riel",
        "email": "riel@redhat.com",
        "time": "Sat Oct 18 20:26:50 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 20 08:52:31 2008 -0700"
      },
      "message": "mmap: handle mlocked pages during map, remap, unmap\n\nOriginally by Nick Piggin \u003cnpiggin@suse.de\u003e\n\nRemove mlocked pages from the LRU using \"unevictable infrastructure\"\nduring mmap(), munmap(), mremap() and truncate().  Try to move back to\nnormal LRU lists on munmap() when last mlocked mapping removed.  Remove\nPageMlocked() status when page truncated from file.\n\n[akpm@linux-foundation.org: cleanup]\n[kamezawa.hiroyu@jp.fujitsu.com: fix double unlock_page()]\n[kosaki.motohiro@jp.fujitsu.com: split LRU: munlock rework]\n[lee.schermerhorn@hp.com: mlock: fix __mlock_vma_pages_range comment block]\n[akpm@linux-foundation.org: remove bogus kerneldoc token]\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nSigned-off-by: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamewzawa.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": "8edb08caf68184fb170f4f69c7445929e199eaea",
      "tree": "c0d8f24971c90e5627207f0f0cb7c06f9bdb5dc4",
      "parents": [
        "fa07e787733416c42938a310a8e717295934e33c"
      ],
      "author": {
        "name": "Lee Schermerhorn",
        "email": "lee.schermerhorn@hp.com",
        "time": "Sat Oct 18 20:26:49 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 20 08:52:31 2008 -0700"
      },
      "message": "mlock: downgrade mmap sem while populating mlocked regions\n\nWe need to hold the mmap_sem for write to initiatate mlock()/munlock()\nbecause we may need to merge/split vmas.  However, this can lead to very\nlong lock hold times attempting to fault in a large memory region to mlock\nit into memory.  This can hold off other faults against the mm\n[multithreaded tasks] and other scans of the mm, such as via /proc.  To\nalleviate this, downgrade the mmap_sem to read mode during the population\nof the region for locking.  This is especially the case if we need to\nreclaim memory to lock down the region.  We [probably?] don\u0027t need to do\nthis for unlocking as all of the pages should be resident--they\u0027re already\nmlocked.\n\nNow, the caller\u0027s of the mlock functions [mlock_fixup() and\nmlock_vma_pages_range()] expect the mmap_sem to be returned in write mode.\n Changing all callers appears to be way too much effort at this point.\nSo, restore write mode before returning.  Note that this opens a window\nwhere the mmap list could change in a multithreaded process.  So, at least\nfor mlock_fixup(), where we could be called in a loop over multiple vmas,\nwe check that a vma still exists at the start address and that vma still\ncovers the page range [start,end).  If not, we return an error, -EAGAIN,\nand let the caller deal with it.\n\nReturn -EAGAIN from mlock_vma_pages_range() function and mlock_fixup() if\nthe vma at \u0027start\u0027 disappears or changes so that the page range\n[start,end) is no longer contained in the vma.  Again, let the caller deal\nwith it.  Looks like only sys_remap_file_pages() [via mmap_region()]\nshould actually care.\n\nWith this patch, I no longer see processes like ps(1) blocked for seconds\nor minutes at a time waiting for a large [multiple gigabyte] region to be\nlocked down.  However, I occassionally see delays while unlocking or\nunmapping a large mlocked region.  Should we also downgrade the mmap_sem\nfor the unlock path?\n\nSigned-off-by: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nSigned-off-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": "b291f000393f5a0b679012b39d79fbc85c018233",
      "tree": "28eb785d4d157d3396e4377294e6054635a4bd90",
      "parents": [
        "89e004ea55abe201b29e2d6e35124101f1288ef7"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Sat Oct 18 20:26:44 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 20 08:52:30 2008 -0700"
      },
      "message": "mlock: mlocked pages are unevictable\n\nMake sure that mlocked pages also live on the unevictable LRU, so kswapd\nwill not scan them over and over again.\n\nThis is achieved through various strategies:\n\n1) add yet another page flag--PG_mlocked--to indicate that\n   the page is locked for efficient testing in vmscan and,\n   optionally, fault path.  This allows early culling of\n   unevictable pages, preventing them from getting to\n   page_referenced()/try_to_unmap().  Also allows separate\n   accounting of mlock\u0027d pages, as Nick\u0027s original patch\n   did.\n\n   Note:  Nick\u0027s original mlock patch used a PG_mlocked\n   flag.  I had removed this in favor of the PG_unevictable\n   flag + an mlock_count [new page struct member].  I\n   restored the PG_mlocked flag to eliminate the new\n   count field.\n\n2) add the mlock/unevictable infrastructure to mm/mlock.c,\n   with internal APIs in mm/internal.h.  This is a rework\n   of Nick\u0027s original patch to these files, taking into\n   account that mlocked pages are now kept on unevictable\n   LRU list.\n\n3) update vmscan.c:page_evictable() to check PageMlocked()\n   and, if vma passed in, the vm_flags.  Note that the vma\n   will only be passed in for new pages in the fault path;\n   and then only if the \"cull unevictable pages in fault\n   path\" patch is included.\n\n4) add try_to_unlock() to rmap.c to walk a page\u0027s rmap and\n   ClearPageMlocked() if no other vmas have it mlocked.\n   Reuses as much of try_to_unmap() as possible.  This\n   effectively replaces the use of one of the lru list links\n   as an mlock count.  If this mechanism let\u0027s pages in mlocked\n   vmas leak through w/o PG_mlocked set [I don\u0027t know that it\n   does], we should catch them later in try_to_unmap().  One\n   hopes this will be rare, as it will be relatively expensive.\n\nOriginal mm/internal.h, mm/rmap.c and mm/mlock.c changes:\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\n\nsplitlru: introduce __get_user_pages():\n\n  New munlock processing need to GUP_FLAGS_IGNORE_VMA_PERMISSIONS.\n  because current get_user_pages() can\u0027t grab PROT_NONE pages theresore it\n  cause PROT_NONE pages can\u0027t munlock.\n\n[akpm@linux-foundation.org: fix this for pagemap-pass-mm-into-pagewalkers.patch]\n[akpm@linux-foundation.org: untangle patch interdependencies]\n[akpm@linux-foundation.org: fix things after out-of-order merging]\n[hugh@veritas.com: fix page-flags mess]\n[lee.schermerhorn@hp.com: fix munlock page table walk - now requires \u0027mm\u0027]\n[kosaki.motohiro@jp.fujitsu.com: build fix]\n[kosaki.motohiro@jp.fujitsu.com: fix truncate race and sevaral comments]\n[kosaki.motohiro@jp.fujitsu.com: splitlru: introduce __get_user_pages()]\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-by: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nCc: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Dave Hansen \u003cdave@linux.vnet.ibm.com\u003e\nCc: Matt Mackall \u003cmpm@selenic.com\u003e\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "89e004ea55abe201b29e2d6e35124101f1288ef7",
      "tree": "272a8f453106fd33d66fd7153f44696648dbe8b6",
      "parents": [
        "ba9ddf49391645e6bb93219131a40446538a5e76"
      ],
      "author": {
        "name": "Lee Schermerhorn",
        "email": "Lee.Schermerhorn@hp.com",
        "time": "Sat Oct 18 20:26:43 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 20 08:50:26 2008 -0700"
      },
      "message": "SHM_LOCKED pages are unevictable\n\nShmem segments locked into memory via shmctl(SHM_LOCKED) should not be\nkept on the normal LRU, since scanning them is a waste of time and might\nthrow off kswapd\u0027s balancing algorithms.  Place them on the unevictable\nLRU list instead.\n\nUse the AS_UNEVICTABLE flag to mark address_space of SHM_LOCKed shared\nmemory regions as unevictable.  Then these pages will be culled off the\nnormal LRU lists during vmscan.\n\nAdd new wrapper function to clear the mapping\u0027s unevictable state when/if\nshared memory segment is munlocked.\n\nAdd \u0027scan_mapping_unevictable_page()\u0027 to mm/vmscan.c to scan all pages in\nthe shmem segment\u0027s mapping [struct address_space] for evictability now\nthat they\u0027re no longer locked.  If so, move them to the appropriate zone\nlru list.\n\nChanges depend on [CONFIG_]UNEVICTABLE_LRU.\n\n[kosaki.motohiro@jp.fujitsu.com: revert shm change]\nSigned-off-by: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nSigned-off-by: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-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": "ba9ddf49391645e6bb93219131a40446538a5e76",
      "tree": "2202525ca36c6f629685f5fea60b5b3ba335f546",
      "parents": [
        "7b854121eb3e5ba0241882ff939e2c485228c9c5"
      ],
      "author": {
        "name": "Lee Schermerhorn",
        "email": "Lee.Schermerhorn@hp.com",
        "time": "Sat Oct 18 20:26:42 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 20 08:50:26 2008 -0700"
      },
      "message": "Ramfs and Ram Disk pages are unevictable\n\nChristoph Lameter pointed out that ram disk pages also clutter the LRU\nlists.  When vmscan finds them dirty and tries to clean them, the ram disk\nwriteback function just redirties the page so that it goes back onto the\nactive list.  Round and round she goes...\n\nWith the ram disk driver [rd.c] replaced by the newer \u0027brd.c\u0027, this is no\nlonger the case, as ram disk pages are no longer maintained on the lru.\n[This makes them unmigratable for defrag or memory hot remove, but that\ncan be addressed by a separate patch series.] However, the ramfs pages\nbehave like ram disk pages used to, so:\n\nDefine new address_space flag [shares address_space flags member with\nmapping\u0027s gfp mask] to indicate that the address space contains all\nunevictable pages.  This will provide for efficient testing of ramfs pages\nin page_evictable().\n\nAlso provide wrapper functions to set/test the unevictable state to\nminimize #ifdefs in ramfs driver and any other users of this facility.\n\nSet the unevictable state on address_space structures for new ramfs\ninodes.  Test the unevictable state in page_evictable() to cull\nunevictable pages.\n\nThese changes depend on [CONFIG_]UNEVICTABLE_LRU.\n\n[riel@redhat.com: undo the brd.c part]\nSigned-off-by: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nSigned-off-by: Rik van Riel \u003criel@redhat.com\u003e\nDebugged-by: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7b854121eb3e5ba0241882ff939e2c485228c9c5",
      "tree": "e553bc3b3c2be3b36cfcce5219b2ef85646ea495",
      "parents": [
        "bbfd28eee9fbd73e780b19beb3dc562befbb94fa"
      ],
      "author": {
        "name": "Lee Schermerhorn",
        "email": "Lee.Schermerhorn@hp.com",
        "time": "Sat Oct 18 20:26:40 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 20 08:50:26 2008 -0700"
      },
      "message": "Unevictable LRU Page Statistics\n\nReport unevictable pages per zone and system wide.\n\nKosaki Motohiro added support for memory controller unevictable\nstatistics.\n\n[riel@redhat.com: fix printk in show_free_areas()]\n[akpm@linux-foundation.org: fix units in /proc/vmstats]\nSigned-off-by: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nSigned-off-by: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nDebugged-by: Hiroshi Shimamoto \u003ch-shimamoto@ct.jp.nec.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bbfd28eee9fbd73e780b19beb3dc562befbb94fa",
      "tree": "0e810fcd61501ef57e613a737593067b0bc61d40",
      "parents": [
        "894bc310419ac95f4fa4142dc364401a7e607f65"
      ],
      "author": {
        "name": "Lee Schermerhorn",
        "email": "lee.schermerhorn@hp.com",
        "time": "Sat Oct 18 20:26:40 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 20 08:50:26 2008 -0700"
      },
      "message": "unevictable lru: add event counting with statistics\n\nFix to unevictable-lru-page-statistics.patch\n\nAdd unevictable lru infrastructure vm events to the statistics patch.\nRename the \"NORECL_\" and \"noreclaim_\" symbols and text strings to\n\"UNEVICTABLE_\" and \"unevictable_\", respectively.\n\nCurrently, both the infrastructure and the mlocked pages event are\nadded by a single patch later in the series.  This makes it difficult\nto add or rework the incremental patches.  The events actually \"belong\"\nwith the stats, so pull them up to here.\n\nAlso, restore the event counting to putback_lru_page().  This was removed\nfrom previous patch in series where it was \"misplaced\".  The actual events\nweren\u0027t defined that early.\n\nSigned-off-by: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.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": "894bc310419ac95f4fa4142dc364401a7e607f65",
      "tree": "15d56a7333b41620016b845d2323dd06e822b621",
      "parents": [
        "8a7a8544a4f6554ec2d8048ac9f9672f442db5a2"
      ],
      "author": {
        "name": "Lee Schermerhorn",
        "email": "Lee.Schermerhorn@hp.com",
        "time": "Sat Oct 18 20:26:39 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 20 08:50:26 2008 -0700"
      },
      "message": "Unevictable LRU Infrastructure\n\nWhen the system contains lots of mlocked or otherwise unevictable pages,\nthe pageout code (kswapd) can spend lots of time scanning over these\npages.  Worse still, the presence of lots of unevictable pages can confuse\nkswapd into thinking that more aggressive pageout modes are required,\nresulting in all kinds of bad behaviour.\n\nInfrastructure to manage pages excluded from reclaim--i.e., hidden from\nvmscan.  Based on a patch by Larry Woodman of Red Hat.  Reworked to\nmaintain \"unevictable\" pages on a separate per-zone LRU list, to \"hide\"\nthem from vmscan.\n\nKosaki Motohiro added the support for the memory controller unevictable\nlru list.\n\nPages on the unevictable list have both PG_unevictable and PG_lru set.\nThus, PG_unevictable is analogous to and mutually exclusive with\nPG_active--it specifies which LRU list the page is on.\n\nThe unevictable infrastructure is enabled by a new mm Kconfig option\n[CONFIG_]UNEVICTABLE_LRU.\n\nA new function \u0027page_evictable(page, vma)\u0027 in vmscan.c tests whether or\nnot a page may be evictable.  Subsequent patches will add the various\n!evictable tests.  We\u0027ll want to keep these tests light-weight for use in\nshrink_active_list() and, possibly, the fault path.\n\nTo avoid races between tasks putting pages [back] onto an LRU list and\ntasks that might be moving the page from non-evictable to evictable state,\nthe new function \u0027putback_lru_page()\u0027 -- inverse to \u0027isolate_lru_page()\u0027\n-- tests the \"evictability\" of a page after placing it on the LRU, before\ndropping the reference.  If the page has become unevictable,\nputback_lru_page() will redo the \u0027putback\u0027, thus moving the page to the\nunevictable list.  This way, we avoid \"stranding\" evictable pages on the\nunevictable list.\n\n[akpm@linux-foundation.org: fix fallout from out-of-order merge]\n[riel@redhat.com: fix UNEVICTABLE_LRU and !PROC_PAGE_MONITOR build]\n[nishimura@mxp.nes.nec.co.jp: remove redundant mapping check]\n[kosaki.motohiro@jp.fujitsu.com: unevictable-lru-infrastructure: putback_lru_page()/unevictable page handling rework]\n[kosaki.motohiro@jp.fujitsu.com: kill unnecessary lock_page() in vmscan.c]\n[kosaki.motohiro@jp.fujitsu.com: revert migration change of unevictable lru infrastructure]\n[kosaki.motohiro@jp.fujitsu.com: revert to unevictable-lru-infrastructure-kconfig-fix.patch]\n[kosaki.motohiro@jp.fujitsu.com: restore patch failure of vmstat-unevictable-and-mlocked-pages-vm-events.patch]\nSigned-off-by: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nSigned-off-by: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nDebugged-by: Benjamin Kidwell \u003cbenjkidwell@yahoo.com\u003e\nSigned-off-by: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "33c120ed2843090e2bd316de1588b8bf8b96cbde",
      "tree": "7a6969fd7aae85fdaa8e63a90494950d8e4a0792",
      "parents": [
        "c5fdae469a6a26cd882d7fe0aa3fbfffb6b72fc5"
      ],
      "author": {
        "name": "Rik van Riel",
        "email": "riel@redhat.com",
        "time": "Sat Oct 18 20:26:36 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 20 08:50:26 2008 -0700"
      },
      "message": "more aggressively use lumpy reclaim\n\nDuring an AIM7 run on a 16GB system, fork started failing around 32000\nthreads, despite the system having plenty of free swap and 15GB of\npageable memory.  This was on x86-64, so 8k stacks.\n\nIf a higher order allocation fails, we can either:\n- keep evicting pages off the end of the LRUs and hope that\n  we eventually create a contiguous region; this is somewhat\n  unlikely if the system is under enough stress by new\n  allocations\n- after trying normal eviction for a bit, use lumpy reclaim\n\nThis patch switches the system to lumpy reclaim if the VM is having\ntrouble freeing enough pages, using the same threshold for detection as\nused by pageout congestion wait.\n\nSigned-off-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": "c5fdae469a6a26cd882d7fe0aa3fbfffb6b72fc5",
      "tree": "68eff4073f0e26be5aea7a6e69f210fb0cab02ea",
      "parents": [
        "7e9cd484204f9e5b316ed35b241abf088d76e0af"
      ],
      "author": {
        "name": "Rik van Riel",
        "email": "riel@redhat.com",
        "time": "Sat Oct 18 20:26:36 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 20 08:50:25 2008 -0700"
      },
      "message": "vmscan: add newly swapped in pages to the inactive list\n\nSwapin_readahead can read in a lot of data that the processes in memory\nnever need.  Adding swap cache pages to the inactive list prevents them\nfrom putting too much pressure on the working set.\n\nThis has the potential to help the programs that are already in memory,\nbut it could also be a disadvantage to processes that are trying to get\nswapped in.\n\nSigned-off-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": "7e9cd484204f9e5b316ed35b241abf088d76e0af",
      "tree": "79f2567e7bb96af2d97d8d5407cc990e26eda95c",
      "parents": [
        "556adecba110bf5f1db6c6b56416cfab5bcab698"
      ],
      "author": {
        "name": "Rik van Riel",
        "email": "riel@redhat.com",
        "time": "Sat Oct 18 20:26:35 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 20 08:50:25 2008 -0700"
      },
      "message": "vmscan: fix pagecache reclaim referenced bit check\n\nMoving referenced pages back to the head of the active list creates a huge\nscalability problem, because by the time a large memory system finally\nruns out of free memory, every single page in the system will have been\nreferenced.\n\nNot only do we not have the time to scan every single page on the active\nlist, but since they have will all have the referenced bit set, that bit\nconveys no useful information.\n\nA more scalable solution is to just move every page that hits the end of\nthe active list to the inactive list.\n\nWe clear the referenced bit off of mapped pages, which need just one\nreference to be moved back onto the active list.\n\nUnmapped pages will be moved back to the active list after two references\n(see mark_page_accessed).  We preserve the PG_referenced flag on unmapped\npages to preserve accesses that were made while the page was on the active\nlist.\n\nSigned-off-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": "556adecba110bf5f1db6c6b56416cfab5bcab698",
      "tree": "a721d84d28c4d99a54632b472b452ea3d4b2b137",
      "parents": [
        "4f98a2fee8acdb4ac84545df98cccecfd130f8db"
      ],
      "author": {
        "name": "Rik van Riel",
        "email": "riel@redhat.com",
        "time": "Sat Oct 18 20:26:34 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 20 08:50:25 2008 -0700"
      },
      "message": "vmscan: second chance replacement for anonymous pages\n\nWe avoid evicting and scanning anonymous pages for the most part, but\nunder some workloads we can end up with most of memory filled with\nanonymous pages.  At that point, we suddenly need to clear the referenced\nbits on all of memory, which can take ages on very large memory systems.\n\nWe can reduce the maximum number of pages that need to be scanned by not\ntaking the referenced state into account when deactivating an anonymous\npage.  After all, every anonymous page starts out referenced, so why\ncheck?\n\nIf an anonymous page gets referenced again before it reaches the end of\nthe inactive list, we move it back to the active list.\n\nTo keep the maximum amount of necessary work reasonable, we scale the\nactive to inactive ratio with the size of memory, using the formula\nactive:inactive ratio \u003d sqrt(memory in GB * 10).\n\nKswapd CPU use now seems to scale by the amount of pageout bandwidth,\ninstead of by the amount of memory present in the system.\n\n[kamezawa.hiroyu@jp.fujitsu.com: fix OOM with memcg]\n[kamezawa.hiroyu@jp.fujitsu.com: memcg: lru scan fix]\nSigned-off-by: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-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": "4f98a2fee8acdb4ac84545df98cccecfd130f8db",
      "tree": "035a2937f4c3e2f7b4269412041c073ac646937c",
      "parents": [
        "b2e185384f534781fd22f5ce170b2ad26f97df70"
      ],
      "author": {
        "name": "Rik van Riel",
        "email": "riel@redhat.com",
        "time": "Sat Oct 18 20:26:32 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 20 08:50:25 2008 -0700"
      },
      "message": "vmscan: split LRU lists into anon \u0026 file sets\n\nSplit the LRU lists in two, one set for pages that are backed by real file\nsystems (\"file\") and one for pages that are backed by memory and swap\n(\"anon\").  The latter includes tmpfs.\n\nThe advantage of doing this is that the VM will not have to scan over lots\nof anonymous pages (which we generally do not want to swap out), just to\nfind the page cache pages that it should evict.\n\nThis patch has the infrastructure and a basic policy to balance how much\nwe scan the anon lists and how much we scan the file lists.  The big\npolicy changes are in separate patches.\n\n[lee.schermerhorn@hp.com: collect lru meminfo statistics from correct offset]\n[kosaki.motohiro@jp.fujitsu.com: prevent incorrect oom under split_lru]\n[kosaki.motohiro@jp.fujitsu.com: fix pagevec_move_tail() doesn\u0027t treat unevictable page]\n[hugh@veritas.com: memcg swapbacked pages active]\n[hugh@veritas.com: splitlru: BDI_CAP_SWAP_BACKED]\n[akpm@linux-foundation.org: fix /proc/vmstat units]\n[nishimura@mxp.nes.nec.co.jp: memcg: fix handling of shmem migration]\n[kosaki.motohiro@jp.fujitsu.com: adjust Quicklists field of /proc/meminfo]\n[kosaki.motohiro@jp.fujitsu.com: fix style issue of get_scan_ratio()]\nSigned-off-by: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-by: Lee Schermerhorn \u003cLee.Schermerhorn@hp.com\u003e\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b2e185384f534781fd22f5ce170b2ad26f97df70",
      "tree": "3096b8250302c5a9f71b1b5122345f7cf62606cc",
      "parents": [
        "68a22394c286a2daf06ee8d65d8835f738faefa5"
      ],
      "author": {
        "name": "Rik van Riel",
        "email": "riel@redhat.com",
        "time": "Sat Oct 18 20:26:30 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 20 08:50:25 2008 -0700"
      },
      "message": "define page_file_cache() function\n\nDefine page_file_cache() function to answer the question:\n\tis page backed by a file?\n\nOriginally part of Rik van Riel\u0027s split-lru patch.  Extracted to make\navailable for other, independent reclaim patches.\n\nMoved inline function to linux/mm_inline.h where it will be needed by\nsubsequent \"split LRU\" and \"noreclaim\" patches.\n\nUnfortunately this needs to use a page flag, since the PG_swapbacked state\nneeds to be preserved all the way to the point where the page is last\nremoved from the LRU.  Trying to derive the status from other info in the\npage resulted in wrong VM statistics in earlier split VM patchsets.\n\nThe total number of page flags in use on a 32 bit machine after this patch\nis 19.\n\n[akpm@linux-foundation.org: fix up out-of-order merge fallout]\n[hugh@veritas.com: splitlru: shmem_getpage SetPageSwapBacked sooner[\nSigned-off-by: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-by: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nSigned-off-by: MinChan Kim \u003cminchan.kim@gmail.com\u003e\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "68a22394c286a2daf06ee8d65d8835f738faefa5",
      "tree": "1fb91d5bf57a1f6d1cabaac0a6f5d86060ebecb5",
      "parents": [
        "f04e9ebbe4909f9a41efd55149bc353299f4e83b"
      ],
      "author": {
        "name": "Rik van Riel",
        "email": "riel@redhat.com",
        "time": "Sat Oct 18 20:26:23 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 20 08:50:25 2008 -0700"
      },
      "message": "vmscan: free swap space on swap-in/activation\n\nIf vm_swap_full() (swap space more than 50% full), the system will free\nswap space at swapin time.  With this patch, the system will also free the\nswap space in the pageout code, when we decide that the page is not a\ncandidate for swapout (and just wasting swap space).\n\nSigned-off-by: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-by: Lee Schermerhorn \u003cLee.Schermerhorn@hp.com\u003e\nSigned-off-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": "f04e9ebbe4909f9a41efd55149bc353299f4e83b",
      "tree": "4ff31c7f918edafe7d4e4dd0e926b6ac545c7897",
      "parents": [
        "b69408e88bd86b98feb7b9a38fd865e1ddb29827"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Sat Oct 18 20:26:19 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 20 08:50:25 2008 -0700"
      },
      "message": "swap: use an array for the LRU pagevecs\n\nTurn the pagevecs into an array just like the LRUs.  This significantly\ncleans up the source code and reduces the size of the kernel by about 13kB\nafter all the LRU lists have been created further down in the split VM\npatch series.\n\nSigned-off-by: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-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": "b69408e88bd86b98feb7b9a38fd865e1ddb29827",
      "tree": "b19277c29fe624870ba776cc6ada59928cd2796d",
      "parents": [
        "62695a84eb8f2e718bf4dfb21700afaa7a08e0ea"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "cl@linux-foundation.org",
        "time": "Sat Oct 18 20:26:14 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 20 08:50:25 2008 -0700"
      },
      "message": "vmscan: Use an indexed array for LRU variables\n\nCurrently we are defining explicit variables for the inactive and active\nlist.  An indexed array can be more generic and avoid repeating similar\ncode in several places in the reclaim code.\n\nWe are saving a few bytes in terms of code size:\n\nBefore:\n\n   text    data     bss     dec     hex filename\n4097753  573120 4092484 8763357  85b7dd vmlinux\n\nAfter:\n\n   text    data     bss     dec     hex filename\n4097729  573120 4092484 8763333  85b7c5 vmlinux\n\nHaving an easy way to add new lru lists may ease future work on the\nreclaim code.\n\nSigned-off-by: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-by: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nSigned-off-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nSigned-off-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": "62695a84eb8f2e718bf4dfb21700afaa7a08e0ea",
      "tree": "0af7bac599748a7e462bff16d70c702c9e33a2fb",
      "parents": [
        "71088785c6bc68fddb450063d57b1bd1c78e0ea1"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Sat Oct 18 20:26:09 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 20 08:50:25 2008 -0700"
      },
      "message": "vmscan: move isolate_lru_page() to vmscan.c\n\nOn large memory systems, the VM can spend way too much time scanning\nthrough pages that it cannot (or should not) evict from memory.  Not only\ndoes it use up CPU time, but it also provokes lock contention and can\nleave large systems under memory presure in a catatonic state.\n\nThis patch series improves VM scalability by:\n\n1) putting filesystem backed, swap backed and unevictable pages\n   onto their own LRUs, so the system only scans the pages that it\n   can/should evict from memory\n\n2) switching to two handed clock replacement for the anonymous LRUs,\n   so the number of pages that need to be scanned when the system\n   starts swapping is bound to a reasonable number\n\n3) keeping unevictable pages off the LRU completely, so the\n   VM does not waste CPU time scanning them. ramfs, ramdisk,\n   SHM_LOCKED shared memory segments and mlock()ed VMA pages\n   are keept on the unevictable list.\n\nThis patch:\n\nisolate_lru_page logically belongs to be in vmscan.c than migrate.c.\n\nIt is tough, because we don\u0027t need that function without memory migration\nso there is a valid argument to have it in migrate.c.  However a\nsubsequent patch needs to make use of it in the core mm, so we can happily\nmove it to vmscan.c.\n\nAlso, make the function a little more generic by not requiring that it\nadds an isolated page to a given list.  Callers can do that.\n\n\tNote that we now have \u0027__isolate_lru_page()\u0027, that does\n\tsomething quite different, visible outside of vmscan.c\n\tfor use with memory controller.  Methinks we need to\n\trationalize these names/purposes.\t--lts\n\n[akpm@linux-foundation.org: fix mm/memory_hotplug.c build]\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-by: Lee Schermerhorn \u003cLee.Schermerhorn@hp.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "71088785c6bc68fddb450063d57b1bd1c78e0ea1",
      "tree": "026e0e2be8aac85959424211f7e319be6cac40ca",
      "parents": [
        "8433ac61acf733dc4b427de5f0891518c21538f9"
      ],
      "author": {
        "name": "Badari Pulavarty",
        "email": "pbadari@us.ibm.com",
        "time": "Sat Oct 18 20:25:58 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 20 08:50:25 2008 -0700"
      },
      "message": "mm: cleanup to make remove_memory() arch-neutral\n\nThere is nothing architecture specific about remove_memory().\nremove_memory() function is common for all architectures which support\nhotplug memory remove.  Instead of duplicating it in every architecture,\ncollapse them into arch neutral function.\n\n[akpm@linux-foundation.org: fix the export]\nSigned-off-by: Badari Pulavarty \u003cpbadari@us.ibm.com\u003e\nCc: Yasunori Goto \u003cy-goto@jp.fujitsu.com\u003e\nCc: Gary Hade \u003cgaryhade@us.ibm.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Yasunori Goto \u003cy-goto@jp.fujitsu.com\u003e\nCc: \"Luck, Tony\" \u003ctony.luck@intel.com\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.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": "d9d332e0874f46b91d8ac4604b68ee42b8a7a2c6",
      "tree": "070023e76343c4713c352aba31faae042ad3d4a6",
      "parents": [
        "0cfd81031a26717fe14380d18275f8e217571615"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Oct 19 10:32:20 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Oct 19 11:50:35 2008 -0700"
      },
      "message": "anon_vma_prepare: properly lock even newly allocated entries\n\nThe anon_vma code is very subtle, and we end up doing optimistic lookups\nof anon_vmas under RCU in page_lock_anon_vma() with no locking.  Other\nCPU\u0027s can also see the newly allocated entry immediately after we\u0027ve\nexposed it by setting \"vma-\u003eanon_vma\" to the new value.\n\nWe protect against the anon_vma being destroyed by having the SLAB\nmarked as SLAB_DESTROY_BY_RCU, so the RCU lookup can depend on the\nallocation not being destroyed - but it might still be free\u0027d and\nre-allocated here to a new vma.\n\nAs a result, we should not do the anon_vma list ops on a newly allocated\nvma without proper locking.\n\nAcked-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nAcked-by: Hugh Dickins \u003chugh@veritas.com\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f7ea4a4ba84f382e8eb143e435551de0feee5b4b",
      "tree": "0771d5413f1b9104816ca0ddec21c5503d562a3d",
      "parents": [
        "5564da7e9d12ea80745f66c8d2ec7bd00f3f94eb",
        "4b40893918203ee1a1f6a114316c2a19c072e9bd"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 17 15:09:20 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 17 15:09:20 2008 -0700"
      },
      "message": "Merge branch \u0027drm-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6\n\n* \u0027drm-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6: (44 commits)\n  drm/i915: fix ioremap of a user address for non-root (CVE-2008-3831)\n  drm: make CONFIG_DRM depend on CONFIG_SHMEM.\n  radeon: fix PCI bus mastering support enables.\n  radeon: add RS400 family support.\n  drm/radeon: add support for RS740 IGP chipsets.\n  i915: GM45 has GM965-style MCH setup.\n  i915: Don\u0027t run retire work handler while suspended\n  i915: Map status page cached for chips with GTT-based HWS location.\n  i915: Fix up ring initialization to cover G45 oddities\n  i915: Use non-reserved status page index for breadcrumb\n  drm: Increment dev_priv-\u003eirq_received so i915_gem_interrupts count works.\n  drm: kill drm_device-\u003eirq\n  drm: wbinvd is cache coherent.\n  i915: add missing return in error path.\n  i915: fixup permissions on gem ioctls.\n  drm: Clean up many sparse warnings in i915.\n  drm: Use ioremap_wc in i915_driver instead of ioremap, since we always want WC.\n  drm: G33-class hardware has a newer 965-style MCH (no DCC register).\n  drm: Avoid oops in GEM execbuffers with bad arguments.\n  DRM: Return -EBADF on bad object in flink, and return curent name if it exists.\n  ...\n"
    },
    {
      "commit": "395e0ddc44005ced5e4fed9bfc2e4bdf63d37627",
      "tree": "ee33f3a28029dae46445e563d35ed93f36dd9fad",
      "parents": [
        "0a3e67a4caac273a3bfc4ced3da364830b1ab241"
      ],
      "author": {
        "name": "Keith Packard",
        "email": "keithp@keithp.com",
        "time": "Fri Jun 20 00:08:06 2008 -0700"
      },
      "committer": {
        "name": "Dave Airlie",
        "email": "airlied@linux.ie",
        "time": "Sat Oct 18 07:10:11 2008 +1000"
      },
      "message": "Export shmem_file_setup for DRM-GEM\n\nGEM needs to create shmem files to back buffer objects.  Though currently\ncreation of files for objects could have been driven from userland, the\nmodesetting work will require allocation of buffer objects before userland\nis running, for boot-time message display.\n\nSigned-off-by: Eric Anholt \u003ceric@anholt.net\u003e\nCc: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Dave Airlie \u003cairlied@redhat.com\u003e\n"
    },
    {
      "commit": "e533b227055598b1f7dc8503a3b4f36b14b9da8a",
      "tree": "28fec4125eac45c8e2fac75b3d10ff5cd987d2f6",
      "parents": [
        "0999d978dcdcf59350dafa25afd70def9f924eee",
        "6b2ada82101a08e2830fb29d7dc9b858be637dd4"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 16 15:17:40 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 16 15:17:40 2008 -0700"
      },
      "message": "Merge branch \u0027core-v28-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027core-v28-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  do_generic_file_read: s/EINTR/EIO/ if lock_page_killable() fails\n  softirq, warning fix: correct a format to avoid a warning\n  softirqs, debug: preemption check\n  x86, pci-hotplug, calgary / rio: fix EBDA ioremap()\n  IO resources, x86: ioremap sanity check to catch mapping requests exceeding, fix\n  IO resources, x86: ioremap sanity check to catch mapping requests exceeding the BAR sizes\n  softlockup: Documentation/sysctl/kernel.txt: fix softlockup_thresh description\n  dmi scan: warn about too early calls to dmi_check_system()\n  generic: redefine resource_size_t as phys_addr_t\n  generic: make PFN_PHYS explicitly return phys_addr_t\n  generic: add phys_addr_t for holding physical addresses\n  softirq: allocate less vectors\n  IO resources: fix/remove printk\n  printk: robustify printk, update comment\n  printk: robustify printk, fix #2\n  printk: robustify printk, fix\n  printk: robustify printk\n\nFixed up conflicts in:\n\tarch/powerpc/include/asm/types.h\n\tarch/powerpc/platforms/Kconfig.cputype\nmanually.\n"
    },
    {
      "commit": "e1f8e87449147ffe5ea3de64a46af7de450ce279",
      "tree": "304e90a6747f5a7586a67305b7225ed4b4dbb53a",
      "parents": [
        "8033fe65a6d6c0e47ba9e3cb2e4e6902f9dfb8dd"
      ],
      "author": {
        "name": "Francois Cami",
        "email": "francois.cami@free.fr",
        "time": "Wed Oct 15 22:01:59 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 16 11:21:32 2008 -0700"
      },
      "message": "Remove Andrew Morton\u0027s old email accounts\n\nPeople can use the real name an an index into MAINTAINERS to find the\ncurrent email address.\n\nSigned-off-by: Francois Cami \u003cfrancois.cami@free.fr\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9ba16087d9f996a93ab6f4453a52a4b24bc1f25c",
      "tree": "98a292c556b646aec40ce137b1ec689b3469f120",
      "parents": [
        "a25d644fc0e232f242d1f3baa63c149c42536ff0"
      ],
      "author": {
        "name": "Jan Beulich",
        "email": "jbeulich@novell.com",
        "time": "Wed Oct 15 22:01:38 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 16 11:21:31 2008 -0700"
      },
      "message": "Kconfig: eliminate \"def_bool n\" constructs\n\nUsing \"def_bool n\" is pointless, simply using bool here appears more\nappropriate.\n\nFurther, retaining such options that don\u0027t have a prompt and aren\u0027t\nselected by anything seems also at least questionable.\n\nSigned-off-by: Jan Beulich \u003cjbeulich@novell.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Tony Luck \u003ctony.luck@intel.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Bartlomiej Zolnierkiewicz \u003cbzolnier@gmail.com\u003e\nCc: Sam Ravnborg \u003csam@ravnborg.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "80a914dc05683ecfc98f9e1887fd6564846ffbec",
      "tree": "2120b4007bc9488eebd98a4d40b00221d17ecb2b",
      "parents": [
        "d5c003b4d1690e666dbab02bc8e705947baa848c"
      ],
      "author": {
        "name": "Harvey Harrison",
        "email": "harvey.harrison@gmail.com",
        "time": "Wed Oct 15 22:01:25 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 16 11:21:30 2008 -0700"
      },
      "message": "misc: replace __FUNCTION__ with __func__\n\n__FUNCTION__ is gcc-specific, use __func__\n\nSigned-off-by: Harvey Harrison \u003charvey.harrison@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": "0c6aa2639ea83bfb7f91d72118bad70b3f60012a",
      "tree": "7ed277716200bdd949491aad355a2edf6d0864f3",
      "parents": [
        "b4d1d99fdd8b98fb03dfd6ef9b0ece220de38640"
      ],
      "author": {
        "name": "Krishna Kumar",
        "email": "krkumar2@in.ibm.com",
        "time": "Wed Oct 15 22:01:13 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 16 11:21:29 2008 -0700"
      },
      "message": "mm: do_generic_file_read() never gets a NULL \u0027filp\u0027 argument\n\nThe \u0027filp\u0027 argument to do_generic_file_read() is never NULL.\n\nSigned-off-by: Krishna Kumar \u003ckrkumar2@in.ibm.com\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b4d1d99fdd8b98fb03dfd6ef9b0ece220de38640",
      "tree": "e2bdf12aa53b71430edd312f441c79fdd6114535",
      "parents": [
        "db99100d2ed40dd9736fcb1adb3657a98f9bcfd9"
      ],
      "author": {
        "name": "David Gibson",
        "email": "david@gibson.dropbear.id.au",
        "time": "Wed Oct 15 22:01:11 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 16 11:21:29 2008 -0700"
      },
      "message": "hugetlb: handle updating of ACCESSED and DIRTY in hugetlb_fault()\n\nThe page fault path for normal pages, if the fault is neither a no-page\nfault nor a write-protect fault, will update the DIRTY and ACCESSED bits\nin the page table appropriately.\n\nThe hugepage fault path, however, does not do this, handling only no-page\nor write-protect type faults.  It assumes that either the ACCESSED and\nDIRTY bits are irrelevant for hugepages (usually true, since they are\nnever swapped) or that they are handled by the arch code.\n\nThis is inconvenient for some software-loaded TLB architectures, where the\n_PAGE_ACCESSED (_PAGE_DIRTY) bits need to be set to enable read (write)\naccess to the page at the TLB miss.  This could be worked around in the\narch TLB miss code, but the TLB miss fast path can be made simple more\neasily if the hugetlb_fault() path handles this, as the normal page fault\npath does.\n\nSigned-off-by: David Gibson \u003cdavid@gibson.dropbear.id.au\u003e\nCc: William Lee Irwin III \u003cwli@holomorphy.com\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: Adam Litke \u003cagl@us.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": "db99100d2ed40dd9736fcb1adb3657a98f9bcfd9",
      "tree": "c098cda0a6172ea9e00fe25d151b87cd1609176c",
      "parents": [
        "9363b9f23c9cc36cc8ef6c05fdf879ee4a96ae92"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Wed Oct 15 22:01:07 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 16 11:21:29 2008 -0700"
      },
      "message": "mm/page_alloc.c:free_area_init_nodes() fix inappropriate use of enum\n\nLocal variable `i\u0027 is a) misleadingly-named for an `enum zone_type\u0027 and b)\nused for indexing zones as well as nodes as well as node_maps.\n\nMake it an `int\u0027.\n\nReported-by: Frans Pop \u003celendil@planet.nl\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": "17bc6c30cf6bfffd816bdc53682dd46fc34a2cf4",
      "tree": "9fb9512764e970123c0f44573b0bfd74539744e3",
      "parents": [
        "74baaaaec8b4f22e1ae279f5ecca4ff705b28912"
      ],
      "author": {
        "name": "Aneesh Kumar K.V",
        "email": "aneesh.kumar@linux.vnet.ibm.com",
        "time": "Thu Oct 16 10:09:17 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Thu Oct 16 10:09:17 2008 -0400"
      },
      "message": "vfs: Add no_nrwrite_index_update writeback control flag\n\nIf no_nrwrite_index_update is set we don\u0027t update nr_to_write and\naddress space writeback_index in write_cache_pages.  This change\nenables a file system to skip these updates in write_cache_pages and do\nthem in the writepages() callback.  This patch will be followed by an\next4 patch that make use of these new flags.\n\nSigned-off-by: Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCC: linux-fsdevel@vger.kernel.org\n"
    },
    {
      "commit": "73bdf0a60e607f4b8ecc5aec597105976565a84f",
      "tree": "c328c671f0da327a417d8bddb1309371ed216ea2",
      "parents": [
        "f61f1b5717dec9968efd6c8d61bd73b7a61b72a0"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Oct 15 08:35:12 2008 -0700"
      },
      "committer": {
        "name": "H. Peter Anvin",
        "email": "hpa@zytor.com",
        "time": "Thu Oct 16 03:25:58 2008 -0700"
      },
      "message": "Introduce is_vmalloc_or_module_addr() and use with DEBUG_VIRTUAL\n\nImpact: crash on module insertion with CONFIG_DEBUG_VIRTUAL\n\nWe would incorrectly BUG due to:\n\n   VIRTUAL_BUG_ON(!is_vmalloc_addr(vmalloc_addr) \u0026\u0026\n   \t          !is_module_address(addr));\n\n... because, at least on x86-64, is_module_address() doesn\u0027t do what\nit should.  This patch introduces is_vmalloc_or_module_addr(), which\nis what we really want anyway, and uses it instead.\n\nSigned-off-by: H. Peter Anvin \u003chpa@zytor.com\u003e\n"
    },
    {
      "commit": "6b2ada82101a08e2830fb29d7dc9b858be637dd4",
      "tree": "c0580c250211f8773674f3a4f7cd575818f153cc",
      "parents": [
        "278429cff8809958d25415ba0ed32b59866ab1a8",
        "3b7ecb5d2ffde82efd1b1bcc6780dc8a019acf02",
        "77af7e3403e7314c47b0c07fbc5e4ef21d939532",
        "15160716eea5591eb31f40fd4dba56d83bea4209",
        "1fa63a817d27af7dc0d5ed454eb8fe5dec65fac7",
        "85462323555dda749f1c5373a8d72679464c968d"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Oct 15 12:48:44 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Oct 15 12:48:44 2008 +0200"
      },
      "message": "Merge branches \u0027core/softlockup\u0027, \u0027core/softirq\u0027, \u0027core/resources\u0027, \u0027core/printk\u0027 and \u0027core/misc\u0027 into core-v28-for-linus\n"
    },
    {
      "commit": "85462323555dda749f1c5373a8d72679464c968d",
      "tree": "aeec1f9a2ad6665c70a88483cbe5e9a3a2f33536",
      "parents": [
        "7591103c08abade60aeddb432ed0686ddd0de1c6"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Sun Jun 08 21:20:43 2008 +0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 14 17:15:33 2008 +0200"
      },
      "message": "do_generic_file_read: s/EINTR/EIO/ if lock_page_killable() fails\n\nIf lock_page_killable() fails because the task was killed by SIGKILL or\nany other fatal signal, do_generic_file_read() returns -EIO.\n\nThis seems to be OK, because in fact the userspace won\u0027t see this error,\nthe task will dequeue SIGKILL and exit.\n\nHowever, /sbin/init is different, it will dequeue SIGKILL, ignore it, and\nreturn to the user-space with the bogus -EIO.\n\nChange the code to return the error code from lock_page_killable(), -EINTR.\nThis doesn\u0027t fix the bug, but perhaps makes sense anyway. Imho, with this\nchange the code looks a bit more logical, and the \"good\" init should handle\nthe spurious EINTR or short read.\n\nAfaics we can also change lock_page_killable() to return -ERESTARTNOINTR,\nbut this can\u0027t prevent the short reads.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "74baaaaec8b4f22e1ae279f5ecca4ff705b28912",
      "tree": "ef224dcfcf675eb5050fd457192e740c314437c3",
      "parents": [
        "af6f029d3836eb7264cd3fbb13a6baf0e5fdb5ea"
      ],
      "author": {
        "name": "Aneesh Kumar K.V",
        "email": "aneesh.kumar@linux.vnet.ibm.com",
        "time": "Tue Oct 14 09:21:02 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Oct 14 09:21:02 2008 -0400"
      },
      "message": "vfs: Remove the range_cont writeback mode.\n\nExt4 was the only user of range_cont writeback mode and ext4 switched\nto a different method. So remove the range_cont mode which is not used\nin the kernel.\n\nSigned-off-by: Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCC: linux-fsdevel@vger.kernel.org\n"
    },
    {
      "commit": "92562927826fceb2f8e69c89e28161b8c1e0b125",
      "tree": "e44f22406ea4d3753a4834feed7e7d271da28ab8",
      "parents": [
        "93db628658197aa46bd7f83d429908b6f187ec9c"
      ],
      "author": {
        "name": "Mimi Zohar",
        "email": "zohar@linux.vnet.ibm.com",
        "time": "Tue Oct 07 14:00:12 2008 -0400"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Mon Oct 13 09:47:43 2008 +1100"
      },
      "message": "integrity: special fs magic\n\nDiscussion on the mailing list questioned the use of these\nmagic values in userspace, concluding these values are already\nexported to userspace via statfs and their correct/incorrect\nusage is left up to the userspace application.\n\n  - Move special fs magic number definitions to magic.h\n  - Add magic.h include\n\nSigned-off-by: Mimi Zohar \u003czohar@us.ibm.com\u003e\nReviewed-by: James Morris \u003cjmorris@namei.org\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "8daf14cf56816303d64d1a705fcbc389211ba36e",
      "tree": "c14bcf688efd184ab10b576259d570f6d3d09c56",
      "parents": [
        "1db5fff9aeab18566eb380e354629fdbbe7792f0",
        "eceb1383361c6327cef4de01d278cd6722ebceeb",
        "28f7e66fc1da53997a545684b21b91fb3ca3f321",
        "fd1452ebf257317f24e0e285a17a2ec2ce3e6df7",
        "7aa413def76146f7b3784228556d9e4bc562eab3",
        "46eaa6702016e3ac9a188172a2c309d6ca1be1cd",
        "45e96f26f257bd873017c6244a6cafd27f6f5439",
        "9f482807a6bd7e2aa1ed0d8cfc48463ec4ca3568",
        "325af5fb1418c79953db0954556de048e061d8b6",
        "acbaa41a780490c791492c41144c774c04875af1",
        "2407390bd20de38740eef87eab4fe3d1deafdbdd"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Oct 12 15:50:02 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Oct 12 15:50:02 2008 +0200"
      },
      "message": "Merge branches \u0027x86/xen\u0027, \u0027x86/build\u0027, \u0027x86/microcode\u0027, \u0027x86/mm-debug-v2\u0027, \u0027x86/memory-corruption-check\u0027, \u0027x86/early-printk\u0027, \u0027x86/xsave\u0027, \u0027x86/ptrace-v2\u0027, \u0027x86/quirks\u0027, \u0027x86/setup\u0027, \u0027x86/spinlocks\u0027 and \u0027x86/signal\u0027 into x86/core-v2\n"
    },
    {
      "commit": "ec8deffa33757286ba59e71d3d98173c37638b37",
      "tree": "2a176fd94d4665fe3c03f6e9f09dda8060fdb4a7",
      "parents": [
        "7cc4e87f912bbefa440a51856b8d076e5d1f554a",
        "3dd392a407d15250a501fa109cc1f93fee95ef85"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Oct 11 10:59:00 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Oct 11 11:02:56 2008 -0700"
      },
      "message": "Merge phase #2 (PAT updates) of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027x86-v28-for-linus-phase2-B\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (27 commits)\n  x86, cpa: make the kernel physical mapping initialization a two pass sequence, fix\n  x86, pat: cleanups\n  x86: fix pagetable init 64-bit breakage\n  x86: track memtype for RAM in page struct\n  x86, cpa: srlz cpa(), global flush tlb after splitting big page and before doing cpa\n  x86, cpa: remove cpa pool code\n  x86, cpa: no need to check alias for __set_pages_p/__set_pages_np\n  x86, cpa: dont use large pages for kernel identity mapping with DEBUG_PAGEALLOC\n  x86, cpa: make the kernel physical mapping initialization a two pass sequence\n  x86, cpa: remove USER permission from the very early identity mapping attribute\n  x86, cpa: rename PTE attribute macros for kernel direct mapping in early boot\n  x86: make sure the CPA test code\u0027s use of _PAGE_UNUSED1 is obvious\n  linux-next: fix x86 tree build failure\n  x86: have set_memory_array_{uc,wb} coalesce memtypes, fix\n  agp: enable optimized agp_alloc_pages methods\n  x86: have set_memory_array_{uc,wb} coalesce memtypes.\n  x86: {reverve,free}_memtype() take a physical address\n  x86: fix pageattr-test\n  agp: add agp_generic_destroy_pages()\n  agp: generic_alloc_pages()\n  ...\n"
    },
    {
      "commit": "e26feff647ef34423b048b940540a0059001ddb0",
      "tree": "acafe68602ee2f6f1a438c113073ffcc0040e949",
      "parents": [
        "d403a6484f0341bf0624d17ece46f24f741b6a92",
        "b911e473d24633c19414b54b82b9ff0b1a2419d7"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 10 10:52:45 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 10 10:52:45 2008 -0700"
      },
      "message": "Merge branch \u0027for-2.6.28\u0027 of git://git.kernel.dk/linux-2.6-block\n\n* \u0027for-2.6.28\u0027 of git://git.kernel.dk/linux-2.6-block: (132 commits)\n  doc/cdrom: Trvial documentation error, file not present\n  block_dev: fix kernel-doc in new functions\n  block: add some comments around the bio read-write flags\n  block: mark bio_split_pool static\n  block: Find bio sector offset given idx and offset\n  block: gendisk integrity wrapper\n  block: Switch blk_integrity_compare from bdev to gendisk\n  block: Fix double put in blk_integrity_unregister\n  block: Introduce integrity data ownership flag\n  block: revert part of d7533ad0e132f92e75c1b2eb7c26387b25a583c1\n  bio.h: Remove unused conditional code\n  block: remove end_{queued|dequeued}_request()\n  block: change elevator to use __blk_end_request()\n  gdrom: change to use __blk_end_request()\n  memstick: change to use __blk_end_request()\n  virtio_blk: change to use __blk_end_request()\n  blktrace: use BLKTRACE_BDEV_SIZE as the name size for setup structure\n  block: add lld busy state exporting interface\n  block: Fix blk_start_queueing() to not kick a stopped queue\n  include blktrace_api.h in headers_install\n  ...\n"
    },
    {
      "commit": "3dd392a407d15250a501fa109cc1f93fee95ef85",
      "tree": "c1faca3fa8bd0f7c8790b3e0887229b4a5a90e8b",
      "parents": [
        "b27a43c1e90582facad44de67d02bc9e9f900289",
        "d403a6484f0341bf0624d17ece46f24f741b6a92"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Oct 10 19:30:08 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Oct 10 19:30:08 2008 +0200"
      },
      "message": "Merge branch \u0027linus\u0027 into x86/pat2\n\nConflicts:\n\tarch/x86/mm/init_64.c\n"
    },
    {
      "commit": "70096a561d1e09120bae1f293f3632cedbfd5c68",
      "tree": "6c5f7474089ceeff06aa515a5b39cb38e7318efe",
      "parents": [
        "69849375d6b13e94d08cdc94b49b11fbab454a0e"
      ],
      "author": {
        "name": "Matt Mackall",
        "email": "mpm@selenic.com",
        "time": "Wed Oct 08 14:51:57 2008 -0500"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 09 12:18:27 2008 -0700"
      },
      "message": "SLOB: fix bogus ksize calculation fix\n\nThis fixes the previous fix, which was completely wrong on closer\ninspection. This version has been manually tested with a user-space\ntest harness and generates sane values. A nearly identical patch has\nbeen boot-tested.\n\nThe problem arose from changing how kmalloc/kfree handled alignment\npadding without updating ksize to match. This brings it in sync.\n\nSigned-off-by: Matt Mackall \u003cmpm@selenic.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "36144077bce9f89763ce994bc631cbd1c9db7785",
      "tree": "ccc8ccff5edd75d99d2a1b8c35f3956e2f5b288e",
      "parents": [
        "051cc3952a8fb6fa875a4eff68d06cf42207dcf4"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Aug 14 13:12:15 2008 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 09 08:56:01 2008 +0200"
      },
      "message": "highmem: use bio_has_data() in the bounce path\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "85ba94ba0592296053f7f2846812173424afe1cb",
      "tree": "08b988ee8ebae30f31830801a44a62e0eec4856e",
      "parents": [
        "e09e6e2b6a5daf653794926ab50a784b14b6de53"
      ],
      "author": {
        "name": "Matt Mackall",
        "email": "mpm@selenic.com",
        "time": "Tue Oct 07 11:37:35 2008 -0500"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 07 11:19:23 2008 -0700"
      },
      "message": "SLOB: fix bogus ksize calculation\n\nSLOB\u0027s ksize calculation was braindamaged and generally harmlessly\nunderreported the allocation size. But for very small buffers, it could\nin fact overreport them, leading code depending on krealloc to overrun\nthe allocation and trample other data.\n\nSigned-off-by: Matt Mackall \u003cmpm@selenic.com\u003e\nTested-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6babc32c41e3642d875372cb6afbd9ade7a9f311",
      "tree": "e37e7c5a1d73c5c1f64ec06229cd94b85ccf3b16",
      "parents": [
        "4b19de6d1cb07c8bcb6778e771f9cfd5bcfdfd3e"
      ],
      "author": {
        "name": "Andy Whitcroft",
        "email": "apw@shadowen.org",
        "time": "Thu Oct 02 14:50:18 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 02 15:53:13 2008 -0700"
      },
      "message": "mm: handle initialising compound pages at orders greater than MAX_ORDER\n\nWhen we initialise a compound page we initialise the page flags and head\npage pointer for all base pages spanned by that page.  When we initialise\na gigantic page (a page of order greater than or equal to MAX_ORDER) we\nhave to initialise more than MAX_ORDER_NR_PAGES pages.  Currently we\nassume that all elements of the mem_map in this page are contigious in\nmemory.  However this is only guarenteed out to MAX_ORDER_NR_PAGES pages,\nand with SPARSEMEM enabled they will not be contigious.  This leads us to\nwalk off the end of the first section and scribble on everything which\nfollows, BAD.\n\nWhen we reach a MAX_ORDER_NR_PAGES boundary we much locate the next\nsection of the mem_map.  As gigantic pages can only be maximally aligned\nwe know this will occur at exact multiple of MAX_ORDER_NR_PAGES pages from\nthe start of the page.\n\nThis is a bug fix for the gigantic page support in hugetlbfs.\n\nCredit to Mel Gorman for spotting the issue.\n\nSigned-off-by: Andy Whitcroft \u003capw@shadowen.org\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Jon Tollefson \u003ckniht@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": "4b19de6d1cb07c8bcb6778e771f9cfd5bcfdfd3e",
      "tree": "3c570060d915cb1e140fbdbbfb4a9efde26a37ff",
      "parents": [
        "6c1b7f680dd4f550fa6f91f148cc6fa2c4bd0737"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Thu Oct 02 14:50:16 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 02 15:53:13 2008 -0700"
      },
      "message": "mm: tiny-shmem nommu fix\n\nThe previous patch db203d53d474aa068984e409d807628f5841da1b (\"mm:\ntiny-shmem fix lock ordering: mmap_sem vs i_mutex\") to fix the lock\nordering in tiny-shmem breaks shared anonymous and IPC memory on NOMMU\narchitectures because it was using the expanding truncate to signal ramfs\nto allocate a physically contiguous RAM backing the inode (otherwise it is\nunusable for \"memory mapping\" it to userspace).\n\nHowever do_truncate is what caused the lock ordering error, due to it\ntaking i_mutex.  In this case, we can actually just call ramfs directly to\nallocate memory for the mapping, rather than go via truncate.\n\nAcked-by: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Matt Mackall \u003cmpm@selenic.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6c1b7f680dd4f550fa6f91f148cc6fa2c4bd0737",
      "tree": "948651742b6fcff5079d555173b60584afb7682d",
      "parents": [
        "aa94fbd5ccd840c8ab26d02439ec799b03a72547"
      ],
      "author": {
        "name": "Gerald Schaefer",
        "email": "gerald.schaefer@de.ibm.com",
        "time": "Thu Oct 02 14:50:16 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 02 15:53:13 2008 -0700"
      },
      "message": "memory hotplug: missing zone-\u003elock in test_pages_isolated()\n\n__test_page_isolated_in_pageblock() in mm/page_isolation.c has a comment\nsaying that the caller must hold zone-\u003elock. But the only caller of that\nfunction, test_pages_isolated(), does not hold zone-\u003elock and the lock is\nalso not acquired anywhere before. This patch adds the missing zone-\u003elock\nto test_pages_isolated().\n\nWe reproducibly run into BUG_ON(!PageBuddy(page)) in __offline_isolated_pages()\nduring memory hotplug stress test, see trace below. This patch fixes that\nproblem, it would be good if we could have it in 2.6.27.\n\nkernel BUG at /home/autobuild/BUILD/linux-2.6.26-20080909/mm/page_alloc.c:4561!\nillegal operation: 0001 [#1] PREEMPT SMP\nModules linked in: dm_multipath sunrpc bonding qeth_l3 dm_mod qeth ccwgroup vmur\nCPU: 1 Not tainted 2.6.26-29.x.20080909-s390default #1\nProcess memory_loop_all (pid: 10025, task: 2f444028, ksp: 2b10dd28)\nKrnl PSW : 040c0000 801727ea (__offline_isolated_pages+0x18e/0x1c4)\n R:0 T:1 IO:0 EX:0 Key:0 M:1 W:0 P:0 AS:0 CC:0 PM:0\nKrnl GPRS: 00000000 7e27fc00 00000000 7e27fc00\n 00000000 00000400 00014000 7e27fc01\n 00606f00 7e27fc00 00013fe0 2b10dd28\n 00000005 80172662 801727b2 2b10dd28\nKrnl Code: 801727de: 5810900c l %r1,12(%r9)\n 801727e2: a7f4ffb3 brc 15,80172748\n 801727e6: a7f40001 brc 15,801727e8\n \u003e801727ea: a7f4ffbc brc 15,80172762\n 801727ee: a7f40001 brc 15,801727f0\n 801727f2: a7f4ffaf brc 15,80172750\n 801727f6: 0707 bcr 0,%r7\n 801727f8: 0017 unknown\nCall Trace:\n([\u003c0000000000172772\u003e] __offline_isolated_pages+0x116/0x1c4)\n [\u003c00000000001953a2\u003e] offline_isolated_pages_cb+0x22/0x34\n [\u003c000000000013164c\u003e] walk_memory_resource+0xcc/0x11c\n [\u003c000000000019520e\u003e] offline_pages+0x36a/0x498\n [\u003c00000000001004d6\u003e] remove_memory+0x36/0x44\n [\u003c000000000028fb06\u003e] memory_block_change_state+0x112/0x150\n [\u003c000000000028ffb8\u003e] store_mem_state+0x90/0xe4\n [\u003c0000000000289c00\u003e] sysdev_store+0x34/0x40\n [\u003c00000000001ee048\u003e] sysfs_write_file+0xd0/0x178\n [\u003c000000000019b1a8\u003e] vfs_write+0x74/0x118\n [\u003c000000000019b9ae\u003e] sys_write+0x46/0x7c\n [\u003c000000000011160e\u003e] sysc_do_restart+0x12/0x16\n [\u003c0000000077f3e8ca\u003e] 0x77f3e8ca\n\nSigned-off-by: Gerald Schaefer \u003cgerald.schaefer@de.ibm.com\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "31a78f23bac0069004e69f98808b6988baccb6b6",
      "tree": "edca8cffb4682de6be2e79b0b8d381dbb1b70964",
      "parents": [
        "bf5cb66447e7d9f7f111c1d0ebb6d7c90ec24b4d"
      ],
      "author": {
        "name": "Balbir Singh",
        "email": "balbir@linux.vnet.ibm.com",
        "time": "Sun Sep 28 23:09:31 2008 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Sep 29 08:41:47 2008 -0700"
      },
      "message": "mm owner: fix race between swapoff and exit\n\nThere\u0027s a race between mm-\u003eowner assignment and swapoff, more easily\nseen when task slab poisoning is turned on.  The condition occurs when\ntry_to_unuse() runs in parallel with an exiting task.  A similar race\ncan occur with callers of get_task_mm(), such as /proc/\u003cpid\u003e/\u003cmmstats\u003e\nor ptrace or page migration.\n\nCPU0                                    CPU1\n                                        try_to_unuse\n                                        looks at mm \u003d task0-\u003emm\n                                        increments mm-\u003emm_users\ntask 0 exits\nmm-\u003eowner needs to be updated, but no\nnew owner is found (mm_users \u003e 1, but\nno other task has task-\u003emm \u003d task0-\u003emm)\nmm_update_next_owner() leaves\n                                        mmput(mm) decrements mm-\u003emm_users\ntask0 freed\n                                        dereferencing mm-\u003eowner fails\n\nThe fix is to notify the subsystem via mm_owner_changed callback(),\nif no new owner is found, by specifying the new task as NULL.\n\nJiri Slaby:\nmm-\u003eowner was set to NULL prior to calling cgroup_mm_owner_callbacks(), but\nmust be set after that, so as not to pass NULL as old owner causing oops.\n\nDaisuke Nishimura:\nmm_update_next_owner() may set mm-\u003eowner to NULL, but mem_cgroup_from_task()\nand its callers need to take account of this situation to avoid oops.\n\nHugh Dickins:\nLockdep warning and hang below exec_mmap() when testing these patches.\nexit_mm() up_reads mmap_sem before calling mm_update_next_owner(),\nso exec_mmap() now needs to do the same.  And with that repositioning,\nthere\u0027s now no point in mm_need_new_owner() allowing for NULL mm.\n\nReported-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nSigned-off-by: Jiri Slaby \u003cjirislaby@gmail.com\u003e\nSigned-off-by: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a10cebf56ca7e7c034d1b6646230c6553e478967",
      "tree": "80f92bd693b7a6079be2814b01c14649b5f82217",
      "parents": [
        "b4d19cc84e8e6838f4aa0b26b3afcdc8c7f71505"
      ],
      "author": {
        "name": "Daisuke Nishimura",
        "email": "nishimura@mxp.nes.nec.co.jp",
        "time": "Mon Sep 22 13:57:52 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 23 08:09:14 2008 -0700"
      },
      "message": "memcg: check under limit at shrink_usage\n\nCurrent memory cgroup(both in mainline and -mm) doesn\u0027t account swap\ncaches as memory(swap cache support is dropped temporarily now).\n\nSo try_to_free_mem_cgroup_pages doesn\u0027t reflect the count of pages that\nhave been moved to swap cache.\n\nBut this makes mem_cgroup_shrink_usage fail easily if most of the pages\nare anon/shmem, and then shmem_getpage returns -ENOMEM and the process\nwill be killed.\n\nThis patch adds res_counter_check_under_limit to avoid these cases.\n\nBTW, even if swap cache support is enabled again, if a process is moved to\nanother cgroup, which has been just made, between precharge and\nshrink_usage in shmem_getpage, shrink_usage may fail just because there is\nno pages to reclaim.\n\nSo this change would make sense anyway.\n\nSigned-off-by: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    }
  ],
  "next": "db203d53d474aa068984e409d807628f5841da1b"
}
