)]}'
{
  "log": [
    {
      "commit": "da6052f7b33abe55fbfd7d2213815f58c00a88d4",
      "tree": "a2deda88ae8e9fc33d9a0ce80f42fde2c55c7bbc",
      "parents": [
        "e5ac9c5aec7c4bc57fa93f2d37d760a22cb7bd33"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Mon Sep 25 23:31:35 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Sep 26 08:48:49 2006 -0700"
      },
      "message": "[PATCH] update some mm/ comments\n\nLet\u0027s try to keep mm/ comments more useful and up to date. This is a start.\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": "e5ac9c5aec7c4bc57fa93f2d37d760a22cb7bd33",
      "tree": "3f8824da788608592a06cd888eca220c297eb901",
      "parents": [
        "dfd54cbcc0b834652389ce99b5e656ea5f44a3c1"
      ],
      "author": {
        "name": "Ravikiran G Thirumalai",
        "email": "kiran@scalex86.org",
        "time": "Mon Sep 25 23:31:34 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Sep 26 08:48:49 2006 -0700"
      },
      "message": "[PATCH] Add some comments to slab.c\n\nAlso, checks if we get a valid slabp_cache for off slab slab-descriptors.\nWe should always get this.  If we don\u0027t, then in that case we, will have to\ndisable off-slab descriptors for this cache and do the calculations again.\nThis is a rare case, so add a BUG_ON, for now, just in case.\n\nSigned-off-by: Alok N Kataria \u003calok.kataria@calsoftinc.com\u003e\nSigned-off-by: Ravikiran Thirumalai \u003ckiran@scalex86.org\u003e\nSigned-off-by: Shai Fultheim \u003cshai@scalex86.org\u003e\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: Manfred Spraul \u003cmanfred@colorfullife.com\u003e\nCc: Christoph Lameter \u003cclameter@engr.sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "dfd54cbcc0b834652389ce99b5e656ea5f44a3c1",
      "tree": "7c403a50b42b2809bb9b18122cbd83e8e2c180c9",
      "parents": [
        "b72f160443cb78b2f8addae6e331d2adaa70f869"
      ],
      "author": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Mon Sep 25 23:31:33 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Sep 26 08:48:49 2006 -0700"
      },
      "message": "[PATCH] bootmem: use MAX_DMA_ADDRESS instead of LOW32LIMIT\n\nIntroduce ARCH_LOW_ADDRESS_LIMIT which can be set per architecture to\noverride the 4GB default limit used by the bootmem allocater within\n__alloc_bootmem_low() and __alloc_bootmem_low_node().  E.g.  s390 needs a\n2GB limit instead of 4GB.\n\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nSigned-off-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "b72f160443cb78b2f8addae6e331d2adaa70f869",
      "tree": "3321d797b286aba5f16f83db07d0d3fe93993e73",
      "parents": [
        "5081dde33f7a61d28d9b185cc386f12cb837c7a4"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Mon Sep 25 23:31:32 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Sep 26 08:48:49 2006 -0700"
      },
      "message": "[PATCH] oom: more printk\n\nPrint the name of the task invoking the OOM killer.  Could make debugging\neasier.\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": "5081dde33f7a61d28d9b185cc386f12cb837c7a4",
      "tree": "d2e6f39db4005229580f571137a833c1dabfc38b",
      "parents": [
        "af5b912435de32fbede08cee949429823ed49781"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Mon Sep 25 23:31:32 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Sep 26 08:48:49 2006 -0700"
      },
      "message": "[PATCH] oom: kthread infinite loop fix\n\nSkip kernel threads, rather than having them return 0 from badness.\nTheoretically, badness might truncate all results to 0, thus a kernel thread\nmight be picked first, causing an infinite loop.\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": "af5b912435de32fbede08cee949429823ed49781",
      "tree": "ea1de1a800c6fc60537912d4dad35a3cf211c86e",
      "parents": [
        "4a3ede107e422a0c53d28024b0aa902ca22a8768"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Mon Sep 25 23:31:31 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Sep 26 08:48:49 2006 -0700"
      },
      "message": "[PATCH] oom: swapoff tasks tweak\n\nPF_SWAPOFF processes currently cause select_bad_process to return straight\naway.  Instead, give them high priority, so we will kill them first, however\nwe also first ensure no parallel OOM kills are happening at the same time.\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": "4a3ede107e422a0c53d28024b0aa902ca22a8768",
      "tree": "39f687cc0470cea45ed1387ebc16fee7d6066485",
      "parents": [
        "50ec3bbffbe8a96347c54832d48110a5bc9e9ff8"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Mon Sep 25 23:31:30 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Sep 26 08:48:48 2006 -0700"
      },
      "message": "[PATCH] oom: handle oom_disable exiting\n\nHaving the oomkilladj \u003d\u003d OOM_DISABLE check before the releasing check means\nthat oomkilladj \u003d\u003d OOM_DISABLE tasks exiting will not stop the OOM killer.\n\nMoving the test down will give the desired behaviour.  Also: it will allow\nthem to \"OOM-kill\" themselves if they are exiting.  As per the previous patch,\nthis is required to prevent OOM killer deadlocks (and they don\u0027t actually get\nkilled, because they\u0027re already exiting -- they\u0027re simply allowed access to\nmemory reserves).\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": "50ec3bbffbe8a96347c54832d48110a5bc9e9ff8",
      "tree": "3941902b1c68525472ea3a502e76faa7fe675cd1",
      "parents": [
        "7887a3da753e1ba8244556cc9a2b38c815bfe256"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Mon Sep 25 23:31:29 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Sep 26 08:48:48 2006 -0700"
      },
      "message": "[PATCH] oom: handle current exiting\n\nIf current *is* exiting, it should actually be allowed to access reserved\nmemory rather than OOM kill something else.  Can\u0027t do this via a straight\ncheck in page_alloc.c because that would allow multiple tasks to use up\nreserves.  Instead cause current to OOM-kill itself which will mark it as\nTIF_MEMDIE.\n\nThe current procedure of simply aborting the OOM-kill if a task is exiting can\nlead to OOM deadlocks.\n\nIn the case of killing a PF_EXITING task, don\u0027t make a lot of noise about it.\nThis becomes more important in future patches, where we can \"kill\" OOM_DISABLE\ntasks.\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": "7887a3da753e1ba8244556cc9a2b38c815bfe256",
      "tree": "f3563927615c6b9c260f7ca84567c7bca2dac91f",
      "parents": [
        "4ff1ffb4870b007b86f21e5f27eeb11498c4c077"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Mon Sep 25 23:31:29 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Sep 26 08:48:48 2006 -0700"
      },
      "message": "[PATCH] oom: cpuset hint\n\ncpuset_excl_nodes_overlap does not always indicate that killing a task will\nnot free any memory we for us.  For example, we may be asking for an\nallocation from _anywhere_ in the machine, or the task in question may be\npinning memory that is outside its cpuset.  Fix this by just causing\ncpuset_excl_nodes_overlap to reduce the badness rather than disallow it.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\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": "4ff1ffb4870b007b86f21e5f27eeb11498c4c077",
      "tree": "f168408f90214873e1fa36733d29f2ba002fae46",
      "parents": [
        "408d85441cd5a9bd6bc851d677a10c605ed8db5f"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Mon Sep 25 23:31:28 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Sep 26 08:48:48 2006 -0700"
      },
      "message": "[PATCH] oom: reclaim_mapped on oom\n\nPotentially it takes several scans of the lru lists before we can even start\nreclaiming pages.\n\nmapped pages, with young ptes can take 2 passes on the active list + one on\nthe inactive list.  But reclaim_mapped may not always kick in instantly, so it\ncould take even more than that.\n\nRaise the threshold for marking a zone as all_unreclaimable from a factor of 4\ntime the pages in the zone to 6.  Introduce a mechanism to force\nreclaim_mapped if we\u0027ve reached a factor 3 and still haven\u0027t made progress.\n\nPreviously, a customer doing stress testing was able to easily OOM the box\nafter using only a small fraction of its swap (~100MB).  After the patches, it\nwould only OOM after having used up all swap (~800MB).\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": "408d85441cd5a9bd6bc851d677a10c605ed8db5f",
      "tree": "547ba9fbd4000585f14e9fcdd3cf539cde58a25a",
      "parents": [
        "6ddab3b9ebebc88bfdd8107c64f12d7e4480c559"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Mon Sep 25 23:31:27 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Sep 26 08:48:48 2006 -0700"
      },
      "message": "[PATCH] oom: use unreclaimable info\n\n__alloc_pages currently starts shooting if page reclaim has failed to free up\nswap_cluster_max pages in one run through the priorities.  This is not always\na good indicator on its own, so make use of the all_unreclaimable logic as\nwell: don\u0027t consider going OOM until all zones we\u0027re interested in are\nunreclaimable.\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": "6ddab3b9ebebc88bfdd8107c64f12d7e4480c559",
      "tree": "192edd3a85d3665bb7e44c429609a7357ba12bac",
      "parents": [
        "ca5f9703dffa012cc46166e6206c5a992910e041"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Mon Sep 25 23:31:26 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Sep 26 08:48:48 2006 -0700"
      },
      "message": "[PATCH] mm: swap write failure fixup\n\nCurrently we can silently drop data if the write to swap failed.  It\nusually doesn\u0027t result in data-corruption because on page-in the process\nwill receive SIGBUS (assuming write-failure implies read-failure).\n\nThis assumption might or might not be valid.\n\nThis patch will avoid the page being discarded after a failed write.  But\nwill print a warning the sysadmin _should_ take to heart, if a lot of swap\nspace becomes un-writeable, OOM is not far off.\n\nTested by making the write fail \u0027randomly\u0027 once every 50 writes or so.\n\n[akpm@osdl.org: printk warning fix]\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\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": "ca5f9703dffa012cc46166e6206c5a992910e041",
      "tree": "d1fb19019db14465eb8674aa1b13c6506a569705",
      "parents": [
        "db37648cd6ce9b828abd6d49aa3d269926ee7b7d"
      ],
      "author": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Mon Sep 25 23:31:25 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Sep 26 08:48:48 2006 -0700"
      },
      "message": "[PATCH] slab: respect architecture and caller mandated alignment\n\nAs explained by Heiko, on s390 (32-bit) ARCH_KMALLOC_MINALIGN is set to\neight because their common I/O layer allocates data structures that need to\nhave an eight byte alignment.  This does not work when CONFIG_SLAB_DEBUG is\nenabled because kmem_cache_create will override alignment to BYTES_PER_WORD\nwhich is four.\n\nSo change kmem_cache_create to ensure cache alignment is always at minimum\nwhat the architecture or caller mandates even if slab debugging is enabled.\n\nCc: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nCc: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Manfred Spraul \u003cmanfred@colorfullife.com\u003e\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": "db37648cd6ce9b828abd6d49aa3d269926ee7b7d",
      "tree": "a0155c7897f4706386d10c8718f98687bc357c82",
      "parents": [
        "28e4d965e6131ace1e813e93aebca89ac6b82dc1"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Mon Sep 25 23:31:24 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Sep 26 08:48:48 2006 -0700"
      },
      "message": "[PATCH] mm: non syncing lock_page()\n\nlock_page needs the caller to have a reference on the page-\u003emapping inode\ndue to sync_page, ergo set_page_dirty_lock is obviously buggy according to\nits comments.\n\nSolve it by introducing a new lock_page_nosync which does not do a sync_page.\n\nakpm: unpleasant solution to an unpleasant problem.  If it goes wrong it could\ncause great slowdowns while the lock_page() caller waits for kblockd to\nperform the unplug.  And if a filesystem has special sync_page() requirements\n(none presently do), permanent hangs are possible.\n\notoh, set_page_dirty_lock() is usually (always?) called against userspace\npages.  They are always up-to-date, so there shouldn\u0027t be any pending read I/O\nagainst these pages.\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": "28e4d965e6131ace1e813e93aebca89ac6b82dc1",
      "tree": "6c98aa227c5cfdc9fb51ddf53c4497127beb3ca1",
      "parents": [
        "bfa5bf6d6446f0028187a727f792fbc7934228ad"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Mon Sep 25 23:31:23 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Sep 26 08:48:48 2006 -0700"
      },
      "message": "[PATCH] mm: remove_mapping() safeness\n\nSome users of remove_mapping had been unsafe.\n\nModify the remove_mapping precondition to ensure the caller has locked the\npage and obtained the correct mapping.  Modify callers to ensure the\nmapping is the correct one.\n\n[hugh@veritas.com: swapper_space fix]\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: 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": "bfa5bf6d6446f0028187a727f792fbc7934228ad",
      "tree": "bd996f39ec18a78ea72209204328e48ebf6170f2",
      "parents": [
        "7ff6f08295d90ab20d25200ef485ebb45b1b8d71"
      ],
      "author": {
        "name": "Rolf Eike Beer",
        "email": "eike-kernel@sf-tec.de",
        "time": "Mon Sep 25 23:31:22 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Sep 26 08:48:47 2006 -0700"
      },
      "message": "[PATCH] Add kerneldocs for some functions in mm/memory.c\n\nThese functions are already documented quite well with long comments.  Now\nadd kerneldoc style header to make this turn up in everyones favorite doc\nformat.\n\nSigned-off-by: Rolf Eike Beer \u003ceike-kernel@sf-tec.de\u003e\nCc: \"Randy.Dunlap\" \u003crdunlap@xenotime.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "7ff6f08295d90ab20d25200ef485ebb45b1b8d71",
      "tree": "4c3410dcf5191ab574304f3ffbafd675545c2297",
      "parents": [
        "8bc719d3cab8414938f9ea6e33b58d8810d18068"
      ],
      "author": {
        "name": "Martin Peschke",
        "email": "mp3@de.ibm.com",
        "time": "Mon Sep 25 23:31:21 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Sep 26 08:48:47 2006 -0700"
      },
      "message": "[PATCH] CPU hotplug compatible alloc_percpu()\n\nThis patch splits alloc_percpu() up into two phases.  Likewise for\nfree_percpu().  This allows clients to limit initial allocations to online\ncpu\u0027s, and to populate or depopulate per-cpu data at run time as needed:\n\n  struct my_struct *obj;\n\n  /* initial allocation for online cpu\u0027s */\n  obj \u003d percpu_alloc(sizeof(struct my_struct), GFP_KERNEL);\n\n  ...\n\n  /* populate per-cpu data for cpu coming online */\n  ptr \u003d percpu_populate(obj, sizeof(struct my_struct), GFP_KERNEL, cpu);\n\n  ...\n\n  /* access per-cpu object */\n  ptr \u003d percpu_ptr(obj, smp_processor_id());\n\n  ...\n\n  /* depopulate per-cpu data for cpu going offline */\n  percpu_depopulate(obj, cpu);\n\n  ...\n\n  /* final removal */\n  percpu_free(obj);\n\nSigned-off-by: Martin Peschke \u003cmp3@de.ibm.com\u003e\nCc: 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": "8bc719d3cab8414938f9ea6e33b58d8810d18068",
      "tree": "1afd4ce7865466bf9578ca746c63c1d351f07cdc",
      "parents": [
        "19655d3487001d7df0e10e9cbfc27c758b77c2b5"
      ],
      "author": {
        "name": "Martin Schwidefsky",
        "email": "schwidefsky@de.ibm.com",
        "time": "Mon Sep 25 23:31:20 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Sep 26 08:48:47 2006 -0700"
      },
      "message": "[PATCH] out of memory notifier\n\nAdd a notifer chain to the out of memory killer.  If one of the registered\ncallbacks could release some memory, do not kill the process but return and\nretry the allocation that forced the oom killer to run.\n\nThe purpose of the notifier is to add a safety net in the presence of\nmemory ballooners.  If the resource manager inflated the balloon to a size\nwhere memory allocations can not be satisfied anymore, it is better to\ndeflate the balloon a bit instead of killing processes.\n\nThe implementation for the s390 ballooner is included.\n\n[akpm@osdl.org: cleanups]\nSigned-off-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "19655d3487001d7df0e10e9cbfc27c758b77c2b5",
      "tree": "8d0aaa216bd32bd64e3a9652fd34d40bdb9d1075",
      "parents": [
        "2f6726e54a9410e2e4cee864947c05e954051916"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Mon Sep 25 23:31:19 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Sep 26 08:48:47 2006 -0700"
      },
      "message": "[PATCH] linearly index zone-\u003enode_zonelists[]\n\nI wonder why we need this bitmask indexing into zone-\u003enode_zonelists[]?\n\nWe always start with the highest zone and then include all lower zones\nif we build zonelists.\n\nAre there really cases where we need allocation from ZONE_DMA or\nZONE_HIGHMEM but not ZONE_NORMAL? It seems that the current implementation\nof highest_zone() makes that already impossible.\n\nIf we go linear on the index then gfp_zone() \u003d\u003d highest_zone() and a lot\nof definitions fall by the wayside.\n\nWe can now revert back to the use of gfp_zone() in mempolicy.c ;-)\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": "2f6726e54a9410e2e4cee864947c05e954051916",
      "tree": "91b1173dead0cfc4a25caacb34b6c80f526bbc59",
      "parents": [
        "4e4785bcf0c8503224fa6c17d8e0228de781bff6"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Mon Sep 25 23:31:18 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Sep 26 08:48:47 2006 -0700"
      },
      "message": "[PATCH] Apply type enum zone_type\n\nAfter we have done this we can now do some typing cleanup.\n\nThe memory policy layer keeps a policy_zone that specifies\nthe zone that gets memory policies applied. This variable\ncan now be of type enum zone_type.\n\nThe check_highest_zone function and the build_zonelists funnctionm must\nthen also take a enum zone_type parameter.\n\nPlus there are a number of loops over zones that also should use\nzone_type.\n\nWe run into some troubles at some points with functions that need a\nzone_type variable to become -1. Fix that up.\n\n[pj@sgi.com: fix set_mempolicy() crash]\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\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": "4e4785bcf0c8503224fa6c17d8e0228de781bff6",
      "tree": "002c0a051f7f4de4548ca0a8394b664f64c63627",
      "parents": [
        "b9b15780f808efa2c897f337644ba7a2bec03ecc"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Mon Sep 25 23:31:17 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Sep 26 08:48:47 2006 -0700"
      },
      "message": "[PATCH] mempolicies: fix policy_zone check\n\nThere is a check in zonelist_policy that compares pieces of the bitmap\nobtained from a gfp mask via GFP_ZONETYPES with a zone number in function\nzonelist_policy().\n\nThe bitmap is an ORed mask of __GFP_DMA, __GFP_DMA32 and __GFP_HIGHMEM.\nThe policy_zone is a zone number with the possible values of ZONE_DMA,\nZONE_DMA32, ZONE_HIGHMEM and ZONE_NORMAL. These are two different domains\nof values.\n\nFor some reason seemed to work before the zone reduction patchset (It\ndefinitely works on SGI boxes since we just have one zone and the check\ncannot fail).\n\nWith the zone reduction patchset this check definitely fails on systems\nwith two zones if the system actually has memory in both zones.\n\nThis is because ZONE_NORMAL is selected using no __GFP flag at\nall and thus gfp_zone(gfpmask) \u003d\u003d 0. ZONE_DMA is selected when __GFP_DMA\nis set. __GFP_DMA is 0x01.  So gfp_zone(gfpmask) \u003d\u003d 1.\n\npolicy_zone is set to ZONE_NORMAL (\u003d\u003d1) if ZONE_NORMAL and ZONE_DMA are\npopulated.\n\nFor ZONE_NORMAL gfp_zone(\u003cno _GFP_DMA\u003e) yields 0 which is \u003c\npolicy_zone(ZONE_NORMAL) and so policy is not applied to regular memory\nallocations!\n\nInstead gfp_zone(__GFP_DMA) \u003d\u003d 1 which results in policy being applied\nto DMA allocations!\n\nWhat we realy want in that place is to establish the highest allowable\nzone for a given gfp_mask. If the highest zone is higher or equal to the\npolicy_zone then memory policies need to be applied. We have such\na highest_zone() function in page_alloc.c.\n\nSo move the highest_zone() function from mm/page_alloc.c into\ninclude/linux/gfp.h.  On the way we simplify the function and use the new\nzone_type that was also introduced with the zone reduction patchset plus we\nalso specify the right type for the gfp flags parameter.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Lee Schermerhorn \u003cLee.Schermerhorn@hp.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "27bf71c2a7e596ed34e9bf2d4a5030321a09a1ad",
      "tree": "30aca46595486b7a9d69d2d2f58b305cf32f41d9",
      "parents": [
        "e53ef38d05dd59ed281a35590e4a5b64d8ff4c52"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Mon Sep 25 23:31:15 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Sep 26 08:48:47 2006 -0700"
      },
      "message": "[PATCH] reduce MAX_NR_ZONES: remove display of counters for unconfigured zones\n\neventcounters: Do not display counters for zones that are not available on an\narch\n\nDo not define or display counters for the DMA32 and the HIGHMEM zone if such\nzones were not configured.\n\n[akpm@osdl.org: s390 fix]\n[heiko.carstens@de.ibm.com: s390 fix]\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nSigned-off-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e53ef38d05dd59ed281a35590e4a5b64d8ff4c52",
      "tree": "42e525df84454e89abd6cab8d7983a6a0188b6bb",
      "parents": [
        "fb0e7942bdcbbd2f90e61cb4cfa4fa892a873f8a"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Mon Sep 25 23:31:14 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Sep 26 08:48:46 2006 -0700"
      },
      "message": "[PATCH] reduce MAX_NR_ZONES: make ZONE_HIGHMEM optional\n\nMake ZONE_HIGHMEM optional\n\n- ifdef out code and definitions related to CONFIG_HIGHMEM\n\n- __GFP_HIGHMEM falls back to normal allocations if there is no\n  ZONE_HIGHMEM\n\n- GFP_ZONEMASK becomes 0x01 if there is no DMA32 and no HIGHMEM\n  zone.\n\n[jdike@addtoit.com: build fix]\nSigned-off-by: Jeff Dike \u003cjdike@addtoit.com\u003e\nSigned-off-by: Christoph Lameter \u003cclameter@engr.sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "fb0e7942bdcbbd2f90e61cb4cfa4fa892a873f8a",
      "tree": "71344e9afafbd631f4ac010bc8c48e0b16737299",
      "parents": [
        "2f1b6248682f8b39ca3c7e549dfc216d26c4109b"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Mon Sep 25 23:31:13 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Sep 26 08:48:46 2006 -0700"
      },
      "message": "[PATCH] reduce MAX_NR_ZONES: make ZONE_DMA32 optional\n\nMake ZONE_DMA32 optional\n\n- Add #ifdefs around ZONE_DMA32 specific code and definitions.\n\n- Add CONFIG_ZONE_DMA32 config option and use that for x86_64\n  that alone needs this zone.\n\n- Remove the use of CONFIG_DMA_IS_DMA32 and CONFIG_DMA_IS_NORMAL\n  for ia64 and fix up the way per node ZVCs are calculated.\n\n- Fall back to prior GFP_ZONEMASK of 0x03 if there is no\n  DMA32 zone.\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": "2f1b6248682f8b39ca3c7e549dfc216d26c4109b",
      "tree": "2340347d10fd0e564fb8527efe3ffbcb216e1906",
      "parents": [
        "98d2b0ebda72fc39cdefd3720d50b9b3ce409085"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Mon Sep 25 23:31:13 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Sep 26 08:48:46 2006 -0700"
      },
      "message": "[PATCH] reduce MAX_NR_ZONES: use enum to define zones, reformat and comment\n\nUse enum for zones and reformat zones dependent information\n\nAdd comments explaning the use of zones and add a zones_t type for zone\nnumbers.\n\nLine up information that will be #ifdefd by the following patches.\n\n[akpm@osdl.org: comment cleanups]\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": "98d2b0ebda72fc39cdefd3720d50b9b3ce409085",
      "tree": "ce51d8a2eab039c25667e6c448d5393582065d14",
      "parents": [
        "c1f60a5a419cc60aff27daffb150f5a3a3a79ef4"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Mon Sep 25 23:31:12 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Sep 26 08:48:46 2006 -0700"
      },
      "message": "[PATCH] reduce MAX_NR_ZONES: page allocator ZONE_HIGHMEM cleanup\n\npage allocator ZONE_HIGHMEM fixups\n\n1. We do not need to do an #ifdef in si_meminfo since both counters\n   in use are zero if !CONFIG_HIGHMEM.\n\n2. Add #ifdef in si_meminfo_node instead to avoid referencing zone\n   information for ZONE_HIGHMEM if we do not have HIGHMEM\n   (may not be there after the following patches).\n\n3. Replace the use of ZONE_HIGHMEM with MAX_NR_ZONES in build_zonelists_node\n\n4. build_zonelists_node: Remove BUG_ON for ZONE_HIGHMEM. Zone will\n   be optional soon and thus BUG_ON cannot be triggered anymore.\n\n5. init_free_area_core: Replace a use of ZONE_HIGHMEM with NR_MAX_ZONES.\n\n[akpm@osdl.org: cleanups]\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": "c1f60a5a419cc60aff27daffb150f5a3a3a79ef4",
      "tree": "8ae176462d6f220cd744ae6c3454113eebda02a8",
      "parents": [
        "182e8e237349e7b6354f45aee4780b6423fd6a50"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Mon Sep 25 23:31:11 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Sep 26 08:48:46 2006 -0700"
      },
      "message": "[PATCH] reduce MAX_NR_ZONES: move HIGHMEM counters into highmem.c/.h\n\nMove totalhigh_pages and nr_free_highpages() into highmem.c/.h\n\nMove the totalhigh_pages definition into highmem.c/.h.  Move the\nnr_free_highpages function into highmem.c\n\n[yoichi_yuasa@tripeaks.co.jp: build fix]\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Yoichi Yuasa \u003cyoichi_yuasa@tripeaks.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "182e8e237349e7b6354f45aee4780b6423fd6a50",
      "tree": "a1b9fc186a514e547eb257803616d67ba7b69976",
      "parents": [
        "f06a96844a577c43249fce25809a4fae07407f46"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Mon Sep 25 23:31:10 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Sep 26 08:48:46 2006 -0700"
      },
      "message": "[PATCH] reduce MAX_NR_ZONES: make display of highmem counters conditional on CONFIG_HIGHMEM\n\nDo not display HIGHMEM memory sizes if CONFIG_HIGHMEM is not set.\n\nMake HIGHMEM dependent texts and make display of highmem counters optional\n\nSome texts are depending on CONFIG_HIGHMEM.\n\nRemove those strings and remove the display of highmem counter values if\nCONFIG_HIGHMEM is not set.\n\n[akpm@osdl.org: remove some ifdefs]\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": "f71bf0cac730ccb5ebcdf21747db75ae0445ccde",
      "tree": "2ba089be617218753b9d8b8faf05eb97eec42120",
      "parents": [
        "bbc7b92e337ac349ca917f9bf0b6be4743c14f3a"
      ],
      "author": {
        "name": "Franck Bui-Huu",
        "email": "vagabon.xyz@gmail.com",
        "time": "Mon Sep 25 23:31:08 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Sep 26 08:48:45 2006 -0700"
      },
      "message": "[PATCH] bootmem: miscellaneous coding style fixes\n\nIt fixes various coding style issues, specially when spaces are useless.  For\nexample \u0027*\u0027 go next to the function name.\n\nSigned-off-by: Franck Bui-Huu \u003cvagabon.xyz@gmail.com\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": "bbc7b92e337ac349ca917f9bf0b6be4743c14f3a",
      "tree": "7361d18c6b40957fda598cc9db0d02648b0918eb",
      "parents": [
        "e786e86a542ccc1133f333402526ad00b9c088ae"
      ],
      "author": {
        "name": "Franck Bui-Huu",
        "email": "vagabon.xyz@gmail.com",
        "time": "Mon Sep 25 23:31:07 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Sep 26 08:48:45 2006 -0700"
      },
      "message": "[PATCH] bootmem: use pfn/page conversion macros\n\nIt also creates get_mapsize() helper in order to make the code more readable\nwhen it calculates the boot bitmap size.\n\nSigned-off-by: Franck Bui-Huu \u003cvagabon.xyz@gmail.com\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": "e786e86a542ccc1133f333402526ad00b9c088ae",
      "tree": "db08d5e3fd398e9f22128a6867aa12497abe3e7c",
      "parents": [
        "bb0923a66820718f636736b22ce47372f79e3400"
      ],
      "author": {
        "name": "Franck Bui-Huu",
        "email": "vagabon.xyz@gmail.com",
        "time": "Mon Sep 25 23:31:06 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Sep 26 08:48:45 2006 -0700"
      },
      "message": "[PATCH] bootmem: remove useless headers inclusions\n\nSigned-off-by: Franck Bui-Huu \u003cvagabon.xyz@gmail.com\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": "bb0923a66820718f636736b22ce47372f79e3400",
      "tree": "56554098cb8cda63a1f805db211f1eea750befae",
      "parents": [
        "71fb2e8f8753b66b1f4295aa264a2eb4e69381e8"
      ],
      "author": {
        "name": "Franck Bui-Huu",
        "email": "vagabon.xyz@gmail.com",
        "time": "Mon Sep 25 23:31:05 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Sep 26 08:48:45 2006 -0700"
      },
      "message": "[PATCH] bootmem: limit to 80 columns width\n\nSigned-off-by: Franck Bui-Huu \u003cvagabon.xyz@gmail.com\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": "69d49e681d7c7ed864a1ba45efc1e78433df8b9a",
      "tree": "c203f8c571d428f15b5b964468b1b90ede973915",
      "parents": [
        "2d1a07d487d8b36658404839cdf03a974968cefd"
      ],
      "author": {
        "name": "Franck Bui-Huu",
        "email": "vagabon.xyz@gmail.com",
        "time": "Mon Sep 25 23:31:04 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Sep 26 08:48:45 2006 -0700"
      },
      "message": "[PATCH] bootmem: mark link_bootmem() as part of the __init section\n\nSigned-off-by: Franck Bui-Huu \u003cvagabon.xyz@gmail.com\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": "b221385bc41d6789edde3d2fa0cb20d5045730eb",
      "tree": "93f3317247d587fd011eb9d77cd73a49670d8d5f",
      "parents": [
        "204ec841fbea3e5138168edbc3a76d46747cc987"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Mon Sep 25 23:31:02 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Sep 26 08:48:45 2006 -0700"
      },
      "message": "[PATCH] mm/: make functions static\n\nThis patch makes the following needlessly global functions static:\n - slab.c: kmem_find_general_cachep()\n - swap.c: __page_cache_release()\n - vmalloc.c: __vmalloc_node()\n\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "204ec841fbea3e5138168edbc3a76d46747cc987",
      "tree": "bc52089e8862b24d7f4153b56eaf7ecc3f1af9fe",
      "parents": [
        "ee6a6457886a80415db209e87033b63f2b06558c"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Mon Sep 25 23:31:01 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Sep 26 08:48:45 2006 -0700"
      },
      "message": "[PATCH] mm: msync() cleanup\n\nWith the tracking of dirty pages properly done now, msync doesn\u0027t need to scan\nthe PTEs anymore to determine the dirty status.\n\nFrom: Hugh Dickins \u003chugh@veritas.com\u003e\n\nIn looking to do that, I made some other tidyups: can remove several\n#includes, and sys_msync loop termination not quite right.\n\nMost of those points are criticisms of the existing sys_msync, not of your\npatch.  In particular, the loop termination errors were introduced in 2.6.17:\nI did notice this shortly before it came out, but decided I was more likely to\nget it wrong myself, and make matters worse if I tried to rush a last-minute\nfix in.  And it\u0027s not terribly likely to go wrong, nor disastrous if it does\ngo wrong (may miss reporting an unmapped area; may also fsync file of a\nfollowing vma).\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: 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": "ee6a6457886a80415db209e87033b63f2b06558c",
      "tree": "227351bf31ccc6153879cc900c5d6a822832b645",
      "parents": [
        "e88dd6c11c5aef74d8b74a062767add53315533b"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Mon Sep 25 23:31:00 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Sep 26 08:48:44 2006 -0700"
      },
      "message": "[PATCH] mm: fixup do_wp_page()\n\nWrt. the recent modifications in do_wp_page() Hugh Dickins pointed out:\n\n  \"I now realize it\u0027s right to the first order (normal case) and to the\n   second order (ptrace poke), but not to the third order (ptrace poke\n   anon page here to be COWed - perhaps can\u0027t occur without intervening\n   mprotects).\"\n\nThis patch restores the old COW behaviour for anonymous pages.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nAcked-by: 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": "e88dd6c11c5aef74d8b74a062767add53315533b",
      "tree": "cf1b66d110e33ab4d6a22438dff4508dd785acd1",
      "parents": [
        "c1e6098b23bb46e2b488fe9a26f831f867157483"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Mon Sep 25 23:30:59 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Sep 26 08:48:44 2006 -0700"
      },
      "message": "[PATCH] mm: small cleanup of install_page()\n\nSmallish cleanup to install_page(), could save a memory read (haven\u0027t checked\nthe asm output) and sure looks nicer.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\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": "c1e6098b23bb46e2b488fe9a26f831f867157483",
      "tree": "6bac4d3cfaab3e7153a15d1a24f9211b2de37ba6",
      "parents": [
        "edc79b2a46ed854595e40edcf3f8b37f9f14aa3f"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Mon Sep 25 23:30:59 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Sep 26 08:48:44 2006 -0700"
      },
      "message": "[PATCH] mm: optimize the new mprotect() code a bit\n\nmprotect() resets the page protections, which could result in extra write\nfaults for those pages whose dirty state we track using write faults and are\ndirty already.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\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": "edc79b2a46ed854595e40edcf3f8b37f9f14aa3f",
      "tree": "c1120bebede9660ab00f9439aa7a84ab9434ac38",
      "parents": [
        "d08b3851da41d0ee60851f2c75b118e1f7a5fc89"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Mon Sep 25 23:30:58 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Sep 26 08:48:44 2006 -0700"
      },
      "message": "[PATCH] mm: balance dirty pages\n\nNow that we can detect writers of shared mappings, throttle them.  Avoids OOM\nby surprise.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\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": "d08b3851da41d0ee60851f2c75b118e1f7a5fc89",
      "tree": "a01f6930a1387e8f66607e2fe16c62bb7044353b",
      "parents": [
        "725d704ecaca4a43f067092c140d4f3271cf2856"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Mon Sep 25 23:30:57 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Sep 26 08:48:44 2006 -0700"
      },
      "message": "[PATCH] mm: tracking shared dirty pages\n\nTracking of dirty pages in shared writeable mmap()s.\n\nThe idea is simple: write protect clean shared writeable pages, catch the\nwrite-fault, make writeable and set dirty.  On page write-back clean all the\nPTE dirty bits and write protect them once again.\n\nThe implementation is a tad harder, mainly because the default\nbacking_dev_info capabilities were too loosely maintained.  Hence it is not\nenough to test the backing_dev_info for cap_account_dirty.\n\nThe current heuristic is as follows, a VMA is eligible when:\n - its shared writeable\n    (vm_flags \u0026 (VM_WRITE|VM_SHARED)) \u003d\u003d (VM_WRITE|VM_SHARED)\n - it is not a \u0027special\u0027 mapping\n    (vm_flags \u0026 (VM_PFNMAP|VM_INSERTPAGE)) \u003d\u003d 0\n - the backing_dev_info is cap_account_dirty\n    mapping_cap_account_dirty(vma-\u003evm_file-\u003ef_mapping)\n - f_op-\u003emmap() didn\u0027t change the default page protection\n\nPage from remap_pfn_range() are explicitly excluded because their COW\nsemantics are already horrid enough (see vm_normal_page() in do_wp_page()) and\nbecause they don\u0027t have a backing store anyway.\n\nmprotect() is taught about the new behaviour as well.  However it overrides\nthe last condition.\n\nCleaning the pages on write-back is done with page_mkclean() a new rmap call.\nIt can be called on any page, but is currently only implemented for mapped\npages, if the page is found the be of a VMA that accounts dirty pages it will\nalso wrprotect the PTE.\n\nFinally, in fs/buffers.c:try_to_free_buffers(); remove clear_page_dirty() from\nunder -\u003eprivate_lock.  This seems to be safe, since -\u003eprivate_lock is used to\nserialize access to the buffers, not the page itself.  This is needed because\nclear_page_dirty() will call into page_mkclean() and would thereby violate\nlocking order.\n\n[dhowells@redhat.com: Provide a page_mkclean() implementation for NOMMU]\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\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": "725d704ecaca4a43f067092c140d4f3271cf2856",
      "tree": "320cf8ab5457ac6c01c05da8c30d6026538ee259",
      "parents": [
        "a6ca1b99ed434f3fb41bbed647ed36c0420501e5"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Mon Sep 25 23:30:55 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Sep 26 08:48:44 2006 -0700"
      },
      "message": "[PATCH] mm: VM_BUG_ON\n\nIntroduce a VM_BUG_ON, which is turned on with CONFIG_DEBUG_VM.  Use this\nin the lightweight, inline refcounting functions; PageLRU and PageActive\nchecks in vmscan, because they\u0027re pretty well confined to vmscan.  And in\npage allocate/free fastpaths which can be the hottest parts of the kernel\nfor kbuilds.\n\nUnlike BUG_ON, VM_BUG_ON must not be used to execute statements with\nside-effects, and should not be used outside core mm code.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: Christoph Lameter \u003cclameter@engr.sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "f3ef9ead31ae995251b420ac98398bd7545bf4e1",
      "tree": "aa5addbe49c1f7864bc2e5023b7edb11aaf3706b",
      "parents": [
        "24fd425edd53ea580cad917e825c1f6715e9b939"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@cs.washington.edu",
        "time": "Mon Sep 25 16:24:57 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Sep 25 17:38:36 2006 -0700"
      },
      "message": "[PATCH] do not free non slab allocated per_cpu_pageset\n\nStops panic associated with attempting to free a non slab-allocated\nper_cpu_pageset.\n\nSigned-off-by: David Rientjes \u003crientjes@cs.washington.edu\u003e\nAcked-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "9f261e011340bcd22c1dd48b465153bd78caa8c8",
      "tree": "b1c266ea746a0e8591e6af781aef22854e652ff9",
      "parents": [
        "a4c12d6c5dde48c69464baf7c703e425ee511433",
        "026ed5c9185dcc4b2df92e98c3d61a01cea19cbf"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Sep 23 16:58:40 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Sep 23 16:58:40 2006 -0700"
      },
      "message": "Merge git://git.linux-nfs.org/pub/linux/nfs-2.6\n\n* git://git.linux-nfs.org/pub/linux/nfs-2.6: (74 commits)\n  NFS: unmark NFS direct I/O as experimental\n  NFS: add comments clarifying the use of nfs_post_op_update()\n  NFSv4: rpc_mkpipe creating socket inodes w/out sk buffers\n  NFS: Use SEEK_END instead of hardcoded value\n  NFSv4: When mounting with a port\u003d0 argument, substitute port\u003d2049\n  NFSv4: Poll more aggressively when handling NFS4ERR_DELAY\n  NFSv4: Handle the condition NFS4ERR_FILE_OPEN\n  NFSv4: Retry lease recovery if it failed during a synchronous operation.\n  NFS: Don\u0027t invalidate the symlink we just stuffed into the cache\n  NFS: Make read() return an ESTALE if the file has been deleted\n  NFSv4: It\u0027s perfectly legal for clp to be NULL here....\n  NFS: nfs_lookup - don\u0027t hash dentry when optimising away the lookup\n  SUNRPC: Fix Oops in pmap_getport_done\n  SUNRPC: Add refcounting to the struct rpc_xprt\n  SUNRPC: Clean up soft task error handling\n  SUNRPC: Handle ENETUNREACH, EHOSTUNREACH and EHOSTDOWN socket errors\n  SUNRPC: rpc_delay() should not clobber the rpc_task-\u003etk_status\n  Fix a referral error Oops\n  NFS: NFS_ROOT should use the new rpc_create API\n  NFS: Fix up compiler warnings on 64-bit platforms in client.c\n  ...\n\nManually resolved conflict in net/sunrpc/xprtsock.c\n"
    },
    {
      "commit": "a4c12d6c5dde48c69464baf7c703e425ee511433",
      "tree": "73c375e41a353e2da0461ff30d744bff73958b08",
      "parents": [
        "73af07de3e32b9ac328c3d1417258bb98a9b0a9b",
        "3b9f9a1c3903b64c38505f9fed3bb11e48dbc931"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Sep 23 16:49:31 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Sep 23 16:49:31 2006 -0700"
      },
      "message": "Merge master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6\n\n* master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6: (353 commits)\n  [IPV6] ADDRCONF: Mobile IPv6 Home Address support.\n  [IPV6] ADDRCONF: Allow non-DAD\u0027able addresses.\n  [IPV6] NDISC: Fix is_router flag setting.\n  [IPV6] ADDRCONF: Convert addrconf_lock to RCU.\n  [IPV6] NDISC: Add proxy_ndp sysctl.\n  [IPV6] NDISC: Set per-entry is_router flag in Proxy NA.\n  [IPV6] NDISC: Avoid updating neighbor cache for proxied address in receiving NA.\n  [IPV6]: Don\u0027t forward packets to proxied link-local address.\n  [IPV6] NDISC: Handle NDP messages to proxied addresses.\n  [NETFILTER]: PPTP conntrack: fix another GRE keymap leak\n  [NETFILTER]: PPTP conntrack: fix GRE keymap leak\n  [NETFILTER]: PPTP conntrack: fix PPTP_IN_CALL message types\n  [NETFILTER]: PPTP conntrack: check call ID before changing state\n  [NETFILTER]: PPTP conntrack: clean up debugging cruft\n  [NETFILTER]: PPTP conntrack: consolidate header parsing\n  [NETFILTER]: PPTP conntrack: consolidate header size checks\n  [NETFILTER]: PPTP conntrack: simplify expectation handling\n  [NETFILTER]: PPTP conntrack: remove unnecessary cid/pcid header pointers\n  [NETFILTER]: PPTP conntrack: fix header definitions\n  [NETFILTER]: PPTP conntrack: remove more dead code\n  ...\n"
    },
    {
      "commit": "275a082fe9308e710324e26ccb5363c53d8fd45f",
      "tree": "e97df6e45f98ea2827f71dc749f8cd47f3f353cc",
      "parents": [
        "94a6d75320b3681e6e728b70e18bd186cb55e682"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Aug 22 20:06:24 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Sep 22 23:24:54 2006 -0400"
      },
      "message": "Add a real API for dealing with blk_congestion_wait()\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "6585b572402e5ec7936422123b44b65fef7a5ea6",
      "tree": "52eef1d14bcf6f6ad6226fca02e8198a30d7abe3",
      "parents": [
        "2ee8099f2c2bc74a7c2fac7f83e12a5d651681d3",
        "edf03fb0575cbee2595a63374b17dc0921f2094a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Sep 22 17:50:50 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Sep 22 17:50:50 2006 -0700"
      },
      "message": "Merge master.kernel.org:/pub/scm/linux/kernel/git/davej/agpgart\n\n* master.kernel.org:/pub/scm/linux/kernel/git/davej/agpgart:\n  [AGPGART] Rework AGPv3 modesetting fallback.\n  [AGPGART] Add suspend callback for i965\n  [AGPGART] Fix number of aperture sizes in 830 gart structs.\n  [AGPGART] Intel 965 Express support.\n  [AGPGART] agp.h: constify struct agp_bridge_data::version\n  [AGPGART] const\u0027ify VIA AGP PCI table.\n  [AGPGART] CONFIG_PM\u003dn slim: drivers/char/agp/intel-agp.c\n  [AGPGART] CONFIG_PM\u003dn slim: drivers/char/agp/efficeon-agp.c\n  [AGPGART] Const\u0027ify the agpgart driver version.\n  [AGPGART] remove private page protection map\n"
    },
    {
      "commit": "f034b5d4efdfe0fb9e2a1ce1d95fa7914f24de49",
      "tree": "e166f1e87606f7e53a78cac543284c3484481727",
      "parents": [
        "8f126e37c0b250310a48a609bedf92a19a5559ec"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Thu Aug 24 03:08:07 2006 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Fri Sep 22 15:08:41 2006 -0700"
      },
      "message": "[XFRM]: Dynamic xfrm_state hash table sizing.\n\nThe grow algorithm is simple, we grow if:\n\n1) we see a hash chain collision at insert, and\n2) we haven\u0027t hit the hash size limit (currently 1*1024*1024 slots), and\n3) the number of xfrm_state objects is \u003e the current hash mask\n\nAll of this needs some tweaking.\n\nRemove __initdata from \"hashdist\" so we can use it safely at run time.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "016eb4a0ed06a3677d67a584da901f0e9a63c666",
      "tree": "574ead6bd03d31ca7036ff2389cb0400f3fd63fc",
      "parents": [
        "3665d0e58fa44f50c744f85c7e8ad21d5b10e206"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Fri Sep 08 09:48:38 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Sep 08 10:22:50 2006 -0700"
      },
      "message": "[PATCH] invalidate_complete_page() race fix\n\nIf a CPU faults this page into pagetables after invalidate_mapping_pages()\nchecked page_mapped(), invalidate_complete_page() will still proceed to remove\nthe page from pagecache.  This leaves the page-faulting process with a\ndetached page.  If it was MAP_SHARED then file data loss will ensue.\n\nFix that up by checking the page\u0027s refcount after taking tree_lock.\n\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "3a459756810912d2c2bf188cef566af255936b4d",
      "tree": "1b52d90a2412811ebf5078b4f55112864e1890df",
      "parents": [
        "10387e5eb45c6e48d67102b88229f5bc6037461c"
      ],
      "author": {
        "name": "Kirill Korotaev",
        "email": "dev@openvz.org",
        "time": "Thu Sep 07 14:17:04 2006 +0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Sep 08 08:40:46 2006 -0700"
      },
      "message": "[PATCH] IA64,sparc: local DoS with corrupted ELFs\n\nThis prevents cross-region mappings on IA64 and SPARC which could lead\nto system crash.  They were correctly trapped for normal mmap() calls,\nbut not for the kernel internal calls generated by executable loading.\n\nThis code just moves the architecture-specific cross-region checks into\nan arch-specific \"arch_mmap_check()\" macro, and defines that for the\narchitectures that needed it (ia64, sparc and sparc64).\n\nArchitectures that don\u0027t have any special requirements can just ignore\nthe new cross-region check, since the mmap() code will just notice on\nits own when the macro isn\u0027t defined.\n\nSigned-off-by: Pavel Emelianov \u003cxemul@openvz.org\u003e\nSigned-off-by: Kirill Korotaev \u003cdev@openvz.org\u003e\nAcked-by: David Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n[ Cleaned up to not affect architectures that don\u0027t need it ]\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "115b384cf87249d76adb0b21aca11ee22128927d",
      "tree": "f39a2a54863e9d82d1196906f92c82ab5991c6af",
      "parents": [
        "8eb7925f93af75e66a240d148efdec212f95bcb7",
        "c336923b668fdcf0312efbec3b44895d713f4d81"
      ],
      "author": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Tue Sep 05 17:20:21 2006 -0400"
      },
      "committer": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Tue Sep 05 17:20:21 2006 -0400"
      },
      "message": "Merge ../linus\n"
    },
    {
      "commit": "3b98b087fc2daab67518d2baa8aef19a6ad82723",
      "tree": "a7defc8fa53b2023affc072cd20c4f4734e4395d",
      "parents": [
        "1678df37be8abbb381becdc40242ed915e775550"
      ],
      "author": {
        "name": "Nishanth Aravamudan",
        "email": "nacc@us.ibm.com",
        "time": "Thu Aug 31 21:27:53 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Sep 01 11:39:10 2006 -0700"
      },
      "message": "[PATCH] fix NUMA interleaving for huge pages\n\nSince vma-\u003evm_pgoff is in units of smallpages, VMAs for huge pages have the\nlower HPAGE_SHIFT - PAGE_SHIFT bits always cleared, which results in badd\noffsets to the interleave functions.  Take this difference from small pages\ninto account when calculating the offset.  This does add a 0-bit shift into\nthe small-page path (via alloc_page_vma()), but I think that is negligible.\n Also add a BUG_ON to prevent the offset from growing due to a negative\nright-shift, which probably shouldn\u0027t be allowed anyways.\n\nTested on an 8-memory node ppc64 NUMA box and got the interleaving I\nexpected.\n\nSigned-off-by: Nishanth Aravamudan \u003cnacc@us.ibm.com\u003e\nSigned-off-by: Adam Litke \u003cagl@us.ibm.com\u003e\nCc: Andi Kleen \u003cak@muc.de\u003e\nAcked-by: Christoph Lameter \u003cclameter@engr.sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "0b1d647a02c5a1b67d45287eeb6cb3b2219c41c3",
      "tree": "13f9caa7b0ebd17dff481f854ac8803aae01234f",
      "parents": [
        "1e5f5e5cd65eec6ce5c24a9c29f3e52673b121a6"
      ],
      "author": {
        "name": "Pavel Mironchik",
        "email": "tibor0@gmail.com",
        "time": "Thu Aug 31 21:27:47 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Sep 01 11:39:09 2006 -0700"
      },
      "message": "[PATCH] dm: work around mempool_alloc, bio_alloc_bioset deadlocks\n\nThis patch works around a complex dm-related deadlock/livelock down in the\nmempool allocator.\n\nAlasdair said:\n\n  Several dm targets suffer from this.\n\n  Mempools are not yet used correctly everywhere in device-mapper: they can\n  get shared when devices are stacked, and some targets share them across\n  multiple instances.  I made fixing this one of the prerequisites for this\n  patch:\n\n    md-dm-reduce-stack-usage-with-stacked-block-devices.patch\n\n  which in some cases makes people more likely to hit the problem.\n\n  There\u0027s been some progress on this recently with (unfinished) dm-crypt\n  patches at:\n\n    http://www.kernel.org/pub/linux/kernel/people/agk/patches/2.6/editing/\n      (dm-crypt-move-io-to-workqueue.patch plus dependencies)\n\nand:\n\n  I\u0027ve no problems with a temporary workaround like that, but Milan Broz (a\n  new Redhat developer in the Czech Republic) has started reviewing all the\n  mempool usage in device-mapper so I\u0027m expecting we\u0027ll soon have a proper fix\n  for this associated problems.  [He\u0027s back from holiday at the start of next\n  week.]\n\nFor now, this sad-but-safe little patch will allow the machine to recover.\n\n[akpm@osdl.org: rewrote changelog]\nCc: Alasdair G Kergon \u003cagk@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "df9ecaba3f152d1ea79f2a5e0b87505e03f47590",
      "tree": "b25f855923ef437a0513559425d6c875dbd3e617",
      "parents": [
        "a302eb4e4602d6444ae75a0e516fb2f2c62d6642"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Thu Aug 31 21:27:35 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Sep 01 11:39:08 2006 -0700"
      },
      "message": "[PATCH] ZVC: Scale thresholds depending on the size of the system\n\nThe ZVC counter update threshold is currently set to a fixed value of 32.\nThis patch sets up the threshold depending on the number of processors and\nthe sizes of the zones in the system.\n\nWith the current threshold of 32, I was able to observe slight contention\nwhen more than 130-140 processors concurrently updated the counters.  The\ncontention vanished when I either increased the threshold to 64 or used\nAndrew\u0027s idea of overstepping the interval (see ZVC overstep patch).\n\nHowever, we saw contention again at 220-230 processors.  So we need higher\nvalues for larger systems.\n\nBut the current default is already a bit of an overkill for smaller\nsystems.  Some systems have tiny zones where precision matters.  For\nexample i386 and x86_64 have 16M DMA zones and either 900M ZONE_NORMAL or\nZONE_DMA32.  These are even present on SMP and NUMA systems.\n\nThe patch here sets up a threshold based on the number of processors in the\nsystem and the size of the zone that these counters are used for.  The\nthreshold should grow logarithmically, so we use fls() as an easy\napproximation.\n\nResults of tests on a system with 1024 processors (4TB RAM)\n\nThe following output is from a test allocating 1GB of memory concurrently\non each processor (Forking the process.  So contention on mmap_sem and the\npte locks is not a factor):\n\n                       X                   MIN\nTYPE:               CPUS       WALL       WALL        SYS     USER     TOTCPU\nfork                   1      0.552      0.552      0.540    0.012      0.552\nfork                   4      0.552      0.548      2.164    0.036      2.200\nfork                  16      0.564      0.548      8.812    0.164      8.976\nfork                 128      0.580      0.572     72.204    1.208     73.412\nfork                 256      1.300      0.660    310.400    2.160    312.560\nfork                 512      3.512      0.696   1526.836    4.816   1531.652\nfork                1020     20.024      0.700  17243.176    6.688  17249.863\n\nSo a threshold of 32 is fine up to 128 processors. At 256 processors contention\nbecomes a factor.\n\nOverstepping the counter (earlier patch) improves the numbers a bit:\n\nfork                   4      0.552      0.548      2.164    0.040      2.204\nfork                  16      0.552      0.548      8.640    0.148      8.788\nfork                 128      0.556      0.548     69.676    0.956     70.632\nfork                 256      0.876      0.636    212.468    2.108    214.576\nfork                 512      2.276      0.672    997.324    4.260   1001.584\nfork                1020     13.564      0.680  11586.436    6.088  11592.523\n\nStill contention at 512 and 1020. Contention at 1020 is down by a third.\n256 still has a slight bit of contention.\n\nAfter this patch the counter threshold will be set to 125 which reduces\ncontention significantly:\n\nfork                 128      0.560      0.548     69.776    0.932     70.708\nfork                 256      0.636      0.556    143.460    2.036    145.496\nfork                 512      0.640      0.548    284.244    4.236    288.480\nfork                1020      1.500      0.588   1326.152    8.892   1335.044\n\n[akpm@osdl.org: !SMP build fix]\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": "a302eb4e4602d6444ae75a0e516fb2f2c62d6642",
      "tree": "8f477d121e8bd31611b1ae3c3658f5c71684f788",
      "parents": [
        "b63fe1ba4409774738c971d4e6f0b12b54cc2c65"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Thu Aug 31 21:27:34 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Sep 01 11:39:08 2006 -0700"
      },
      "message": "[PATCH] ZVC: Overstep counters\n\nIncrements and decrements are usually grouped rather than mixed.  We can\noptimize the inc and dec functions for that case.\n\nIncrement and decrement the counters by 50% more than the threshold in\nthose cases and set the differential accordingly.  This decreases the need\nto update the atomic counters.\n\nThe idea came originally from Andrew Morton.  The overstepping alone was\nsufficient to address the contention issue found when updating the global\nand the per zone counters from 160 processors.\n\nAlso remove some code in dec_zone_page_state.\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": "b6b5bce3571e496504a89ee575d32101e0a98b93",
      "tree": "283d4da88216071813b25d82c6e49a5ab71948f9",
      "parents": [
        "c06aad854fdb9da38fcc22dccfe9d72919453e43"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sun Aug 27 01:23:25 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Aug 27 11:01:28 2006 -0700"
      },
      "message": "[PATCH] swsusp: Fix swap_type_of\n\nThere is a bug in mm/swapfile.c#swap_type_of() that makes swsusp only be\nable to use the first active swap partition as the resume device.  Fix it.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nAcked-by: Pavel Machek \u003cpavel@suse.cz\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "1d7ea7324ae7a59f8e17e4ba76a2707c1e6f24d2",
      "tree": "902b646ed70af86481a77a67582b79e67264a481",
      "parents": [
        "9b41ea7289a589993d3daabc61f999b4147872c4"
      ],
      "author": {
        "name": "Alexander Zarochentsev",
        "email": "zam@namesys.com",
        "time": "Sun Aug 13 23:24:27 2006 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Aug 14 12:54:29 2006 -0700"
      },
      "message": "[PATCH] fuse: fix error case in fuse_readpages\n\nDon\u0027t let fuse_readpages leave the @pages list not empty when exiting\non error.\n\n[akpm@osdl.org: kernel-doc fixes]\nSigned-off-by: Alexander Zarochentsev \u003czam@namesys.com\u003e\nSigned-off-by: Miklos Szeredi \u003cmiklos@szeredi.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "ebd15302dc0ba1b8761600c20854f5371e7bae1e",
      "tree": "af9dc4b9c1c840fcdcd7d1a4053ba0e05eb1f028",
      "parents": [
        "5d2870faaa1fdcec795a6bf4dbbfc3e5d57fd7ab"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Sat Aug 05 12:15:06 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Aug 06 08:57:49 2006 -0700"
      },
      "message": "[PATCH] memory hotadd fixes: enhance collision check\n\nThis patch is for collision check enhancement for memory hot add.\n\nIt\u0027s better to do resouce collision check before doing memory hot add,\nwhich will touch memory management structures.\n\nAnd add_section() should check section exists or not before calling\nsparse_add_one_section(). (sparse_add_one_section() will do another\ncheck anyway. but checking in memory_hotplug.c will be easy to understand.)\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: keith mannthey \u003ckmannth@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "58c1b5b079071d82b2f924000b7e8fb5585ce7d8",
      "tree": "74178ceb6462b68cba9f1b144d450dafcaf01c22",
      "parents": [
        "0f04ab5efbca73ab366a156d96b073d2da35b158"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Sat Aug 05 12:15:01 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Aug 06 08:57:48 2006 -0700"
      },
      "message": "[PATCH] memory hotadd fixes: find_next_system_ram catch range fix\n\nfind_next_system_ram() is used to find available memory resource at onlining\nnewly added memory.  This patch fixes following problem.\n\nfind_next_system_ram() cannot catch this case.\n\nResource:      (start)-------------(end)\nSection :                (start)-------------(end)\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Keith Mannthey \u003ckmannth@gmail.com\u003e\nCc: Yasunori Goto \u003cy-goto@jp.fujitsu.com\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": "6f712711dbd180aa3777efe5ae3b9b0e915b9471",
      "tree": "afc406afbc330641eb66029e5c9c6d201be847c3",
      "parents": [
        "94f563c426a78c97fc2a377315995e6ec8343872"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Sat Aug 05 12:14:58 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Aug 06 08:57:48 2006 -0700"
      },
      "message": "[PATCH] memory hotadd fixes: not-aligned memory hotadd handling fix\n\nioresouce handling code in memory hotplug allows not-aligned memory hot add.\nBut when memmap and other memory structures are initialized, parameters should\nbe aligned.  (if not aligned, initialization of mem_map will do wrong, it\nassumes parameters are aligned.) This patch fix it.\n\nAnd this patch allows ioresource collision check to handle -EEXIST.\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Keith Mannthey \u003ckmannth@gmail.com\u003e\nCc: Yasunori Goto \u003cy-goto@jp.fujitsu.com\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": "60c371bc753495f36d3a71338b46030f7fffce3b",
      "tree": "ec83d5b3cc89efcea66310f3a1c6ca3708f6a26e",
      "parents": [
        "bb39e419740435b7fbb0314e376ba468be7db67a"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Sat Aug 05 12:14:25 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Aug 06 08:57:47 2006 -0700"
      },
      "message": "[PATCH] fadvise() make POSIX_FADV_NOREUSE a no-op\n\nThe POSIX_FADV_NOREUSE hint means \"the application will use this range of the\nfile a single time\".  It seems to be intended that the implementation will use\nthis hint to perform drop-behind of that part of the file when the application\ngets around to reading or writing it.\n\nHowever for reasons which aren\u0027t obvious (or sane?) I mapped\nPOSIX_FADV_NOREUSE onto POSIX_FADV_WILLNEED.  ie: it does readahead.\n\nThat\u0027s daft.  So for now, make POSIX_FADV_NOREUSE a no-op.\n\nThis is a non-back-compatible change.  If someone was using POSIX_FADV_NOREUSE\nto perform readahead, they lose.  The likelihood is low.\n\nIf/when we later implement POSIX_FADV_NOREUSE things will get interesting - to\ndo it fully we\u0027ll need to maintain file offset/length ranges and peform all\nsorts of complex tricks, and managing the lifetime of those ranges\u0027 data\nstructures will be interesting..\n\nA sensible implementation would probably ignore the file range and would\nsimply mark the entire file as needing some form of drop-behind treatment.\n\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": "b8008b2bc21fb13b45964e21247f18c013d6e985",
      "tree": "e939d1b02ce1e2c7b2432a385d13a105b1bc6414",
      "parents": [
        "d07fe82c24daab2360e2790f488bcffa7db74825"
      ],
      "author": {
        "name": "Rolf Eike Beer",
        "email": "eike-kernel@sf-tec.de",
        "time": "Sun Jul 30 03:04:04 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jul 31 13:28:43 2006 -0700"
      },
      "message": "[PATCH] Fix kmem_cache_alloc() been documented twice\n\nkmem_cache_alloc() was documented twice, but kmem_cache_zalloc() never.\nFix this obvious typo to get things right.\n\nSigned-off-by: Rolf Eike Beer \u003ceike-kernel@sf-tec.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "8c78f3075dab4be279e283f901f00e33ce44890a",
      "tree": "034d667a713b24d39608b09bd2aafb7983fb6ba5",
      "parents": [
        "cea6a4ba8acfba6f59cc9ed71e0d05cb770b9d9c"
      ],
      "author": {
        "name": "Chandra Seetharaman",
        "email": "sekharan@us.ibm.com",
        "time": "Sun Jul 30 03:03:35 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jul 31 13:28:39 2006 -0700"
      },
      "message": "[PATCH] cpu hotplug: replace __devinit* with __cpuinit* for cpu notifications\n\nFew of the callback functions and notifier blocks that are associated with cpu\nnotifications incorrectly have __devinit and __devinitdata.  They should be\n__cpuinit and __cpuinitdata instead.\n\nIt makes no functional difference but wastes text area when CONFIG_HOTPLUG is\nenabled and CONFIG_HOTPLUG_CPU is not.\n\nThis patch fixes all those instances.\n\nSigned-off-by: Chandra Seetharaman \u003csekharan@us.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": "b83a8e64fd1aecf021111d22c062c97a3241d0c4",
      "tree": "a83b739d2d91b550512641dddc40590b41670be4",
      "parents": [
        "70583161e878c8e9baaace71ba000b46c86b89cc"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "ak@suse.de",
        "time": "Sat Jul 29 21:42:55 2006 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Jul 29 20:59:55 2006 -0700"
      },
      "message": "[PATCH] MM: Remove rogue readahead printk\n\nFor some reason it triggers always with NFS root and spams the kernel\nlogs of my nfs root boxes a lot.\n\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\nAcked-by: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "804af2cf6e7af31d2e664b54e657dddd9b531dbd",
      "tree": "a9127236c76953ddc627b8133aae208651e206fd",
      "parents": [
        "64821324ca49f24be1a66f2f432108f96a24e596"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Wed Jul 26 21:39:49 2006 +0100"
      },
      "committer": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Wed Jul 26 19:58:39 2006 -0400"
      },
      "message": "[AGPGART] remove private page protection map\n\nAGP keeps its own copy of the protection_map, upcoming DRM changes will\nalso require access to this map from modules.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Dave Airlie \u003cairlied@linux.ie\u003e\nSigned-off-by: Dave Jones \u003cdavej@redhat.com\u003e\n"
    },
    {
      "commit": "0ff922452df86f3e9a2c6f705c4588ec62d096a7",
      "tree": "ac84041bfb63f12d0e2db733c46b2cd2438b4882",
      "parents": [
        "ca74e92b4698276b6696f15a801759f50944f387"
      ],
      "author": {
        "name": "Shailabh Nagar",
        "email": "nagar@watson.ibm.com",
        "time": "Fri Jul 14 00:24:37 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jul 14 21:53:56 2006 -0700"
      },
      "message": "[PATCH] per-task-delay-accounting: sync block I/O and swapin delay collection\n\nUnlike earlier iterations of the delay accounting patches, now delays are only\ncollected for the actual I/O waits rather than try and cover the delays seen\nin I/O submission paths.\n\nAccount separately for block I/O delays incurred as a result of swapin page\nfaults whose frequency can be affected by the task/process\u0027 rss limit.  Hence\nswapin delays can act as feedback for rss limit changes independent of I/O\npriority changes.\n\nSigned-off-by: Shailabh Nagar \u003cnagar@watson.ibm.com\u003e\nSigned-off-by: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Jes Sorensen \u003cjes@sgi.com\u003e\nCc: Peter Chubb \u003cpeterc@gelato.unsw.edu.au\u003e\nCc: Erich Focht \u003cefocht@ess.nec.de\u003e\nCc: Levent Serinol \u003clserinol@gmail.com\u003e\nCc: Jay Lan \u003cjlan@engr.sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "22c4af4092fc2e037ce2e2922023fc222cf0c443",
      "tree": "97482fe36e2e121f62ce8ebf66eaa3fdbb303462",
      "parents": [
        "52fa259b5aaf310657e5d30be48a300860741447"
      ],
      "author": {
        "name": "Luke Yang",
        "email": "luke.adi@gmail.com",
        "time": "Fri Jul 14 00:24:09 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jul 14 21:53:53 2006 -0700"
      },
      "message": "[PATCH] nommu: export two symbols for drivers to use\n\nnommu.c needs to export two more symbols for drivers to use:\nremap_pfn_range and unmap_mapping_range.\n\nSigned-off-by: Luke Yang \u003cluke.adi@gmail.com\u003e\nCc: 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": "c38c8db7225465c8d124f38b24d3024decc26bbd",
      "tree": "79a7e7a99e0d67ac015c4fad689cdefb55a5c10f",
      "parents": [
        "8757d5fa6b75e8ea906baf0309d49b980e7f9bc9"
      ],
      "author": {
        "name": "Anil Keshavamurthy",
        "email": "anil.s.keshavamurthy@intel.com",
        "time": "Fri Jul 14 00:23:57 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jul 14 21:53:51 2006 -0700"
      },
      "message": "[PATCH] ia64: race flushing icache in COW path\n\nThere is a race condition that showed up in a threaded JIT environment.\nThe situation is that a process with a JIT code page forks, so the page is\nmarked read-only, then some threads are created in the child.  One of the\nthreads attempts to add a new code block to the JIT page, so a\ncopy-on-write fault is taken, and the kernel allocates a new page, copies\nthe data, installs the new pte, and then calls lazy_mmu_prot_update() to\nflush caches to make sure that the icache and dcache are in sync.\nUnfortunately, the other thread runs right after the new pte is installed,\nbut before the caches have been flushed.  It tries to execute some old JIT\ncode that was already in this page, but it sees some garbage in the i-cache\nfrom the previous users of the new physical page.\n\nFix: we must make the caches consistent before installing the pte.  This is\nan ia64 only fix because lazy_mmu_prot_update() is a no-op on all other\narchitectures.\n\nSigned-off-by: Anil Keshavamurthy \u003canil.s.keshavamurthy@intel.com\u003e\nSigned-off-by: Tony Luck \u003ctony.luck@intel.com\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": "8757d5fa6b75e8ea906baf0309d49b980e7f9bc9",
      "tree": "ec3c1a505b5254133cd453c922beb8db226d03e6",
      "parents": [
        "e322fedf0c59938716cdfbafbe364a170919aa1a"
      ],
      "author": {
        "name": "Jan Kiszka",
        "email": "jan.kiszka@web.de",
        "time": "Fri Jul 14 00:23:56 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jul 14 21:53:51 2006 -0700"
      },
      "message": "[PATCH] mm: fix oom roll-back of __vmalloc_area_node\n\n__vunmap must not rely on area-\u003enr_pages when picking the release methode\nfor area-\u003epages.  It may be too small when __vmalloc_area_node failed early\ndue to lacking memory.  Instead, use a flag in vmstruct to differentiate.\n\nSigned-off-by: Jan Kiszka \u003cjan.kiszka@web.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "fc818301a8a39fedd7f0a71f878f29130c72193d",
      "tree": "97db2563dab14944f0131bf6d59c712c997ae328",
      "parents": [
        "3e705f279a942471b258b1c7a9e54aa8ff36b89f"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Jul 13 09:12:21 2006 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Jul 13 15:38:43 2006 -0700"
      },
      "message": "[PATCH] revert slab.c locking change\n\nChandra Seetharaman reported SLAB crashes caused by the slab.c lock\nannotation patch.  There is only one chunk of that patch that has a\nmaterial effect on the slab logic - this patch undoes that chunk.\n\nThis was confirmed to fix the slab problem by Chandra.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nTested-by: Chandra Seetharaman \u003csekharan@us.ibm.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "f1aaee53f2877a7afa55e8245c241ff60a86367d",
      "tree": "38ce12147987355d78be1c568941a01266262234",
      "parents": [
        "873623dfabaa6ebbdc1ce16c1766a3c0ec5d9923"
      ],
      "author": {
        "name": "Arjan van de Ven",
        "email": "arjan@infradead.org",
        "time": "Thu Jul 13 14:46:03 2006 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Jul 13 12:02:44 2006 -0700"
      },
      "message": "[PATCH] lockdep: annotate mm/slab.c\n\nmm/slab.c uses nested locking when dealing with \u0027off-slab\u0027\ncaches, in that case it allocates the slab header from the\n(on-slab) kmalloc caches. Teach the lock validator about\nthis by putting all on-slab caches into a separate class.\n\nthis patch has no effect on non-lockdep kernels.\n\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "873623dfabaa6ebbdc1ce16c1766a3c0ec5d9923",
      "tree": "ea7fe80a8a5c78b1f372dfde56cd7deba8e23104",
      "parents": [
        "0e2ffbf650bf97499c02327719383818777651e6"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Jul 13 14:44:38 2006 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Jul 13 12:02:44 2006 -0700"
      },
      "message": "[PATCH] lockdep: undo mm/slab.c annotation\n\nundo existing mm/slab.c lock-validator annotations, in preparation\nof a new, less intrusive annotation patch.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "32dd66fce3b0ad5857433433b795844cb397608e",
      "tree": "b8e1aae3b9fdbec7540e3652a102de8029434c28",
      "parents": [
        "7f4599e9cd6bca0efc1000359584d1cff68f9f13"
      ],
      "author": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Mon Jul 10 04:44:31 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jul 10 13:24:18 2006 -0700"
      },
      "message": "[PATCH] vmstat: export all_vm_events()\n\nAdd missing EXPORT_SYMBOL for all_vm_events(). Git commit\nf8891e5e1f93a128c3900f82035e8541357896a7 caused this:\n\n  Building modules, stage 2.\n  MODPOST\nWARNING: \"all_vm_events\" [arch/s390/appldata/appldata_mem.ko] undefined!\n  CC      arch/s390/appldata/appldata_mem.mod.o\n\nCc: Christoph Lameter \u003cchristoph@lameter.com\u003e\nCc: Gerald Schaefer \u003cgeraldsc@de.ibm.com\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nSigned-off-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "b0d85c5c3009d292fe195f666cbbec7da47dabf4",
      "tree": "ca1e7158f37b8335e32568cf78dc552b2b6f29a5",
      "parents": [
        "26fc52367af3774b123334bca409159ce37d2857"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Mon Jul 10 04:44:23 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jul 10 13:24:17 2006 -0700"
      },
      "message": "[PATCH] mm/mmzone.c: EXPORT_UNUSED_SYMBOL\n\nThis patch marks three unused exports as EXPORT_UNUSED_SYMBOL.\n\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "26fc52367af3774b123334bca409159ce37d2857",
      "tree": "6b3ecdc0a1bfa6691eebe76c3724d716c6580047",
      "parents": [
        "6d46cc6b9b04dc28a9c5db62db791aeec8ab2ea5"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Mon Jul 10 04:44:22 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jul 10 13:24:17 2006 -0700"
      },
      "message": "[PATCH] mm/memory.c: EXPORT_UNUSED_SYMBOL\n\nThis patch marks an unused export as EXPORT_UNUSED_SYMBOL.\n\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "6d46cc6b9b04dc28a9c5db62db791aeec8ab2ea5",
      "tree": "2d37b0b9177280e28aaf26cd5db877274da7d7f0",
      "parents": [
        "c0fc84d2e5bb4a9e3ae470812a00cccba85a48b8"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Mon Jul 10 04:44:21 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jul 10 13:24:17 2006 -0700"
      },
      "message": "[PATCH] mm/bootmem.c: EXPORT_UNUSED_SYMBOL\n\nThis patch marks an unused export as EXPORT_UNUSED_SYMBOL.\n\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "8f72e4028a1ff968000cec4a034f45619fbd7ec4",
      "tree": "d89a2a02d9ed8b0371edba6fd7ac3873441a76b3",
      "parents": [
        "25e206b54b9a20e63b6f5194aeebfa13d37e015c"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Mon Jul 10 04:44:01 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jul 10 13:24:14 2006 -0700"
      },
      "message": "[PATCH] fadvise: remove dead comments\n\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": "36c8b586896f60cb91a4fd526233190b34316baf",
      "tree": "003246e1e676de33703daa979b3e3109ca202a89",
      "parents": [
        "48f24c4da1ee7f3f22289cb85e8b8a73e4df4db5"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jul 03 00:25:41 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jul 03 15:27:11 2006 -0700"
      },
      "message": "[PATCH] sched: cleanup, remove task_t, convert to struct task_struct\n\ncleanup: remove task_t and convert all the uses to struct task_struct. I\nintroduced it for the scheduler anno and it was a mistake.\n\nConversion was mostly scripted, the result was reviewed and all\nsecondary whitespace and style impact (if any) was fixed up by hand.\n\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": "2b2d5493e10051694ae3a57ea6a153e3cb4d4488",
      "tree": "e44a89aa4d9c7c635770cb8891703f555d48b08d",
      "parents": [
        "897c6ff9568bcb102ffc6b465ebe1def0cba829d"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jul 03 00:25:28 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jul 03 15:27:09 2006 -0700"
      },
      "message": "[PATCH] lockdep: annotate SLAB code\n\nTeach special (recursive) locking code to the lock validator.  Has no effect\non non-lockdep kernels.\n\nFix initialize-locks-via-memcpy assumptions.\n\nEffects on non-lockdep kernels: the subclass nesting parameter is passed into\ncache_free_alien() and __cache_free(), and turns one internal\nkmem_cache_free() call into an open-coded __cache_free() call.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: Christoph Lameter \u003cclameter@engr.sgi.com\u003e\nCc: 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": "f20dc5f7c1adf1c4b68b7672d6f2002cb824e636",
      "tree": "ffd31717399ff783da29444f3446a63285f22b14",
      "parents": [
        "eb4542b98c81e22e08587b747b21986a45360999"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jul 03 00:25:08 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jul 03 15:27:07 2006 -0700"
      },
      "message": "[PATCH] lockdep: annotate mm\n\nTeach special (recursive) locking code to the lock validator.  Has no effect\non non-lockdep kernels.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e4d919188554a77c798a267e098059bc9aa39726",
      "tree": "bb5e47e09f5d107db44358ad668988f5ae768ade",
      "parents": [
        "9cebb5526833059f327d237a032422c762378b2a"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jul 03 00:24:34 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jul 03 15:27:02 2006 -0700"
      },
      "message": "[PATCH] lockdep: locking init debugging improvement\n\nLocking init improvement:\n\n - introduce and use __SPIN_LOCK_UNLOCKED for array initializations,\n   to pass in the name string of locks, used by debugging\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "9a11b49a805665e13a56aa067afaf81d43ec1514",
      "tree": "bf499956e3f67d1211d68ab1e2eb76645f453dfb",
      "parents": [
        "fb7e42413a098cc45b3adf858da290033af62bae"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jul 03 00:24:33 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jul 03 15:27:01 2006 -0700"
      },
      "message": "[PATCH] lockdep: better lock debugging\n\nGeneric lock debugging:\n\n - generalized lock debugging framework. For example, a bug in one lock\n   subsystem turns off debugging in all lock subsystems.\n\n - got rid of the caller address passing (__IP__/__IP_DECL__/etc.) from\n   the mutex/rtmutex debugging code: it caused way too much prototype\n   hackery, and lockdep will give the same information anyway.\n\n - ability to do silent tests\n\n - check lock freeing in vfree too.\n\n - more finegrained debugging options, to allow distributions to\n   turn off more expensive debugging features.\n\nThere\u0027s no separate \u0027held mutexes\u0027 list anymore - but there\u0027s a \u0027held locks\u0027\nstack within lockdep, which unifies deadlock detection across all lock\nclasses.  (this is independent of the lockdep validation stuff - lockdep first\nchecks whether we are holding a lock already)\n\nHere are the current debugging options:\n\nCONFIG_DEBUG_MUTEXES\u003dy\nCONFIG_DEBUG_LOCK_ALLOC\u003dy\n\nwhich do:\n\n config DEBUG_MUTEXES\n          bool \"Mutex debugging, basic checks\"\n\n config DEBUG_LOCK_ALLOC\n         bool \"Detect incorrect freeing of live mutexes\"\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "9614634fe6a138fd8ae044950700d2af8d203f97",
      "tree": "9b020c1d36d8625f4048c057058efb2e17c81973",
      "parents": [
        "cb6358eb69d9854f65f2979c0ce9280eee041828"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Mon Jul 03 00:24:13 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jul 03 15:26:59 2006 -0700"
      },
      "message": "[PATCH] ZVC/zone_reclaim: Leave 1% of unmapped pagecache pages for file I/O\n\nIt turns out that it is advantageous to leave a small portion of unmapped file\nbacked pages if all of a zone\u0027s pages (or almost all pages) are allocated and\nso the page allocator has to go off-node.\n\nThis allows recently used file I/O buffers to stay on the node and\nreduces the times that zone reclaim is invoked if file I/O occurs\nwhen we run out of memory in a zone.\n\nThe problem is that zone reclaim runs too frequently when the page cache is\nused for file I/O (read write and therefore unmapped pages!) alone and we have\nalmost all pages of the zone allocated.  Zone reclaim may remove 32 unmapped\npages.  File I/O will use these pages for the next read/write requests and the\nunmapped pages increase.  After the zone has filled up again zone reclaim will\nremove it again after only 32 pages.  This cycle is too inefficient and there\nare potentially too many zone reclaim cycles.\n\nWith the 1% boundary we may still remove all unmapped pages for file I/O in\nzone reclaim pass.  However.  it will take a large number of read and writes\nto get back to 1% again where we trigger zone reclaim again.\n\nThe zone reclaim 2.6.16/17 does not show this behavior because we have a 30\nsecond timeout.\n\n[akpm@osdl.org: rename the /proc file and the variable]\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": "22a3e233ca08a2ddc949ba1ae8f6e16ec7ef1a13",
      "tree": "7ef158ba2c30e0dde2dc103d1904fae243759a6b",
      "parents": [
        "39302175c26d74be35715c05a0f342c9e64c21bf",
        "6ab3d5624e172c553004ecc862bfeac16d9d68b7"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 30 15:39:30 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 30 15:39:30 2006 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/bunk/trivial\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/bunk/trivial:\n  Remove obsolete #include \u003clinux/config.h\u003e\n  remove obsolete swsusp_encrypt\n  arch/arm26/Kconfig typos\n  Documentation/IPMI typos\n  Kconfig: Typos in net/sched/Kconfig\n  v9fs: do not include linux/version.h\n  Documentation/DocBook/mtdnand.tmpl: typo fixes\n  typo fixes: specfic -\u003e specific\n  typo fixes in Documentation/networking/pktgen.txt\n  typo fixes: occuring -\u003e occurring\n  typo fixes: infomation -\u003e information\n  typo fixes: disadvantadge -\u003e disadvantage\n  typo fixes: aquire -\u003e acquire\n  typo fixes: mecanism -\u003e mechanism\n  typo fixes: bandwith -\u003e bandwidth\n  fix a typo in the RTC_CLASS help text\n  smb is no longer maintained\n\nManually merged trivial conflict in arch/um/kernel/vmlinux.lds.S\n"
    },
    {
      "commit": "ed11d9eb2228acc483c819ab353e3c41bcb158fa",
      "tree": "fa6efec62228835be260ac55d9dd0480a9064c8a",
      "parents": [
        "f8891e5e1f93a128c3900f82035e8541357896a7"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Fri Jun 30 01:55:45 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 30 11:25:36 2006 -0700"
      },
      "message": "[PATCH] slab: consolidate code to free slabs from freelist\n\nPost and discussion:\nhttp://marc.theaimsgroup.com/?t\u003d115074342800003\u0026r\u003d1\u0026w\u003d2\n\nCode in __shrink_node() duplicates code in cache_reap()\n\nAdd a new function drain_freelist that removes slabs with objects that are\nalready free and use that in various places.\n\nThis eliminates the __node_shrink() function and provides the interrupt\nholdoff reduction from slab_free to code that used to call __node_shrink.\n\n[akpm@osdl.org: build fixes]\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: 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": "f8891e5e1f93a128c3900f82035e8541357896a7",
      "tree": "97b078ac97970962b17c85d39fd64cb48dc01168",
      "parents": [
        "ca889e6c45e0b112cb2ca9d35afc66297519b5d5"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Fri Jun 30 01:55:45 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 30 11:25:36 2006 -0700"
      },
      "message": "[PATCH] Light weight event counters\n\nThe remaining counters in page_state after the zoned VM counter patches\nhave been applied are all just for show in /proc/vmstat.  They have no\nessential function for the VM.\n\nWe use a simple increment of per cpu variables.  In order to avoid the most\nsevere races we disable preempt.  Preempt does not prevent the race between\nan increment and an interrupt handler incrementing the same statistics\ncounter.  However, that race is exceedingly rare, we may only loose one\nincrement or so and there is no requirement (at least not in kernel) that\nthe vm event counters have to be accurate.\n\nIn the non preempt case this results in a simple increment for each\ncounter.  For many architectures this will be reduced by the compiler to a\nsingle instruction.  This single instruction is atomic for i386 and x86_64.\n And therefore even the rare race condition in an interrupt is avoided for\nboth architectures in most cases.\n\nThe patchset also adds an off switch for embedded systems that allows a\nbuilding of linux kernels without these counters.\n\nThe implementation of these counters is through inline code that hopefully\nresults in only a single instruction increment instruction being emitted\n(i386, x86_64) or in the increment being hidden though instruction\nconcurrency (EPIC architectures such as ia64 can get that done).\n\nBenefits:\n- VM event counter operations usually reduce to a single inline instruction\n  on i386 and x86_64.\n- No interrupt disable, only preempt disable for the preempt case.\n  Preempt disable can also be avoided by moving the counter into a spinlock.\n- Handling is similar to zoned VM counters.\n- Simple and easily extendable.\n- Can be omitted to reduce memory use for embedded use.\n\nReferences:\n\nRFC http://marc.theaimsgroup.com/?l\u003dlinux-kernel\u0026m\u003d113512330605497\u0026w\u003d2\nRFC http://marc.theaimsgroup.com/?l\u003dlinux-kernel\u0026m\u003d114988082814934\u0026w\u003d2\nlocal_t http://marc.theaimsgroup.com/?l\u003dlinux-kernel\u0026m\u003d114991748606690\u0026w\u003d2\nV2 http://marc.theaimsgroup.com/?t\u003d115014808400007\u0026r\u003d1\u0026w\u003d2\nV3 http://marc.theaimsgroup.com/?l\u003dlinux-kernel\u0026m\u003d115024767022346\u0026w\u003d2\nV4 http://marc.theaimsgroup.com/?l\u003dlinux-kernel\u0026m\u003d115047968808926\u0026w\u003d2\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": "ca889e6c45e0b112cb2ca9d35afc66297519b5d5",
      "tree": "0a5efdec2a61540204d34bcbf56dc691d8f9c391",
      "parents": [
        "bab1846a0582f627f5ec22aa2dc5f4f3e82e8176"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Fri Jun 30 01:55:44 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 30 11:25:36 2006 -0700"
      },
      "message": "[PATCH] Use Zoned VM Counters for NUMA statistics\n\nThe numa statistics are really event counters.  But they are per node and\nso we have had special treatment for these counters through additional\nfields on the pcp structure.  We can now use the per zone nature of the\nzoned VM counters to realize these.\n\nThis will shrink the size of the pcp structure on NUMA systems.  We will\nhave some room to add additional per zone counters that will all still fit\nin the same cacheline.\n\n Bits\tPrior pcp size\t  \tSize after patch\tWe can add\n ------------------------------------------------------------------\n 64\t128 bytes (16 words)\t80 bytes (10 words)\t48\n 32\t 76 bytes (19 words)\t56 bytes (14 words)\t8 (64 byte cacheline)\n\t\t\t\t\t\t\t72 (128 byte)\n\nRemove the special statistics for numa and replace them with zoned vm\ncounters.  This has the side effect that global sums of these events now\nshow up in /proc/vmstat.\n\nAlso take the opportunity to move the zone_statistics() function from\npage_alloc.c into vmstat.c.\n\nDiscussions:\nV2 http://marc.theaimsgroup.com/?t\u003d115048227000002\u0026r\u003d1\u0026w\u003d2\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nAcked-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": "bab1846a0582f627f5ec22aa2dc5f4f3e82e8176",
      "tree": "79b6f31881f578a4db8a98ed97be4fc0db3f4ac1",
      "parents": [
        "c24f21bda88df4574de0a32a2a1558a23adae1b8"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Fri Jun 30 01:55:43 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 30 11:25:36 2006 -0700"
      },
      "message": "[PATCH] zoned-vm-counters: remove read_page_state()\n\nNo callers.\n\nCc: Christoph Lameter \u003cclameter@engr.sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "c24f21bda88df4574de0a32a2a1558a23adae1b8",
      "tree": "1cf2f0b69cc691c2e1a9ed569a7a98179cc9683e",
      "parents": [
        "d2c5e30c9a1420902262aa923794d2ae4e0bc391"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Fri Jun 30 01:55:42 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 30 11:25:36 2006 -0700"
      },
      "message": "[PATCH] zoned vm counters: remove useless struct wbs\n\nRemove writeback state\n\nWe can remove some functions now that were needed to calculate the page state\nfor writeback control since these statistics are now directly available.\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": "d2c5e30c9a1420902262aa923794d2ae4e0bc391",
      "tree": "b8c42c189c2bc8dd4b6d808ee8ed2b28dbd70ddd",
      "parents": [
        "fd39fc8561be33065306bdac0e30414e1e8ac8e1"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Fri Jun 30 01:55:41 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 30 11:25:36 2006 -0700"
      },
      "message": "[PATCH] zoned vm counters: conversion of nr_bounce to per zone counter\n\nConversion of nr_bounce to a per zone counter\n\nnr_bounce is only used for proc output.  So it could be left as an event\ncounter.  However, the event counters may not be accurate and nr_bounce is\ncategorizing types of pages in a zone.  So we really need this to also be a\nper zone counter.\n\n[akpm@osdl.org: bugfix]\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": "fd39fc8561be33065306bdac0e30414e1e8ac8e1",
      "tree": "ae0740716eed3f850a8f7232c61caebe360bb5ae",
      "parents": [
        "ce866b34ae1b7f1ce60234cf65855886ac7e7d30"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Fri Jun 30 01:55:40 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 30 11:25:36 2006 -0700"
      },
      "message": "[PATCH] zoned vm counters: conversion of nr_unstable to per zone counter\n\nConversion of nr_unstable to a per zone counter\n\nWe need to do some special modifications to the nfs code since there are\nmultiple cases of disposition and we need to have a page ref for proper\naccounting.\n\nThis converts the last critical page state of the VM and therefore we need to\nremove several functions that were depending on GET_PAGE_STATE_LAST in order\nto make the kernel compile again.  We are only left with event type counters\nin page state.\n\n[akpm@osdl.org: bugfixes]\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: 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": "ce866b34ae1b7f1ce60234cf65855886ac7e7d30",
      "tree": "e9a2664f0abc5221b9a92e1417d8e02b94a634c4",
      "parents": [
        "b1e7a8fd854d2f895730e82137400012b509650e"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Fri Jun 30 01:55:40 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 30 11:25:35 2006 -0700"
      },
      "message": "[PATCH] zoned vm counters: conversion of nr_writeback to per zone counter\n\nConversion of nr_writeback to per zone counter.\n\nThis removes the last page_state counter from arch/i386/mm/pgtable.c so we\ndrop the page_state from there.\n\n[akpm@osdl.org: bugfix]\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: 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": "b1e7a8fd854d2f895730e82137400012b509650e",
      "tree": "9fba87ff6b0146ebd4ee5bc7d5f0c8b037dbb3ad",
      "parents": [
        "df849a1529c106f7460e51479ca78fe07b07dc8c"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Fri Jun 30 01:55:39 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 30 11:25:35 2006 -0700"
      },
      "message": "[PATCH] zoned vm counters: conversion of nr_dirty to per zone counter\n\nThis makes nr_dirty a per zone counter.  Looping over all processors is\navoided during writeback state determination.\n\nThe counter aggregation for nr_dirty had to be undone in the NFS layer since\nwe summed up the page counts from multiple zones.  Someone more familiar with\nNFS should probably review what I have done.\n\n[akpm@osdl.org: bugfix]\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: 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": "df849a1529c106f7460e51479ca78fe07b07dc8c",
      "tree": "f0e52e4720160aa7540a57715c247dce44584cbc",
      "parents": [
        "9a865ffa34b6117a5e0b67640a084d8c2e198c93"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Fri Jun 30 01:55:38 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 30 11:25:35 2006 -0700"
      },
      "message": "[PATCH] zoned vm counters: conversion of nr_pagetables to per zone counter\n\nConversion of nr_page_table_pages to a per zone counter\n\n[akpm@osdl.org: bugfix]\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": "9a865ffa34b6117a5e0b67640a084d8c2e198c93",
      "tree": "c295d5a0831df81eeeded3834f32f513b9ae05c7",
      "parents": [
        "34aa1330f9b3c5783d269851d467326525207422"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Fri Jun 30 01:55:38 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 30 11:25:35 2006 -0700"
      },
      "message": "[PATCH] zoned vm counters: conversion of nr_slab to per zone counter\n\n- Allows reclaim to access counter without looping over processor counts.\n\n- Allows accurate statistics on how many pages are used in a zone by\n  the slab. This may become useful to balance slab allocations over\n  various zones.\n\n[akpm@osdl.org: bugfix]\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": "34aa1330f9b3c5783d269851d467326525207422",
      "tree": "a47db4fa53527ea937dee9e763267ab21865ce11",
      "parents": [
        "f3dbd34460ff54962d3e3244b6bcb7f5295356e6"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Fri Jun 30 01:55:37 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 30 11:25:35 2006 -0700"
      },
      "message": "[PATCH] zoned vm counters: zone_reclaim: remove /proc/sys/vm/zone_reclaim_interval\n\nThe zone_reclaim_interval was necessary because we were not able to determine\nhow many unmapped pages exist in a zone.  Therefore we had to scan in\nintervals to figure out if any pages were unmapped.\n\nWith the zoned counters and NR_ANON_PAGES we now know the number of pagecache\npages and the number of mapped pages in a zone.  So we can simply skip the\nreclaim if there is an insufficient number of unmapped pages.  We use\nSWAP_CLUSTER_MAX as the boundary.\n\nDrop all support for /proc/sys/vm/zone_reclaim_interval.\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": "f3dbd34460ff54962d3e3244b6bcb7f5295356e6",
      "tree": "91caae2b90d684a7640b5da451a9a2ff8a5c8fb8",
      "parents": [
        "bf02cf4b6cf931d060ad5c6ce9b960af6faefd2d"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Fri Jun 30 01:55:36 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 30 11:25:35 2006 -0700"
      },
      "message": "[PATCH] zoned vm counters: split NR_ANON_PAGES off from NR_FILE_MAPPED\n\nThe current NR_FILE_MAPPED is used by zone reclaim and the dirty load\ncalculation as the number of mapped pagecache pages.  However, that is not\ntrue.  NR_FILE_MAPPED includes the mapped anonymous pages.  This patch\nseparates those and therefore allows an accurate tracking of the anonymous\npages per zone.\n\nIt then becomes possible to determine the number of unmapped pages per zone\nand we can avoid scanning for unmapped pages if there are none.\n\nAlso it may now be possible to determine the mapped/unmapped ratio in\nget_dirty_limit.  Isnt the number of anonymous pages irrelevant in that\ncalculation?\n\nNote that this will change the meaning of the number of mapped pages reported\nin /proc/vmstat /proc/meminfo and in the per node statistics.  This may affect\nuser space tools that monitor these counters!  NR_FILE_MAPPED works like\nNR_FILE_DIRTY.  It is only valid for pagecache pages.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: 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": "bf02cf4b6cf931d060ad5c6ce9b960af6faefd2d",
      "tree": "9856eceb13b2c86c7748f4060bbb3b35008b7ee0",
      "parents": [
        "347ce434d57da80fd5809c0c836f206a50999c26"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Fri Jun 30 01:55:36 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 30 11:25:35 2006 -0700"
      },
      "message": "[PATCH] zoned vm counters: remove NR_FILE_MAPPED from scan control structure\n\nWe can now access the number of pages in a mapped state in an inexpensive way\nin shrink_active_list.  So drop the nr_mapped field from scan_control.\n\n[akpm@osdl.org: bugfix]\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": "347ce434d57da80fd5809c0c836f206a50999c26",
      "tree": "f730d151be77977f594e5cc083a93bbeb4c602cc",
      "parents": [
        "65ba55f500a37272985d071c9bbb35256a2f7c14"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Fri Jun 30 01:55:35 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 30 11:25:34 2006 -0700"
      },
      "message": "[PATCH] zoned vm counters: conversion of nr_pagecache to per zone counter\n\nCurrently a single atomic variable is used to establish the size of the page\ncache in the whole machine.  The zoned VM counters have the same method of\nimplementation as the nr_pagecache code but also allow the determination of\nthe pagecache size per zone.\n\nRemove the special implementation for nr_pagecache and make it a zoned counter\nnamed NR_FILE_PAGES.\n\nUpdates of the page cache counters are always performed with interrupts off.\nWe can therefore use the __ variant here.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: 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": "65ba55f500a37272985d071c9bbb35256a2f7c14",
      "tree": "e7735326ef2d2dca9d00a6c5ae47e9eb03c7834f",
      "parents": [
        "2244b95a7bcf8d24196f8a3a44187ba5dfff754c"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Fri Jun 30 01:55:34 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 30 11:25:34 2006 -0700"
      },
      "message": "[PATCH] zoned vm counters: convert nr_mapped to per zone counter\n\nnr_mapped is important because it allows a determination of how many pages of\na zone are not mapped, which would allow a more efficient means of determining\nwhen we need to reclaim memory in a zone.\n\nWe take the nr_mapped field out of the page state structure and define a new\nper zone counter named NR_FILE_MAPPED (the anonymous pages will be split off\nfrom NR_MAPPED in the next patch).\n\nWe replace the use of nr_mapped in various kernel locations.  This avoids the\nlooping over all processors in try_to_free_pages(), writeback, reclaim (swap +\nzone reclaim).\n\n[akpm@osdl.org: bugfix]\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: 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": "2244b95a7bcf8d24196f8a3a44187ba5dfff754c",
      "tree": "771ef8eae45c2794fd73f870109c74d67c28888a",
      "parents": [
        "f6ac2354d791195ca40822b84d73d48a4e8b7f2b"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Fri Jun 30 01:55:33 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 30 11:25:34 2006 -0700"
      },
      "message": "[PATCH] zoned vm counters: basic ZVC (zoned vm counter) implementation\n\nPer zone counter infrastructure\n\nThe counters that we currently have for the VM are split per processor.  The\nprocessor however has not much to do with the zone these pages belong to.  We\ncannot tell f.e.  how many ZONE_DMA pages are dirty.\n\nSo we are blind to potentially inbalances in the usage of memory in various\nzones.  F.e.  in a NUMA system we cannot tell how many pages are dirty on a\nparticular node.  If we knew then we could put measures into the VM to balance\nthe use of memory between different zones and different nodes in a NUMA\nsystem.  For example it would be possible to limit the dirty pages per node so\nthat fast local memory is kept available even if a process is dirtying huge\namounts of pages.\n\nAnother example is zone reclaim.  We do not know how many unmapped pages exist\nper zone.  So we just have to try to reclaim.  If it is not working then we\npause and try again later.  It would be better if we knew when it makes sense\nto reclaim unmapped pages from a zone.  This patchset allows the determination\nof the number of unmapped pages per zone.  We can remove the zone reclaim\ninterval with the counters introduced here.\n\nFuthermore the ability to have various usage statistics available will allow\nthe development of new NUMA balancing algorithms that may be able to improve\nthe decision making in the scheduler of when to move a process to another node\nand hopefully will also enable automatic page migration through a user space\nprogram that can analyse the memory load distribution and then rebalance\nmemory use in order to increase performance.\n\nThe counter framework here implements differential counters for each processor\nin struct zone.  The differential counters are consolidated when a threshold\nis exceeded (like done in the current implementation for nr_pageache), when\nslab reaping occurs or when a consolidation function is called.\n\nConsolidation uses atomic operations and accumulates counters per zone in the\nzone structure and also globally in the vm_stat array.  VM functions can\naccess the counts by simply indexing a global or zone specific array.\n\nThe arrangement of counters in an array also simplifies processing when output\nhas to be generated for /proc/*.\n\nCounters can be updated by calling inc/dec_zone_page_state or\n_inc/dec_zone_page_state analogous to *_page_state.  The second group of\nfunctions can be called if it is known that interrupts are disabled.\n\nSpecial optimized increment and decrement functions are provided.  These can\navoid certain checks and use increment or decrement instructions that an\narchitecture may provide.\n\nWe also add a new CONFIG_DMA_IS_NORMAL that signifies that an architecture can\ndo DMA to all memory and therefore ZONE_NORMAL will not be populated.  This is\nonly currently set for IA64 SGI SN2 and currently only affects\nnode_page_state().  In the best case node_page_state can be reduced to\nretrieving a single counter for the one zone on the node.\n\n[akpm@osdl.org: cleanups]\n[akpm@osdl.org: export vm_stat[] for filesystems]\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: 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"
    }
  ],
  "next": "f6ac2354d791195ca40822b84d73d48a4e8b7f2b"
}
