)]}'
{
  "log": [
    {
      "commit": "78539fdfa4c21308e90c596f060df8114483862a",
      "tree": "475535625cb750317314ac4eda93c4f6fe57d4d9",
      "parents": [
        "f6d6d4fcd180f8e47bf6b13fc6cce1e6c156d0ea"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@sgi.com",
        "time": "Wed Jan 11 20:47:41 2006 +1100"
      },
      "committer": {
        "name": "Nathan Scott",
        "email": "nathans@sgi.com",
        "time": "Wed Jan 11 20:47:41 2006 +1100"
      },
      "message": "[XFS] Export pagevec_lookup for use on the XFS page writeout path,\nfor dealing with delayed allocate and unwritten extents (as well).\n\nSigned-off-by: Christoph Hellwig \u003chch@sgi.com\u003e\nSigned-off-by: Nathan Scott \u003cnathans@sgi.com\u003e\n"
    },
    {
      "commit": "870f481793b585323fbda3e87c54efc116f46351",
      "tree": "08dce269f14c18ae1b1682d3cb0f149b938d40bb",
      "parents": [
        "3542c6e18f6470bad2bde1e94331e4f488a8d3f1"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Mon Jan 09 20:52:01 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jan 10 08:01:30 2006 -0800"
      },
      "message": "[PATCH] replace inode_update_time with file_update_time\n\nTo allow various options to work per-mount instead of per-sb we need a\nstruct vfsmount when updating ctime and mtime.  This preparation patch\nreplaces the inode_update_time routine with a file_update_atime routine so\nwe can easily get at the vfsmount.  (and the file makes more sense in this\ncontext anyway).  Also get rid of the unused second argument - we always\nwant to update the ctime when calling this routine.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Al Viro \u003cviro@ftp.linux.org.uk\u003e\nCc: Anton Altaparmakov \u003caia21@cantab.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "1b1dcc1b57a49136f118a0f16367256ff9994a69",
      "tree": "b0b36d4f41d28c9d6514fb309d33c1a084d6309b",
      "parents": [
        "794ee1baee1c26be40410233e6c20bceb2b03c08"
      ],
      "author": {
        "name": "Jes Sorensen",
        "email": "jes@sgi.com",
        "time": "Mon Jan 09 15:59:24 2006 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@hera.kernel.org",
        "time": "Mon Jan 09 15:59:24 2006 -0800"
      },
      "message": "[PATCH] mutex subsystem, semaphore to mutex: VFS, -\u003ei_sem\n\nThis patch converts the inode semaphore to a mutex. I have tested it on\nXFS and compiled as much as one can consider on an ia64. Anyway your\nluck with it might be different.\n\nModified-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n\n(finished the conversion)\n\nSigned-off-by: Jes Sorensen \u003cjes@sgi.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "de5097c2e73f826302cd8957c225b3725e0c7553",
      "tree": "3d56ab6fd891088ac55a9ef529faf4360391a22f",
      "parents": [
        "408894ee4dd4debfdedd472eb4d8414892fc90f6"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jan 09 15:59:21 2006 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@hera.kernel.org",
        "time": "Mon Jan 09 15:59:21 2006 -0800"
      },
      "message": "[PATCH] mutex subsystem, more debugging code\n\nmore mutex debugging: check for held locks during memory freeing,\ntask exit, enable sysrq printouts, etc.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Arjan van de Ven \u003carjan@infradead.org\u003e\n"
    },
    {
      "commit": "6150c32589d1976ca8a5c987df951088c05a7542",
      "tree": "94073696576323ff966e365d8c47b8ecd8372f97",
      "parents": [
        "44637a12f80b80157d9c1bc5b7d6ef09c9e05713",
        "be42d5fa3772241b8ecebd443f1fb36247959c54"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jan 09 10:03:44 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jan 09 10:03:44 2006 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc-merge\n"
    },
    {
      "commit": "87ba81dba431232548ce29d5d224115d0c2355ac",
      "tree": "d836d85ff9bfe404adf3975d4a2c8ee135f9392e",
      "parents": [
        "99aef427e206f4ae7dcf0b18f66416145fea5d20"
      ],
      "author": {
        "name": "Valentine Barshak",
        "email": "vbarshak@ru.mvista.com",
        "time": "Sun Jan 08 01:03:44 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jan 08 20:14:00 2006 -0800"
      },
      "message": "[PATCH] fadvise: return ESPIPE on FIFO/pipe\n\nThe patch makes posix_fadvise return ESPIPE on FIFO/pipe in order to be\nfully POSIX-compliant.\n\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "28fd129827b00e12829d48a5290f46277600619b",
      "tree": "38e50e1b88965fec41ea5b36aa557fb5c2b1ca73",
      "parents": [
        "05eb0b51fb46430050d5873458612f53e0234f2e"
      ],
      "author": {
        "name": "OGAWA Hirofumi",
        "email": "hirofumi@mail.parknet.co.jp",
        "time": "Sun Jan 08 01:02:14 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jan 08 20:13:47 2006 -0800"
      },
      "message": "[PATCH] Fix and add EXPORT_SYMBOL(filemap_write_and_wait)\n\nThis patch add EXPORT_SYMBOL(filemap_write_and_wait) and use it.\n\nSee mm/filemap.c:\n\nAnd changes the filemap_write_and_wait() and filemap_write_and_wait_range().\n\nCurrent filemap_write_and_wait() doesn\u0027t wait if filemap_fdatawrite()\nreturns error.  However, even if filemap_fdatawrite() returned an\nerror, it may have submitted the partially data pages to the device.\n(e.g. in the case of -ENOSPC)\n\n\u003cquotation\u003e\nAndrew Morton writes,\n\nIf filemap_fdatawrite() returns an error, this might be due to some\nI/O problem: dead disk, unplugged cable, etc.  Given the generally\ncrappy quality of the kernel\u0027s handling of such exceptions, there\u0027s a\ngood chance that the filemap_fdatawait() will get stuck in D state\nforever.\n\u003c/quotation\u003e\n\nSo, this patch doesn\u0027t wait if filemap_fdatawrite() returns the -EIO.\n\nTrond, could you please review the nfs part?  Especially I\u0027m not sure,\nnfs must use the \"filemap_fdatawrite(inode-\u003ei_mapping) \u003d\u003d 0\", or not.\n\nAcked-by: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "268fc16e343b4f8e249468747db2e658da46a814",
      "tree": "871a1b1ad8250d1f5b0e4585fe32d00f90443bd3",
      "parents": [
        "e5174baaea7585760f02eef23b225847d209a8db"
      ],
      "author": {
        "name": "OGAWA Hirofumi",
        "email": "hirofumi@mail.parknet.co.jp",
        "time": "Sun Jan 08 01:02:12 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jan 08 20:13:47 2006 -0800"
      },
      "message": "[PATCH] export/change sync_page_range/_nolock()\n\nThis exports/changes the sync_page_range/_nolock().  The fatfs needs\nsync_page_range/_nolock() for expanding truncate, and changes \"size_t count\"\nto \"loff_t count\".\n\nSigned-off-by: OGAWA Hirofumi \u003chirofumi@mail.parknet.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "4225399a66b315d4d1fb1cb61b75dda201c832e3",
      "tree": "c8bd976bc6590c5fe859c6129abb93072d99cfa8",
      "parents": [
        "202f72d5d1b5c2c084f63ef996c736d208b447b5"
      ],
      "author": {
        "name": "Paul Jackson",
        "email": "pj@sgi.com",
        "time": "Sun Jan 08 01:01:59 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jan 08 20:13:44 2006 -0800"
      },
      "message": "[PATCH] cpuset: rebind vma mempolicies fix\n\nFix more of longstanding bug in cpuset/mempolicy interaction.\n\nNUMA mempolicies (mm/mempolicy.c) are constrained by the current tasks cpuset\nto just the Memory Nodes allowed by that cpuset.  The kernel maintains\ninternal state for each mempolicy, tracking what nodes are used for the\nMPOL_INTERLEAVE, MPOL_BIND or MPOL_PREFERRED policies.\n\nWhen a tasks cpuset memory placement changes, whether because the cpuset\nchanged, or because the task was attached to a different cpuset, then the\ntasks mempolicies have to be rebound to the new cpuset placement, so as to\npreserve the cpuset-relative numbering of the nodes in that policy.\n\nAn earlier fix handled such mempolicy rebinding for mempolicies attached to a\ntask.\n\nThis fix rebinds mempolicies attached to vma\u0027s (address ranges in a tasks\naddress space.) Due to the need to hold the task-\u003emm-\u003emmap_sem semaphore while\nupdating vma\u0027s, the rebinding of vma mempolicies has to be done when the\ncpuset memory placement is changed, at which time mmap_sem can be safely\nacquired.  The tasks mempolicy is rebound later, when the task next attempts\nto allocate memory and notices that its task-\u003ecpuset_mems_generation is\nout-of-date with its cpusets mems_generation.\n\nBecause walking the tasklist to find all tasks attached to a changing cpuset\nrequires holding tasklist_lock, a spinlock, one cannot update the vma\u0027s of the\naffected tasks while doing the tasklist scan.  In general, one cannot acquire\na semaphore (which can sleep) while already holding a spinlock (such as\ntasklist_lock).  So a list of mm references has to be built up during the\ntasklist scan, then the tasklist lock dropped, then for each mm, its mmap_sem\nacquired, and the vma\u0027s in that mm rebound.\n\nOnce the tasklist lock is dropped, affected tasks may fork new tasks, before\ntheir mm\u0027s are rebound.  A kernel global \u0027cpuset_being_rebound\u0027 is set to\npoint to the cpuset being rebound (there can only be one; cpuset modifications\nare done under a global \u0027manage_sem\u0027 semaphore), and the mpol_copy code that\nis used to copy a tasks mempolicies during fork catches such forking tasks,\nand ensures their children are also rebound.\n\nWhen a task is moved to a different cpuset, it is easier, as there is only one\ntask involved.  It\u0027s mm-\u003evma\u0027s are scanned, using the same\nmpol_rebind_policy() as used above.\n\nIt may happen that both the mpol_copy hook and the update done via the\ntasklist scan update the same mm twice.  This is ok, as the mempolicies of\neach vma in an mm keep track of what mems_allowed they are relative to, and\nsafely no-op a second request to rebind to the same nodes.\n\nSigned-off-by: Paul Jackson \u003cpj@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "74cb21553f4bf244185b9bec4c26e4e3169ad55e",
      "tree": "3f8f13e8dacc8f0876b01f62765a123ce1722b17",
      "parents": [
        "909d75a3b77bdd8baa9429bad3b69a654d2954ce"
      ],
      "author": {
        "name": "Paul Jackson",
        "email": "pj@sgi.com",
        "time": "Sun Jan 08 01:01:56 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jan 08 20:13:44 2006 -0800"
      },
      "message": "[PATCH] cpuset: numa_policy_rebind cleanup\n\nCleanup, reorganize and make more robust the mempolicy.c code to rebind\nmempolicies relative to the containing cpuset after a tasks memory placement\nchanges.\n\nThe real motivator for this cleanup patch is to lay more groundwork for the\nupcoming patch to correctly rebind NUMA mempolicies that are attached to vma\u0027s\nafter the containing cpuset memory placement changes.\n\nNUMA mempolicies are constrained by the cpuset their task is a member of.\nWhen either (1) a task is moved to a different cpuset, or (2) the \u0027mems\u0027\nmems_allowed of a cpuset is changed, then the NUMA mempolicies have embedded\nnode numbers (for MPOL_BIND, MPOL_INTERLEAVE and MPOL_PREFERRED) that need to\nbe recalculated, relative to their new cpuset placement.\n\nThe old code used an unreliable method of determining what was the old\nmems_allowed constraining the mempolicy.  It just looked at the tasks\nmems_allowed value.  This sort of worked with the present code, that just\nrebinds the -task- mempolicy, and leaves any -vma- mempolicies broken,\nreferring to the old nodes.  But in an upcoming patch, the vma mempolicies\nwill be rebound as well.  Then the order in which the various task and vma\nmempolicies are updated will no longer be deterministic, and one can no longer\ncount on the task-\u003emems_allowed holding the old value for as long as needed.\nIt\u0027s not even clear if the current code was guaranteed to work reliably for\ntask mempolicies.\n\nSo I added a mems_allowed field to each mempolicy, stating exactly what\nmems_allowed the policy is relative to, and updated synchronously and reliably\nanytime that the mempolicy is rebound.\n\nAlso removed a useless wrapper routine, numa_policy_rebind(), and had its\ncaller, cpuset_update_task_memory_state(), call directly to the rewritten\npolicy_rebind() routine, and made that rebind routine extern instead of\nstatic, and added a \"mpol_\" prefix to its name, making it\nmpol_rebind_policy().\n\nSigned-off-by: Paul Jackson \u003cpj@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "909d75a3b77bdd8baa9429bad3b69a654d2954ce",
      "tree": "f9955ff697b7569fc75e5b8683d886315f34ac49",
      "parents": [
        "cf2a473c4089aa41c26f653200673f5a4cc25047"
      ],
      "author": {
        "name": "Paul Jackson",
        "email": "pj@sgi.com",
        "time": "Sun Jan 08 01:01:55 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jan 08 20:13:44 2006 -0800"
      },
      "message": "[PATCH] cpuset: implement cpuset_mems_allowed\n\nProvide a cpuset_mems_allowed() method, which the sys_migrate_pages() code\nneeded, to obtain the mems_allowed vector of a cpuset, and replaced the\nworkaround in sys_migrate_pages() to call this new method.\n\nSigned-off-by: Paul Jackson \u003cpj@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "cf2a473c4089aa41c26f653200673f5a4cc25047",
      "tree": "0bce21f4684a382b13e93ba5b85409cf5eab1c2c",
      "parents": [
        "b4b2641843db124637fa3d2cb2101982035dcc82"
      ],
      "author": {
        "name": "Paul Jackson",
        "email": "pj@sgi.com",
        "time": "Sun Jan 08 01:01:54 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jan 08 20:13:43 2006 -0800"
      },
      "message": "[PATCH] cpuset: combine refresh_mems and update_mems\n\nThe important code paths through alloc_pages_current() and alloc_page_vma(),\nby which most kernel page allocations go, both called\ncpuset_update_current_mems_allowed(), which in turn called refresh_mems().\n-Both- of these latter two routines did a tasklock, got the tasks cpuset\npointer, and checked for out of date cpuset-\u003emems_generation.\n\nThat was a silly duplication of code and waste of CPU cycles on an important\ncode path.\n\nConsolidated those two routines into a single routine, called\ncpuset_update_task_memory_state(), since it updates more than just\nmems_allowed.\n\nChanged all callers of either routine to call the new consolidated routine.\n\nSigned-off-by: Paul Jackson \u003cpj@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "3e0d98b9f1eb757fc98efc84e74e54a08308aa73",
      "tree": "7cf1c75994f734ede7ec89373de640c4a58b237a",
      "parents": [
        "5966514db662fb24c9bb43226a80106bcffd51f8"
      ],
      "author": {
        "name": "Paul Jackson",
        "email": "pj@sgi.com",
        "time": "Sun Jan 08 01:01:49 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jan 08 20:13:42 2006 -0800"
      },
      "message": "[PATCH] cpuset: memory pressure meter\n\nProvide a simple per-cpuset metric of memory pressure, tracking the -rate-\nthat the tasks in a cpuset call try_to_free_pages(), the synchronous\n(direct) memory reclaim code.\n\nThis enables batch managers monitoring jobs running in dedicated cpusets to\nefficiently detect what level of memory pressure that job is causing.\n\nThis is useful both on tightly managed systems running a wide mix of\nsubmitted jobs, which may choose to terminate or reprioritize jobs that are\ntrying to use more memory than allowed on the nodes assigned them, and with\ntightly coupled, long running, massively parallel scientific computing jobs\nthat will dramatically fail to meet required performance goals if they\nstart to use more memory than allowed to them.\n\nThis patch just provides a very economical way for the batch manager to\nmonitor a cpuset for signs of memory pressure.  It\u0027s up to the batch\nmanager or other user code to decide what to do about it and take action.\n\n\u003d\u003d\u003e Unless this feature is enabled by writing \"1\" to the special file\n    /dev/cpuset/memory_pressure_enabled, the hook in the rebalance\n    code of __alloc_pages() for this metric reduces to simply noticing\n    that the cpuset_memory_pressure_enabled flag is zero.  So only\n    systems that enable this feature will compute the metric.\n\nWhy a per-cpuset, running average:\n\n    Because this meter is per-cpuset, rather than per-task or mm, the\n    system load imposed by a batch scheduler monitoring this metric is\n    sharply reduced on large systems, because a scan of the tasklist can be\n    avoided on each set of queries.\n\n    Because this meter is a running average, instead of an accumulating\n    counter, a batch scheduler can detect memory pressure with a single\n    read, instead of having to read and accumulate results for a period of\n    time.\n\n    Because this meter is per-cpuset rather than per-task or mm, the\n    batch scheduler can obtain the key information, memory pressure in a\n    cpuset, with a single read, rather than having to query and accumulate\n    results over all the (dynamically changing) set of tasks in the cpuset.\n\nA per-cpuset simple digital filter (requires a spinlock and 3 words of data\nper-cpuset) is kept, and updated by any task attached to that cpuset, if it\nenters the synchronous (direct) page reclaim code.\n\nA per-cpuset file provides an integer number representing the recent\n(half-life of 10 seconds) rate of direct page reclaims caused by the tasks\nin the cpuset, in units of reclaims attempted per second, times 1000.\n\nSigned-off-by: Paul Jackson \u003cpj@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "5966514db662fb24c9bb43226a80106bcffd51f8",
      "tree": "9c6d8f4f6fee0d6574de7e225141d37b28811dc3",
      "parents": [
        "96b7f34143c2c823a6a750fcb758fc66c44945d2"
      ],
      "author": {
        "name": "Paul Jackson",
        "email": "pj@sgi.com",
        "time": "Sun Jan 08 01:01:47 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jan 08 20:13:42 2006 -0800"
      },
      "message": "[PATCH] cpuset: mempolicy one more nodemask conversion\n\nFinish converting mm/mempolicy.c from bitmaps to nodemasks.  The previous\nconversion had left one routine using bitmaps, since it involved a\ncorresponding change to kernel/cpuset.c\n\nFix that interface by replacing with a simple macro that calls nodes_subset(),\nor if !CONFIG_CPUSET, returns (1).\n\nSigned-off-by: Paul Jackson \u003cpj@sgi.com\u003e\nCc: Christoph Lameter \u003cchristoph@lameter.com\u003e\nCc: Andi Kleen \u003cak@muc.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "10cef6029502915bdb3cf0821d425cf9dc30c817",
      "tree": "2c9dfef95d58b64dcf4cdf3c32b18164928b438e",
      "parents": [
        "30992c97ae9d01b17374fbfab76a869fb4bba500"
      ],
      "author": {
        "name": "Matt Mackall",
        "email": "mpm@selenic.com",
        "time": "Sun Jan 08 01:01:45 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jan 08 20:13:41 2006 -0800"
      },
      "message": "[PATCH] slob: introduce the SLOB allocator\n\nconfigurable replacement for slab allocator\n\nThis adds a CONFIG_SLAB option under CONFIG_EMBEDDED.  When CONFIG_SLAB is\ndisabled, the kernel falls back to using the \u0027SLOB\u0027 allocator.\n\nSLOB is a traditional K\u0026R/UNIX allocator with a SLAB emulation layer,\nsimilar to the original Linux kmalloc allocator that SLAB replaced.  It\u0027s\nsignicantly smaller code and is more memory efficient.  But like all\nsimilar allocators, it scales poorly and suffers from fragmentation more\nthan SLAB, so it\u0027s only appropriate for small systems.\n\nIt\u0027s been tested extensively in the Linux-tiny tree.  I\u0027ve also\nstress-tested it with make -j 8 compiles on a 3G SMP+PREEMPT box (not\nrecommended).\n\nHere\u0027s a comparison for otherwise identical builds, showing SLOB saving\nnearly half a megabyte of RAM:\n\n$ size vmlinux*\n   text    data     bss     dec     hex filename\n3336372  529360  190812 4056544  3de5e0 vmlinux-slab\n3323208  527948  190684 4041840  3dac70 vmlinux-slob\n\n$ size mm/{slab,slob}.o\n   text    data     bss     dec     hex filename\n  13221     752      48   14021    36c5 mm/slab.o\n   1896      52       8    1956     7a4 mm/slob.o\n\n/proc/meminfo:\n                  SLAB          SLOB      delta\nMemTotal:        27964 kB      27980 kB     +16 kB\nMemFree:         24596 kB      25092 kB    +496 kB\nBuffers:            36 kB         36 kB       0 kB\nCached:           1188 kB       1188 kB       0 kB\nSwapCached:          0 kB          0 kB       0 kB\nActive:            608 kB        600 kB      -8 kB\nInactive:          808 kB        812 kB      +4 kB\nHighTotal:           0 kB          0 kB       0 kB\nHighFree:            0 kB          0 kB       0 kB\nLowTotal:        27964 kB      27980 kB     +16 kB\nLowFree:         24596 kB      25092 kB    +496 kB\nSwapTotal:           0 kB          0 kB       0 kB\nSwapFree:            0 kB          0 kB       0 kB\nDirty:               4 kB         12 kB      +8 kB\nWriteback:           0 kB          0 kB       0 kB\nMapped:            560 kB        556 kB      -4 kB\nSlab:             1756 kB          0 kB   -1756 kB\nCommitLimit:     13980 kB      13988 kB      +8 kB\nCommitted_AS:     4208 kB       4208 kB       0 kB\nPageTables:         28 kB         28 kB       0 kB\nVmallocTotal:  1007312 kB    1007312 kB       0 kB\nVmallocUsed:        48 kB         48 kB       0 kB\nVmallocChunk:  1007264 kB    1007264 kB       0 kB\n\n(this work has been sponsored in part by CELF)\n\nFrom: Ingo Molnar \u003cmingo@elte.hu\u003e\n\n   Fix 32-bitness bugs in mm/slob.c.\n\nSigned-off-by: Matt Mackall \u003cmpm@selenic.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "30992c97ae9d01b17374fbfab76a869fb4bba500",
      "tree": "b1ea66bec56fabd80571696d0b081423dcab2340",
      "parents": [
        "50dd26ba0947aa653f0e42897aad7a4adce4e620"
      ],
      "author": {
        "name": "Matt Mackall",
        "email": "mpm@selenic.com",
        "time": "Sun Jan 08 01:01:43 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jan 08 20:13:41 2006 -0800"
      },
      "message": "[PATCH] slob: introduce mm/util.c for shared functions\n\nAdd mm/util.c for functions common between SLAB and SLOB.\n\nSigned-off-by: Matt Mackall \u003cmpm@selenic.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "22fc6eccbf4ce4eb6265e6ada7b50a7b9cc57d05",
      "tree": "3887dc6f1eeb658d773be037971b98d6f5fb3dd7",
      "parents": [
        "6d524aed1f50b2b1d5b4ad5a4e2fe3f38106d0a6"
      ],
      "author": {
        "name": "Ravikiran G Thirumalai",
        "email": "kiran@scalex86.org",
        "time": "Sun Jan 08 01:01:27 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jan 08 20:13:38 2006 -0800"
      },
      "message": "[PATCH] Change maxaligned_in_smp alignemnt macros to internodealigned_in_smp macros\n\n____cacheline_maxaligned_in_smp is currently used to align critical structures\nand avoid false sharing.  It uses per-arch L1_CACHE_SHIFT_MAX and people find\nL1_CACHE_SHIFT_MAX useless.\n\nHowever, we have been using ____cacheline_maxaligned_in_smp to align\nstructures on the internode cacheline size.  As per Andi\u0027s suggestion,\nfollowing patch kills ____cacheline_maxaligned_in_smp and introduces\nINTERNODE_CACHE_SHIFT, which defaults to L1_CACHE_SHIFT for all arches.\nArches needing L3/Internode cacheline alignment can define\nINTERNODE_CACHE_SHIFT in the arch asm/cache.h.  Patch replaces\n____cacheline_maxaligned_in_smp with ____cacheline_internodealigned_in_smp\n\nWith this patch, L1_CACHE_SHIFT_MAX can be killed\n\nSigned-off-by: Ravikiran Thirumalai \u003ckiran@scalex86.org\u003e\nSigned-off-by: Shai Fultheim \u003cshai@scalex86.org\u003e\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "2f659f462d2ab519068d0e2bb677d7a700decb8d",
      "tree": "de65a0b6151880ef5d0b06efd949e32629a2dfd5",
      "parents": [
        "6ce3c4c0ff62ca6391019b7832fb41a7f28b9e26"
      ],
      "author": {
        "name": "Kirill Korotaev",
        "email": "dev@sw.ru",
        "time": "Sun Jan 08 01:01:05 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jan 08 20:12:45 2006 -0800"
      },
      "message": "[PATCH] Optimise oom kill of current task\n\nWhen oom_killer kills current there\u0027s no need to call\nschedule_timeout_interruptible() since task must die ASAP.\n\nSigned-Off-By: Pavel Emelianov \u003cxemul@sw.ru\u003e\nSigned-Off-By: Kirill Korotaev \u003cdev@openvz.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "6ce3c4c0ff62ca6391019b7832fb41a7f28b9e26",
      "tree": "44801fafc41a45368de7a8e79306d57a04735f1d",
      "parents": [
        "48fce3429df84a94766fbbc845fa8450d0715b48"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Sun Jan 08 01:01:04 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jan 08 20:12:44 2006 -0800"
      },
      "message": "[PATCH] Move page migration related functions near do_migrate_pages()\n\nGroup page migration functions in mempolicy.c\n\nAdd a forward declaration for migrate_page_add (like gather_stats()) and use\nour new found mobility to group all page migration related function around\ndo_migrate_pages().\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: Andi Kleen \u003cak@muc.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "48fce3429df84a94766fbbc845fa8450d0715b48",
      "tree": "4458b95a0ef8a1896049415a0e3fc8a0e89d340a",
      "parents": [
        "132beacf9785d2e6e8aecb59aa078f3ca5668fa6"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Sun Jan 08 01:01:03 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jan 08 20:12:44 2006 -0800"
      },
      "message": "[PATCH] mempolicies: unexport get_vma_policy()\n\nSince the numa_maps functionality is now in mempolicy.c we no longer need to\nexport get_vma_policy().\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: Andi Kleen \u003cak@muc.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "132beacf9785d2e6e8aecb59aa078f3ca5668fa6",
      "tree": "7b1274279448e4fde20489b7572455ef93bc4c3d",
      "parents": [
        "1a75a6c825c17249ca49f050a872a04ce0997ce3"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@engr.sgi.com",
        "time": "Sun Jan 08 01:01:02 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jan 08 20:12:44 2006 -0800"
      },
      "message": "[PATCH] Drop page table lock before calling migrate_page_add()\n\nmigrate_page_add cannot be called with a spinlock held (calls\nisolate_lru_page which calles schedule_on_each_cpu).  Drop ptl lock in\ncheck_pte_range before calling migrate_page_add().\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "1a75a6c825c17249ca49f050a872a04ce0997ce3",
      "tree": "2ca8fc6513a20e5b4bec67686323ce1f5c8e237c",
      "parents": [
        "38e35860dbe6197a4b42eb6e8b47da940b7695dd"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Sun Jan 08 01:01:02 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jan 08 20:12:44 2006 -0800"
      },
      "message": "[PATCH] Fold numa_maps into mempolicies.c\n\nFirst discussed at http://marc.theaimsgroup.com/?t\u003d113149255100001\u0026r\u003d1\u0026w\u003d2\n\n- Use the check_range() in mempolicy.c to gather statistics.\n\n- Improve the numa_maps code in general and fix some comments.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: Andi Kleen \u003cak@muc.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "38e35860dbe6197a4b42eb6e8b47da940b7695dd",
      "tree": "2794681eb62c4bd84e186693df265c9f1a0b28f4",
      "parents": [
        "ef2bf0dc8675e14cf8cba3b7fb9f48d72640a70e"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Sun Jan 08 01:01:01 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jan 08 20:12:44 2006 -0800"
      },
      "message": "[PATCH] mempolicies: private pointer in check_range and MPOL_MF_INVERT\n\nThis was was first posted at\nhttp://marc.theaimsgroup.com/?l\u003dlinux-mm\u0026m\u003d113149240227584\u0026w\u003d2\n\n(Part of this functionality is also contained in the direct migration\npathset. The functionality here is more generic and independent of that\npatchset.)\n\n- Add internal flags MPOL_MF_INVERT to control check_range() behavior.\n\n- Replace the pagelist passed through by check_range by a general\n  private pointer that may be used for other purposes.\n  (The following patches will use that to merge numa_maps into\n  mempolicy.c and to better group the page migration code in\n  the policy layer)\n\n- Improve some comments.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: Andi Kleen \u003cak@muc.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "ef2bf0dc8675e14cf8cba3b7fb9f48d72640a70e",
      "tree": "6ef3afba5ca1929cc982efad092ffae62233b813",
      "parents": [
        "cd105df4590c89837a1c300843238148cfef9b5f"
      ],
      "author": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Sun Jan 08 01:01:00 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jan 08 20:12:44 2006 -0800"
      },
      "message": "[PATCH] rmap: additional diagnostics in page_remove_rmap()\n\nWe seem to be hitting this assertion failure too often for it to be\nhardware bugs.\n\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "cd105df4590c89837a1c300843238148cfef9b5f",
      "tree": "bea54d8f24ad97d4af5fda6baac5711fa524af0e",
      "parents": [
        "152194aaa6266d71dfee57882a23def339ef17a4"
      ],
      "author": {
        "name": "Tobias Klauser",
        "email": "tklauser@nuerscht.ch",
        "time": "Sun Jan 08 01:00:59 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jan 08 20:12:43 2006 -0800"
      },
      "message": "[PATCH] mm: clean up local variables\n\nClean up a local variable with the same name as a variable in a larger\nblock.  Also move a variable into the block where it\u0027s actually used.\n\nSpotted by http://linuxicc.sourceforge.net/\n\nSigned-off-by: Tobias Klauser \u003ctklauser@nuerscht.ch\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "aea47ff363c15b0be5fc27ed991b1fdee338f0a7",
      "tree": "0932af1adfcf795fe8793ce24eb338e832d5fa2c",
      "parents": [
        "45b07ef31d1182d2cfde7711327e3afb268bb1ac"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@engr.sgi.com",
        "time": "Sun Jan 08 01:00:57 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jan 08 20:12:43 2006 -0800"
      },
      "message": "[PATCH] mm: make hugepages obey cpusets.\n\nSee http://marc.theaimsgroup.com/?l\u003dlinux-kernel\u0026m\u003d113167000201265\u0026w\u003d2\nhttp://marc.theaimsgroup.com/?l\u003dlinux-mm\u0026m\u003d113167267527312\u0026w\u003d2\n\nMake hugepages obey cpusets.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nAcked-by: William Irwin \u003cwli@holomorphy.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "d0d963281ccb22e6f339bfdd75c6b2e31351929f",
      "tree": "ddeb3d1cf73675d71b21be8893b16cf5014c1bc5",
      "parents": [
        "d498471133ff1f9586a06820beaeebc575fe2814"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@engr.sgi.com",
        "time": "Sun Jan 08 01:00:55 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jan 08 20:12:42 2006 -0800"
      },
      "message": "[PATCH] SwapMig: Switch error handling in migrate_pages to use -Exx\n\nUse -Exxx instead of numeric return codes and cleanup the code in\nmigrate_pages() using -Exx error codes.\n\nConsolidate successful migration handling\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "d498471133ff1f9586a06820beaeebc575fe2814",
      "tree": "c7cde93441692e3b32d83dfbf85858ab2d85e481",
      "parents": [
        "ee27497df36823f2793212cad0997c044eb0e1eb"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Sun Jan 08 01:00:55 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jan 08 20:12:42 2006 -0800"
      },
      "message": "[PATCH] SwapMig: Extend parameters for migrate_pages()\n\nExtend the parameters of migrate_pages() to allow the caller control over the\nfate of successfully migrated or impossible to migrate pages.\n\nSwap migration and direct migration will have the same interface after this\npatch so that patches can be independently applied to the policy layer and the\ncore migration code.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: Andi Kleen \u003cak@muc.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "ee27497df36823f2793212cad0997c044eb0e1eb",
      "tree": "854dded3b0277b0962b3c9a39c9cdb446654154b",
      "parents": [
        "1480a540c98525640174a7eadd712378fcd6fd63"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Sun Jan 08 01:00:54 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jan 08 20:12:42 2006 -0800"
      },
      "message": "[PATCH] SwapMig: Drop unused pages immediately\n\nDrop unused pages immediately\n\nIf a page is encountered that is only referenced by the migration code then\nthere is no reason to swap or migrate the page.  Release the page by calling\nmove_to_lru().\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "1480a540c98525640174a7eadd712378fcd6fd63",
      "tree": "28f2cc0aa819ff0aed30dd85bb16177d4a73002b",
      "parents": [
        "8419c3181086c86664e8246bc997afc2e4ffba4f"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Sun Jan 08 01:00:53 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jan 08 20:12:42 2006 -0800"
      },
      "message": "[PATCH] SwapMig: add_to_swap() avoid atomic allocations\n\nAdd gfp_mask to add_to_swap\n\nadd_to_swap does allocations with GFP_ATOMIC in order not to interfere with\nswapping.  During migration we may have use add_to_swap extensively which may\nlead to out of memory errors.\n\nThis patch makes add_to_swap take a parameter that specifies the gfp mask.\nThe page migration code can then make add_to_swap use GFP_KERNEL.\n\nSigned-off-by: Hirokazu Takahashi \u003ctaka@valinux.co.jp\u003e\nSigned-off-by: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "8419c3181086c86664e8246bc997afc2e4ffba4f",
      "tree": "25938e6f99bdaaffe8f6d357582eca56692b091c",
      "parents": [
        "39743889aaf76725152f16aa90ca3c45f6d52da3"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Sun Jan 08 01:00:52 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jan 08 20:12:42 2006 -0800"
      },
      "message": "[PATCH] SwapMig: CONFIG_MIGRATION fixes\n\nMove move_to_lru, putback_lru_pages and isolate_lru in section surrounded by\nCONFIG_MIGRATION saving some codesize for single processor kernels.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "39743889aaf76725152f16aa90ca3c45f6d52da3",
      "tree": "2a6f658d03dbbd9428934c5e030230a4acb6d5e0",
      "parents": [
        "dc9aa5b9d65fd11b1f5246b46ec610ee8b83c6dd"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Sun Jan 08 01:00:51 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jan 08 20:12:42 2006 -0800"
      },
      "message": "[PATCH] Swap Migration V5: sys_migrate_pages interface\n\nsys_migrate_pages implementation using swap based page migration\n\nThis is the original API proposed by Ray Bryant in his posts during the first\nhalf of 2005 on linux-mm@kvack.org and linux-kernel@vger.kernel.org.\n\nThe intent of sys_migrate is to migrate memory of a process.  A process may\nhave migrated to another node.  Memory was allocated optimally for the prior\ncontext.  sys_migrate_pages allows to shift the memory to the new node.\n\nsys_migrate_pages is also useful if the processes available memory nodes have\nchanged through cpuset operations to manually move the processes memory.  Paul\nJackson is working on an automated mechanism that will allow an automatic\nmigration if the cpuset of a process is changed.  However, a user may decide\nto manually control the migration.\n\nThis implementation is put into the policy layer since it uses concepts and\nfunctions that are also needed for mbind and friends.  The patch also provides\na do_migrate_pages function that may be useful for cpusets to automatically\nmove memory.  sys_migrate_pages does not modify policies in contrast to Ray\u0027s\nimplementation.\n\nThe current code here is based on the swap based page migration capability and\nthus is not able to preserve the physical layout relative to it containing\nnodeset (which may be a cpuset).  When direct page migration becomes available\nthen the implementation needs to be changed to do a isomorphic move of pages\nbetween different nodesets.  The current implementation simply evicts all\npages in source nodeset that are not in the target nodeset.\n\nPatch supports ia64, i386 and x86_64.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "dc9aa5b9d65fd11b1f5246b46ec610ee8b83c6dd",
      "tree": "808da06f0bc8ab5189f1c315a2b99c85a33ed74c",
      "parents": [
        "7cbe34cf86c673503b177ff47cfa2c7030dabb50"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Sun Jan 08 01:00:50 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jan 08 20:12:41 2006 -0800"
      },
      "message": "[PATCH] Swap Migration V5: MPOL_MF_MOVE interface\n\nAdd page migration support via swap to the NUMA policy layer\n\nThis patch adds page migration support to the NUMA policy layer.  An\nadditional flag MPOL_MF_MOVE is introduced for mbind.  If MPOL_MF_MOVE is\nspecified then pages that do not conform to the memory policy will be evicted\nfrom memory.  When they get pages back in new pages will be allocated\nfollowing the numa policy.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "7cbe34cf86c673503b177ff47cfa2c7030dabb50",
      "tree": "9b39d7e8f11fed68242d1cb1f0c85dfcf96e3250",
      "parents": [
        "49d2e9cc4544369635cd6f4ef6d5bb0f757079a7"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@engr.sgi.com",
        "time": "Sun Jan 08 01:00:49 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jan 08 20:12:41 2006 -0800"
      },
      "message": "[PATCH] Swap Migration V5: Add CONFIG_MIGRATION for page migration support\n\nInclude page migration if the system is NUMA or having a memory model that\nallows distinct areas of memory (SPARSEMEM, DISCONTIGMEM).\n\nAnd:\n- Only include lru_add_drain_per_cpu if building for an SMP system.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "49d2e9cc4544369635cd6f4ef6d5bb0f757079a7",
      "tree": "d8c76c5224b05b812f96424a18b1e9205d90feae",
      "parents": [
        "930d915252edda7042c944ed3c30194a2f9fe163"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Sun Jan 08 01:00:48 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jan 08 20:12:41 2006 -0800"
      },
      "message": "[PATCH] Swap Migration V5: migrate_pages() function\n\nThis adds the basic page migration function with a minimal implementation that\nonly allows the eviction of pages to swap space.\n\nPage eviction and migration may be useful to migrate pages, to suspend\nprograms or for remapping single pages (useful for faulty pages or pages with\nsoft ECC failures)\n\nThe process is as follows:\n\nThe function wanting to migrate pages must first build a list of pages to be\nmigrated or evicted and take them off the lru lists via isolate_lru_page().\nisolate_lru_page determines that a page is freeable based on the LRU bit set.\n\nThen the actual migration or swapout can happen by calling migrate_pages().\n\nmigrate_pages does its best to migrate or swapout the pages and does multiple\npasses over the list.  Some pages may only be swappable if they are not dirty.\n migrate_pages may start writing out dirty pages in the initial passes over\nthe pages.  However, migrate_pages may not be able to migrate or evict all\npages for a variety of reasons.\n\nThe remaining pages may be returned to the LRU lists using putback_lru_pages().\n\nChangelog V4-\u003eV5:\n- Use the lru caches to return pages to the LRU\n\nChangelog V3-\u003eV4:\n- Restructure code so that applying patches to support full migration does\n  require minimal changes. Rename swapout_pages() to migrate_pages().\n\nChangelog V2-\u003eV3:\n- Extract common code from shrink_list() and swapout_pages()\n\nSigned-off-by: Mike Kravetz \u003ckravetz@us.ibm.com\u003e\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: \"Michael Kerrisk\" \u003cmtk-manpages@gmx.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "930d915252edda7042c944ed3c30194a2f9fe163",
      "tree": "620452f11a9949943765b7a28e5b919f40f32b12",
      "parents": [
        "21eac81f252fe31c3cf64b805a1e8652192f3a3b"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Sun Jan 08 01:00:47 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jan 08 20:12:41 2006 -0800"
      },
      "message": "[PATCH] Swap Migration V5: PF_SWAPWRITE to allow writing to swap\n\nAdd PF_SWAPWRITE to control a processes permission to write to swap.\n\n- Use PF_SWAPWRITE in may_write_to_queue() instead of checking for kswapd\n  and pdflush\n\n- Set PF_SWAPWRITE flag for kswapd and pdflush\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "21eac81f252fe31c3cf64b805a1e8652192f3a3b",
      "tree": "255662bda67f54ffde484046fd9ab9b0900ab409",
      "parents": [
        "15316ba81aee6775d6079fb46c66c801989e7d10"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Sun Jan 08 01:00:45 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jan 08 20:12:41 2006 -0800"
      },
      "message": "[PATCH] Swap Migration V5: LRU operations\n\nThis is the start of the `swap migration\u0027 patch series.\n\nSwap migration allows the moving of the physical location of pages between\nnodes in a numa system while the process is running.  This means that the\nvirtual addresses that the process sees do not change.  However, the system\nrearranges the physical location of those pages.\n\nThe main intent of page migration patches here is to reduce the latency of\nmemory access by moving pages near to the processor where the process\naccessing that memory is running.\n\nThe patchset allows a process to manually relocate the node on which its\npages are located through the MF_MOVE and MF_MOVE_ALL options while\nsetting a new memory policy.\n\nThe pages of process can also be relocated from another process using the\nsys_migrate_pages() function call.  Requires CAP_SYS_ADMIN.  The migrate_pages\nfunction call takes two sets of nodes and moves pages of a process that are\nlocated on the from nodes to the destination nodes.\n\nManual migration is very useful if for example the scheduler has relocated a\nprocess to a processor on a distant node.  A batch scheduler or an\nadministrator can detect the situation and move the pages of the process\nnearer to the new processor.\n\nsys_migrate_pages() could be used on non-numa machines as well, to force all\nof a particualr process\u0027s pages out to swap, if someone thinks that\u0027s useful.\n\nLarger installations usually partition the system using cpusets into sections\nof nodes.  Paul has equipped cpusets with the ability to move pages when a\ntask is moved to another cpuset.  This allows automatic control over locality\nof a process.  If a task is moved to a new cpuset then also all its pages are\nmoved with it so that the performance of the process does not sink\ndramatically (as is the case today).\n\nSwap migration works by simply evicting the page.  The pages must be faulted\nback in.  The pages are then typically reallocated by the system near the node\nwhere the process is executing.\n\nFor swap migration the destination of the move is controlled by the allocation\npolicy.  Cpusets set the allocation policy before calling sys_migrate_pages()\nin order to move the pages as intended.\n\nNo allocation policy changes are performed for sys_migrate_pages().  This\nmeans that the pages may not faulted in to the specified nodes if no\nallocation policy was set by other means.  The pages will just end up near the\nnode where the fault occurred.\n\nThere\u0027s another patch series in the pipeline which implements \"direct\nmigration\".\n\nThe direct migration patchset extends the migration functionality to avoid\ngoing through swap.  The destination node of the relation is controllable\nduring the actual moving of pages.  The crutch of using the allocation policy\nto relocate is not necessary and the pages are moved directly to the target.\nIts also faster since swap is not used.\n\nAnd sys_migrate_pages() can then move pages directly to the specified node.\nImplement functions to isolate pages from the LRU and put them back later.\n\nThis patch:\n\nAn earlier implementation was provided by Hirokazu Takahashi\n\u003ctaka@valinux.co.jp\u003e and IWAMOTO Toshihiro \u003ciwamoto@valinux.co.jp\u003e for the\nmemory hotplug project.\n\nFrom: Magnus\n\nThis breaks out isolate_lru_page() and putpack_lru_page().  Needed for swap\nmigration.\n\nSigned-off-by: Magnus Damm \u003cmagnus.damm@gmail.com\u003e\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "48db57f8ff10eb09ab887ccb6150b0da0c7be24e",
      "tree": "5c9fba3937bb802aa2944af189aae57b7bf7aa8b",
      "parents": [
        "23316bc86fd31c5d644a71c398ec41d9fecacec4"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "nickpiggin@yahoo.com.au",
        "time": "Sun Jan 08 01:00:42 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jan 08 20:12:40 2006 -0800"
      },
      "message": "[PATCH] mm: free_pages opt\n\nTry to streamline free_pages_bulk by ensuring callers don\u0027t pass in a\n\u0027count\u0027 that exceeds the list size.\n\nSome cleanups:\nRename __free_pages_bulk to __free_one_page.\nPut the page list manipulation from __free_pages_ok into free_one_page.\nMake __free_pages_ok static.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "23316bc86fd31c5d644a71c398ec41d9fecacec4",
      "tree": "9efc5bbd9dd7c35b6b5fea8ce8215477c2ff43dd",
      "parents": [
        "8ad4b1fb8205340dba16b63467bb23efc27264d6"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "nickpiggin@yahoo.com.au",
        "time": "Sun Jan 08 01:00:41 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jan 08 20:12:40 2006 -0800"
      },
      "message": "[PATCH] mm: cleanup zone_pcp\n\nUse zone_pcp everywhere even though NUMA code \"knows\" the internal details\nof the zone.  Stop other people trying to copy, and it looks nicer.\n\nAlso, only print the pagesets of online cpus in zoneinfo.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: \"Seth, Rohit\" \u003crohit.seth@intel.com\u003e\nCc: Christoph Lameter \u003cchristoph@lameter.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "8ad4b1fb8205340dba16b63467bb23efc27264d6",
      "tree": "9f5c237ead93976e5454c5da5d3bba350a2419c5",
      "parents": [
        "9d0243bca345d5ce25d3f4b74b7facb3a6df1232"
      ],
      "author": {
        "name": "Rohit Seth",
        "email": "rohit.seth@intel.com",
        "time": "Sun Jan 08 01:00:40 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jan 08 20:12:40 2006 -0800"
      },
      "message": "[PATCH] Make high and batch sizes of per_cpu_pagelists configurable\n\nAs recently there has been lot of traffic on the right values for batch and\nhigh water marks for per_cpu_pagelists.  This patch makes these two\nvariables configurable through /proc interface.\n\nA new tunable /proc/sys/vm/percpu_pagelist_fraction is added.  This entry\ncontrols the fraction of pages at most in each zone that are allocated for\neach per cpu page list.  The min value for this is 8.  It means that we\ndon\u0027t allow more than 1/8th of pages in each zone to be allocated in any\nsingle per_cpu_pagelist.\n\nThe batch value of each per cpu pagelist is also updated as a result.  It\nis set to pcp-\u003ehigh/4.  The upper limit of batch is (PAGE_SHIFT * 8)\n\nSigned-off-by: Rohit Seth \u003crohit.seth@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "9d0243bca345d5ce25d3f4b74b7facb3a6df1232",
      "tree": "a3a0a763bf83a483282dc1c3caab587941a98fc2",
      "parents": [
        "bec6b0c89b234090681a4516e20ac5debe3e7c59"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Sun Jan 08 01:00:39 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jan 08 20:12:40 2006 -0800"
      },
      "message": "[PATCH] drop-pagecache\n\nAdd /proc/sys/vm/drop_caches.  When written to, this will cause the kernel to\ndiscard as much pagecache and/or reclaimable slab objects as it can.  THis\noperation requires root permissions.\n\nIt won\u0027t drop dirty data, so the user should run `sync\u0027 first.\n\nCaveats:\n\na) Holds inode_lock for exorbitant amounts of time.\n\nb) Needs to be taught about NUMA nodes: propagate these all the way through\n   so the discarding can be controlled on a per-node basis.\n\nThis is a debugging feature: useful for getting consistent results between\nfilesystem benchmarks.  We could possibly put it under a config option, but\nit\u0027s less than 300 bytes.\n\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "bec6b0c89b234090681a4516e20ac5debe3e7c59",
      "tree": "168a4c123e38b08d12b6787c18c4aa032520a48b",
      "parents": [
        "b28a02de8c70d41d6b6ba8911e83ed3ccf2e13f8"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@engr.sgi.com",
        "time": "Sun Jan 08 01:00:38 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jan 08 20:12:40 2006 -0800"
      },
      "message": "[PATCH] slab: remove nested #ifdef CONFIG_NUMA\n\nFor some reason there is an #ifdef CONFIG_NUMA within another #ifdef\nCONFIG_NUMA in the page allocator.  Remove innermost #ifdef CONFIG_NUMA\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "b28a02de8c70d41d6b6ba8911e83ed3ccf2e13f8",
      "tree": "dee0feb5d1d9c007d94a9f5d6f3cbf8a83b46b39",
      "parents": [
        "4d268eba1187ef66844a6a33b9431e5d0dadd4ad"
      ],
      "author": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Sun Jan 08 01:00:37 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jan 08 20:12:39 2006 -0800"
      },
      "message": "[PATCH] slab: fix code formatting\n\nThe slab allocator code is inconsistent in coding style and messy.  For this\npatch, I ran Lindent for mm/slab.c and fixed up goofs by hand.\n\nSigned-off-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "4d268eba1187ef66844a6a33b9431e5d0dadd4ad",
      "tree": "575aa29016688a07b2a80132a15cc8b5a5027f60",
      "parents": [
        "85289f98ddc13f6cea82c59d6ff78f9d205dfccc"
      ],
      "author": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Sun Jan 08 01:00:36 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jan 08 20:12:39 2006 -0800"
      },
      "message": "[PATCH] slab: extract slab order calculation to separate function\n\nThis patch moves the ugly loop that determines the \u0027optimal\u0027 size (page order)\nof cache slabs from kmem_cache_create() to a separate function and cleans it\nup a bit.\n\nThanks to Matthew Wilcox for the help with this patch.\n\nSigned-off-by: Matthew Dobson \u003ccolpatch@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "85289f98ddc13f6cea82c59d6ff78f9d205dfccc",
      "tree": "84db27aed1783fb1bc780f7ebd3d8cd14bdc90bd",
      "parents": [
        "f9f7500521b25dbf1aba476b81230489ad8e2c4b"
      ],
      "author": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Sun Jan 08 01:00:36 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jan 08 20:12:39 2006 -0800"
      },
      "message": "[PATCH] slab: extract slabinfo header printing to separate function\n\nThis patch extracts slabinfo header printing to a separate function\nprint_slabinfo_header() to make s_start() more readable.\n\nSigned-off-by: Matthew Dobson \u003ccolpatch@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "f9f7500521b25dbf1aba476b81230489ad8e2c4b",
      "tree": "f2bf2f64023c4968ac8d08da54b8aaef86354591",
      "parents": [
        "b792de39d892e06b18ddea85be076bae123d6bf6"
      ],
      "author": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Sun Jan 08 01:00:33 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jan 08 20:12:39 2006 -0800"
      },
      "message": "[PATCH] slab: remove unused align parameter from alloc_percpu\n\n__alloc_percpu and alloc_percpu both take an \u0027align\u0027 argument which is\ncompletely ignored.  snmp6_mib_init() in net/ipv6/af_inet6.c attempts to use\nit, but it will be ignored.  Therefore, remove the \u0027align\u0027 argument and fixup\nthe lone caller.\n\nSigned-off-by: Matthew Dobson \u003ccolpatch@us.ibm.com\u003e\nAcked-by: Manfred Spraul \u003cmanfred@colorfullife.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "84c2008af01132c4ca257ed9b595693c611df15d",
      "tree": "a93bb1828e5b56ba041f8227ded78c9f04960a76",
      "parents": [
        "9f5336e21893fafd232a9a02cfa7588ad153889a"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Sun Jan 08 01:00:28 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jan 08 20:12:38 2006 -0800"
      },
      "message": "[PATCH] revert \"mm: page_state fixes\"\n\nHugh says:\n\npage_alloc_cpu_notify() specifically contains code to\n\n \t\t/* Add dead cpu\u0027s page_states to our own. */\n\nwhich handles this more efficiently.\n\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "67207b9664a8d603138ef1556141e6d0a102bea7",
      "tree": "e98886778be65aeb6625a5f516873bbc5beeb978",
      "parents": [
        "d7a301033f1990188f65abf4fe8e5b90ef0e3888"
      ],
      "author": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Tue Nov 15 15:53:48 2005 -0500"
      },
      "committer": {
        "name": "Paul Mackerras",
        "email": "paulus@samba.org",
        "time": "Mon Jan 09 14:49:12 2006 +1100"
      },
      "message": "[PATCH] spufs: The SPU file system, base\n\nThis is the current version of the spu file system, used\nfor driving SPEs on the Cell Broadband Engine.\n\nThis release is almost identical to the version for the\n2.6.14 kernel posted earlier, which is available as part\nof the Cell BE Linux distribution from\nhttp://www.bsc.es/projects/deepcomputing/linuxoncell/.\n\nThe first patch provides all the interfaces for running\nspu application, but does not have any support for\ndebugging SPU tasks or for scheduling. Both these\nfunctionalities are added in the subsequent patches.\n\nSee Documentation/filesystems/spufs.txt on how to use\nspufs.\n\nSigned-off-by: Arnd Bergmann \u003carndb@de.ibm.com\u003e\nSigned-off-by: Paul Mackerras \u003cpaulus@samba.org\u003e\n"
    },
    {
      "commit": "22905f775dd6a8b73be99826dcad07ceec00244b",
      "tree": "960c0ad3d10fa208a31b78256788f332e5ebdd48",
      "parents": [
        "d99cf9d679a520d67f81d805b7cb91c68e1847f0"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Wed Nov 16 15:07:01 2005 -0800"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jan 06 14:58:38 2006 -0500"
      },
      "message": "identify multipage -\u003ewritepages() calls\n\n NFS needs to be able to distinguish between single-page -\u003ewritepage() calls and\n multipage -\u003ewritepages() calls.\n\n For the single-page writepage calls NFS can kick off the I/O within the\n context of -\u003ewritepage().\n\n For multipage -\u003ewritepages calls, nfs_writepage() will leave the I/O pending\n and nfs_writepages() will kick off the I/O when it all has been queued up\n within NFS.\n\n Cc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\n Signed-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "3a291a20bd6fcfafb2109031f0760a0d3e92ecd7",
      "tree": "6c034471da9b2aac77b9810af640bb7a515cb299",
      "parents": [
        "ca0aec0f7a94bf9f07fefa8bfd23282d4e8ceb8a"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Fri Jan 06 00:16:37 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jan 06 08:33:43 2006 -0800"
      },
      "message": "[PATCH] mm: add a new function (needed for swap suspend)\n\nThis adds the function get_swap_page_of_type() allowing us to specify an index\nin swap_info[] and select a swap_info_struct structure to be used for\nallocating a swap page.\n\nThis function (or another one of similar functionality) will be necessary for\nimplementing the image-writing part of swsusp in the user space.   It can also\nbe used for simplifying the current in-kernel implementation of the\nimage-writing part of swsusp.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Pavel Machek \u003cpavel@ucw.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "c898ec16e83331abde39118e22e9e38335bbb950",
      "tree": "bad725f27cb14e50663d39b8f36b1b79ab88fa80",
      "parents": [
        "215c3409eed16c89b6d11ea1126bd9d4f36b9afd"
      ],
      "author": {
        "name": "Anton Blanchard",
        "email": "anton@samba.org",
        "time": "Fri Jan 06 00:12:07 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jan 06 08:33:37 2006 -0800"
      },
      "message": "[PATCH] allow flatmem to be disabled when only sparsemem is implemented\n\nOn architectures that implement sparsemem but not discontigmem we want to\nbe able to hide the flatmem option in some cases.  On ppc64 for example,\nwhen we select NUMA we must not select flatmem.\n\nSigned-off-by: Anton Blanchard \u003canton@samba.org\u003e\nSigned-off-by: Andy Whitcroft \u003capw@shadowen.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "b0e15190ead07056ab0c3844a499ff35e66d27cc",
      "tree": "0601a8d68fa051a7ee85d22640e982c0a64f0efc",
      "parents": [
        "642fb4d1f1dd2417aa69189fe5ceb81e4fb72900"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Jan 06 00:11:42 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jan 06 08:33:32 2006 -0800"
      },
      "message": "[PATCH] NOMMU: Make SYSV IPC SHM use ramfs facilities on NOMMU\n\nThe attached patch makes the SYSV IPC shared memory facilities use the new\nramfs facilities on a no-MMU kernel.\n\nThe following changes are made:\n\n (1) There are now shmem_mmap() and shmem_get_unmapped_area() functions to\n     allow the IPC SHM facilities to commune with the tiny-shmem and shmem\n     code.\n\n (2) ramfs files now need resizing using do_truncate() rather than by modifying\n     the inode size directly (see shmem_file_setup()). This causes ramfs to\n     attempt to bind a block of pages of sufficient size to the inode.\n\n (3) CONFIG_SYSVIPC is no longer contingent on CONFIG_MMU.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "a74609fafa2e5cc31d558012abaaa55ec9ad9da4",
      "tree": "0be653692864d99da345b575dfe2083994ee1d21",
      "parents": [
        "d3cb487149bd706aa6aeb02042332a450978dc1c"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "nickpiggin@yahoo.com.au",
        "time": "Fri Jan 06 00:11:20 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jan 06 08:33:29 2006 -0800"
      },
      "message": "[PATCH] mm: page_state opt\n\nOptimise page_state manipulations by introducing interrupt unsafe accessors\nto page_state fields.  Callers must provide their own locking (either\ndisable interrupts or not update from interrupt context).\n\nSwitch over the hot callsites that can easily be moved under interrupts off\nsections.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "070f80326a215d8e6c4fd6f175e28eb446c492bc",
      "tree": "e759fa446e9ad101bc2c7f77979fc5a5514aff70",
      "parents": [
        "02a68a5ebc7dd823da7496116f42290103e1e4a9"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@engr.sgi.com",
        "time": "Fri Jan 06 00:11:19 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jan 06 08:33:28 2006 -0800"
      },
      "message": "[PATCH] build_zonelists_node(): rename args\n\nGive j and r meaningful names.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "02a68a5ebc7dd823da7496116f42290103e1e4a9",
      "tree": "7b79d20246b5c9b769e4f6172fe97e6f91fb921b",
      "parents": [
        "4be38e351c5f455f6f490f5aff29053e33ab4f99"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@engr.sgi.com",
        "time": "Fri Jan 06 00:11:18 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jan 06 08:33:28 2006 -0800"
      },
      "message": "[PATCH] Fix zone policy determination\n\nThe use k in the inner loop means that the highest zone nr is always used\nif any zone of a node is populated.  This means that the policy zone is not\ncorrectly determined on arches that do no use HIGHMEM like ia64.\n\nChange the loop to decrement k which also simplifies the BUG_ON.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "4be38e351c5f455f6f490f5aff29053e33ab4f99",
      "tree": "fd7ba3678cdb5750894f58034f47076dd38c64ae",
      "parents": [
        "1a93205bdffd9d7278d4a66081cdb48452522a58"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@engr.sgi.com",
        "time": "Fri Jan 06 00:11:17 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jan 06 08:33:28 2006 -0800"
      },
      "message": "[PATCH] mm: move determination of policy_zone into page allocator\n\nCurrently the function to build a zonelist for a BIND policy has the side\neffect to set the policy_zone.  This seems to be a bit strange.  policy\nzone seems to not be initialized elsewhere and therefore 0.  Do we police\nZONE_DMA if no bind policy has been used yet?\n\nThis patch moves the determination of the zone to apply policies to into\nthe page allocator.  We determine the zone while building the zonelist for\nnodes.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "1a93205bdffd9d7278d4a66081cdb48452522a58",
      "tree": "7f8500fe725e5e8095a8fc77539d351a0e8a4643",
      "parents": [
        "f3fe65122da05e1cd4c9140340d96ea2f95d0c49"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@engr.sgi.com",
        "time": "Fri Jan 06 00:11:16 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jan 06 08:33:28 2006 -0800"
      },
      "message": "[PATCH] mm: simplify build_zonelists_node by removing the case statement.\n\nSimplify build_zonelists_node by removing the case statement.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "f3fe65122da05e1cd4c9140340d96ea2f95d0c49",
      "tree": "65f2bcdb0a9665123b5083d3aea7dae483593cbc",
      "parents": [
        "80bfed904c690642db9d4178950735299160950b"
      ],
      "author": {
        "name": "Con Kolivas",
        "email": "kernel@kolivas.org",
        "time": "Fri Jan 06 00:11:15 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jan 06 08:33:28 2006 -0800"
      },
      "message": "[PATCH] mm: add populated_zone() helper\n\nThere are numerous places we check whether a zone is populated or not.\n\nProvide a helper function to check for populated zones and convert all\nchecks for zone-\u003epresent_pages.\n\nSigned-off-by: Con Kolivas \u003ckernel@kolivas.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "80bfed904c690642db9d4178950735299160950b",
      "tree": "5aca96e02dfebf4665a9f1c7e1d3fa58d8009c09",
      "parents": [
        "210fe530305ee50cd889fe9250168228b2994f32"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Fri Jan 06 00:11:14 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jan 06 08:33:28 2006 -0800"
      },
      "message": "[PATCH] consolidate lru_add_drain() and lru_drain_cache()\n\nCc: Christoph Lameter \u003cclameter@engr.sgi.com\u003e\nCc: Rajesh Shah \u003crajesh.shah@intel.com\u003e\nCc: Li Shaohua \u003cshaohua.li@intel.com\u003e\nCc: Srivatsa Vaddagiri \u003cvatsa@in.ibm.com\u003e\nCc: Ashok Raj \u003cashok.raj@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "210fe530305ee50cd889fe9250168228b2994f32",
      "tree": "4d22a28cf28abded5f77daef5b025c04d1ffea56",
      "parents": [
        "41e9b63b35b52cf918a4ffdb8d77862ab824aa8b"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Fri Jan 06 00:11:14 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jan 06 08:33:27 2006 -0800"
      },
      "message": "[PATCH] vmscan: balancing fix\n\nRevert a patch which went into 2.6.8-rc1.  The changelog for that patch was:\n\n  The shrink_zone() logic can, under some circumstances, cause far too many\n  pages to be reclaimed.  Say, we\u0027re scanning at high priority and suddenly\n  hit a large number of reclaimable pages on the LRU.\n\n  Change things so we bale out when SWAP_CLUSTER_MAX pages have been\n  reclaimed.\n\nProblem is, this change caused significant imbalance in inter-zone scan\nbalancing by truncating scans of larger zones.\n\nSuppose, for example, ZONE_HIGHMEM is 10x the size of ZONE_NORMAL.  The zone\nbalancing algorithm would require that if we\u0027re scanning 100 pages of\nZONE_HIGHMEM, we should scan 10 pages of ZONE_NORMAL.  But this logic will\ncause the scanning of ZONE_HIGHMEM to bale out after only 32 pages are\nreclaimed.  Thus effectively causing smaller zones to be scanned relatively\nharder than large ones.\n\nNow I need to remember what the workload was which caused me to write this\npatch originally, then fix it up in a different way...\n\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "41e9b63b35b52cf918a4ffdb8d77862ab824aa8b",
      "tree": "472ef8bb097f4e090f5fc95100acdbc77f515087",
      "parents": [
        "9617d95e6e9ffd883cf90a89724fe60d7ab22f9a"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "nickpiggin@yahoo.com.au",
        "time": "Fri Jan 06 00:11:13 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jan 06 08:33:27 2006 -0800"
      },
      "message": "[PATCH] mm: pfault optimisation\n\nThis atomic operation is superfluous: the pte will be added with the\nreferenced bit set, and the page will be referenced through this mapping after\nthe page fault handler returns anyway.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "9617d95e6e9ffd883cf90a89724fe60d7ab22f9a",
      "tree": "67d555d34d931bd253fbc4959ffdb1e5b904f2b0",
      "parents": [
        "224abf92b2f439a9030f21d2926ec8047d1ffcdb"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "nickpiggin@yahoo.com.au",
        "time": "Fri Jan 06 00:11:12 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jan 06 08:33:27 2006 -0800"
      },
      "message": "[PATCH] mm: rmap optimisation\n\nOptimise rmap functions by minimising atomic operations when we know there\nwill be no concurrent modifications.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "224abf92b2f439a9030f21d2926ec8047d1ffcdb",
      "tree": "e45074383aea04ef8b3b8d2cc04a3b34959f9e65",
      "parents": [
        "9328b8faae922e52073785ed6c1eaa8565648a0e"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "nickpiggin@yahoo.com.au",
        "time": "Fri Jan 06 00:11:11 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jan 06 08:33:26 2006 -0800"
      },
      "message": "[PATCH] mm: bad_page optimisation\n\nCut down size slightly by not passing bad_page the function name (it should be\nable to be determined by dump_stack()).  And cut down the number of printks in\nbad_page.\n\nAlso, cut down some branching in the destroy_compound_page path.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "9328b8faae922e52073785ed6c1eaa8565648a0e",
      "tree": "065034bc534a4997197d26acf1774725159e4e65",
      "parents": [
        "7756b9e4e321c3c83c7aa5b9532d3e7fd7ddeb4a"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "nickpiggin@yahoo.com.au",
        "time": "Fri Jan 06 00:11:10 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jan 06 08:33:26 2006 -0800"
      },
      "message": "[PATCH] mm: dma32 zone statistics\n\nAdd dma32 to zone statistics.  Also attempt to arrange struct page_state a\nbit better (visually).\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Andi Kleen \u003cak@muc.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "7756b9e4e321c3c83c7aa5b9532d3e7fd7ddeb4a",
      "tree": "fe59fcd970e97e3878a743a5b476420501f99f00",
      "parents": [
        "bbfbb7cec9dd7266534b2b4b9c8be2fa425bbfc9"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Fri Jan 06 00:11:09 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jan 06 08:33:26 2006 -0800"
      },
      "message": "[PATCH] kill last zone_reclaim() bits\n\nRemove the last bits of Martin\u0027s ill-fated sys_set_zone_reclaim().\n\nCc: Martin Hicks \u003cmort@wildopensource.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "bbfbb7cec9dd7266534b2b4b9c8be2fa425bbfc9",
      "tree": "d1949123224d1674a7192743d188ff652c964663",
      "parents": [
        "a226f6c899799fe2c4919daa0767ac579c88f7bd"
      ],
      "author": {
        "name": "Nikita Danilov",
        "email": "nikita@clusterfs.com",
        "time": "Fri Jan 06 00:11:08 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jan 06 08:33:26 2006 -0800"
      },
      "message": "[PATCH] find_lock_page(): call __lock_page() directly.\n\nAs find_lock_page() already checks with TestSetPageLocked() that page is\nlocked, there is no need to call lock_page() that will try-lock page again\n(chances of page being unlocked in between are small).  Call __lock_page()\ndirectly, this saves one atomic operation.\n\nAlso, mark truncate-while-slept path as unlikely while we are here.\n\n(akpm: ug.  But this is actually a common path for normal old read()s against\na page which is under readahead I/O so ho-hum.)\n\nSigned-off-by: Nikita Danilov \u003cdanilov@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "a226f6c899799fe2c4919daa0767ac579c88f7bd",
      "tree": "82863c401f344cae8ab518b174085a7071a0a325",
      "parents": [
        "008857c1a49ccffc31a54c3ea7e182833bd61304"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Jan 06 00:11:08 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jan 06 08:33:26 2006 -0800"
      },
      "message": "[PATCH] FRV: Clean up bootmem allocator\u0027s page freeing algorithm\n\nThe attached patch cleans up the way the bootmem allocator frees pages.\n\nA new function, __free_pages_bootmem(), is provided in mm/page_alloc.c that is\ncalled from mm/bootmem.c to turn pages over to the main allocator.  All the\nbits of code to initialise pages (clearing PG_reserved and setting the page\ncount) are moved to here.  The checks on page validity are removed, on the\nassumption that the struct page arrays will have been prepared correctly.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "008857c1a49ccffc31a54c3ea7e182833bd61304",
      "tree": "ba65452db097f57e05d2e3df550d55d45feabc94",
      "parents": [
        "085cc7d5de3cc662da7ea78296464a0d52f3f01f"
      ],
      "author": {
        "name": "Ravikiran G Thirumalai",
        "email": "kiran@scalex86.org",
        "time": "Fri Jan 06 00:11:01 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jan 06 08:33:26 2006 -0800"
      },
      "message": "[PATCH] Cleanup bootmem allocator and fix alloc_bootmem_low\n\nPatch cleans up the alloc_bootmem fix for swiotlb.  Patch removes\nalloc_bootmem_*_limit api and fixes alloc_boot_*low api to do the right\nthing -- allocate from low32 memory.\n\nSigned-off-by: Ravikiran Thirumalai \u003ckiran@scalex86.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "085cc7d5de3cc662da7ea78296464a0d52f3f01f",
      "tree": "0fc8bc9ef25929b1bfc2bfb444eb62e6bc5468ff",
      "parents": [
        "a86b1f53166a260ced8f3c8c526945bf496f2e78"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "nickpiggin@yahoo.com.au",
        "time": "Fri Jan 06 00:11:01 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jan 06 08:33:25 2006 -0800"
      },
      "message": "[PATCH] mm: page_alloc cleanups\n\nSmall cleanups that does not change generated code with the gcc\u0027s I\u0027ve tested\nwith.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "a86b1f53166a260ced8f3c8c526945bf496f2e78",
      "tree": "5513bccce91fed08d4769fd18e0f527a84aea508",
      "parents": [
        "2d92c5c9150a2a9ca3dc25da58d5042e17a96b6a"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "nickpiggin@yahoo.com.au",
        "time": "Fri Jan 06 00:11:00 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jan 06 08:33:25 2006 -0800"
      },
      "message": "[PATCH] mm: page_state fixes\n\nread_page_state and __get_page_state only traverse online CPUs, which will\ncause results to fluctuate when CPUs are plugged in or out.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "2d92c5c9150a2a9ca3dc25da58d5042e17a96b6a",
      "tree": "7a559b29019f2391095f958d9546a4453839ec43",
      "parents": [
        "13e7444b0ec59f96d81a4e8c379d5f38fc5f2cc1"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "nickpiggin@yahoo.com.au",
        "time": "Fri Jan 06 00:10:59 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jan 06 08:33:25 2006 -0800"
      },
      "message": "[PATCH] mm: remove pcp low\n\nstruct per_cpu_pages.low is useless.  Remove it.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "13e7444b0ec59f96d81a4e8c379d5f38fc5f2cc1",
      "tree": "95420c03993981fd778047563c5af3f7dbdba74f",
      "parents": [
        "92be2e33b155ee76399f51f41fb061f850d02f08"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "nickpiggin@yahoo.com.au",
        "time": "Fri Jan 06 00:10:58 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jan 06 08:33:25 2006 -0800"
      },
      "message": "[PATCH] mm: remove bad_range\n\nbad_range is supposed to be a temporary check.  It would be a pity to throw it\nout.  Make it depend on CONFIG_DEBUG_VM instead.\n\nCONFIG_HOLES_IN_ZONE systems were relying on this to check pfn_valid in the\npage allocator.  Add that to page_is_buddy instead.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "92be2e33b155ee76399f51f41fb061f850d02f08",
      "tree": "13397157257259eff83729e0286c9a94cfb5a966",
      "parents": [
        "77a8a78834561398fb4cb1480afa7b0e80b1dd53"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "nickpiggin@yahoo.com.au",
        "time": "Fri Jan 06 00:10:57 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jan 06 08:33:25 2006 -0800"
      },
      "message": "[PATCH] mm: microopt conditions\n\nMicro optimise some conditionals where we don\u0027t need lazy evaluation.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "77a8a78834561398fb4cb1480afa7b0e80b1dd53",
      "tree": "c58179bfb6c68fb6cad547852345150be039591f",
      "parents": [
        "c54ad30c784b84d0275152d0ca80985b21471811"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "nickpiggin@yahoo.com.au",
        "time": "Fri Jan 06 00:10:57 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jan 06 08:33:25 2006 -0800"
      },
      "message": "[PATCH] mm: set_page_refs opt\n\nInline set_page_refs.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "c54ad30c784b84d0275152d0ca80985b21471811",
      "tree": "7a40d6ddbe67360a1d9c577e3a2987d140056303",
      "parents": [
        "c484d41042e6ccb88089ca41e3b3eed1bafdae21"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "nickpiggin@yahoo.com.au",
        "time": "Fri Jan 06 00:10:56 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jan 06 08:33:25 2006 -0800"
      },
      "message": "[PATCH] mm: pagealloc opt\n\nSlightly optimise some page allocation and freeing functions by taking\nadvantage of knowing whether or not interrupts are disabled.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "c484d41042e6ccb88089ca41e3b3eed1bafdae21",
      "tree": "c65e522698456899ed5ab058373d3ca2aad1650b",
      "parents": [
        "161599ff39a3c3cdea0a1be05ac53accd2c45cdd"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Fri Jan 06 00:10:55 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jan 06 08:33:24 2006 -0800"
      },
      "message": "[PATCH] mm: free_pages_and_swap_cache opt\n\nMinor optimization (though it doesn\u0027t help in the PREEMPT case, severely\nconstrained by small ZAP_BLOCK_SIZE).  free_pages_and_swap_cache works in\nchunks of 16, calling release_pages which works in chunks of PAGEVEC_SIZE.\nBut PAGEVEC_SIZE was dropped from 16 to 14 in 2.6.10, so we\u0027re now doing more\nspin_lock_irq\u0027ing than necessary: use PAGEVEC_SIZE throughout.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "a94b3ab7eab4edcc9b2cb474b188f774c331adf7",
      "tree": "96636969fa4a9e0b79c98f81cbcd726c5d3834a5",
      "parents": [
        "d5afa6dcf74c0efb60ce07c63d0a727be93c67c5"
      ],
      "author": {
        "name": "Mike Kravetz",
        "email": "kravetz@us.ibm.com",
        "time": "Fri Jan 06 00:10:51 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jan 06 08:33:24 2006 -0800"
      },
      "message": "[PATCH] mm: remove arch independent NODES_SPAN_OTHER_NODES\n\nThe NODES_SPAN_OTHER_NODES config option was created so that DISCONTIGMEM\ncould handle pSeries numa layouts.  However, support for DISCONTIGMEM has\nbeen replaced by SPARSEMEM on powerpc.  As a result, this config option and\nsupporting code is no longer needed.\n\nI have already sent a patch to Paul that removes the option from powerpc\nspecific code.  This removes the arch independent piece.  Doesn\u0027t really\nmatter which is applied first.\n\nSigned-off-by: Mike Kravetz \u003ckravetz@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "6bda666a03f063968833760c5bb5c13062ab9291",
      "tree": "8ecc0b672c059aa296f80935cda33f3e59970832",
      "parents": [
        "21abb1478a87e26f5fa71dbcb7cf4264272c2248"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@engr.sgi.com",
        "time": "Fri Jan 06 00:10:49 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jan 06 08:33:23 2006 -0800"
      },
      "message": "[PATCH] hugepages: fold find_or_alloc_pages into huge_no_page()\n\nThe number of parameters for find_or_alloc_page increases significantly after\npolicy support is added to huge pages.  Simplify the code by folding\nfind_or_alloc_huge_page() into hugetlb_no_page().\n\nAdam Litke objected to this piece in an earlier patch but I think this is a\ngood simplification.  Diffstat shows that we can get rid of almost half of the\nlines of find_or_alloc_page().  If we can find no consensus then lets simply\ndrop this patch.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: Andi Kleen \u003cak@muc.de\u003e\nAcked-by: William Lee Irwin III \u003cwli@holomorphy.com\u003e\nCc: Adam Litke \u003cagl@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "21abb1478a87e26f5fa71dbcb7cf4264272c2248",
      "tree": "01e9a76ec55975b509aa721ad7d9e9cce89d9c82",
      "parents": [
        "5da7ca86078964cbfe6c83efc1205904587706fe"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@engr.sgi.com",
        "time": "Fri Jan 06 00:10:47 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jan 06 08:33:23 2006 -0800"
      },
      "message": "[PATCH] Remove old node based policy interface from mempolicy.c\n\nmempolicy.c contains provisional interface for huge page allocation based on\nnode numbers.  This is in use in SLES9 but was never used (AFAIK) in upstream\nversions of Linux.\n\nHuge page allocations now use zonelists to figure out where to allocate pages.\n The use of zonelists allows us to find the closest hugepage which was the\nconsideration of the NUMA distance for huge page allocations.\n\nRemove the obsolete functions.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: Andi Kleen \u003cak@muc.de\u003e\nAcked-by: William Lee Irwin III \u003cwli@holomorphy.com\u003e\nCc: Adam Litke \u003cagl@us.ibm.com\u003e\nAcked-by: Paul Jackson \u003cpj@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "5da7ca86078964cbfe6c83efc1205904587706fe",
      "tree": "a64a7824e90b42d6fdd71e6cb652362beb8983a1",
      "parents": [
        "96df9333c94d7d5aeceb21f6c5e7ae8ff34753cf"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@engr.sgi.com",
        "time": "Fri Jan 06 00:10:46 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jan 06 08:33:23 2006 -0800"
      },
      "message": "[PATCH] Add NUMA policy support for huge pages.\n\nThe huge_zonelist() function in the memory policy layer provides an list of\nzones ordered by NUMA distance.  The hugetlb layer will walk that list looking\nfor a zone that has available huge pages but is also in the nodeset of the\ncurrent cpuset.\n\nThis patch does not contain the folding of find_or_alloc_huge_page() that was\ncontroversial in the earlier discussion.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: Andi Kleen \u003cak@muc.de\u003e\nAcked-by: William Lee Irwin III \u003cwli@holomorphy.com\u003e\nCc: Adam Litke \u003cagl@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "96df9333c94d7d5aeceb21f6c5e7ae8ff34753cf",
      "tree": "a4ac0486af418df0194ed0038b87459652d61945",
      "parents": [
        "1e8f889b10d8d2223105719e36ce45688fedbd59"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@engr.sgi.com",
        "time": "Fri Jan 06 00:10:45 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jan 06 08:33:23 2006 -0800"
      },
      "message": "[PATCH] mm: dequeue a huge page near to this node\n\nThis was discussed at\nhttp://marc.theaimsgroup.com/?l\u003dlinux-kernel\u0026m\u003d113166526217117\u0026w\u003d2\n\nThis patch changes the dequeueing to select a huge page near the node\nexecuting instead of always beginning to check for free nodes from node 0.\nThis will result in a placement of the huge pages near the executing\nprocessor improving performance.\n\nThe existing implementation can place the huge pages far away from the\nexecuting processor causing significant degradation of performance.  The\nsearch starting from zero also means that the lower zones quickly run out\nof memory.  Selecting a huge page near the process distributed the huge\npages better.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: William Lee Irwin III \u003cwli@holomorphy.com\u003e\nCc: Adam Litke \u003cagl@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "1e8f889b10d8d2223105719e36ce45688fedbd59",
      "tree": "86dee89e4363aaf6c7ec7c9751ea37f725c95bb9",
      "parents": [
        "86e5216f8d8aa258ba836caffe2613d79cc9aead"
      ],
      "author": {
        "name": "David Gibson",
        "email": "david@gibson.dropbear.id.au",
        "time": "Fri Jan 06 00:10:44 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jan 06 08:33:23 2006 -0800"
      },
      "message": "[PATCH] Hugetlb: Copy on Write support\n\nImplement copy-on-write support for hugetlb mappings so MAP_PRIVATE can be\nsupported.  This helps us to safely use hugetlb pages in many more\napplications.  The patch makes the following changes.  If needed, I also have\nit broken out according to the following paragraphs.\n\n1. Add a pair of functions to set/clear write access on huge ptes.  The\n   writable check in make_huge_pte is moved out to the caller for use by COW\n   later.\n\n2. Hugetlb copy-on-write requires special case handling in the following\n   situations:\n\n   - copy_hugetlb_page_range() - Copied pages must be write protected so\n     a COW fault will be triggered (if necessary) if those pages are written\n     to.\n\n   - find_or_alloc_huge_page() - Only MAP_SHARED pages are added to the\n     page cache.  MAP_PRIVATE pages still need to be locked however.\n\n3. Provide hugetlb_cow() and calls from hugetlb_fault() and\n   hugetlb_no_page() which handles the COW fault by making the actual copy.\n\n4. Remove the check in hugetlbfs_file_map() so that MAP_PRIVATE mmaps\n   will be allowed.  Make MAP_HUGETLB exempt from the depricated VM_RESERVED\n   mapping check.\n\nSigned-off-by: David Gibson \u003cdavid@gibson.dropbear.id.au\u003e\nSigned-off-by: Adam Litke \u003cagl@us.ibm.com\u003e\nCc: William Lee Irwin III \u003cwli@holomorphy.com\u003e\nCc: \"Seth, Rohit\" \u003crohit.seth@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "86e5216f8d8aa258ba836caffe2613d79cc9aead",
      "tree": "33669c0194490700b575fceb0e5e010a4468a5fe",
      "parents": [
        "85ef47f74afe96c8c23eaa605f28cc01443c905f"
      ],
      "author": {
        "name": "Adam Litke",
        "email": "agl@us.ibm.com",
        "time": "Fri Jan 06 00:10:43 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jan 06 08:33:22 2006 -0800"
      },
      "message": "[PATCH] Hugetlb: Reorganize hugetlb_fault to prepare for COW\n\nThis patch splits the \"no_page()\" type activity into its own function,\nhugetlb_no_page().  hugetlb_fault() becomes the entry point for hugetlb faults\nand delegates to the appropriate handler depending on the type of fault.\nRight now we still have only hugetlb_no_page() but a later patch introduces a\nCOW fault.\n\nSigned-off-by: David Gibson \u003cdavid@gibson.dropbear.id.au\u003e\nSigned-off-by: Adam Litke \u003cagl@us.ibm.com\u003e\nCc: William Lee Irwin III \u003cwli@holomorphy.com\u003e\nCc: \"Seth, Rohit\" \u003crohit.seth@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "85ef47f74afe96c8c23eaa605f28cc01443c905f",
      "tree": "afe3a52f3e00cbab3f30f756fb60b250fe8de2c6",
      "parents": [
        "f0916794f00be44154102dedaeafe68b743078a2"
      ],
      "author": {
        "name": "Adam Litke",
        "email": "agl@us.ibm.com",
        "time": "Fri Jan 06 00:10:42 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jan 06 08:33:22 2006 -0800"
      },
      "message": "[PATCH] Hugetlb: Rename find_lock_page to find_or_alloc_huge_page\n\nfind_lock_huge_page() isn\u0027t a great name, since it does extra things not\nanalagous to find_lock_page().  Rename it find_or_alloc_huge_page() which is\ncloser to the mark.\n\nSigned-off-by: David Gibson \u003cdavid@gibson.dropbear.id.au\u003e\nSigned-off-by: Adam Litke \u003cagl@us.ibm.com\u003e\nCc: William Lee Irwin III \u003cwli@holomorphy.com\u003e\nCc: \"Seth, Rohit\" \u003crohit.seth@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "f0916794f00be44154102dedaeafe68b743078a2",
      "tree": "0faa7e86d938c184f5ccead70410b4d014c2bdf2",
      "parents": [
        "f6b3ec238d12c8cc6cc71490c6e3127988460349"
      ],
      "author": {
        "name": "Adam Litke",
        "email": "agl@us.ibm.com",
        "time": "Fri Jan 06 00:10:40 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jan 06 08:33:22 2006 -0800"
      },
      "message": "[PATCH] Hugetlb: Remove duplicate i_size check\n\ncleanup\n\nSigned-off-by: David Gibson \u003cdavid@gibson.dropbear.id.au\u003e\nSigned-off-by: Adam Litke \u003cagl@us.ibm.com\u003e\nCc: William Lee Irwin III \u003cwli@holomorphy.com\u003e\nCc: \"Seth, Rohit\" \u003crohit.seth@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "f6b3ec238d12c8cc6cc71490c6e3127988460349",
      "tree": "b395c1054802760b0e938199231a9de9ac2f358a",
      "parents": [
        "d7339071f6a8b50101d7ba327926b770f22d5d8b"
      ],
      "author": {
        "name": "Badari Pulavarty",
        "email": "pbadari@us.ibm.com",
        "time": "Fri Jan 06 00:10:38 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jan 06 08:33:22 2006 -0800"
      },
      "message": "[PATCH] madvise(MADV_REMOVE): remove pages from tmpfs shm backing store\n\nHere is the patch to implement madvise(MADV_REMOVE) - which frees up a\ngiven range of pages \u0026 its associated backing store.  Current\nimplementation supports only shmfs/tmpfs and other filesystems return\n-ENOSYS.\n\n\"Some app allocates large tmpfs files, then when some task quits and some\nclient disconnect, some memory can be released.  However the only way to\nrelease tmpfs-swap is to MADV_REMOVE\". - Andrea Arcangeli\n\nDatabases want to use this feature to drop a section of their bufferpool\n(shared memory segments) - without writing back to disk/swap space.\n\nThis feature is also useful for supporting hot-plug memory on UML.\n\nConcerns raised by Andrew Morton:\n\n- \"We have no plan for holepunching!  If we _do_ have such a plan (or\n  might in the future) then what would the API look like?  I think\n  sys_holepunch(fd, start, len), so we should start out with that.\"\n\n- Using madvise is very weird, because people will ask \"why do I need to\n  mmap my file before I can stick a hole in it?\"\n\n- None of the other madvise operations call into the filesystem in this\n  manner.  A broad question is: is this capability an MM operation or a\n  filesytem operation?  truncate, for example, is a filesystem operation\n  which sometimes has MM side-effects.  madvise is an mm operation and with\n  this patch, it gains FS side-effects, only they\u0027re really, really\n  significant ones.\"\n\nComments:\n\n- Andrea suggested the fs operation too but then it\u0027s more efficient to\n  have it as a mm operation with fs side effects, because they don\u0027t\n  immediatly know fd and physical offset of the range.  It\u0027s possible to\n  fixup in userland and to use the fs operation but it\u0027s more expensive,\n  the vmas are already in the kernel and we can use them.\n\nShort term plan \u0026  Future Direction:\n\n- We seem to need this interface only for shmfs/tmpfs files in the short\n  term.  We have to add hooks into the filesystem for correctness and\n  completeness.  This is what this patch does.\n\n- In the future, plan is to support both fs and mmap apis also.  This\n  also involves (other) filesystem specific functions to be implemented.\n\n- Current patch doesn\u0027t support VM_NONLINEAR - which can be addressed in\n  the future.\n\nSigned-off-by: Badari Pulavarty \u003cpbadari@us.ibm.com\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: Andrea Arcangeli \u003candrea@suse.de\u003e\nCc: Michael Kerrisk \u003cmtk-manpages@gmx.net\u003e\nCc: Ulrich Drepper \u003cdrepper@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "d7339071f6a8b50101d7ba327926b770f22d5d8b",
      "tree": "051234ada89be22abb9ebbe4a541b16ade3bc2ff",
      "parents": [
        "900b2b463dc6e65ec474d6880412c63c25b3aea9"
      ],
      "author": {
        "name": "Hans Reiser",
        "email": "reiser@namesys.com",
        "time": "Fri Jan 06 00:10:36 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jan 06 08:33:22 2006 -0800"
      },
      "message": "[PATCH] reiser4: vfs: add truncate_inode_pages_range()\n\nThis patch makes truncate_inode_pages_range from truncate_inode_pages.\ntruncate_inode_pages became a one-liner call to truncate_inode_pages_range.\n\nReiser4 needs truncate_inode_pages_ranges because it tries to keep\ncorrespondence between existences of metadata pointing to data pages and pages\nto which those metadata point to.  So, when metadata of certain part of file\nis removed from filesystem tree, only pages of corresponding range are to be\ntruncated.\n\n(Needed by the madvise(MADV_REMOVE) patch)\n\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "5ac24eefd1d89bc6aa2817741c3bd5d4205b2efd",
      "tree": "3112180da39a0fa9967c55022118a6f8dfa10d8f",
      "parents": [
        "47f3a867f6310d6abfa185ab12baaba7ed1d69af"
      ],
      "author": {
        "name": "Andy Whitcroft",
        "email": "apw@shadowen.org",
        "time": "Fri Jan 06 00:10:33 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jan 06 08:33:21 2006 -0800"
      },
      "message": "[PATCH] memhotplug: __add_section remove unused pgdat definition\n\n__add_section defines an unused pointer to the zones pgdat.  Remove this\ndefinition.  This fixes a compile warning.\n\nSigned-off-by: Andy Whitcroft \u003capw@shadowen.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "47f3a867f6310d6abfa185ab12baaba7ed1d69af",
      "tree": "59e218a6d18c683bc3f3d86055d3df553a5acaed",
      "parents": [
        "a576219aca70e6700705a9836e098dbecd25fb56"
      ],
      "author": {
        "name": "Paul Jackson",
        "email": "pj@sgi.com",
        "time": "Fri Jan 06 00:10:32 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jan 06 08:33:21 2006 -0800"
      },
      "message": "[PATCH] mm: fix __alloc_pages cpuset ALLOC_* flags\n\nTwo changes to the setting of the ALLOC_CPUSET flag in\nmm/page_alloc.c:__alloc_pages()\n\n- A bug fix - the \"ignoring mins\" case should not be honoring ALLOC_CPUSET.\n  This case of all cases, since it is handling a request that will free up\n  more memory than is asked for (exiting tasks, e.g.) should be allowed to\n  escape cpuset constraints when memory is tight.\n\n- A logic change to make it simpler.  Honor cpusets even on GFP_ATOMIC\n  (!wait) requests.  With this, cpuset confinement applies to all requests\n  except ALLOC_NO_WATERMARKS, so that in a subsequent cleanup patch, I can\n  remove the ALLOC_CPUSET flag entirely.  Since I don\u0027t know any real reason\n  this logic has to be either way, I am choosing the path of the simplest\n  code.\n\nSigned-off-by: Paul Jackson \u003cpj@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "994fc28c7b1e697ac56befe4aecabf23f0689f46",
      "tree": "da36d162e9bd077e9b5be385b28e2db90475c263",
      "parents": [
        "7063fbf2261194f72ee75afca67b3b38b554b5fa"
      ],
      "author": {
        "name": "Zach Brown",
        "email": "zach.brown@oracle.com",
        "time": "Thu Dec 15 14:28:17 2005 -0800"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Tue Jan 03 11:45:42 2006 -0800"
      },
      "message": "[PATCH] add AOP_TRUNCATED_PAGE, prepend AOP_ to WRITEPAGE_ACTIVATE\n\nreadpage(), prepare_write(), and commit_write() callers are updated to\nunderstand the special return code AOP_TRUNCATED_PAGE in the style of\nwritepage() and WRITEPAGE_ACTIVATE.  AOP_TRUNCATED_PAGE tells the caller that\nthe callee has unlocked the page and that the operation should be tried again\nwith a new page.  OCFS2 uses this to detect and work around a lock inversion in\nits aop methods.  There should be no change in behaviour for methods that don\u0027t\nreturn AOP_TRUNCATED_PAGE.\n\nWRITEPAGE_ACTIVATE is also prepended with AOP_ for consistency and they are\nmade enums so that kerneldoc can be used to document their semantics.\n\nSigned-off-by: Zach Brown \u003czach.brown@oracle.com\u003e\n"
    },
    {
      "commit": "8f493d797bc1fe470377adc9d8775845427e240e",
      "tree": "08f4555a0064185152a51ed707e9571dbeedddc7",
      "parents": [
        "abe842eb98c45e2b77c5868ef106616ca828a3e4"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "ak@suse.de",
        "time": "Tue Jan 03 00:07:28 2006 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jan 02 17:01:42 2006 -0800"
      },
      "message": "[PATCH] Make sure interleave masks have at least one node set\n\nOtherwise a bad mem policy system call can confuse the interleaving\ncode into referencing undefined nodes.\n\nOriginally reported by Doug Chapman\n\nI was told it\u0027s CVE-2005-3358\n(one has to love these security people - they make everything sound important)\n\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "4d7672b46244abffea1953e55688c0ea143dd617",
      "tree": "9f3bdf438bcb0d5f6e723665ced23308fffb8368",
      "parents": [
        "281ab031a8c9e5b593142eb4ec59a87faae8676a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Dec 16 10:21:23 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Dec 16 10:21:23 2005 -0800"
      },
      "message": "Make sure we copy pages inserted with \"vm_insert_page()\" on fork\n\nThe logic that decides that a fork() might be able to avoid copying a VM\narea when it can be re-created by page faults didn\u0027t know about the new\nvm_insert_page() case.\n\nAlso make some things a bit more anal wrt VM_PFNMAP.\n\nPointed out by Hugh Dickins \u003chugh@veritas.com\u003e\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "78d9955bb06493e7bd78e43dfdc17fb5f1dc59b6",
      "tree": "67254d5c6df42764f5666cd17a6c9b564353ed0a",
      "parents": [
        "538bacf8a4802d209f955726b66891b8a921dabf"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@ftp.linux.org.uk",
        "time": "Thu Dec 15 09:18:25 2005 +0000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Dec 15 10:04:30 2005 -0800"
      },
      "message": "[PATCH] missing prototype (mm/page_alloc.c)\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "118c71bcacce82a4317c9bd99c6a15af14020aee",
      "tree": "9a1f286152a7f21242ba04dd5b24b0cf7be88266",
      "parents": [
        "664d22ab954de54e52e0f71103a89c7a78738adc"
      ],
      "author": {
        "name": "Yasunori Goto",
        "email": "y-goto@jp.fujitsu.com",
        "time": "Tue Dec 13 17:03:37 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Dec 13 21:18:16 2005 -0800"
      },
      "message": "[PATCH] Fix calculation of grow_pgdat_span() in mm/memory_hotplug.c\n\nThe calculation for node_spanned_pages at grow_pgdat_span() is clearly\nwrong.  This is patch for it.\n\n(Please see grow_zone_span() to compare. It is correct.)\n\nSigned-off-by: Yasunori Goto \u003cy-goto@jp.fujitsu.com\u003e\nAcked-by: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "1ff8038988adecfde71d82c0597727fc239d4e8c",
      "tree": "a592cbfad237a5e373724918a0cc17ee9c421237",
      "parents": [
        "14ee0a1414536d27bc29373bf23c106b8ef8ce0b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Dec 12 16:24:33 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Dec 12 16:24:33 2005 -0800"
      },
      "message": "get_user_pages: don\u0027t try to follow PFNMAP pages\n\nNick Piggin points out that a few drivers play games with VM_IO (why?\nwho knows..) and thus a pfn-remapped area may not have that bit set even\nif remap_pfn_range() set it originally.\n\nSo make it explicit in get_user_pages() that we don\u0027t follow VM_PFNMAP\npages, since pretty much by definition they do not have a \"struct page\"\nassociated with them.\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "66d43e98ea6ff291cd4e524386bfb99105feb180",
      "tree": "56cff27261a3f9b16022c9ec8d53e4913f758eb9",
      "parents": [
        "ff9569bc5558e958777fd43580f2ccd83733cdf6"
      ],
      "author": {
        "name": "Haren Myneni",
        "email": "haren@us.ibm.com",
        "time": "Mon Dec 12 00:37:39 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Dec 12 08:57:45 2005 -0800"
      },
      "message": "[PATCH] fix in __alloc_bootmem_core() when there is no free page in first node\u0027s memory\n\nHitting BUG_ON() in __alloc_bootmem_core() when there is no free page\navailable in the first node\u0027s memory.  For the case of kdump on PPC64\n(Power 4 machine), the captured kernel is used two memory regions - memory\nfor TCE tables (tce-base and tce-size at top of RAM and reserved) and\ncaptured kernel memory region (crashk_base and crashk_size).  Since we\nreserve the memory for the first node, we should be returning from\n__alloc_bootmem_core() to search for the next node (pg_dat).\n\nCurrently, find_next_zero_bit() is returning the n^th bit (eidx) when there\nis no free page.  Then, test_bit() is failed since we set 0xff only for the\nactual size initially (init_bootmem_core()) even though rounded up to one\npage for bdata-\u003enode_bootmem_map.  We are hitting the BUG_ON after failing\nto enter second \"for\" loop.\n\nSigned-off-by: Haren Myneni \u003charen@us.ibm.com\u003e\nCc: Andy Whitcroft \u003capw@shadowen.org\u003e\nCc: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "67121172f9753f38689651b613a4850e0e75876f",
      "tree": "cfb6ea8365c44a43ee254385c7d246f0418cedd0",
      "parents": [
        "913f2d792ff584bf9ebf5968472b3e4ffe0fd9c8"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Dec 11 20:38:17 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Dec 11 20:38:17 2005 -0800"
      },
      "message": "Allow arbitrary read-only shared pfn-remapping too\n\nThe VM layer (for historical reasons) turns a read-only shared mmap into\na private-like mapping with the VM_MAYWRITE bit clear.  Thus checking\njust VM_SHARED isn\u0027t actually sufficient.\n\nSo use a trivial helper function for the cases where we wanted to inquire\nif a mapping was COW-like or not.\n\nMoo!\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "7fc7e2eeecb599ba719c4c4503100fc8cd6a6920",
      "tree": "389b63cf2cbdf27fceef52a450b4b05367fe4425",
      "parents": [
        "fb155c1619f056ae9765eed272cd6aba6e1a7399"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Dec 11 19:57:52 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Dec 11 19:57:52 2005 -0800"
      },
      "message": "Remove (at least temporarily) the \"incomplete PFN mapping\" support\n\nWith the previous commit, we can handle arbitrary shared re-mappings\neven without this complexity, and since the only known private mappings\nare for strange users of /dev/mem (which never create an incomplete one),\nthere seems to be no reason to support it.\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "fb155c1619f056ae9765eed272cd6aba6e1a7399",
      "tree": "04a82b5fbf83bdb9dcf7fec9aeaaecf92532d88c",
      "parents": [
        "e4f5c82a92c2a546a16af1614114eec19120e40a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Dec 11 19:46:02 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Dec 11 19:46:02 2005 -0800"
      },
      "message": "Allow arbitrary shared PFNMAP\u0027s\n\nA shared mapping doesn\u0027t cause COW-pages, so we don\u0027t need to worry\nabout the whole vm_pgoff logic to decide if a PFN-remapped page has\ngone through COW or not.\n\nThis makes it possible to entirely avoid the special \"partial remapping\"\nlogic for the common case.\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e3c3374fbf7efe9487edc53cd10436ed641983aa",
      "tree": "316a9e9ea22c49de5bef8af6a4b4557353f7d36a",
      "parents": [
        "0ceaacc9785fedc500e19b024d606a82a23f5372"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Dec 03 20:48:11 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Dec 03 20:48:11 2005 -0800"
      },
      "message": "Make vm_insert_page() available to NVidia module\n\nIt used to use remap_pfn_range(), which wasn\u0027t GPL-only either, and the\nnew interface is actually simpler and does more checking, so we\nshouldn\u0027t unnecessarily discourage people from switching over.\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    }
  ],
  "next": "0ceaacc9785fedc500e19b024d606a82a23f5372"
}
