)]}'
{
  "log": [
    {
      "commit": "6f5e6b9e69bf043074a0edabe3d271899c34eb79",
      "tree": "8833d7267d6653a2bf786b055f05640c9a64dc4d",
      "parents": [
        "7670f023aabd976c25862e4c6fb9f6d9d2758153"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Thu Mar 16 23:04:09 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Mar 17 07:51:26 2006 -0800"
      },
      "message": "[PATCH] fix free swap cache latency\n\nLee Revell reported 28ms latency when process with lots of swapped memory\nexits.\n\n2.6.15 introduced a latency regression when unmapping: in accounting the\nzap_work latency breaker, pte_none counted 1, pte_present PAGE_SIZE, but a\nswap entry counted nothing at all.  We think of pages present as the slow\ncase, but Lee\u0027s trace shows that free_swap_and_cache\u0027s radix tree lookup\ncan make a lot of work - and we could have been doing it many thousands of\ntimes without a latency break.\n\nMove the zap_work update up to account swap entries like pages present.\nThis does account non-linear pte_file entries, and unmap_mapping_range\nskipping over swap entries, by the same amount even though they\u0027re quick:\nbut neither of those cases deserves complicating the code (and they\u0027re\ntreated no worse than they were in 2.6.14).\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nAcked-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nAcked-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": "5b40dc780ed996162f3af8712eb03beb24dcdbef",
      "tree": "17035c1d501390f00efac6895ee663c45d4fb699",
      "parents": [
        "8ba32fde2c5be52865b2fd7e5e3752a46971fabe"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Thu Mar 16 23:04:07 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Mar 17 07:51:25 2006 -0800"
      },
      "message": "[PATCH] fix race in pagevec_strip?\n\nWe can call try_to_release_page() with PagePrivate off and a valid\npage-\u003emapping This may cause all sorts of trouble for the filesystem\n*_releasepage() handlers.  XFS bombs out in that case.\n\nLock the page before checking for page private.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "90036ee5938d89638e80f4d0d0700d0f2dbd4a6a",
      "tree": "de0f9275dcf8a051baf70df8574ce34b8b1f158d",
      "parents": [
        "e0e8eb54d8ae0c4cfd1d297f6351b08a7f635c5f"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Thu Mar 16 23:03:59 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Mar 17 07:51:25 2006 -0800"
      },
      "message": "[PATCH] page migration: Fail with error if swap not setup\n\nCurrently the migration of anonymous pages will silently fail if no swap is\nsetup.  This patch makes page migration functions check for available swap\nand fail with -ENODEV if no swap space is 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": "74c002410548c7cb1744b45d17a5fa21da515b63",
      "tree": "d83774ce92907ecaf450998ddaf865836fde00ea",
      "parents": [
        "b4fb376628e63bfc8071fc915b921da3db4a3385"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Tue Mar 14 19:50:21 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Mar 14 21:43:02 2006 -0800"
      },
      "message": "[PATCH] Consistent capabilites associated with MPOL_MOVE_ALL\n\nIt seems that setting scheduling policy and priorities is also the kind of\nthing that might be performed in apps that also use the NUMA API, so it\nwould seem consistent to use CAP_SYS_NICE for NUMA also.\n\nSo use CAP_SYS_NICE for controlling migration permissions.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: Michael Kerrisk \u003cmtk-manpages@gmx.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "4983da07f1e2e8dc81cb9d640fbf35b899cdbdf2",
      "tree": "9c238114f029d1d22bc55f47e8d95ef7335c540d",
      "parents": [
        "e843e280cbe218fc8387339806d344708dee348a"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@engr.sgi.com",
        "time": "Tue Mar 14 19:50:19 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Mar 14 21:43:02 2006 -0800"
      },
      "message": "[PATCH] page migration: fail if page is in a vma flagged VM_LOCKED\n\npage migration currently simply retries a couple of times if try_to_unmap()\nfails without inspecting the return code.\n\nHowever, SWAP_FAIL indicates that the page is in a vma that has the\nVM_LOCKED flag set (if ignore_refs \u003d\u003d1).  We can check for that return code\nand avoid retrying the migration.\n\nmigrate_page_remove_references() now needs to return a reason why the\nfailure occured.  So switch migrate_page_remove_references to use -Exx\nstyle error messages.\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": "8fce4d8e3b9e3cf47cc8afeb6077e22ab795d989",
      "tree": "4930be5756f7a3893717d38f443f6261f11a1f60",
      "parents": [
        "7b61fcda8a640bb87be23f9f09c1f24357b5c6e1"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@engr.sgi.com",
        "time": "Thu Mar 09 17:33:54 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Mar 09 19:47:38 2006 -0800"
      },
      "message": "[PATCH] slab: Node rotor for freeing alien caches and remote per cpu pages.\n\nThe cache reaper currently tries to free all alien caches and all remote\nper cpu pages in each pass of cache_reap.  For a machines with large number\nof nodes (such as Altix) this may lead to sporadic delays of around ~10ms.\nInterrupts are disabled while reclaiming creating unacceptable delays.\n\nThis patch changes that behavior by adding a per cpu reap_node variable.\nInstead of attempting to free all caches, we free only one alien cache and\nthe per cpu pages from one remote node.  That reduces the time spend in\ncache_reap.  However, doing so will lengthen the time it takes to\ncompletely drain all remote per cpu pagesets and all alien caches.  The\ntime needed will grow with the number of nodes in the system.  All caches\nare drained when they overflow their respective capacity.  So the drawback\nhere is only that a bit of memory may be wasted for awhile longer.\n\nDetails:\n\n1. Rename drain_remote_pages to drain_node_pages to allow the specification\n   of the node to drain of pcp pages.\n\n2. Add additional functions init_reap_node, next_reap_node for NUMA\n   that manage a per cpu reap_node counter.\n\n3. Add a reap_alien function that reaps only from the current reap_node.\n\nFor us this seems to be a critical issue.  Holdoffs of an average of ~7ms\ncause some HPC benchmarks to slow down significantly.  F.e.  NAS parallel\nslows down dramatically.  NAS parallel has a 12-16 seconds runtime w/o rotor\ncompared to 5.8 secs with the rotor patches.  It gets down to 5.05 secs with\nthe additional interrupt holdoff reductions.\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": "f2937be5895dbae23ff66767a2fc17793e63159c",
      "tree": "f236fe4b457cedbf3f7a1e2cf8a6bba9f504c74f",
      "parents": [
        "57c432b54bc34f0afacda7d9da0528ee22e78dec"
      ],
      "author": {
        "name": "Yasunori Goto",
        "email": "y-goto@jp.fujitsu.com",
        "time": "Thu Mar 09 17:33:51 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Mar 09 19:47:38 2006 -0800"
      },
      "message": "[PATCH] memory hotadd: pgdat-\u003enode_present_pages fix\n\nWhen pages are onlined, not only zone-\u003epresent_pages but also\npgdat-\u003enode_present_pages should be refreshed.\n\nThis parameter is used to show information at\n/sys/device/system/node/nodeX/meminfo via si_meminfo_node().\n\nSo, it shows strange value for MemUsed which is calculated\n(node_present_pages - all zones free pages).\n\nSigned-off-by: 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": "a6bf527091b1dd40f1b6a496812ce7520621c282",
      "tree": "bed2341cbb2e4bf71d29f2e8b6ab7affa72aabd5",
      "parents": [
        "04b857f74cec5efc7730e9db47e291310f4708a4"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Thu Mar 09 17:33:47 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Mar 09 19:47:37 2006 -0800"
      },
      "message": "[PATCH] vmscan: no zone_reclaim if PF_MALLOC is set\n\nIf the process has already set PF_MALLOC and is already using\ncurrent-\u003ereclaim_state then do not try to reclaim memory from the zone.\nThis is set by kswapd and/or synchrononous global reclaim which will not\ntake it lightly if we zap the reclaim_state.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sig.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "85a6cd03a97f04ffff7bfedfa3172894ca9a617b",
      "tree": "6dfcb724b0ed7b2cb9b33c0c18933f0d915bc966",
      "parents": [
        "6218cf4410cfce7bc7e89834e73525b124625d4c"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Thu Mar 09 17:33:34 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Mar 09 19:47:36 2006 -0800"
      },
      "message": "[PATCH] page_add_file_rmap(): remove BUG_ON()s\n\nRemove two early-development BUG_ONs from page_add_file_rmap.\n\nThe pfn_valid test (originally useful for checking that nobody passed an\nartificial struct page) comes too late, since we already have the struct\npage.\n\nThe PageAnon test (useful when anon was first distinguished from file rmap)\nprevents -\u003enopage implementations from reusing -\u003emapping, which would\notherwise be available.\n\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": "07ed76b2a085a31f427c2a912a562627947dc7de",
      "tree": "da15ed460ffa5e43eb644ca0958925275b4b526b",
      "parents": [
        "731805b49489055c1548f7ccfbd44c9b84013264"
      ],
      "author": {
        "name": "Jack Steiner",
        "email": "steiner@sgi.com",
        "time": "Tue Mar 07 21:55:46 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Mar 08 14:15:04 2006 -0800"
      },
      "message": "[PATCH] slab: allocate larger cache_cache if order 0 fails\n\nkmem_cache_init() incorrectly assumes that the cache_cache object will fit\nin an order 0 allocation.  On very large systems, this is not true.  Change\nthe code to try larger order allocations if order 0 fails.\n\nSigned-off-by: Jack Steiner \u003csteiner@sgi.com\u003e\nCc: Manfred Spraul \u003cmanfred@colorfullife.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": "e2bab3d92486fb781f4d06f56339264ed1492392",
      "tree": "0295e1ed29794a8e804c4e28a3ea9e72777e533b",
      "parents": [
        "b884e25784f62a1c740d2e4c1ce19cb89644e986"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Tue Mar 07 21:55:31 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Mar 08 14:14:01 2006 -0800"
      },
      "message": "[PATCH] percpu_counter_sum()\n\nImplement percpu_counter_sum().  This is a more accurate but slower version of\npercpu_counter_read_positive().\n\nWe need this for Alex\u0027s speedup-ext3_statfs patch and for the nr_file\naccounting fix.  Otherwise these things would be too inaccurate on large CPU\ncounts.\n\nCc: Ravikiran G Thirumalai \u003ckiran@scalex86.org\u003e\nCc: Alex Tomas \u003calex@clusterfs.com\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "7f709ed0e3ccd3e88e0632b69f00174e83f8d98b",
      "tree": "2fc797f06b4ac9177878468a9e59992723ecda5c",
      "parents": [
        "d5f735e52fb41e032b0db08aa20c02dbb9cd0db3"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Tue Mar 07 21:55:22 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Mar 08 14:14:00 2006 -0800"
      },
      "message": "[PATCH] numa_maps-update fix\n\nFix the mm/mempolicy.c build for !CONFIG_HUGETLB_PAGE.\n\nCc: Christoph Lameter \u003cclameter@engr.sgi.com\u003e\nCc: Martin Bligh \u003cmbligh@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "f78bb8ad482267b92c122f0e37a7dce69c880247",
      "tree": "0e43a4aabbf7a74c6253b1ecd30e3f6c8eccec43",
      "parents": [
        "7986824e4e31d6c66f39d2f11ab93fcfed21f593"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Mar 08 10:33:05 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Mar 08 10:33:05 2006 -0800"
      },
      "message": "slab: fix calculate_slab_order() for SLAB_RECLAIM_ACCOUNT\n\nInstead of having a hard-to-read and confusing conditional in the\ncaller, just make the slab order calculation handle this special case,\nsince it\u0027s simple and obvious there.\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "397874dfe9862b494e1fdcd2baef4ac432d224c8",
      "tree": "a6eff78eb0f3ba641e3c57f24fb8071cb295212c",
      "parents": [
        "2fbf182ed00a71c35e53329c2010df2baf8a89c6"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@engr.sgi.com",
        "time": "Mon Mar 06 15:42:53 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Mar 06 18:40:45 2006 -0800"
      },
      "message": "[PATCH] numa_maps update\n\nChange the format of numa_maps to be more compact and contain additional\ninformation that is useful for managing and troubleshooting memory on a\nNUMA system.  Numa_maps can now also support huge pages.\n\nFixes:\n\n1. More compact format. Only display fields if they contain additional\n\tinformation.\n\n2. Always display information for all vmas. The old numa_maps did not display\n\tvma with no mapped entries. This was a bit confusing because page\n\tmigration removes ptes for file backed vmas. After page migration\n\ta part of the vmas vanished.\n\n3. Rename maxref to maxmap. This is the maximum mapcount of all the pages\n\tin a vma and may be used as an indicator as to how many processes\n\tmay be using a certain vma.\n\n4. Include the ability to scan over huge page vmas.\n\nNew items shown:\n\ndirty\n\tNumber of pages in a vma that have either the dirty bit set in the\n\tpage_struct or in the pte.\n\nfile\u003d\u003cfilename\u003e\n\tThe file backing the pages if any\n\nstack\n\tStack area\n\nheap\n\tHeap area\n\nhuge\n\tHuge page area. The number of pages shows is the number of huge\n\tpages not the regular sized pages.\n\nswapcache\n\tNumber of pages with swap references. Must be \u003e0 in order to\n\tbe shown.\n\nactive\n\tNumber of active pages. Only displayed if different from the number\n\tof pages mapped.\n\nwriteback\n\tNumber of pages under writeback. Only displayed if \u003e0.\n\nSample ouput of a process using huge pages:\n\n00000000 default\n2000000000000000 default file\u003d/lib/ld-2.3.90.so mapped\u003d13 mapmax\u003d30 N0\u003d13\n2000000000044000 default file\u003d/lib/ld-2.3.90.so anon\u003d2 dirty\u003d2 swapcache\u003d2 N2\u003d2\n2000000000064000 default file\u003d/lib/librt-2.3.90.so mapped\u003d2 active\u003d1 N1\u003d1 N3\u003d1\n2000000000074000 default file\u003d/lib/librt-2.3.90.so\n2000000000080000 default file\u003d/lib/librt-2.3.90.so anon\u003d1 swapcache\u003d1 N2\u003d1\n2000000000084000 default\n2000000000088000 default file\u003d/lib/libc-2.3.90.so mapped\u003d52 mapmax\u003d32 active\u003d48 N0\u003d52\n20000000002bc000 default file\u003d/lib/libc-2.3.90.so\n20000000002c8000 default file\u003d/lib/libc-2.3.90.so anon\u003d3 dirty\u003d2 swapcache\u003d3 active\u003d2 N1\u003d1 N2\u003d2\n20000000002d4000 default anon\u003d1 swapcache\u003d1 N1\u003d1\n20000000002d8000 default file\u003d/lib/libpthread-2.3.90.so mapped\u003d8 mapmax\u003d3 active\u003d7 N2\u003d2 N3\u003d6\n20000000002fc000 default file\u003d/lib/libpthread-2.3.90.so\n2000000000308000 default file\u003d/lib/libpthread-2.3.90.so anon\u003d1 dirty\u003d1 swapcache\u003d1 N1\u003d1\n200000000030c000 default anon\u003d1 dirty\u003d1 swapcache\u003d1 N1\u003d1\n2000000000320000 default anon\u003d1 dirty\u003d1 N1\u003d1\n200000000071c000 default\n2000000000720000 default anon\u003d2 dirty\u003d2 swapcache\u003d1 N1\u003d1 N2\u003d1\n2000000000f1c000 default\n2000000000f20000 default anon\u003d2 dirty\u003d2 swapcache\u003d1 active\u003d1 N2\u003d1 N3\u003d1\n200000000171c000 default\n2000000001720000 default anon\u003d1 dirty\u003d1 swapcache\u003d1 N1\u003d1\n2000000001b20000 default\n2000000001b38000 default file\u003d/lib/libgcc_s.so.1 mapped\u003d2 N1\u003d2\n2000000001b48000 default file\u003d/lib/libgcc_s.so.1\n2000000001b54000 default file\u003d/lib/libgcc_s.so.1 anon\u003d1 dirty\u003d1 active\u003d0 N1\u003d1\n2000000001b58000 default file\u003d/lib/libunwind.so.7.0.0 mapped\u003d2 active\u003d1 N1\u003d2\n2000000001b74000 default file\u003d/lib/libunwind.so.7.0.0\n2000000001b80000 default file\u003d/lib/libunwind.so.7.0.0\n2000000001b84000 default\n4000000000000000 default file\u003d/media/huge/test9 mapped\u003d1 N1\u003d1\n6000000000000000 default file\u003d/media/huge/test9 anon\u003d1 dirty\u003d1 active\u003d0 N1\u003d1\n6000000000004000 default heap\n607fffff7fffc000 default anon\u003d1 dirty\u003d1 swapcache\u003d1 N2\u003d1\n607fffffff06c000 default stack anon\u003d1 dirty\u003d1 active\u003d0 N1\u003d1\n8000000060000000 default file\u003d/mnt/huge/test0 huge dirty\u003d3 N1\u003d3\n8000000090000000 default file\u003d/mnt/huge/test1 huge dirty\u003d3 N0\u003d1 N2\u003d2\n80000000c0000000 default file\u003d/mnt/huge/test2 huge dirty\u003d3 N1\u003d1 N3\u003d2\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: Andi Kleen \u003cak@muc.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "9888e6fa7b68d9c8cc2c162a90979825ab45150a",
      "tree": "83e46fb733008fa753269d338f90ad255cc59f53",
      "parents": [
        "f716d8303345698728d9f8ce76a82a795a5be275"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Mar 06 17:44:43 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Mar 06 17:44:43 2006 -0800"
      },
      "message": "slab: clarify and fix calculate_slab_order()\n\nIf we triggered the \u0027offslab_limit\u0027 test, we would return with\ncachep-\u003egfporder incremented once too many times.\n\nThis clarifies the logic somewhat, and fixes that bug.\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "264132bc62fe071d0ff378c1103bae9d33212f10",
      "tree": "8b293d7c7465f28b4fe2788df70e25dfda2be088",
      "parents": [
        "24ed6e2c7894350d9bc06a559d3c23338ecf3323"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Mar 06 12:10:07 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Mar 06 12:10:07 2006 -0800"
      },
      "message": "Fix \"check_slabp\" printout size calculation\n\nWe want to use the \"struct slab\" size, not the size of the pointer to\nsame.  As it is, we\u0027d not print out the last \u003cn\u003e entry pointers in the\nslab (where \u003cn\u003e is ~10, depending on whether it\u0027s a 32-bit or 64-bit\nkernel).\n\nGaah, that slab code was written by somebody who likes unreadable crud.\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "a57ebfdb2cf9fa60dfa2f403f70ef6c432ca2a62",
      "tree": "1597343f3e9c076fa37ceb2c6442cc9e3ca44656",
      "parents": [
        "685db65e422bfa523b8a9dacb5a658b42b254f05"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@engr.sgi.com",
        "time": "Thu Mar 02 02:54:37 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Mar 02 08:33:07 2006 -0800"
      },
      "message": "[PATCH] numa_maps: Fix potential crash on non IA64 platforms\n\nnuma_maps should not scan over huge vmas in order not to cause problems for\nnon IA64 platforms that may have pte entries pointing to huge pages in a\nvariety of ways in their page tables.  Add a simple check to ignore vmas\ncontaining huge pages.\n\nSigned-off-by: Christoph Lameter \u003cclameter@engr.sgi.com\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: Andi Kleen \u003cak@muc.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "140ffcec4def3ee3af7565b2cf1d3b2580f7e180",
      "tree": "466da398c345f5b6f2760c124beec84403b35655",
      "parents": [
        "b1e2d907cb748ef40b180184f36e594d35f12ba6"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Thu Mar 02 02:54:28 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Mar 02 08:33:07 2006 -0800"
      },
      "message": "[PATCH] out_of_memory() locking fix\n\nI seem to have lost this read_unlock().\n\nWhile we\u0027re there, let\u0027s turn that interruptible sleep unto uninterruptible,\nso we don\u0027t get a busywait if signal_pending().  (Again.  We seem to have a\nhabit of doing this).\n\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "d6713e046336ffa98060418c4d2c65243639e107",
      "tree": "3c076173875f22069a2e08fb127b4be11d670cb1",
      "parents": [
        "0551fbd29e16fccd46e41b7d01bf0f8f39b14212"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Tue Feb 28 16:59:19 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Feb 28 20:53:44 2006 -0800"
      },
      "message": "[PATCH] out_of_memory(): use of uninitialised\n\nUnder some circumstances `points\u0027 can get printed before it\u0027s initialised.\nSpotted by Carlos Martin \u003ccarlos@cmartin.tk\u003e.\n\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "f61388822a6040ff462c5f7260daa0f1017f2db0",
      "tree": "51f9b93f4127d94ebbe5bc6321c025bbc4852f7e",
      "parents": [
        "e8788c0cce63e0cc8689a123d1ce0af1e28cd583"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Tue Feb 28 16:59:18 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Feb 28 20:53:44 2006 -0800"
      },
      "message": "[PATCH] nommu: implement vmalloc_node()\n\nFix oprofile linkage.   Pointed out by \"Luke Yang\" \u003cluke.adi@gmail.com\u003e.\n\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e8788c0cce63e0cc8689a123d1ce0af1e28cd583",
      "tree": "9350d9fc11a5a6ca81d4ee063278999e4dfe869d",
      "parents": [
        "6af6aab34a88050c8270ef75ddbdefef5c1dca00"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@engr.sgi.com",
        "time": "Tue Feb 28 16:59:16 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Feb 28 20:53:44 2006 -0800"
      },
      "message": "[PATCH] remove_from_swap: fix locking\n\nremove_from_swap() currently attempts to use page_lock_anon_vma to obtain\nan anon_vma lock.  That is not working since the page may have been\nremapped via swap ptes in order to move the page.\n\nHowever, do_migrate_pages() obtain the mmap_sem lock and therefore there is\na guarantee that the anonymous vma will not vanish from under us.  There is\ntherefore no need to use page_lock_anon_vma.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\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": "511030bcd24119fa3759ef3f914d354e107ef839",
      "tree": "707edb2c804ad6c42ffbd0ef6685b49e076f0dcd",
      "parents": [
        "5cf6c541f5b3902bdcc2d311d70f8e730aaff1be"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@engr.sgi.com",
        "time": "Tue Feb 28 16:58:57 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Feb 28 20:53:43 2006 -0800"
      },
      "message": "[PATCH] Fix sys_migrate_pages: Move all pages when invoked from root\n\nCurrently sys_migrate_pages only moves pages belonging to a process.  This\nis okay when invoked from a regular user.  But if invoked from root it\nshould move all pages as documented in the migrate_pages manpage.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: Andi Kleen \u003cak@muc.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "d4f7796e9b387e471ab0e8ed4e0c2bd616b3c193",
      "tree": "e68b20c1952e3d1bfc6bb51c1b38cd6323e2c771",
      "parents": [
        "c04030e16dbea2f7581f82cc6688695927f6ac5b"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@engr.sgi.com",
        "time": "Fri Feb 24 13:04:22 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Feb 24 14:31:39 2006 -0800"
      },
      "message": "[PATCH] vmscan: fix zone_reclaim\n\n- PF_SWAPWRITE needs to be set for RECLAIM_SWAP to be able to write\n  out pages to swap. Currently RECLAIM_SWAP may not do that.\n\n- remove setting nr_reclaimed pages after slab reclaim since the slab shrinking\n  code does not use that and the nr_reclaimed pages is just right for the\n  intended follow up action.\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": "1e275d406bf6b88e4de6925cf594b64bb2ec49bc",
      "tree": "6fe143317fbc442407244a3c55ecf475072a28f3",
      "parents": [
        "f68a106f224c21148c5264a429fac149dc7ad0ac"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@engr.sgi.com",
        "time": "Fri Feb 24 13:04:12 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Feb 24 14:31:38 2006 -0800"
      },
      "message": "[PATCH] page migration: Fix MPOL_INTERLEAVE behavior for migration via mbind()\n\nmigrate_pages_to() allocates a list of new pages on the intended target\nnode or with the intended policy and then uses the list of new pages as\ntargets for the migration of a list of pages out of place.\n\nWhen the pages are allocated it is not clear which of the out of place\npages will be moved to the new pages.  So we cannot specify an address as\nneeded by alloc_page_vma().  This causes problem for MPOL_INTERLEAVE which\nwill currently allocate the pages on the first node of the set.  If mbind\nis used with vma that has the policy of MPOL_INTERLEAVE then the\ninterleaving of pages may be destroyed.\n\nThis patch fixes that by generating a fake address for each alloc_page_vma\nwhich will result is a distribution of pages as prescribed by\nMPOL_INTERLEAVE.\n\nLee also noted that the sequence of nodes for the new pages seems to be\ninverted.  So we also invert the way the lists of pages for migration are\nbuild.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nLooks-ok-to: 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": "b00dc3ad74fdb676552d46ee573b88e927240d0c",
      "tree": "6dcf7806f1f0fc791d3455dcf233a11088b18b3a",
      "parents": [
        "808c783e9bfb217a90be5a996a867c41a69b40bd"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Tue Feb 21 23:49:47 2006 +0000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Feb 21 17:10:15 2006 -0800"
      },
      "message": "[PATCH] tmpfs: fix mount mpol nodelist parsing\n\nI\u0027ve been dissatisfied with the mpol_nodelist mount option which was\nadded to tmpfs earlier in -rc.  Replace it by mpol\u003dpolicy:nodelist.\n\nAnd it was broken: a nodelist is a comma-separated list of numbers and\nranges; the mount options are a comma-separated list of token\u003dvalues.\nWhoops, blindly strsep\u0027ing on commas doesn\u0027t work so well: since we\u0027ve\nno numeric tokens, and unlikely to add them, use that to distinguish.\n\nMove the mpol\u003d parsing to shmem_parse_mpol under CONFIG_NUMA, reject\nall its options as invalid if not NUMA.  /proc shows MPOL_PREFERRED\nas \"prefer\", so use that name for the policy instead of \"preferred\".\n\nEnforce that mpol\u003ddefault has no nodelist; that mpol\u003dprefer has one\nnode only; that mpol\u003dbind has a nodelist; but let mpol\u003dinterleave use\nnode_online_map if no nodelist given.  Describe this in tmpfs.txt.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nAcked-by: Robin Holt \u003cholt@sgi.com\u003e\nAcked-by: Andi Kleen \u003cak@suse.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "fcab6f351305029fc5e3c632209d45cae57e4835",
      "tree": "21a84b35d172b63a47421190af83eb12c006a8e2",
      "parents": [
        "1dd31b6c89611ee91c0ff309c8733c0af61579e8"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Mon Feb 20 18:28:10 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Feb 20 20:00:11 2006 -0800"
      },
      "message": "[PATCH] mm/mempolicy.c: fix \u0027if ();\u0027 typo\n\n[akpm; it happens that the code was still correct, only inefficient ]\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: Christoph Lameter \u003cchristoph@lameter.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "7a9166e3b037296366cea6f3c97f705d33e209e6",
      "tree": "275c713bc92309b6f90e5c66699753c0268c6be5",
      "parents": [
        "c8b8b1f2e0eeb91cca22211950742b5f51564672"
      ],
      "author": {
        "name": "Luke Yang",
        "email": "luke.adi@gmail.com",
        "time": "Mon Feb 20 18:28:07 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Feb 20 20:00:11 2006 -0800"
      },
      "message": "[PATCH] Fix undefined symbols for nommu architecture\n\nSigned-off-by: Luke Yang \u003cluke.adi@gmail.com\u003e\nAcked-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": "a9c930bac163c5e616ca0ba9378e7dc746c93227",
      "tree": "58ff339858cee3a87893c094561eb72381044a08",
      "parents": [
        "c255d844dd73616f23e4b4733edcc2e5fa4042b2"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "ak@suse.de",
        "time": "Mon Feb 20 18:27:59 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Feb 20 20:00:10 2006 -0800"
      },
      "message": "[PATCH] Fix units in mbind check\n\nmaxnode is a bit index and can\u0027t be directly compared against a byte length\nlike PAGE_SIZE\n\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\nCc: Chris Wright \u003cchrisw@sous-sol.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "9b0f8b040acd8dfd23860754c0d09ff4f44e2cbc",
      "tree": "33c69908705c88b86f14d9e835b6dee6a9c3a31b",
      "parents": [
        "9827b781f20828e5ceb911b879f268f78fe90815"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@engr.sgi.com",
        "time": "Mon Feb 20 18:27:52 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Feb 20 20:00:09 2006 -0800"
      },
      "message": "[PATCH] Terminate process that fails on a constrained allocation\n\nSome allocations are restricted to a limited set of nodes (due to memory\npolicies or cpuset constraints).  If the page allocator is not able to find\nenough memory then that does not mean that overall system memory is low.\n\nIn particular going postal and more or less randomly shooting at processes\nis not likely going to help the situation but may just lead to suicide (the\nwhole system coming down).\n\nIt is better to signal to the process that no memory exists given the\nconstraints that the process (or the configuration of the process) has\nplaced on the allocation behavior.  The process may be killed but then the\nsysadmin or developer can investigate the situation.  The solution is\nsimilar to what we do when running out of hugepages.\n\nThis patch adds a check before we kill processes.  At that point\nperformance considerations do not matter much so we just scan the zonelist\nand reconstruct a list of nodes.  If the list of nodes does not contain all\nonline nodes then this is a constrained allocation and we should kill the\ncurrent process.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Andi Kleen \u003cak@muc.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "9827b781f20828e5ceb911b879f268f78fe90815",
      "tree": "9ba223facf6071a1fd21bf8471801ab794738c05",
      "parents": [
        "bd71c2b17468a2531fb4c81ec1d73520845e97e1"
      ],
      "author": {
        "name": "Kurt Garloff",
        "email": "garloff@suse.de",
        "time": "Mon Feb 20 18:27:51 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Feb 20 20:00:09 2006 -0800"
      },
      "message": "[PATCH] OOM kill: children accounting\n\nIn the badness() calculation, there\u0027s currently this piece of code:\n\n        /*\n         * Processes which fork a lot of child processes are likely\n         * a good choice. We add the vmsize of the children if they\n         * have an own mm. This prevents forking servers to flood the\n         * machine with an endless amount of children\n         */\n        list_for_each(tsk, \u0026p-\u003echildren) {\n                struct task_struct *chld;\n                chld \u003d list_entry(tsk, struct task_struct, sibling);\n                if (chld-\u003emm \u003d p-\u003emm \u0026\u0026 chld-\u003emm)\n                        points +\u003d chld-\u003emm-\u003etotal_vm;\n        }\n\nThe intention is clear: If some server (apache) keeps spawning new children\nand we run OOM, we want to kill the father rather than picking a child.\n\nThis -- to some degree -- also helps a bit with getting fork bombs under\ncontrol, though I\u0027d consider this a desirable side-effect rather than a\nfeature.\n\nThere\u0027s one problem with this: No matter how many or few children there are,\nif just one of them misbehaves, and all others (including the father) do\neverything right, we still always kill the whole family.  This hits in real\nlife; whether it\u0027s javascript in konqueror resulting in kdeinit (and thus the\nwhole KDE session) being hit or just a classical server that spawns children.\n\nSidenote: The killer does kill all direct children as well, not only the\nselected father, see oom_kill_process().\n\nThe idea in attached patch is that we do want to account the memory\nconsumption of the (direct) children to the father -- however not fully.\nThis maintains the property that fathers with too many children will still\nvery likely be picked, whereas a single misbehaving child has the chance to\nbe picked by the OOM killer.\n\nIn the patch I account only half (rounded up) of the children\u0027s vm_size to\nthe parent.  This means that if one child eats more mem than the rest of\nthe family, it will be picked, otherwise it\u0027s still the father and thus the\nwhole family that gets selected.\n\nThis is heuristics -- we could debate whether accounting for a fourth would\nbe better than for half of it.  Or -- if people would consider it worth the\ntrouble -- make it a sysctl.  For now I sticked to accounting for half,\nwhich should IMHO be a significant improvement.\n\nThe patch does one more thing: As users tend to be irritated by the choice\nof killed processes (mainly because the children are killed first, despite\nsome of them having a very low OOM score), I added some more output: The\nselected (father) process will be reported first and it\u0027s oom_score printed\nto syslog.\n\nDescription:\n\nOnly account for half of children\u0027s vm size in oom score calculation\n\nThis should still give the parent enough point in case of fork bombs.  If\nany child however has more than 50% of the vm size of all children\ntogether, it\u0027ll get a higher score and be elected.\n\nThis patch also makes the kernel display the oom_score.\n\nSigned-off-by: Kurt Garloff \u003cgarloff@suse.de\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "636f13c174dd7c84a437d3c3e8fa66f03f7fda63",
      "tree": "2dd28d7729a52655eb4e155af620c5afdda85a8a",
      "parents": [
        "74910e6c7dc7471b286a883c1a7af70483ffd2ba"
      ],
      "author": {
        "name": "Chris Wright",
        "email": "chrisw@sous-sol.org",
        "time": "Fri Feb 17 13:59:36 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Feb 17 14:09:22 2006 -0800"
      },
      "message": "[PATCH] sys_mbind sanity checking\n\nMake sure maxnodes is safe size before calculating nlongs in\nget_nodes().\n\nSigned-off-by: Chris Wright \u003cchrisw@sous-sol.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "4cf808eb443ead42777a0230b73aec0cee7fb298",
      "tree": "2d6dac429fcfcf18c9837c8c34164eff03e46fec",
      "parents": [
        "cfe91f9ce297e23e6fbdf61c02bdd8ab9af7c8a8"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@osdl.org",
        "time": "Fri Feb 17 20:38:21 2006 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Feb 17 13:27:06 2006 -0800"
      },
      "message": "[PATCH] Handle holes in node mask in node fallback list setup\n\nChange the find_next_best_node algorithm to correctly skip\nover holes in the node online mask. Previously it would not handle\nmissing nodes correctly and cause crashes at boot.\n\n[Written by Linus, tested by AK]\n\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "dd942ae331425812930cd01766178b7e28e65f2d",
      "tree": "b513bcfa00c1fc0f78e06b7f4c8d999275b64dfb",
      "parents": [
        "759b650f54ed13e9b3d6c064c763a72ee09c74dd"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "ak@suse.de",
        "time": "Fri Feb 17 01:39:16 2006 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Feb 17 08:18:14 2006 -0800"
      },
      "message": "[PATCH] Handle all and empty zones when setting up custom zonelists for mbind\n\nThe memory allocator doesn\u0027t like empty zones (which have an\nuninitialized freelist), so a x86-64 system with a node fully\nin GFP_DMA32 only would crash on mbind.\n\nFix that up by putting all possible zones as fallback into the zonelist\nand skipping the empty ones.\n\nIn fact the code always enough allocated space for all zones,\nbut only used it for the highest. This change just uses all the\nmemory that was allocated before.\n\nThis should work fine for now, but whoever implements node hot removal\nneeds to fix this somewhere else too (or make sure zone datastructures\nby itself never go away, only their memory)\n\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\nAcked-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "a62eaf151d9cb478d127cfbc2e93c498869785b0",
      "tree": "b13d62257ada7e0a9d37fdc9a69a7afa6f028b30",
      "parents": [
        "99019e919969be88e7e4042f3afa296bd55ad9ec"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "ak@suse.de",
        "time": "Thu Feb 16 23:41:58 2006 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Feb 17 08:00:40 2006 -0800"
      },
      "message": "[PATCH] x86_64: Add boot option to disable randomized mappings and cleanup\n\nAMD SimNow!\u0027s JIT doesn\u0027t like them at all in the guest. For distribution\ninstallation it\u0027s easiest if it\u0027s a boot time option.\n\nAlso I moved the variable to a more appropiate place and make\nit independent from sysctl\n\nAnd marked __read_mostly which it is.\n\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "f822566165dd46ff5de9bf895cfa6c51f53bb0c4",
      "tree": "e052f406d5a14140d17f76dc8914d33bbc8e5f1d",
      "parents": [
        "8861da31e3b3e3df7b05e7b157230de3d486e53b"
      ],
      "author": {
        "name": "Michael S. Tsirkin",
        "email": "mst@mellanox.co.il",
        "time": "Tue Feb 14 13:53:08 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Feb 14 16:09:34 2006 -0800"
      },
      "message": "[PATCH] madvise MADV_DONTFORK/MADV_DOFORK\n\nCurrently, copy-on-write may change the physical address of a page even if the\nuser requested that the page is pinned in memory (either by mlock or by\nget_user_pages).  This happens if the process forks meanwhile, and the parent\nwrites to that page.  As a result, the page is orphaned: in case of\nget_user_pages, the application will never see any data hardware DMA\u0027s into\nthis page after the COW.  In case of mlock\u0027d memory, the parent is not getting\nthe realtime/security benefits of mlock.\n\nIn particular, this affects the Infiniband modules which do DMA from and into\nuser pages all the time.\n\nThis patch adds madvise options to control whether memory range is inherited\nacross fork.  Useful e.g.  for when hardware is doing DMA from/into these\npages.  Could also be useful to an application wanting to speed up its forks\nby cutting large areas out of consideration.\n\nSigned-off-by: Michael S. Tsirkin \u003cmst@mellanox.co.il\u003e\nAcked-by: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: Michael Kerrisk \u003cmtk-manpages@gmx.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "d98c7a09843621f1b145ca5ae8ed03ff04085edb",
      "tree": "764b943efb177ca506fad61a63bb9e8cbf56a3a7",
      "parents": [
        "41d78ba55037468e6c86c53e3076d1a74841de39"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Tue Feb 14 13:52:59 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Feb 14 16:09:33 2006 -0800"
      },
      "message": "[PATCH] compound page: default destructor\n\nSomehow I imagined that calling a NULL destructor would free a compound page\nrather than oopsing.  No, we must supply a default destructor, __free_pages_ok\nusing the order noted by prep_compound_page.  hugetlb can still replace this\nas before with its own free_huge_page pointer.\n\nThe case that needs this is not common: rarely does put_compound_page\u0027s\nput_page_testzero bring the count down to 0.  But if get_user_pages is applied\nto some part of a compound page, without immediate release (e.g.  AIO or\nInfiniband), then it\u0027s possible for its put_page to come after the containing\nvma has been unmapped and the driver done its free_pages.\n\nThat\u0027s just the kind of case compound pages are supposed to be guarding\nagainst (but Nick points out, nor did PageReserved handle this right).\n\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": "41d78ba55037468e6c86c53e3076d1a74841de39",
      "tree": "d970f18d18532009b17c736583429401dbd64ade",
      "parents": [
        "7277232374680595cdbc774fd246b206f56db015"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Tue Feb 14 13:52:58 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Feb 14 16:09:33 2006 -0800"
      },
      "message": "[PATCH] compound page: use page[1].lru\n\nIf a compound page has its own put_page_testzero destructor (the only current\nexample is free_huge_page), that is noted in page[1].mapping of the compound\npage.  But that\u0027s rather a poor place to keep it: functions which call\nset_page_dirty_lock after get_user_pages (e.g.  Infiniband\u0027s\n__ib_umem_release) ought to be checking first, otherwise set_page_dirty is\nliable to crash on what\u0027s not the address of a struct address_space.\n\nAnd now I\u0027m about to make that worse: it turns out that every compound page\nneeds a destructor, so we can no longer rely on hugetlb pages going their own\nspecial way, to avoid further problems of page-\u003emapping reuse.  For example,\nnot many people know that: on 50% of i386 -Os builds, the first tail page of a\ncompound page purports to be PageAnon (when its destructor has an odd\naddress), which surprises page_add_file_rmap.\n\nKeep the compound page destructor in page[1].lru.next instead.  And to free up\nthe common pairing of mapping and index, also move compound page order from\nindex to lru.prev.  Slab reuses page-\u003elru too: but if we ever need slab to use\ncompound pages, it can easily stack its use above this.\n\n(akpm: decoded version of the above: the tail pages of a compound page now\nhave -\u003emapping\u003d\u003dNULL, so there\u0027s no need for the set_page_dirty[_lock]()\ncaller to check that they\u0027re not compund pages before doing the dirty).\n\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": "2903fb1694dcb08a3c1d9d823cfae7ba30e66cd3",
      "tree": "7d794e0997e935033354f3c3ffd81c1f31354db3",
      "parents": [
        "072eaa5d9cc3e63f567ffd9ad87b36194fdd8010"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@engr.sgi.com",
        "time": "Sat Feb 11 17:55:55 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Feb 11 21:41:11 2006 -0800"
      },
      "message": "[PATCH] vmscan: skip reclaim_mapped determination if we do not swap\n\nThis puts the variables and the way to get to reclaim_mapped in one block.\nAnd allows zone_reclaim or other things to skip the determination (maybe\nthis whole block of code does not belong into refill_inactive_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": "072eaa5d9cc3e63f567ffd9ad87b36194fdd8010",
      "tree": "27b4acaea0ed57a839148e8d33d7ea5952c704d1",
      "parents": [
        "80e4342601abfafacb5f20571e40b56d73d10819"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@engr.sgi.com",
        "time": "Sat Feb 11 17:55:54 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Feb 11 21:41:11 2006 -0800"
      },
      "message": "[PATCH] vmscan: remove duplicate increment of reclaim_in_progress\n\nshrink_zone() already increments reclaim_in_progress.  No need to do it in\nbalance_pgdat.\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": "80e4342601abfafacb5f20571e40b56d73d10819",
      "tree": "c03c988860aa8b6a1cc24ba8adff3778c1705928",
      "parents": [
        "643a654540579b0dcc7a206a4a7475276a41aff0"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@engr.sgi.com",
        "time": "Sat Feb 11 17:55:53 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Feb 11 21:41:11 2006 -0800"
      },
      "message": "[PATCH] zone reclaim: do not check references to a page during zone reclaim\n\nshrink_list() and refill_inactive() check all ptes pointing to a page for\nreference bits in order to decide if the page should be put on the active\nlist.  This is not necessary for zone_reclaim since we are only interested\nin removing unmapped pages.  Skip the checks in both functions.\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": "418aade459f03318defd18ef0b11981a63bd81b0",
      "tree": "b13a46e3d7050fa92e390b3374910882ae867254",
      "parents": [
        "8977d929e49021d9a6e031310aab01fa72f849c2"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@engr.sgi.com",
        "time": "Fri Feb 10 01:51:15 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Feb 10 08:13:13 2006 -0800"
      },
      "message": "[PATCH] Updates for page migration\n\nThis adds some additional comments in order to help others figure out how\nexactly the code works.  And fix a variable name.\n\nAlso swap_page does need to ignore all reference bits when unmapping a\npage.  Otherwise we may have to repeatedly unmap a frequently touched page.\nSo change the try_to_unmap parameter to 1.\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": "f0188f47482efdbd2e005103bb4f0224a835dfad",
      "tree": "4d08110ea4560b433eecb4fa4de05dae6ea103e9",
      "parents": [
        "8e36709d8cea48a4d341294ce2b46678a2e77159"
      ],
      "author": {
        "name": "Ravikiran G Thirumalai",
        "email": "kiran@scalex86.org",
        "time": "Fri Feb 10 01:51:13 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Feb 10 08:13:12 2006 -0800"
      },
      "message": "[PATCH] slab: Avoid deadlock at kmem_cache_create/kmem_cache_destroy\n\nPrevents deadlock situation between\nkmem_cache_create()/kmem_cache_destory(), and kmem_cache_create() /cpu\nhotplug.  The locking order probably got moved over time.\n\nSigned-off-by: Ravikiran Thirumalai \u003ckiran@scalex86.org\u003e\nSigned-off-by: Shai Fultheim \u003cshai@scalex86.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "9934a7939e1cdce62ece9ef7d25ebb3c55547fac",
      "tree": "89925b09c257207f4d839c68a4d2f9a764f4c8cc",
      "parents": [
        "30e9656cc340035e102fea46e1908689494b042d"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Feb 08 10:11:56 2006 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Feb 08 07:52:58 2006 -0800"
      },
      "message": "[PATCH] SLOB\u003dy \u0026\u0026 SMP\u003dy fix\n\nfix CONFIG_SLOB\u003dy (when CONFIG_SMP\u003dy): get rid of the \u0027align\u0027 parameter\nfrom its __alloc_percpu() implementation. Boot-tested on x86.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "8519fb30e438f8088b71a94a7d5a660a814d3872",
      "tree": "8d29a7b1fa33e5f65e649d363cfa10e83c4fab97",
      "parents": [
        "99f6d61bda82d09b2d94414d413d39f66a0b7da2"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Tue Feb 07 12:58:52 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Feb 07 16:12:33 2006 -0800"
      },
      "message": "[PATCH] mm: compound release fix\n\nCompound pages on SMP systems can now often be freed from pagetables via\nthe release_pages path.  This uses put_page_testzero which does not handle\ncompound pages at all.  Releasing constituent pages from process mappings\ndecrements their count to a large negative number and leaks the reference\nat the head page - net result is a memory leak.\n\nThe problem was hidden because the debug check in put_page_testzero itself\nactually did take compound pages into consideration.\n\nFix the bug and the debug check.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\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": "0df420d8b6c718d9a5e37531c3a9a6804493e9f4",
      "tree": "6b8edbb55eb8d5e84fb223bbcef7c54789270cde",
      "parents": [
        "a2dfef6947139db9b886fce510c4d0c913beb5f0"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@engr.sgi.com",
        "time": "Tue Feb 07 12:58:30 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Feb 07 16:12:31 2006 -0800"
      },
      "message": "[PATCH] hugetlbpage: return VM_FAULT_OOM on oom\n\nRemove wrong and misleading comments.\n\nReturn VM_FAULT_OOM if the hugetlbpage fault handler cannot allocate a\npage.  do_no_page will end up doing do_exit(SIGKILL).\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": "a2dfef6947139db9b886fce510c4d0c913beb5f0",
      "tree": "096e9110d897e6b946fdae9e9e17ad5c7832fd8a",
      "parents": [
        "488fc08d914f2b07b701c9b9c811437cc1c1c518"
      ],
      "author": {
        "name": "David Gibson",
        "email": "david@gibson.dropbear.id.au",
        "time": "Tue Feb 07 12:58:25 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Feb 07 16:12:31 2006 -0800"
      },
      "message": "[PATCH] Hugepages need clear_user_highpage() not clear_highpage()\n\nWhen hugepages are newly allocated to a file in mm/hugetlb.c, we clear them\nwith a call to clear_highpage() on each of the subpages.  We should be\nusing clear_user_highpage(): on powerpc, at least, clear_highpage() doesn\u0027t\ncorrectly mark the page as icache dirty so if the page is executed shortly\nafter it\u0027s possible to get strange results.\n\nSigned-off-by: David Gibson \u003cdwg@au1.ibm.com\u003e\nAcked-by: William Lee Irwin III \u003cwli@holomorphy.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": "7a21ef6fe902ac0ad53b45af6851ae5ec3a64299",
      "tree": "1e8c690f6fb644c8ce8873c7907ef0ed934446df",
      "parents": [
        "c265c46bbb8c53db0bd084261ab2996c6d74aebf"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Feb 05 11:26:38 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Feb 05 11:26:38 2006 -0800"
      },
      "message": "mm/slab.c (non-NUMA): Fix compile warning and clean up code\n\nThe non-NUMA case would do an unmatched \"free_alien_cache()\" on an alien\npointer that had never been allocated.\n\nIt might not matter from a code generation standpoint (since in the\nnon-NUMA case, the code doesn\u0027t actually _do_ anything), but it not only\nresults in a compiler warning, it\u0027s really really ugly too.\n\nFix the compiler warning by just having a matching dummy allocation.\nThat also avoids an unnecessary #ifdef in the code.\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "4484ebf12bdb0ebcdc6e8951243cbab3d7f6f4c1",
      "tree": "9feabea0bac1e6401742bc95bf381e36d2651fbc",
      "parents": [
        "ca3b9b91735316f0ec7f01976f85842e0bfe5c6e"
      ],
      "author": {
        "name": "Ravikiran G Thirumalai",
        "email": "kiran@scalex86.org",
        "time": "Sat Feb 04 23:27:59 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Feb 05 11:06:53 2006 -0800"
      },
      "message": "[PATCH] NUMA slab locking fixes: fix cpu down and up locking\n\nThis fixes locking and bugs in cpu_down and cpu_up paths of the NUMA slab\nallocator.  Sonny Rao \u003csonny@burdell.org\u003e reported problems sometime back on\nPOWER5 boxes, when the last cpu on the nodes were being offlined.  We could\nnot reproduce the same on x86_64 because the cpumask (node_to_cpumask) was not\nbeing updated on cpu down.  Since that issue is now fixed, we can reproduce\nSonny\u0027s problems on x86_64 NUMA, and here is the fix.\n\nThe problem earlier was on CPU_DOWN, if it was the last cpu on the node to go\ndown, the array_caches (shared, alien) and the kmem_list3 of the node were\nbeing freed (kfree) with the kmem_list3 lock held.  If the l3 or the\narray_caches were to come from the same cache being cleared, we hit on\nbadness.\n\nThis patch cleans up the locking in cpu_up and cpu_down path.  We cannot\nreally free l3 on cpu down because, there is no node offlining yet and even\nthough a cpu is not yet up, node local memory can be allocated for it.  So l3s\nare usually allocated at keme_cache_create and destroyed at\nkmem_cache_destroy.  Hence, we don\u0027t need cachep-\u003espinlock protection to get\nto the cachep-\u003enodelist[nodeid] either.\n\nPatch survived onlining and offlining on a 4 core 2 node Tyan box with a 4\ndbench process running all the time.\n\nSigned-off-by: Alok N Kataria \u003calokk@calsoftinc.com\u003e\nSigned-off-by: Ravikiran Thirumalai \u003ckiran@scalex86.org\u003e\nCc: Christoph Lameter \u003cchristoph@lameter.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "ca3b9b91735316f0ec7f01976f85842e0bfe5c6e",
      "tree": "fc58744ab0371adb5942462ceab3fa70d0ef9375",
      "parents": [
        "2e1217cf96b54d3b2d0162930608159e73507fbf"
      ],
      "author": {
        "name": "Ravikiran G Thirumalai",
        "email": "kiran@scalex86.org",
        "time": "Sat Feb 04 23:27:58 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Feb 05 11:06:53 2006 -0800"
      },
      "message": "[PATCH] NUMA slab locking fixes: irq disabling from cahep-\u003espinlock to l3 lock\n\nEarlier, we had to disable on chip interrupts while taking the\ncachep-\u003espinlock because, at cache_grow, on every addition of a slab to a slab\ncache, we incremented colour_next which was protected by the cachep-\u003espinlock,\nand cache_grow could occur at interrupt context.  Since, now we protect the\nper-node colour_next with the node\u0027s list_lock, we do not need to disable on\nchip interrupts while taking the per-cache spinlock, but we just need to\ndisable interrupts when taking the per-node kmem_list3 list_lock.\n\nSigned-off-by: Alok N Kataria \u003calokk@calsoftinc.com\u003e\nSigned-off-by: Ravikiran Thirumalai \u003ckiran@scalex86.org\u003e\nSigned-off-by: Shai Fultheim \u003cshai@scalex86.org\u003e\nCc: Christoph Lameter \u003cchristoph@lameter.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "2e1217cf96b54d3b2d0162930608159e73507fbf",
      "tree": "ac4eba17cc9cec38e003a4bbabb5dae63934f4ac",
      "parents": [
        "64b4a954b03a1153fb8ae38d6ffbd991e01a1e80"
      ],
      "author": {
        "name": "Ravikiran G Thirumalai",
        "email": "kiran@scalex86.org",
        "time": "Sat Feb 04 23:27:56 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Feb 05 11:06:53 2006 -0800"
      },
      "message": "[PATCH] NUMA slab locking fixes: move color_next to l3\n\ncolour_next is used as an index to add a colouring offset to a new slab in the\ncache (colour_off * colour_next).  Now with the NUMA aware slab allocator, it\nmakes sense to colour slabs added on the same node sequentially with\ncolour_next.\n\nThis patch moves the colouring index \"colour_next\" per-node by placing it on\nkmem_list3 rather than kmem_cache.\n\nThis also helps simplify locking for CPU up and down paths.\n\nSigned-off-by: Alok N Kataria \u003calokk@calsoftinc.com\u003e\nSigned-off-by: Ravikiran Thirumalai \u003ckiran@scalex86.org\u003e\nSigned-off-by: Shai Fultheim \u003cshai@scalex86.org\u003e\nCc: Christoph Lameter \u003cchristoph@lameter.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "64b4a954b03a1153fb8ae38d6ffbd991e01a1e80",
      "tree": "0436a6f23e46d9fcb6caf5b1216fe212be3fbc3f",
      "parents": [
        "fe1dcbc4f311c2e6c23b33c0fa8572461618ab3e"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@engr.sgi.com",
        "time": "Sat Feb 04 23:27:55 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Feb 05 11:06:53 2006 -0800"
      },
      "message": "[PATCH] hugetlb: add comment explaining reasons for Bus Errors\n\nI just spent some time researching a Bus Error.  Turns out that the huge\npage fault handler can return VM_FAULT_SIGBUS for various conditions where\nno huge page is available.\n\nAdd a note explaining the reasoning in the source.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nAcked-by: William Lee Irwin III \u003cwli@holomorphy.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": "88a2a4ac6b671a4b0dd5d2d762418904c05f4104",
      "tree": "8c30052a0d7fadec37c785a42a71b28d0a9c5fcf",
      "parents": [
        "cef5076987dd545ac74f4efcf1c962be8eac34b0"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "dada1@cosmosbay.com",
        "time": "Sat Feb 04 23:27:36 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Feb 05 11:06:51 2006 -0800"
      },
      "message": "[PATCH] percpu data: only iterate over possible CPUs\n\npercpu_data blindly allocates bootmem memory to store NR_CPUS instances of\ncpudata, instead of allocating memory only for possible cpus.\n\nAs a preparation for changing that, we need to convert various 0 -\u003e NR_CPUS\nloops to use for_each_cpu().\n\n(The above only applies to users of asm-generic/percpu.h.  powerpc has gone it\nalone and is presently only allocating memory for present CPUs, so it\u0027s\ncurrently corrupting memory).\n\nSigned-off-by: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: James Bottomley \u003cJames.Bottomley@steeleye.com\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Jens Axboe \u003caxboe@suse.de\u003e\nCc: Anton Blanchard \u003canton@samba.org\u003e\nAcked-by: William Irwin \u003cwli@holomorphy.com\u003e\nCc: Andi Kleen \u003cak@muc.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "00ac59adfca8f2f339beb0b67054e786c275553e",
      "tree": "96489ebcdebec957f94de44940e10b3935bc3c18",
      "parents": [
        "9e8c34edfd7ae97d0e3391f34d9d26a0167912bf"
      ],
      "author": {
        "name": "Chen, Kenneth W",
        "email": "kenneth.w.chen@intel.com",
        "time": "Fri Feb 03 21:51:14 2006 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Feb 04 16:43:14 2006 -0800"
      },
      "message": "[PATCH] x86_64: Fix memory policy build without CONFIG_HUGETLBFS\n\n\u003e mm/mempolicy.c: In function `huge_zonelist\u0027:\n\u003e mm/mempolicy.c:1045: error: `HPAGE_SHIFT\u0027 undeclared (first use in this function)\n\u003e mm/mempolicy.c:1045: error: (Each undeclared identifier is reported only once\n\u003e mm/mempolicy.c:1045: error: for each function it appears in.)\n\u003e make[1]: *** [mm/mempolicy.o] Error 1\n\nNeed to wrap huge_zonelist function with CONFIG_HUGETLBFS.\n\nSigned-off-by: Ken Chen \u003ckenneth.w.chen@intel.com\u003e\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "ee13d785eac1fbe7e79ecca77bf7e902734a0b30",
      "tree": "9833d70a3d2cfe84a3259b93fc50af254aa0d1ce",
      "parents": [
        "a70773ddb96b74c7afe5a5bc859ba45e3d02899e"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "rdunlap@xenotime.net",
        "time": "Wed Feb 01 03:05:53 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Feb 01 08:53:18 2006 -0800"
      },
      "message": "[PATCH] slab: fix sparse warning\n\nmm/slab.c:1522:13: error: incompatible types for operation (\u0026)\n\nSigned-off-by: 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": "a70773ddb96b74c7afe5a5bc859ba45e3d02899e",
      "tree": "7bb27a62bb4230c533cc25f2c8024906e431b80a",
      "parents": [
        "7fd6b1413082c303613fc137aca9a004740cacf0"
      ],
      "author": {
        "name": "Randy.Dunlap",
        "email": "rdunlap@xenotime.net",
        "time": "Wed Feb 01 03:05:52 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Feb 01 08:53:18 2006 -0800"
      },
      "message": "[PATCH] mm/slab: add kernel-doc for one function\n\nFix kernel-doc for calculate_slab_order().\n\nSigned-off-by: 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": "7fd6b1413082c303613fc137aca9a004740cacf0",
      "tree": "3186f4fdecbda4f16558c393a05408f7d3799ad4",
      "parents": [
        "b958f7d9f35bfb61625f201cd92a3fc39504af7a"
      ],
      "author": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Wed Feb 01 03:05:52 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Feb 01 08:53:18 2006 -0800"
      },
      "message": "[PATCH] slab: fix kzalloc and kstrdup caller report for CONFIG_DEBUG_SLAB\n\nFix kzalloc() and kstrdup() caller report for CONFIG_DEBUG_SLAB.  We must\npass the caller to __cache_alloc() instead of directly doing\n__builtin_return_address(0) there; otherwise kzalloc() and kstrdup() are\nreported as the allocation site instead of the real one.\n\nThanks to Valdis Kletnieks for reporting the problem and Steven Rostedt for\nthe original idea.\n\nSigned-off-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "b958f7d9f35bfb61625f201cd92a3fc39504af7a",
      "tree": "57668e6d26da9a66c98e5b0f0b1f85903cede63f",
      "parents": [
        "343e0d7a93951e35065fdb5e3dd61aece0ec6b3c"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Wed Feb 01 03:05:51 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Feb 01 08:53:18 2006 -0800"
      },
      "message": "[PATCH] dump_stack() in oom handler\n\nSometimes it\u0027s nice to know who\u0027s calling.\n\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "343e0d7a93951e35065fdb5e3dd61aece0ec6b3c",
      "tree": "a9802aac4041b894a80ab6616b532a2fd0b468e6",
      "parents": [
        "9a2dba4b4912b493070cbc170629fdbf440b01d7"
      ],
      "author": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Wed Feb 01 03:05:50 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Feb 01 08:53:18 2006 -0800"
      },
      "message": "[PATCH] slab: replace kmem_cache_t with struct kmem_cache\n\nReplace uses of kmem_cache_t with proper struct kmem_cache in mm/slab.c.\n\nSigned-off-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "9a2dba4b4912b493070cbc170629fdbf440b01d7",
      "tree": "27d798fa2b2e9daf79defd8f617b12796a748b88",
      "parents": [
        "6ed5eb2211204224799b2821656bbbfde26ef200"
      ],
      "author": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Wed Feb 01 03:05:49 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Feb 01 08:53:18 2006 -0800"
      },
      "message": "[PATCH] slab: rename ac_data to cpu_cache_get\n\nRename the ac_data() function to more descriptive cpu_cache_get().\n\nAcked-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": "6ed5eb2211204224799b2821656bbbfde26ef200",
      "tree": "46c9c3d34317bcee626343acf9aec12c87ee9f32",
      "parents": [
        "5295a74cc0bcf1291686eb734ccb06baa3d55c1a"
      ],
      "author": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Wed Feb 01 03:05:49 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Feb 01 08:53:18 2006 -0800"
      },
      "message": "[PATCH] slab: extract virt_to_{cache|slab}\n\nIntroduce virt_to_cache() and virt_to_slab() functions to reduce duplicate\ncode and introduce a proper abstraction should we want to support other kind\nof mapping for address to slab and cache (eg.  for vmalloc() or I/O memory).\n\nAcked-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": "5295a74cc0bcf1291686eb734ccb06baa3d55c1a",
      "tree": "e90b312f402729893a97f164ce7e03386fe9c5ce",
      "parents": [
        "78d382d77c84229d031431931bf6490d5da6ab86"
      ],
      "author": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Wed Feb 01 03:05:48 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Feb 01 08:53:17 2006 -0800"
      },
      "message": "[PATCH] slab: reduce inlining\n\nFrom: Manfred Spraul \u003cmanfred@colorfullife.com\u003e\n\nReduce the amount of inline functions in slab to the functions that\nare used in the hot path:\n\n  - no inline for debug functions\n  - no __always_inline, inline is already __always_inline\n  - remove inline from a few numa support functions.\n\nBefore:\n\n   text    data     bss     dec     hex filename\n  13588     752      48   14388    3834 mm/slab.o (defconfig)\n  16671    2492      48   19211    4b0b mm/slab.o (numa)\n\nAfter:\n\n   text    data     bss     dec     hex filename\n  13366     752      48   14166    3756 mm/slab.o (defconfig)\n  16230    2492      48   18770    4952 mm/slab.o (numa)\n\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": "78d382d77c84229d031431931bf6490d5da6ab86",
      "tree": "bb6b4fa29b05209ebe88beee496b7785644bb874",
      "parents": [
        "12dd36faec5d3bd96da84fa8f76efecc632930ab"
      ],
      "author": {
        "name": "Matthew Dobson",
        "email": "colpatch@us.ibm.com",
        "time": "Wed Feb 01 03:05:47 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Feb 01 08:53:17 2006 -0800"
      },
      "message": "[PATCH] slab: extract slab_{put|get}_obj\n\nCreate two helper functions slab_get_obj() and slab_put_obj() to replace\nduplicated code in mm/slab.c\n\nSigned-off-by: Matthew Dobson \u003ccolpatch@us.ibm.com\u003e\nAcked-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": "12dd36faec5d3bd96da84fa8f76efecc632930ab",
      "tree": "069ec58bf797166824e92b363720bef041aef712",
      "parents": [
        "fbaccacff1f17c65ae0972085368a7ec75be6062"
      ],
      "author": {
        "name": "Matthew Dobson",
        "email": "colpatch@us.ibm.com",
        "time": "Wed Feb 01 03:05:46 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Feb 01 08:53:17 2006 -0800"
      },
      "message": "[PATCH] slab: extract slab_destroy_objs()\n\nCreate a helper function, slab_destroy_objs() which called from\nslab_destroy().  This makes slab_destroy() smaller and more readable, and\nmoves ifdefs outside the function body.\n\nSigned-off-by: Matthew Dobson \u003ccolpatch@us.ibm.com\u003e\nAcked-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": "fbaccacff1f17c65ae0972085368a7ec75be6062",
      "tree": "a559ee27ac259f7a48c036ec8eba94a04748c25e",
      "parents": [
        "5ec8a847bb8ae2ba6395cfb7cb4bfdc78ada82ed"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Feb 01 03:05:45 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Feb 01 08:53:17 2006 -0800"
      },
      "message": "[PATCH] slab: cache_estimate cleanup\n\nClean up cache_estimate() in mm/slab.c and improves the algorithm from O(n) to\nO(1).  We first calculate the maximum number of objects a slab can hold after\nstruct slab and kmem_bufctl_t for each object has been given enough space.\nAfter that, to respect alignment rules, we decrease the number of objects if\nnecessary.  As required padding is at most align-1 and memory of obj_size is\nat least align, it is always enough to decrease number of objects by one.\n\nThe optimization was originally made by Balbir Singh with more improvements\nfrom Steven Rostedt.  Manfred Spraul provider further modifications: no loop\nat all for the off-slab case and added comments to explain the background.\n\nAcked-by: Balbir Singh \u003cbsingharora@gmail.com\u003e\nSigned-off-by: Manfred Spraul \u003cmanfred@colorfullife.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\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": "5ec8a847bb8ae2ba6395cfb7cb4bfdc78ada82ed",
      "tree": "2ef8bf7484700b49bae1b3c1191e04a80b78b102",
      "parents": [
        "18f820f655ce93b1e4d9b48fc6fcafc64157c6bc"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Feb 01 03:05:44 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Feb 01 08:53:17 2006 -0800"
      },
      "message": "[PATCH] slab: have index_of bug at compile time\n\nI noticed the code for index_of is a creative way of finding the cache\nindex using the compiler to optimize to a single hard coded number.  But\nI couldn\u0027t help noticing that it uses two methods to let you know that\nsomeone used it wrong.  One is at compile time (the correct way), and\nthe other is at run time (not good).\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nAcked-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": "18f820f655ce93b1e4d9b48fc6fcafc64157c6bc",
      "tree": "62c759bb1d7d3675a3dee5dbb345cb63dfa7522b",
      "parents": [
        "3dafccf22751429e69b6266636cf3acf45b48075"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@engr.sgi.com",
        "time": "Wed Feb 01 03:05:43 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Feb 01 08:53:17 2006 -0800"
      },
      "message": "[PATCH] slab: minor cleanup to kmem_cache_alloc_node\n\nClean up kmem_cache_alloc_node a bit.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nAcked-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": "3dafccf22751429e69b6266636cf3acf45b48075",
      "tree": "c65a0217e117155bbfca2bc4c7ad488a42018cc7",
      "parents": [
        "e965f9630c651fa4249039fd4b80c9392d07a856"
      ],
      "author": {
        "name": "Manfred Spraul",
        "email": "manfred@colorfullife.com",
        "time": "Wed Feb 01 03:05:42 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Feb 01 08:53:17 2006 -0800"
      },
      "message": "[PATCH] slab: distinguish between object and buffer size\n\nAn object cache has two different object lengths:\n\n  - the amount of memory available for the user (object size)\n  - the amount of memory allocated internally (buffer size)\n\nThis patch does some renames to make the code reflect that better.\n\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": "e965f9630c651fa4249039fd4b80c9392d07a856",
      "tree": "1353dd536d0ee549c30e462086624c21788ee9d2",
      "parents": [
        "7e2ab150d1b3b286a4c864c60a549b2601777b63"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Wed Feb 01 03:05:41 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Feb 01 08:53:17 2006 -0800"
      },
      "message": "[PATCH] Direct Migration V9: Avoid writeback / page_migrate() method\n\nMigrate a page with buffers without requiring writeback\n\nThis introduces a new address space operation migratepage() that may be used\nby a filesystem to implement its own version of page migration.\n\nA version is provided that migrates buffers attached to pages.  Some\nfilesystems (ext2, ext3, xfs) are modified to utilize this feature.\n\nThe swapper address space operation are modified so that a regular\nmigrate_page() will occur for anonymous pages without writeback (migrate_pages\nforces every anonymous page to have a swap entry).\n\nSigned-off-by: Mike Kravetz \u003ckravetz@us.ibm.com\u003e\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "7e2ab150d1b3b286a4c864c60a549b2601777b63",
      "tree": "9d8f4f3af382a043ada81f75c324e76dff9f0043",
      "parents": [
        "a3351e525e4768c29aa5d22ef59b5b38e0361e53"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Wed Feb 01 03:05:40 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Feb 01 08:53:16 2006 -0800"
      },
      "message": "[PATCH] Direct Migration V9: upgrade MPOL_MF_MOVE and sys_migrate_pages()\n\nModify policy layer to support direct page migration\n\n- Add migrate_pages_to() allowing the migration of a list of pages to a a\n  specified node or to vma with a specific allocation policy in sets of\n  MIGRATE_CHUNK_SIZE pages\n\n- Modify do_migrate_pages() to do a staged move of pages from the source\n  nodes to the target nodes.\n\nSigned-off-by: Paul Jackson \u003cpj@sgi.com\u003e\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "a3351e525e4768c29aa5d22ef59b5b38e0361e53",
      "tree": "457ab54f402b471c5158e8b361d059e88ab8cd62",
      "parents": [
        "a48d07afdf18212de22b959715b16793c5a6e57a"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Wed Feb 01 03:05:39 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Feb 01 08:53:16 2006 -0800"
      },
      "message": "[PATCH] Direct Migration V9: remove_from_swap() to remove swap ptes\n\nAdd remove_from_swap\n\nremove_from_swap() allows the restoration of the pte entries that existed\nbefore page migration occurred for anonymous pages by walking the reverse\nmaps.  This reduces swap use and establishes regular pte\u0027s without the need\nfor page faults.\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": "a48d07afdf18212de22b959715b16793c5a6e57a",
      "tree": "36d5963c29ceb5c2f6df53036cef5c0d30383dbf",
      "parents": [
        "b16664e44c54525be89dc07ad15a13b4eeec5634"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Wed Feb 01 03:05:38 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Feb 01 08:53:16 2006 -0800"
      },
      "message": "[PATCH] Direct Migration V9: migrate_pages() extension\n\nAdd direct migration support with fall back to swap.\n\nDirect migration support on top of the swap based page migration facility.\n\nThis allows the direct migration of anonymous pages and the migration of file\nbacked pages by dropping the associated buffers (requires writeout).\n\nFall back to swap out if necessary.\n\nThe patch is based on lots of patches from the hotplug project but the code\nwas restructured, documented and simplified as much as possible.\n\nNote that an additional patch that defines the migrate_page() method for\nfilesystems is necessary in order to avoid writeback for anonymous and file\nbacked pages.\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Mike Kravetz \u003ckravetz@us.ibm.com\u003e\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "b16664e44c54525be89dc07ad15a13b4eeec5634",
      "tree": "1844d193009c1e55e3c26256feb14bc622ec9af3",
      "parents": [
        "2a16e3f4b0c408b9e50297d2ec27e295d490267a"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Wed Feb 01 03:05:36 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Feb 01 08:53:16 2006 -0800"
      },
      "message": "[PATCH] Direct Migration V9: PageSwapCache checks\n\nCheck for PageSwapCache after looking up and locking a swap page.\n\nThe page migration code may change a swap pte to point to a different page\nunder lock_page().\n\nIf that happens then the vm must retry the lookup operation in the swap space\nto find the correct page number.  There are a couple of locations in the VM\nwhere a lock_page() is done on a swap page.  In these locations we need to\ncheck afterwards if the page was migrated.  If the page was migrated then the\nold page that was looked up before was freed and no longer has the\nPageSwapCache bit set.\n\nSigned-off-by: Hirokazu Takahashi \u003ctaka@valinux.co.jp\u003e\nSigned-off-by: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nSigned-off-by: Christoph Lameter \u003cclameter@@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "2a16e3f4b0c408b9e50297d2ec27e295d490267a",
      "tree": "71569cfdf06fb83497e88e4e6543fbe624488aa3",
      "parents": [
        "1b2ffb7896ad46067f5b9ebf7de1891d74a4cdef"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@engr.sgi.com",
        "time": "Wed Feb 01 03:05:35 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Feb 01 08:53:16 2006 -0800"
      },
      "message": "[PATCH] Reclaim slab during zone reclaim\n\nIf large amounts of zone memory are used by empty slabs then zone_reclaim\nbecomes uneffective.  This patch shakes the slab a bit.\n\nThe problem with this patch is that the slab reclaim is not containable to a\nzone.  Thus slab reclaim may affect the whole system and be extremely slow.\nThis also means that we cannot determine how many pages were freed in this\nzone.  Thus we need to go off node for at least one allocation.\n\nThe functionality is disabled by default.\n\nWe could modify the shrinkers to take a zone parameter but that would be quite\ninvasive.  Better ideas are welcome.\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": "1b2ffb7896ad46067f5b9ebf7de1891d74a4cdef",
      "tree": "a8f257639d4041bf0e7d61eda3fb72f2eb69f4bc",
      "parents": [
        "2a11ff06d7d12be5d1bbcf592fff649b45ac2388"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@engr.sgi.com",
        "time": "Wed Feb 01 03:05:34 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Feb 01 08:53:16 2006 -0800"
      },
      "message": "[PATCH] Zone reclaim: Allow modification of zone reclaim behavior\n\nIn some situations one may want zone_reclaim to behave differently.  For\nexample a process writing large amounts of memory will spew unto other nodes\nto cache the writes if many pages in a zone become dirty.  This may impact the\nperformance of processes running on other nodes.\n\nAllowing writes during reclaim puts a stop to that behavior and throttles the\nprocess by restricting the pages to the local zone.\n\nSimilarly one may want to contain processes to local memory by enabling\nregular swap behavior during zone_reclaim.  Off node memory allocation can\nthen be controlled through memory policies and cpusets.\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": "2a11ff06d7d12be5d1bbcf592fff649b45ac2388",
      "tree": "cef86d3f60b6ae5b3dab277a554a92a8e08d903b",
      "parents": [
        "a92f71263af9d0ab77c260f709c0c079656221aa"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@engr.sgi.com",
        "time": "Wed Feb 01 03:05:33 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Feb 01 08:53:16 2006 -0800"
      },
      "message": "[PATCH] zone_reclaim: configurable off node allocation period.\n\nCurrently the zone_reclaim code has a fixed window of 30 seconds of off node\nallocations should a local zone have no unused pagecache pages left.  Reclaim\nwill be attempted again after this timeout period to avoid repeated useless\nscans for memory.  This is also useful to established sufficiently large off\nnode allocation chunks to relieve the local node.\n\nIt may be beneficial to adjust that time period for some special situations.\nFor example if memory use was exceeding node capacity one may want to give up\nfor longer periods of time.  If memory spikes intermittendly then one may want\nto shorten the time period to reduce the number of off node allocations.\n\nThis patch allows just that....\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": "a92f71263af9d0ab77c260f709c0c079656221aa",
      "tree": "93aa7bf968ba108cc893b0dcc4de36fbf3b733bf",
      "parents": [
        "aa3f18b3391ac305baa01faead3fdf9147daf54b"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@engr.sgi.com",
        "time": "Wed Feb 01 03:05:32 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Feb 01 08:53:16 2006 -0800"
      },
      "message": "[PATCH] zone_reclaim: partial scans instead of full scan\n\nInstead of scanning all the pages in a zone, imitate real swap and scan\nonly a portion of the pages and gradually scan more if we do not free up\nenough pages.  This avoids a zone suddenly loosing all unused pagecache\npages (we may after all access some of these again so they deserve another\nchance) but it still frees up large chunks of memory if a zone only\ncontains unused pagecache pages.\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": "aa3f18b3391ac305baa01faead3fdf9147daf54b",
      "tree": "7e5e1f300058279bafdf7b576e072ced3e5f45d3",
      "parents": [
        "4e6a510a74145585f4111d60d1b5fd450d795dd8"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@engr.sgi.com",
        "time": "Wed Feb 01 03:05:32 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Feb 01 08:53:15 2006 -0800"
      },
      "message": "[PATCH] zone_reclaim: do not unmap file backed pages\n\nzone_reclaim should leave that to the real swapper.  We are only interested\nin evicting unmapped pages.\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": "9884fd8df195fe48d4e1be2279b419be96127cae",
      "tree": "1438571d206c1d488efb8454c64ae00c51438a2e",
      "parents": [
        "c84db23c6e587d3ab00a41c51fedf758e1f6ecd4"
      ],
      "author": {
        "name": "Benjamin LaHaise",
        "email": "bcrl@linux.intel.com",
        "time": "Wed Feb 01 03:05:30 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Feb 01 08:53:15 2006 -0800"
      },
      "message": "[PATCH] Use 32 bit division in slab_put_obj()\n\nImprove the performance of slab_put_obj().  Without the cast, gcc considers\nptrdiff_t a 64 bit signed integer and ends up emitting code to use a full\nsigned 128 bit divide on EM64T, which is substantially slower than a 32 bit\nunsigned divide.\n\nI noticed this when looking at the profile of a case where the slab balance\nis just on edge and thrashes back and forth freeing a block.\n\nSigned-off-by: Benjamin LaHaise \u003cbenjamin.c.lahaise@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "c84db23c6e587d3ab00a41c51fedf758e1f6ecd4",
      "tree": "f1e31810b14a71ccbb9963e018076212eb267ee9",
      "parents": [
        "52a8363eae3872af15880292ff4e06d0fab36986"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@engr.sgi.com",
        "time": "Wed Feb 01 03:05:29 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Feb 01 08:53:15 2006 -0800"
      },
      "message": "[PATCH] zone_reclaim: minor fixes\n\n- If we only reclaim nr_pages then its okay to stay on node.\n  Switch from \u003e to \u003e\u003d for the comparison.\n\n- vm_table[] entry for zone_reclaim_mode is a bit screwed up.\n\n- Add empty lines around shrink_zone to show that this is the\n  central function to be called.\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": "52a8363eae3872af15880292ff4e06d0fab36986",
      "tree": "9ac9d0f00cc2e35e5d95c7be77874477e25847b4",
      "parents": [
        "ce2ea89ba101d976907128441ba3aca72a8804b9"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@engr.sgi.com",
        "time": "Wed Feb 01 03:05:28 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Feb 01 08:53:15 2006 -0800"
      },
      "message": "[PATCH] mm: improve function of sc-\u003emay_writepage\n\nMake sc-\u003emay_writepage control the writeout behavior of shrink_list.\n\nRemove the laptop_mode trick from shrink_list and instead set may_writepage\nin try_to_free_pages properly.\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": "42c722d4cb4022e56ff200f3f5a58c0dfd7edac6",
      "tree": "a954fe12587951c01c61c0fc1ad2219a74adbbcb",
      "parents": [
        "8928862398fef04a137e5673ac5fa9e797960c87"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@engr.sgi.com",
        "time": "Wed Feb 01 03:05:26 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Feb 01 08:53:14 2006 -0800"
      },
      "message": "[PATCH] zone_reclaim: reclaim on memory only node support\n\nZone reclaim is usually only run on the local node.  Headless nodes do not\nhave any local processors.  This patch checks for headless nodes and\nperforms zone reclaim on them.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andy Whitcroft \u003capw@shadowen.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "8928862398fef04a137e5673ac5fa9e797960c87",
      "tree": "141f91c4dd56d323e6f5ce2d47cd1f1d22177aa7",
      "parents": [
        "537421be79b94bcf620467f50dd9e38b739c2a00"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@engr.sgi.com",
        "time": "Wed Feb 01 03:05:25 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Feb 01 08:53:14 2006 -0800"
      },
      "message": "[PATCH] Optimize off-node performance of zone reclaim\n\nEnsure that the performance of off node pages stays the same as before.\nOff node pagefault tests showed an 18% drop in performance without this\npatch.\n\n- Increase the timeout to 30 seconds to reduce the overhead.\n\n- Move all code possible out of the off node hot path for zone reclaim\n  (Sorry Andrew, the struct initialization had to be sacrificed).\n  The read_page_state() bit us there.\n\n- Check first for the timeout before any other checks.\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": "6292d9aaf3047f1abd970bc64ab6d952eda258ac",
      "tree": "2ea2e47572ee8addca7624c6d1e0823449f6f58d",
      "parents": [
        "88356e908521a84b2220c9e8850d1a356a851aa9"
      ],
      "author": {
        "name": "Ashok Raj",
        "email": "ashok.raj@intel.com",
        "time": "Wed Feb 01 03:04:44 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Feb 01 08:53:09 2006 -0800"
      },
      "message": "[PATCH] __cpuinit functions wrongly marked __meminit\n\n__meminit has overzelously been modified and crept its way into marking\ncpuup callbacks as __meminit.\n\nSigned-off-by: 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": "86c562a9d6683063e071692fe14e0a18e64ee1be",
      "tree": "dd64f8bff4624f17f2245aeadf962e0d6d5974a0",
      "parents": [
        "dc85da15d42b0efc792b0f5eab774dc5dbc1ceec"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@engr.sgi.com",
        "time": "Wed Jan 18 17:42:37 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Jan 18 19:20:18 2006 -0800"
      },
      "message": "[PATCH] mm: optimize numa policy handling in slab allocator\n\nMove the interrupt check from slab_node into ___cache_alloc and adds an\n\"unlikely()\" to avoid pipeline stalls on some architectures.\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": "dc85da15d42b0efc792b0f5eab774dc5dbc1ceec",
      "tree": "4b347b10dadf3cc7bdbff36709e8cee2bc673996",
      "parents": [
        "fc0abb1451c64c79ac80665d5ba74450ce274e4d"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@engr.sgi.com",
        "time": "Wed Jan 18 17:42:36 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Jan 18 19:20:18 2006 -0800"
      },
      "message": "[PATCH] NUMA policies in the slab allocator V2\n\nThis patch fixes a regression in 2.6.14 against 2.6.13 that causes an\nimbalance in memory allocation during bootup.\n\nThe slab allocator in 2.6.13 is not numa aware and simply calls\nalloc_pages().  This means that memory policies may control the behavior of\nalloc_pages().  During bootup the memory policy is set to MPOL_INTERLEAVE\nresulting in the spreading out of allocations during bootup over all\navailable nodes.  The slab allocator in 2.6.13 has only a single list of\nslab pages.  As a result the per cpu slab cache and the spinlock controlled\npage lists may contain slab entries from off node memory.  The slab\nallocator in 2.6.13 makes no effort to discern the locality of an entry on\nits lists.\n\nThe NUMA aware slab allocator in 2.6.14 controls locality of the slab pages\nexplicitly by calling alloc_pages_node().  The NUMA slab allocator manages\nslab entries by having lists of available slab pages for each node.  The\nper cpu slab cache can only contain slab entries associated with the node\nlocal to the processor.  This guarantees that the default allocation mode\nof the slab allocator always assigns local memory if available.\n\nSetting MPOL_INTERLEAVE as a default policy during bootup has no effect\nanymore.  In 2.6.14 all node unspecific slab allocations are performed on\nthe boot processor.  This means that most of key data structures are\nallocated on one node.  Most processors will have to refer to these\nstructures making the boot node a potential bottleneck.  This may reduce\nperformance and cause unnecessary memory pressure on the boot node.\n\nThis patch implements NUMA policies in the slab layer.  There is the need\nof explicit application of NUMA memory policies by the slab allcator itself\nsince the NUMA slab allocator does no longer let the page_allocator control\nlocality.\n\nThe check for policies is made directly at the beginning of __cache_alloc\nusing current-\u003emempolicy.  The memory policy is already frequently checked\nby the page allocator (alloc_page_vma() and alloc_page_current()).  So it\nis highly likely that the cacheline is present.  For MPOL_INTERLEAVE\nkmalloc() will spread out each request to one node after another so that an\nequal distribution of allocations can be obtained during bootup.\n\nIt is not possible to push the policy check to lower layers of the NUMA\nslab allocator since the per cpu caches are now only containing slab\nentries from the current node.  If the policy says that the local node is\nnot to be preferred or forbidden then there is no point in checking the\nslab cache or local list of slab pages.  The allocation better be directed\nimmediately to the lists containing slab entries for the allowed set of\nnodes.\n\nThis way of applying policy also fixes another strange behavior in 2.6.13.\nalloc_pages() is controlled by the memory allocation policy of the current\nprocess.  It could therefore be that one process is running with\nMPOL_INTERLEAVE and would f.e.  obtain a new page following that policy\nsince no slab entries are in the lists anymore.  A page can typically be\nused for multiple slab entries but lets say that the current process is\nonly using one.  The other entries are then added to the slab lists.  These\nare now non local entries in the slab lists despite of the possible\navailability of local pages that would provide faster access and increase\nthe performance of the application.\n\nAnother process without MPOL_INTERLEAVE may now run and expect a local slab\nentry from kmalloc().  However, there are still these free slab entries\nfrom the off node page obtained from the other process via MPOL_INTERLEAVE\nin the cache.  The process will then get an off node slab entry although\nother slab entries may be available that are local to that process.  This\nmeans that the policy if one process may contaminate the locality of the\nslab caches for other processes.\n\nThis patch in effect insures that a per process policy is followed for the\nallocation of slab entries and that there cannot be a memory policy\ninfluence from one process to another.  A process with default policy will\nalways get a local slab entry if one is available.  And the process using\nmemory policies will get its memory arranged as requested.  Off-node slab\nallocation will require the use of spinlocks and will make the use of per\ncpu caches not possible.  A process using memory policies to redirect\nallocations offnode will have to cope with additional lock overhead in\naddition to the latency added by the need to access a remote slab entry.\n\nChanges V1-\u003eV2\n- Remove #ifdef CONFIG_NUMA by moving forward declaration into\n  prior #ifdef CONFIG_NUMA section.\n\n- Give the function determining the node number to use a saner\n  name.\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": "fc0abb1451c64c79ac80665d5ba74450ce274e4d",
      "tree": "30301b6134b122a638104645bd6bd4b45014dd2c",
      "parents": [
        "1743660b911bfb849b1fb33830522254561b9f9b"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 18 17:42:33 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Jan 18 19:20:18 2006 -0800"
      },
      "message": "[PATCH] sem2mutex: mm/slab.c\n\nConvert mm/swapfile.c\u0027s swapon_sem to swapon_mutex.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\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": "9eeff2395e3cfd05c9b2e6074ff943a34b0c5c21",
      "tree": "20160098ec6ed8738cfecfc5f81181ad22b44e60",
      "parents": [
        "f1fd1067ece574ab56e4a70878b9a5a1ed4c3c42"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Wed Jan 18 17:42:31 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Jan 18 19:20:17 2006 -0800"
      },
      "message": "[PATCH] Zone reclaim: Reclaim logic\n\nSome bits for zone reclaim exists in 2.6.15 but they are not usable.  This\npatch fixes them up, removes unused code and makes zone reclaim usable.\n\nZone reclaim allows the reclaiming of pages from a zone if the number of\nfree pages falls below the watermarks even if other zones still have enough\npages available.  Zone reclaim is of particular importance for NUMA\nmachines.  It can be more beneficial to reclaim a page than taking the\nperformance penalties that come with allocating a page on a remote zone.\n\nZone reclaim is enabled if the maximum distance to another node is higher\nthan RECLAIM_DISTANCE, which may be defined by an arch.  By default\nRECLAIM_DISTANCE is 20.  20 is the distance to another node in the same\ncomponent (enclosure or motherboard) on IA64.  The meaning of the NUMA\ndistance information seems to vary by arch.\n\nIf zone reclaim is not successful then no further reclaim attempts will\noccur for a certain time period (ZONE_RECLAIM_INTERVAL).\n\nThis patch was discussed before. See\n\nhttp://marc.theaimsgroup.com/?l\u003dlinux-kernel\u0026m\u003d113519961504207\u0026w\u003d2\nhttp://marc.theaimsgroup.com/?l\u003dlinux-kernel\u0026m\u003d113408418232531\u0026w\u003d2\nhttp://marc.theaimsgroup.com/?l\u003dlinux-kernel\u0026m\u003d113389027420032\u0026w\u003d2\nhttp://marc.theaimsgroup.com/?l\u003dlinux-kernel\u0026m\u003d113380938612205\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": "f1fd1067ece574ab56e4a70878b9a5a1ed4c3c42",
      "tree": "f7f9d092ac0ed8bd734245d803b563b5e751c8ad",
      "parents": [
        "fc3012896337c83a056c496d7cfb0072e1591181"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Wed Jan 18 17:42:30 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Jan 18 19:20:17 2006 -0800"
      },
      "message": "[PATCH] Zone reclaim: resurrect may_swap\n\nZone reclaim has a huge impact on NUMA performance (f.e.  our maximum\nthroughput with XFS is raised from 4GB to 6GB/sec / page cache contamination\nof numa nodes destroys locality if one just does a large copy operation which\nresults in performance dropping for good until reboot).\n\nThis patch:\n\nResurrect may_swap in struct scan_control\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": "fc3012896337c83a056c496d7cfb0072e1591181",
      "tree": "5b774e59ba982fd4330eb96abace9cda9d744b0f",
      "parents": [
        "053837fce7aa79025ed57656855df09f80175527"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@engr.sgi.com",
        "time": "Wed Jan 18 17:42:29 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Jan 18 19:20:17 2006 -0800"
      },
      "message": "[PATCH] Simplify migrate_page_add\n\nSimplify migrate_page_add after feedback from Hugh.  This also allows us to\ndrop one parameter from migrate_page_add.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.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": "053837fce7aa79025ed57656855df09f80175527",
      "tree": "05d7615894131a368fc4943f641b11acdd2ae694",
      "parents": [
        "e236a166b2bc437769a9b8b5d19186a3761bde48"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Wed Jan 18 17:42:27 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Jan 18 19:20:17 2006 -0800"
      },
      "message": "[PATCH] mm: migration page refcounting fix\n\nMigration code currently does not take a reference to target page\nproperly, so between unlocking the pte and trying to take a new\nreference to the page with isolate_lru_page, anything could happen to\nit.\n\nFix this by holding the pte lock until we get a chance to elevate the\nrefcount.\n\nOther small cleanups while we\u0027re here.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e236a166b2bc437769a9b8b5d19186a3761bde48",
      "tree": "326c45b5592650dc28f0ece22e8d9b5cd810a09d",
      "parents": [
        "c2aeacd48ca2418fbac985a58d2200c263444d65"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Wed Jan 18 17:42:26 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Jan 18 19:20:17 2006 -0800"
      },
      "message": "[PATCH] mm: dirty_exceeded speedup\n\nRavikiran reports that this variable is bouncing all around nodes on NUMA\nmachines, causing measurable performance problems.  Fix that up by only\nwriting to it when it actually changed.\n\nAnd put it in a new cacheline to prevent it sharing with other things (this\nhappened).\n\nSigned-off-by: Ravikiran Thirumalai \u003ckiran@scalex86.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "c09b42404d29c8a9266f8186632330dc8474bf2e",
      "tree": "26477ddbd49e6de7ef16e21d7a7440b9b9f11c57",
      "parents": [
        "44df75e629106efcada087cead6c3f33ed6bcc60"
      ],
      "author": {
        "name": "Matt Tolentino",
        "email": "metolent@cs.vt.edu",
        "time": "Tue Jan 17 07:03:44 2006 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jan 16 23:18:35 2006 -0800"
      },
      "message": "[PATCH] x86_64: add __meminit for memory hotplug\n\nAdd __meminit to the __init lineup to ensure functions default\nto __init when memory hotplug is not enabled.  Replace __devinit\nwith __meminit on functions that were changed when the memory\nhotplug code was introduced.\n\nSigned-off-by: Matt Tolentino \u003cmatthew.e.tolentino@intel.com\u003e\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "505970b96e3b7d22177c38e03435a68376628e7a",
      "tree": "5508317e391961355bf3d946a6aac05bb21569eb",
      "parents": [
        "ed68cb3676bb179768529aeb808403d57295af56"
      ],
      "author": {
        "name": "Paul Jackson",
        "email": "pj@sgi.com",
        "time": "Sat Jan 14 13:21:06 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Jan 14 18:27:10 2006 -0800"
      },
      "message": "[PATCH] cpuset oom lock fix\n\nThe problem, reported in:\n\n  http://bugzilla.kernel.org/show_bug.cgi?id\u003d5859\n\nand by various other email messages and lkml posts is that the cpuset hook\nin the oom (out of memory) code can try to take a cpuset semaphore while\nholding the tasklist_lock (a spinlock).\n\nOne must not sleep while holding a spinlock.\n\nThe fix seems easy enough - move the cpuset semaphore region outside the\ntasklist_lock region.\n\nThis required a few lines of mechanism to implement.  The oom code where\nthe locking needs to be changed does not have access to the cpuset locks,\nwhich are internal to kernel/cpuset.c only.  So I provided a couple more\ncpuset interface routines, available to the rest of the kernel, which\nsimple take and drop the lock needed here (cpusets callback_sem).\n\nSigned-off-by: Paul Jackson \u003cpj@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "7339ff8302fd70aabf5f1ae26e0c4905fa74a495",
      "tree": "38ee561d51b7e4db7c0d6dd9ebd9fc22c2b6ab88",
      "parents": [
        "852cf918dcf2ae46468b425e679fbcbf0ea8fdbb"
      ],
      "author": {
        "name": "Robin Holt",
        "email": "holt@sgi.com",
        "time": "Sat Jan 14 13:20:48 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Jan 14 18:27:07 2006 -0800"
      },
      "message": "[PATCH] Add tmpfs options for memory placement policies\n\nAnything that writes into a tmpfs filesystem is liable to disproportionately\ndecrease the available memory on a particular node.  Since there\u0027s no telling\nwhat sort of application (e.g.  dd/cp/cat) might be dropping large files\nthere, this lets the admin choose the appropriate default behavior for their\nsite\u0027s situation.\n\nIntroduce a tmpfs mount option which allows specifying a memory policy and\na second option to specify the nodelist for that policy.  With the default\npolicy, tmpfs will behave as it does today.  This patch adds support for\npreferred, bind, and interleave policies.\n\nThe default policy will cause pages to be added to tmpfs files on the node\nwhich is doing the writing.  Some jobs expect a single process to create\nand manage the tmpfs files.  This results in a node which has a\nsignificantly reduced number of free pages.\n\nWith this patch, the administrator can specify the policy and nodes for\nthat policy where they would prefer allocations.\n\nThis patch was originally written by Brent Casavant and Hugh Dickins.  I\nadded support for the bind and preferred policies and the mpol_nodelist\nmount option.\n\nSigned-off-by: Brent Casavant \u003cbcasavan@sgi.com\u003e\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Robin Holt \u003cholt@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "9f5974c8734d83d4ab7096ed98136a82f41210d6",
      "tree": "6f328555796bafefb74936ab68128aa84efd28b1",
      "parents": [
        "a2d823bf13efea4c859376f6e85c49cfbad7ab60",
        "ddae9c2ea79449beb00027cf77fca6dc489f2d15"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Jan 12 09:10:34 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Jan 12 09:10:34 2006 -0800"
      },
      "message": "Merge git://oss.sgi.com:8090/oss/git/xfs-2.6\n"
    },
    {
      "commit": "cbe8dd4af2967ee1c2d54ec9d4db35cf3ecc98d3",
      "tree": "144660e46384377201583c9aeb4723ebfcf4af11",
      "parents": [
        "1edf80d347387405ff4e8934d194d75f57a3caef"
      ],
      "author": {
        "name": "Greg Ungerer",
        "email": "gerg@snapgear.com",
        "time": "Thu Jan 12 01:05:24 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Jan 12 09:08:49 2006 -0800"
      },
      "message": "[PATCH] memmap_init_zone(): remove uneccesary page++\n\nRemove unecessary page++ from memmap_init_zone loop.\n\nSigned-off-by: Greg Ungerer \u003cgerg@uclinux.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "2a7e2f7dcb81279e73aefb691ea55ab3540e408a",
      "tree": "7b9a3568694750bb141a8797415e883f79f90030",
      "parents": [
        "f4598c8b3678abd65be3be00ed3d046375a4777e"
      ],
      "author": {
        "name": "Catalin Marinas",
        "email": "catalin.marinas@arm.com",
        "time": "Thu Jan 12 01:05:21 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Jan 12 09:08:49 2006 -0800"
      },
      "message": "[PATCH] do_truncate() call fix in tiny-shmem.c\n\nAdapt tiny-shmem.c to the new do_truncate() prototype.\n\nSigned-off-by: Catalin Marinas \u003ccatalin.marinas@arm.com\u003e\nAcked-by: Matt Mackall \u003cmpm@selenic.com\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": "f4598c8b3678abd65be3be00ed3d046375a4777e",
      "tree": "497aba8cdeb00b1fe8d227a9b839c1ce8980f3a2",
      "parents": [
        "1bc691d357c646700b9523d2aeca02847d3fb3f4"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@engr.sgi.com",
        "time": "Thu Jan 12 01:05:20 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Jan 12 09:08:48 2006 -0800"
      },
      "message": "[PATCH] migration: make sure there is no attempt to migrate reserved pages.\n\nThis ensures that reserved pages are not migrated.  Reserved pages\ncurrently cause the WARN_ON to trigger in migrate_page_add()\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "c59ede7b78db329949d9cdcd7064e22d357560ef",
      "tree": "f9dc9d464fdad5bfd464d983e77c1af031389dda",
      "parents": [
        "e16885c5ad624a6efe1b1bf764e075d75f65a788"
      ],
      "author": {
        "name": "Randy.Dunlap",
        "email": "rdunlap@xenotime.net",
        "time": "Wed Jan 11 12:17:46 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Jan 11 18:42:13 2006 -0800"
      },
      "message": "[PATCH] move capable() to capability.h\n\n- Move capable() from sched.h to capability.h;\n\n- Use \u003clinux/capability.h\u003e where capable() is used\n\t(in include/, block/, ipc/, kernel/, a few drivers/,\n\tmm/, security/, \u0026 sound/;\n\tmany more drivers/ to go)\n\nSigned-off-by: 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": "4eac915d02453e81a32595cd7423492c81337a26",
      "tree": "2c652730cdf2cb0015cf59a8f75506c917685091",
      "parents": [
        "7365f3d169a1eae00e713c1a4eea90e86415dcc5"
      ],
      "author": {
        "name": "Paul Jackson",
        "email": "pj@sgi.com",
        "time": "Wed Jan 11 12:17:19 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Jan 11 18:42:09 2006 -0800"
      },
      "message": "[PATCH] mm: gfp_atomic comments\n\nClarify in comments that GFP_ATOMIC means both \"don\u0027t sleep\" and \"use\nemergency pools\", hence both ALLOC_HARDER and ALLOC_HIGH.\n\nSigned-off-by: Paul Jackson \u003cpj@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    }
  ],
  "next": "7365f3d169a1eae00e713c1a4eea90e86415dcc5"
}
