)]}'
{
  "log": [
    {
      "commit": "529ae9aaa08378cfe2a4350bded76f32cc8ff0ce",
      "tree": "d3ae998f9876c72a83a022805103a92111852b21",
      "parents": [
        "e9ba9698187ddbc0c5bfcf41de0349a662d23d02"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Sat Aug 02 12:01:03 2008 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 04 21:31:34 2008 -0700"
      },
      "message": "mm: rename page trylock\n\nConverting page lock to new locking bitops requires a change of page flag\noperation naming, so we might as well convert it to something nicer\n(!TestSetPageLocked_Lock \u003d\u003e trylock_page, SetPageLocked \u003d\u003e set_page_locked).\n\nThis also facilitates lockdeping of page lock.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nAcked-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nAcked-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nAcked-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nAcked-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "87547ee95d81ec0ee1503fcaf9c9594469bc2510",
      "tree": "4ec43fc8af26a736bf15e8e7c907a84a1fa10ba8",
      "parents": [
        "7d03431cf98aaed635524024273668bb8cedadda"
      ],
      "author": {
        "name": "Fernando Luis Vazquez Cao",
        "email": "fernando@oss.ntt.co.jp",
        "time": "Tue Jul 29 22:33:42 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jul 30 09:41:46 2008 -0700"
      },
      "message": "do_try_to_free_page: update comments related to vmscan functions\n\nSigned-off-by: Fernando Luis Vazquez Cao \u003cfernando@oss.ntt.co.jp\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7d03431cf98aaed635524024273668bb8cedadda",
      "tree": "aae817e9bd8398fd3521514d0c7573db7b5823ae",
      "parents": [
        "ab33dc09a5c0d2bd6757afa1c2f804c9657daec0"
      ],
      "author": {
        "name": "Fernando Luis Vazquez Cao",
        "email": "fernando@oss.ntt.co.jp",
        "time": "Tue Jul 29 22:33:41 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jul 30 09:41:46 2008 -0700"
      },
      "message": "swapfile/vmscan: update comments related to vmscan functions\n\nSigned-off-by: Fernando Luis Vazquez Cao \u003cfernando@oss.ntt.co.jp\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "19fd6231279be3c3bdd02ed99f9b0eb195978064",
      "tree": "ee09121054262d73c551b57114acd855b82a7a82",
      "parents": [
        "a60637c85893e7191faaafa6a72e197c24386727"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Fri Jul 25 19:45:32 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jul 26 12:00:06 2008 -0700"
      },
      "message": "mm: spinlock tree_lock\n\nmapping-\u003etree_lock has no read lockers.  convert the lock from an rwlock\nto a spinlock.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: \"Paul E. McKenney\" \u003cpaulmck@us.ibm.com\u003e\nReviewed-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e286781d5f2e9c846e012a39653a166e9d31777d",
      "tree": "14958fe6d8f3e0459c96c68b3034ea2433ab85ac",
      "parents": [
        "47feff2c8eefe85099f87c43d3096855f0085ca0"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Fri Jul 25 19:45:30 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jul 26 12:00:06 2008 -0700"
      },
      "message": "mm: speculative page references\n\nIf we can be sure that elevating the page_count on a pagecache page will\npin it, we can speculatively run this operation, and subsequently check to\nsee if we hit the right page rather than relying on holding a lock or\notherwise pinning a reference to the page.\n\nThis can be done if get_page/put_page behaves consistently throughout the\nwhole tree (ie.  if we \"get\" the page after it has been used for something\nelse, we must be able to free it with a put_page).\n\nActually, there is a period where the count behaves differently: when the\npage is free or if it is a constituent page of a compound page.  We need\nan atomic_inc_not_zero operation to ensure we don\u0027t try to grab the page\nin either case.\n\nThis patch introduces the core locking protocol to the pagecache (ie.\nadds page_cache_get_speculative, and tweaks some update-side code to make\nit work).\n\nThanks to Hugh for pointing out an improvement to the algorithm setting\npage_count to zero when we have control of all references, in order to\nhold off speculative getters.\n\n[kamezawa.hiroyu@jp.fujitsu.com: fix migration_entry_wait()]\n[hugh@veritas.com: fix add_to_page_cache]\n[akpm@linux-foundation.org: repair a comment]\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Jeff Garzik \u003cjeff@garzik.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: \"Paul E. McKenney\" \u003cpaulmck@us.ibm.com\u003e\nReviewed-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nAcked-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "873b47717732c2f33a4b14de02571a4295a02f0c",
      "tree": "aaef0fe872dbd4ce5c290f3509e5db69f9a3f04a",
      "parents": [
        "3e85ba034deec351f02cb55ff225bbd616463841"
      ],
      "author": {
        "name": "Keika Kobayashi",
        "email": "kobayashi.kk@ncos.nec.co.jp",
        "time": "Fri Jul 25 01:48:52 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:47 2008 -0700"
      },
      "message": "per-task-delay-accounting: add memory reclaim delay\n\nSometimes, application responses become bad under heavy memory load.\nApplications take a bit time to reclaim memory.  The statistics, how long\nmemory reclaim takes, will be useful to measure memory usage.\n\nThis patch adds accounting memory reclaim to per-task-delay-accounting for\naccounting the time of do_try_to_free_pages().\n\n\u003ci.e\u003e\n\n- When System is under low memory load,\n  memory reclaim may not occur.\n\n$ free\n             total       used       free     shared    buffers     cached\nMem:       8197800    1577300    6620500          0       4808    1516724\n-/+ buffers/cache:      55768    8142032\nSwap:     16386292          0   16386292\n\n$ vmstat 1\nprocs -----------memory---------- ---swap-- -----io---- -system-- ----cpu----\n r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa\n 0  0      0 5069748  10612 3014060    0    0     0     0    3   26  0  0 100  0\n 0  0      0 5069748  10612 3014060    0    0     0     0    4   22  0  0 100  0\n 0  0      0 5069748  10612 3014060    0    0     0     0    3   18  0  0 100  0\n\nMeasure the time of tar command.\n\n$ ls -s test.dat\n1501472 test.dat\n\n$ time tar cvf test.tar test.dat\nreal    0m13.388s\nuser    0m0.116s\nsys     0m5.304s\n\n$ ./delayget -d -p \u003cpid\u003e\nCPU             count     real total  virtual total    delay total\n                  428     5528345500     5477116080       62749891\nIO              count    delay total\n                  338     8078977189\nSWAP            count    delay total\n                    0              0\nRECLAIM         count    delay total\n                    0              0\n\n- When system is under heavy memory load\n  memory reclaim may occur.\n\n$ vmstat 1\nprocs -----------memory---------- ---swap-- -----io---- -system-- ----cpu----\n r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa\n 0  0 7159032  49724   1812   3012    0    0     0     0    3   24  0  0 100  0\n 0  0 7159032  49724   1812   3012    0    0     0     0    4   24  0  0 100  0\n 0  0 7159032  49848   1812   3012    0    0     0     0    3   22  0  0 100  0\n\nIn this case, one process uses more 8G memory\nby execution of malloc() and memset().\n\n$ time tar cvf test.tar test.dat\nreal    1m38.563s        \u003c-  increased by 85 sec\nuser    0m0.140s\nsys     0m7.060s\n\n$ ./delayget -d -p \u003cpid\u003e\nCPU             count     real total  virtual total    delay total\n                 9021     7140446250     7315277975      923201824\nIO              count    delay total\n                 8965    90466349669\nSWAP            count    delay total\n                    3       21036367\nRECLAIM         count    delay total\n                  740    61011951153\n\nIn the later case, the value of RECLAIM is increasing.\nSo, taskstats can show how much memory reclaim influences TAT.\n\nSigned-off-by: Keika Kobayashi \u003ckobayashi.kk@ncos.nec.co.jp\u003e\nAcked-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nAcked-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujistu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c700be3d1320d2be4f04c8a5330186b7df724438",
      "tree": "f6f44d9fc37462ecc7ae7bac6b26c3da9ac29964",
      "parents": [
        "df0bcab2c66ac876d5e80864fca5cce944a44540"
      ],
      "author": {
        "name": "kosaki.motohiro@jp.fujitsu.com",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Thu Jun 12 15:21:27 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 12 18:05:39 2008 -0700"
      },
      "message": "mm: fix incorrect variable type in do_try_to_free_pages()\n\n\"Smarter retry of costly-order allocations\" patch series change behaver of\ndo_try_to_free_pages().  But unfortunately ret variable type was\nunchanged.\n\nThus an overflow is possible.\n\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nAcked-by: Nishanth Aravamudan \u003cnacc@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d40cee245ff6ad05d3448401d7320be82c1c5af1",
      "tree": "5467cada898e80d5e43592393b21252312c908fa",
      "parents": [
        "d7853d1f8932c847a8d7b3b38e6baedf77148cfb"
      ],
      "author": {
        "name": "Harvey Harrison",
        "email": "harvey.harrison@gmail.com",
        "time": "Wed Apr 30 00:55:07 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 30 08:29:53 2008 -0700"
      },
      "message": "mm: remove remaining __FUNCTION__ occurrences\n\n__FUNCTION__ is gcc-specific, use __func__\n\nSigned-off-by: Harvey Harrison \u003charvey.harrison@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a41f24ea9fd6169b147c53c2392e2887cc1d9247",
      "tree": "e6cf79a82f6516a30731f7dec7ed5d76466bb350",
      "parents": [
        "ab857d09386661145924c9403792234aeca4bdff"
      ],
      "author": {
        "name": "Nishanth Aravamudan",
        "email": "nacc@us.ibm.com",
        "time": "Tue Apr 29 00:58:25 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 29 08:05:58 2008 -0700"
      },
      "message": "page allocator: smarter retry of costly-order allocations\n\nBecause of page order checks in __alloc_pages(), hugepage (and similarly\nlarge order) allocations will not retry unless explicitly marked\n__GFP_REPEAT. However, the current retry logic is nearly an infinite\nloop (or until reclaim does no progress whatsoever). For these costly\nallocations, that seems like overkill and could potentially never\nterminate. Mel observed that allowing current __GFP_REPEAT semantics for\nhugepage allocations essentially killed the system. I believe this is\nbecause we may continue to reclaim small orders of pages all over, but\nnever have enough to satisfy the hugepage allocation request. This is\nclearly only a problem for large order allocations, of which hugepages\nare the most obvious (to me).\n\nModify try_to_free_pages() to indicate how many pages were reclaimed.\nUse that information in __alloc_pages() to eventually fail a large\n__GFP_REPEAT allocation when we\u0027ve reclaimed an order of pages equal to\nor greater than the allocation\u0027s order. This relies on lumpy reclaim\nfunctioning as advertised. Due to fragmentation, lumpy reclaim may not\nbe able to free up the order needed in one invocation, so multiple\niterations may be requred. In other words, the more fragmented memory\nis, the more retry attempts __GFP_REPEAT will make (particularly for\nhigher order allocations).\n\nThis changes the semantics of __GFP_REPEAT subtly, but *only* for\nallocations \u003e PAGE_ALLOC_COSTLY_ORDER. With this patch, for those size\nallocations, we will try up to some point (at least 1\u003c\u003corder reclaimed\npages), rather than forever (which is the case for allocations \u003c\u003d\nPAGE_ALLOC_COSTLY_ORDER).\n\nThis change improves the /proc/sys/vm/nr_hugepages interface with a\nfollow-on patch that makes pool allocations use __GFP_REPEAT. Rather\nthan administrators repeatedly echo\u0027ing a particular value into the\nsysctl, and forcing reclaim into action manually, this change allows for\nthe sysctl to attempt a reasonable effort itself. Similarly, dynamic\npool growth should be more successful under load, as lumpy reclaim can\ntry to free up pages, rather than failing right away.\n\nChoosing to reclaim only up to the order of the requested allocation\nstrikes a balance between not failing hugepage allocations and returning\nto the caller when it\u0027s unlikely to every succeed. Because of lumpy\nreclaim, if we have freed the order requested, hopefully it has been in\nbig chunks and those chunks will allow our allocation to succeed. If\nthat isn\u0027t the case after freeing up the current order, I don\u0027t think it\nis likely to succeed in the future, although it is possible given a\nparticular fragmentation pattern.\n\nSigned-off-by: Nishanth Aravamudan \u003cnacc@us.ibm.com\u003e\nCc: Andy Whitcroft \u003capw@shadowen.org\u003e\nTested-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nCc: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "dd1a239f6f2d4d3eedd318583ec319aa145b324c",
      "tree": "aff4224c96b5e2e67588c3946858a724863eeaf9",
      "parents": [
        "54a6eb5c4765aa573a030ceeba2c14e3d2ea5706"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mel@csn.ul.ie",
        "time": "Mon Apr 28 02:12:17 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 28 08:58:18 2008 -0700"
      },
      "message": "mm: have zonelist contains structs with both a zone pointer and zone_idx\n\nFiltering zonelists requires very frequent use of zone_idx().  This is costly\nas it involves a lookup of another structure and a substraction operation.  As\nthe zone_idx is often required, it should be quickly accessible.  The node idx\ncould also be stored here if it was found that accessing zone-\u003enode is\nsignificant which may be the case on workloads where nodemasks are heavily\nused.\n\nThis patch introduces a struct zoneref to store a zone pointer and a zone\nindex.  The zonelist then consists of an array of these struct zonerefs which\nare looked up as necessary.  Helpers are given for accessing the zone index as\nwell as the node index.\n\n[kamezawa.hiroyu@jp.fujitsu.com: Suggested struct zoneref instead of embedding information in pointers]\n[hugh@veritas.com: mm-have-zonelist: fix memcg ooms]\n[hugh@veritas.com: just return do_try_to_free_pages]\n[hugh@veritas.com: do_try_to_free_pages gfp_mask redundant]\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nAcked-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nAcked-by: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "54a6eb5c4765aa573a030ceeba2c14e3d2ea5706",
      "tree": "547176a090beb787722a153cf2b8b942dc0e68db",
      "parents": [
        "18ea7e710d2452fa726814a406779188028cf1bf"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mel@csn.ul.ie",
        "time": "Mon Apr 28 02:12:16 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 28 08:58:18 2008 -0700"
      },
      "message": "mm: use two zonelist that are filtered by GFP mask\n\nCurrently a node has two sets of zonelists, one for each zone type in the\nsystem and a second set for GFP_THISNODE allocations.  Based on the zones\nallowed by a gfp mask, one of these zonelists is selected.  All of these\nzonelists consume memory and occupy cache lines.\n\nThis patch replaces the multiple zonelists per-node with two zonelists.  The\nfirst contains all populated zones in the system, ordered by distance, for\nfallback allocations when the target/preferred node has no free pages.  The\nsecond contains all populated zones in the node suitable for GFP_THISNODE\nallocations.\n\nAn iterator macro is introduced called for_each_zone_zonelist() that interates\nthrough each zone allowed by the GFP flags in the selected zonelist.\n\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nAcked-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "dac1d27bc8d5ca636d3014ecfdf94407031d1970",
      "tree": "2d92f6533f91da05c5f3d61e314f36b9313be89a",
      "parents": [
        "9d02dbc8137759e4c2f91db0b7f9c8a1ec2a9276"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mel@csn.ul.ie",
        "time": "Mon Apr 28 02:12:12 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 28 08:58:18 2008 -0700"
      },
      "message": "mm: use zonelists instead of zones when direct reclaiming pages\n\nThe following patches replace multiple zonelists per node with two zonelists\nthat are filtered based on the GFP flags.  The patches as a set fix a bug with\nregard to the use of MPOL_BIND and ZONE_MOVABLE.  With this patchset, the\nMPOL_BIND will apply to the two highest zones when the highest zone is\nZONE_MOVABLE.  This should be considered as an alternative fix for the\nMPOL_BIND+ZONE_MOVABLE in 2.6.23 to the previously discussed hack that filters\nonly custom zonelists.\n\nThe first patch cleans up an inconsistency where direct reclaim uses\nzonelist-\u003ezones where other places use zonelist.\n\nThe second patch introduces a helper function node_zonelist() for looking up\nthe appropriate zonelist for a GFP mask which simplifies patches later in the\nset.\n\nThe third patch defines/remembers the \"preferred zone\" for numa statistics, as\nit is no longer always the first zone in a zonelist.\n\nThe forth patch replaces multiple zonelists with two zonelists that are\nfiltered.  The two zonelists are due to the fact that the memoryless patchset\nintroduces a second set of zonelists for __GFP_THISNODE.\n\nThe fifth patch introduces helper macros for retrieving the zone and node\nindices of entries in a zonelist.\n\nThe final patch introduces filtering of the zonelists based on a nodemask.\nTwo zonelists exist per node, one for normal allocations and one for\n__GFP_THISNODE.\n\nPerformance results varied depending on the machine configuration.  In real\nworkloads the gain/loss will depend on how much the userspace portion of the\nbenchmark benefits from having more cache available due to reduced referencing\nof zonelists.\n\nThese are the range of performance losses/gains when running against\n2.6.24-rc4-mm1.  The set and these machines are a mix of i386, x86_64 and\nppc64 both NUMA and non-NUMA.\n\t\t\t     loss   to  gain\nTotal CPU time on Kernbench: -0.86% to  1.13%\nElapsed   time on Kernbench: -0.79% to  0.76%\npage_test from aim9:         -4.37% to  0.79%\nbrk_test  from aim9:         -0.71% to  4.07%\nfork_test from aim9:         -1.84% to  4.60%\nexec_test from aim9:         -0.71% to  1.08%\n\nThis patch:\n\nThe allocator deals with zonelists which indicate the order in which zones\nshould be targeted for an allocation.  Similarly, direct reclaim of pages\niterates over an array of zones.  For consistency, this patch converts direct\nreclaim to use a zonelist.  No functionality is changed by this patch.  This\nsimplifies zonelist iterators in the next patch.\n\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nAcked-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c5f59f0833df945eef7ff35f3dc6ba61c5f293dd",
      "tree": "32c1a94847d0154051c79011212d401462723d55",
      "parents": [
        "b53e921ba1cff8453dc9a87a84052fa12d5b30bd"
      ],
      "author": {
        "name": "Mike Travis",
        "email": "travis@sgi.com",
        "time": "Fri Apr 04 18:11:10 2008 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Apr 19 19:44:59 2008 +0200"
      },
      "message": "nodemask: use new node_to_cpumask_ptr function\n\n  * Use new node_to_cpumask_ptr.  This creates a pointer to the\n    cpumask for a given node.  This definition is in mm patch:\n\n\tasm-generic-add-node_to_cpumask_ptr-macro.patch\n\n  * Use new set_cpus_allowed_ptr function.\n\nDepends on:\n\t[mm-patch]: asm-generic-add-node_to_cpumask_ptr-macro.patch\n\t[sched-devel]: sched: add new set_cpus_allowed_ptr function\n\t[x86/latest]: x86: add cpus_scnprintf function\n\nCc: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\nCc: Greg Banks \u003cgnb@melbourne.sgi.com\u003e\nCc: H. Peter Anvin \u003chpa@zytor.com\u003e\nSigned-off-by: Mike Travis \u003ctravis@sgi.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "4dd4b920218326231156c7991ce5b94afad841c3",
      "tree": "021d883ec96cd67f5a348eb739a5c6596fcf6d04",
      "parents": [
        "537878d2c988fa12bbfaec19ee060c7603a48230"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Mon Mar 24 12:29:52 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 24 19:22:19 2008 -0700"
      },
      "message": "revert \"kswapd should only wait on IO if there is IO\"\n\nRevert commit f1a9ee758de7de1e040de849fdef46e6802ea117:\n\n  Author: Rik van Riel \u003criel@redhat.com\u003e\n  Date:   Thu Feb 7 00:14:08 2008 -0800\n\n    kswapd should only wait on IO if there is IO\n\n    The current kswapd (and try_to_free_pages) code has an oddity where the\n    code will wait on IO, even if there is no IO in flight.  This problem is\n    notable especially when the system scans through many unfreeable pages,\n    causing unnecessary stalls in the VM.\n\n    Additionally, tasks without __GFP_FS or __GFP_IO in the direct reclaim path\n    will sleep if a significant number of pages are encountered that should be\n    written out.  This gives kswapd a chance to write out those pages, while\n    the direct reclaim task sleeps.\n\n    Signed-off-by: Rik van Riel \u003criel@redhat.com\u003e\n    Signed-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\n    Signed-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n\nBecause of large latencies and interactivity problems reported by Carlos,\nhere: http://lkml.org/lkml/2008/3/22/211\n\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: \"Carlos R.  Mafra\" \u003ccrmafra2@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "427d5416f317681498337ab19218d195edea02d6",
      "tree": "967cfc87ec775ca3c05f95f2339697e796383191",
      "parents": [
        "bd845e38c7a7251a95a8f2c38aa7fb87140b771d"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Tue Mar 04 14:29:03 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Mar 04 16:35:14 2008 -0800"
      },
      "message": "memcg: move_lists on page not page_cgroup\n\nEach caller of mem_cgroup_move_lists is having to use page_get_page_cgroup:\nit\u0027s more convenient if it acts upon the page itself not the page_cgroup; and\nin a later patch this becomes important to handle within memcontrol.c.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nAcked-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Hirokazu Takahashi \u003ctaka@valinux.co.jp\u003e\nCc: YAMAMOTO Takashi \u003cyamamoto@valinux.co.jp\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "00f0b8259e48979c37212995d798f3fbd0374690",
      "tree": "589e8250c016450324e0c730139d020cf2bf887c",
      "parents": [
        "804defea1c020d5c52985685e56986f1a399acde"
      ],
      "author": {
        "name": "Balbir Singh",
        "email": "balbir@linux.vnet.ibm.com",
        "time": "Tue Mar 04 14:28:39 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Mar 04 16:35:12 2008 -0800"
      },
      "message": "Memory controller: rename to Memory Resource Controller\n\nRename Memory Controller to Memory Resource Controller.  Reflect the same\nchanges in the CONFIG definition for the Memory Resource Controller.  Group\ntogether the config options for Resource Counters and Memory Resource\nController.\n\nSigned-off-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1cfb419b394ba82745c54ff05436d598ecc2dbd5",
      "tree": "33624176aff8f3a09f572c0fa3d699dbacdb447d",
      "parents": [
        "cc38108e1ba7f3b9e12b82d0236fa3730c2e0439"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Thu Feb 07 00:14:37 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:22 2008 -0800"
      },
      "message": "per-zone and reclaim enhancements for memory controller: modifies vmscan.c for isolate globa/cgroup lru activity\n\nWhen using memory controller, there are 2 levels of memory reclaim.\n 1. zone memory reclaim because of system/zone memory shortage.\n 2. memory cgroup memory reclaim because of hitting limit.\n\nThese two can be distinguished by sc-\u003emem_cgroup parameter.\n(scan_global_lru() macro)\n\nThis patch tries to make memory cgroup reclaim routine avoid affecting\nsystem/zone memory reclaim. This patch inserts if (scan_global_lru()) and\nhook to memory_cgroup reclaim support functions.\n\nThis patch can be a help for isolating system lru activity and group lru\nactivity and shows what additional functions are necessary.\n\n * mem_cgroup_calc_mapped_ratio() ... calculate mapped ratio for cgroup.\n * mem_cgroup_reclaim_imbalance() ... calculate active/inactive balance in\n                                        cgroup.\n * mem_cgroup_calc_reclaim_active() ... calculate the number of active pages to\n                                be scanned in this priority in mem_cgroup.\n\n * mem_cgroup_calc_reclaim_inactive() ... calculate the number of inactive pages\n                                to be scanned in this priority in mem_cgroup.\n\n * mem_cgroup_all_unreclaimable() .. checks cgroup\u0027s page is all unreclaimable\n                                     or not.\n * mem_cgroup_get_reclaim_priority() ...\n * mem_cgroup_note_reclaim_priority() ... record reclaim priority (temporal)\n * mem_cgroup_remember_reclaim_priority()\n                             .... record reclaim priority as\n                                  zone-\u003eprev_priority.\n                                  This value is used for calc reclaim_mapped.\n\n[akpm@linux-foundation.org: fix unused var warning]\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nCc: Kirill Korotaev \u003cdev@sw.ru\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Pavel Emelianov \u003cxemul@openvz.org\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Vaidyanathan Srinivasan \u003csvaidy@linux.vnet.ibm.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "91a45470f7ddc322073752e711a2e8dcbc339e6f",
      "tree": "187e912a1245adf692600d4fd32d33ded15e671d",
      "parents": [
        "df878fb04dea044378274d40d063279a9cb787fb"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Thu Feb 07 00:14:29 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:21 2008 -0800"
      },
      "message": "per-zone and reclaim enhancements for memory controller: add scan_global_lru macro\n\nThis is used to detect which scan_control scans global lru or mem_cgroup lru.\nAnd compiled to be static value (1) when memory controller is not configured.\nThis may make the meaning obvious.\n\nAcked-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nCc: Kirill Korotaev \u003cdev@sw.ru\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Pavel Emelianov \u003cxemul@openvz.org\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Vaidyanathan Srinivasan \u003csvaidy@linux.vnet.ibm.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "417eead30434b4bd09a54455e839cf9a62c05460",
      "tree": "138ed49bab9cf21579ffff98a9d428fbabe74fc8",
      "parents": [
        "fa1de9008c9bcce8ab5122529dd19b24c273eba2"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Thu Feb 07 00:14:14 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:20 2008 -0800"
      },
      "message": "memory cgroup enhancements: fix zone handling in try_to_free_mem_cgroup_page\n\nBecause NODE_DATA(node)-\u003enode_zonelists[] is guaranteed to contain all\nnecessary zones, it is not necessary to use for_each_online_node.\n\nAnd this for_each_online_node() makes reclaim routine start always\nfrom node 0. This is not good. This patch makes reclaim start from\ncaller\u0027s node and just use usual (default) zonelist order.\n\n[akpm@linux-foundation.org: fix warning]\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: Pavel Emelianov \u003cxemul@openvz.org\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Kirill Korotaev \u003cdev@sw.ru\u003e\nCc: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Vaidyanathan Srinivasan \u003csvaidy@linux.vnet.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f1a9ee758de7de1e040de849fdef46e6802ea117",
      "tree": "99dfac0c81de111025e12546d97aaebd3d8d576c",
      "parents": [
        "fef1bdd68c81b71882ccb6f47c70980a03182063"
      ],
      "author": {
        "name": "Rik van Riel",
        "email": "riel@redhat.com",
        "time": "Thu Feb 07 00:14:08 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:19 2008 -0800"
      },
      "message": "kswapd should only wait on IO if there is IO\n\nThe current kswapd (and try_to_free_pages) code has an oddity where the\ncode will wait on IO, even if there is no IO in flight.  This problem is\nnotable especially when the system scans through many unfreeable pages,\ncausing unnecessary stalls in the VM.\n\nAdditionally, tasks without __GFP_FS or __GFP_IO in the direct reclaim path\nwill sleep if a significant number of pages are encountered that should be\nwritten out.  This gives kswapd a chance to write out those pages, while\nthe direct reclaim task sleeps.\n\nSigned-off-by: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e1a1cd590e3fcb0d2e230128daf2337ea55387dc",
      "tree": "eb660ab340c657a1eb595b2d4d8e8b62783bf6fb",
      "parents": [
        "bed7161a519a2faef53e1bce1b47595e297c1d14"
      ],
      "author": {
        "name": "Balbir Singh",
        "email": "balbir@linux.vnet.ibm.com",
        "time": "Thu Feb 07 00:14:02 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:19 2008 -0800"
      },
      "message": "Memory controller: make charging gfp mask aware\n\nNick Piggin pointed out that swap cache and page cache addition routines\ncould be called from non GFP_KERNEL contexts.  This patch makes the\ncharging routine aware of the gfp context.  Charging might fail if the\ncgroup is over it\u0027s limit, in which case a suitable error is returned.\n\nThis patch was tested on a Powerpc box.  I am still looking at being able\nto test the path, through which allocations happen in non GFP_KERNEL\ncontexts.\n\n[kamezawa.hiroyu@jp.fujitsu.com: problem with ZONE_MOVABLE]\nSigned-off-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: Pavel Emelianov \u003cxemul@openvz.org\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Kirill Korotaev \u003cdev@sw.ru\u003e\nCc: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Vaidyanathan Srinivasan \u003csvaidy@linux.vnet.ibm.com\u003e\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bed7161a519a2faef53e1bce1b47595e297c1d14",
      "tree": "fbc0541340465f7d83221b829a9382cac2855916",
      "parents": [
        "8697d33194faae6fdd6b2e799f6308aa00cfdf67"
      ],
      "author": {
        "name": "Balbir Singh",
        "email": "balbir@linux.vnet.ibm.com",
        "time": "Thu Feb 07 00:14:01 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:19 2008 -0800"
      },
      "message": "Memory controller: make page_referenced() cgroup aware\n\nMake page_referenced() cgroup aware.  Without this patch, page_referenced()\ncan cause a page to be skipped while reclaiming pages.  This patch ensures\nthat other cgroups do not hold pages in a particular cgroup hostage.  It\nis required to ensure that shared pages are freed from a cgroup when they\nare not actively referenced from the cgroup that brought them in\n\nSigned-off-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: Pavel Emelianov \u003cxemul@openvz.org\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Kirill Korotaev \u003cdev@sw.ru\u003e\nCc: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Vaidyanathan Srinivasan \u003csvaidy@linux.vnet.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "66e1707bc34609f626e2e7b4fe7e454c9748bad5",
      "tree": "d850a729887485874c976ba64eb85e3406e488a1",
      "parents": [
        "67e465a77ba658635309ee00b367bec6555ea544"
      ],
      "author": {
        "name": "Balbir Singh",
        "email": "balbir@linux.vnet.ibm.com",
        "time": "Thu Feb 07 00:13:56 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:18 2008 -0800"
      },
      "message": "Memory controller: add per cgroup LRU and reclaim\n\nAdd the page_cgroup to the per cgroup LRU.  The reclaim algorithm has\nbeen modified to make the isolate_lru_pages() as a pluggable component.  The\nscan_control data structure now accepts the cgroup on behalf of which\nreclaims are carried out.  try_to_free_pages() has been extended to become\ncgroup aware.\n\n[akpm@linux-foundation.org: fix warning]\n[Lee.Schermerhorn@hp.com: initialize all scan_control\u0027s isolate_pages member]\n[bunk@kernel.org: make do_try_to_free_pages() static]\n[hugh@veritas.com: memcgroup: fix try_to_free order]\n[kamezawa.hiroyu@jp.fujitsu.com: this unlock_page_cgroup() is unnecessary]\nSigned-off-by: Pavel Emelianov \u003cxemul@openvz.org\u003e\nSigned-off-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Kirill Korotaev \u003cdev@sw.ru\u003e\nCc: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Vaidyanathan Srinivasan \u003csvaidy@linux.vnet.ibm.com\u003e\nSigned-off-by: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "183ff22bb6bd8188c904ebfb479656ae52230b72",
      "tree": "425207fc9cdca03df64ee8241ba764c75db4d8d1",
      "parents": [
        "676b1855de0a18100b3c340084eb8ef72bde4fb1"
      ],
      "author": {
        "name": "Simon Arlott",
        "email": "simon@fire.lp0.eux",
        "time": "Sat Oct 20 01:27:18 2007 +0200"
      },
      "committer": {
        "name": "Adrian Bunk",
        "email": "bunk@kernel.org",
        "time": "Sat Oct 20 01:27:18 2007 +0200"
      },
      "message": "spelling fixes: mm/\n\nSpelling fixes in mm/.\n\nSigned-off-by: Simon Arlott \u003csimon@fire.lp0.eu\u003e\nSigned-off-by: Adrian Bunk \u003cbunk@kernel.org\u003e\n"
    },
    {
      "commit": "c80544dc0b87bb65038355e7aafdc30be16b26ab",
      "tree": "176349304bec88a9de16e650c9919462e0dd453c",
      "parents": [
        "0e9663ee452ffce0d429656ebbcfe69417a30e92"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@linux-foundation.org",
        "time": "Thu Oct 18 03:07:05 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Oct 18 14:37:31 2007 -0700"
      },
      "message": "sparse pointer use of zero as null\n\nGet rid of sparse related warnings from places that use integer as NULL\npointer.\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: Stephen Hemminger \u003cshemminger@linux-foundation.org\u003e\nCc: Andi Kleen \u003cak@suse.de\u003e\nCc: Jeff Garzik \u003cjeff@garzik.org\u003e\nCc: Matt Mackall \u003cmpm@selenic.com\u003e\nCc: Ian Kent \u003craven@themaw.net\u003e\nCc: Arnd Bergmann \u003carnd@arndb.de\u003e\nCc: Davide Libenzi \u003cdavidel@xmailserver.org\u003e\nCc: Stephen Smalley \u003csds@tycho.nsa.gov\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d773ed6b856a96bd6d18b6e04455e3ced0876da4",
      "tree": "f0235be6843ec323aeedcdadbee34a777b6c2690",
      "parents": [
        "ae74138da609c576b221c765efa8b81b2365f465"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Tue Oct 16 23:26:01 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Oct 17 08:42:46 2007 -0700"
      },
      "message": "mm: test and set zone reclaim lock before starting reclaim\n\nIntroduces new zone flag interface for testing and setting flags:\n\n\tint zone_test_and_set_flag(struct zone *zone, zone_flags_t flag)\n\nInstead of setting and clearing ZONE_RECLAIM_LOCKED each time shrink_zone() is\ncalled, this flag is test and set before starting zone reclaim.  Zone reclaim\nstarts in __alloc_pages() when a zone\u0027s watermark fails and the system is in\nzone_reclaim_mode.  If it\u0027s already in reclaim, there\u0027s no need to start again\nso it is simply considered full for that allocation attempt.\n\nThere is a change of behavior with regard to concurrent zone shrinking.  It is\nnow possible for try_to_free_pages() or kswapd to already be shrinking a\nparticular zone when __alloc_pages() starts zone reclaim.  In this case, it is\npossible for two concurrent threads to invoke shrink_zone() for a single zone.\n\nThis change forbids a zone to be in zone reclaim twice, which was always the\nbehavior, but allows for concurrent try_to_free_pages() or kswapd shrinking\nwhen starting zone reclaim.\n\nCc: Andrea Arcangeli \u003candrea@suse.de\u003e\nCc: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e815af95f94914993bbad279c71cf5fef9f4eaac",
      "tree": "492e0d3e8d3303f37cf9fb0beecf952a1c828c53",
      "parents": [
        "70e24bdf6d2fead14631e72a07fba012400c521e"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Tue Oct 16 23:25:54 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Oct 17 08:42:45 2007 -0700"
      },
      "message": "oom: change all_unreclaimable zone member to flags\n\nConvert the int all_unreclaimable member of struct zone to unsigned long\nflags.  This can now be used to specify several different zone flags such as\nall_unreclaimable and reclaim_in_progress, which can now be removed and\nconverted to a per-zone flag.\n\nFlags are set and cleared as follows:\n\n\tzone_set_flag(struct zone *zone, zone_flags_t flag)\n\tzone_clear_flag(struct zone *zone, zone_flags_t flag)\n\nDefines the first zone flags, ZONE_ALL_UNRECLAIMABLE and ZONE_RECLAIM_LOCKED,\nwhich have the same semantics as the old zone-\u003eall_unreclaimable and\nzone-\u003ereclaim_in_progress, respectively.  Also converts all current users that\nset or clear either flag to use the new interface.\n\nHelper functions are defined to test the flags:\n\n\tint zone_is_all_unreclaimable(const struct zone *zone)\n\tint zone_is_reclaim_locked(const struct zone *zone)\n\nAll flag operators are of the atomic variety because there are currently\nreaders that are implemented that do not take zone-\u003elock.\n\n[akpm@linux-foundation.org: add needed include]\nCc: Andrea Arcangeli \u003candrea@suse.de\u003e\nAcked-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4106f83a9f86afc423557d0d92ebf4b3f36728c1",
      "tree": "b2da62d411e720b6053a80074c9fb8343ec17ccc",
      "parents": [
        "6cb062296f73e74768cca2f3eaf90deac54de02d"
      ],
      "author": {
        "name": "Andrea Arcangeli",
        "email": "andrea@suse.de",
        "time": "Tue Oct 16 01:25:42 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:42:59 2007 -0700"
      },
      "message": "make swappiness safer to use\n\nSwappiness isn\u0027t a safe sysctl.  Setting it to 0 for example can hang a\nsystem.  That\u0027s a corner case but even setting it to 10 or lower can waste\nenormous amounts of cpu without making much progress.  We\u0027ve customers who\nwants to use swappiness but they can\u0027t because of the current\nimplementation (if you change it so the system stops swapping it really\nstops swapping and nothing works sane anymore if you really had to swap\nsomething to make progress).\n\nThis patch from Kurt Garloff makes swappiness safer to use (no more huge\ncpu usage or hangs with low swappiness values).\n\nI think the prev_priority can also be nuked since it wastes 4 bytes per\nzone (that would be an incremental patch but I wait the nr_scan_[in]active\nto be nuked first for similar reasons).  Clearly somebody at some point\nnoticed how broken that thing was and they had to add min(priority,\nprev_priority) to give it some reliability, but they didn\u0027t go the last\nmile to nuke prev_priority too.  Calculating distress only in function of\nnot-racy priority is correct and sure more than enough without having to\nadd randomness into the equation.\n\nPatch is tested on older kernels but it compiles and it\u0027s quite simple\nso...\n\nOverall I\u0027m not very satisified by the swappiness tweak, since it doesn\u0027t\nrally do anything with the dirty pagecache that may be inactive.  We need\nanother kind of tweak that controls the inactive scan and tunes the\ncan_writepage feature (not yet in mainline despite having submitted it a\nfew times), not only the active one.  That new tweak will tell the kernel\nhow hard to scan the inactive list for pure clean pagecache (something the\nmainline kernel isn\u0027t capable of yet).  We already have that feature\nworking in all our enterprise kernels with the default reasonable tune, or\nthey can\u0027t even run a readonly backup with tar without triggering huge\nwrite I/O.  I think it should be available also in mainline later.\n\nCc: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Kurt Garloff \u003cgarloff@suse.de\u003e\nSigned-off-by: Andrea Arcangeli \u003candrea@suse.de\u003e\nSigned-off-by: Fengguang Wu \u003cwfg@mail.ustc.edu.cn\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "58c0a4a7864b2dad6da4090813322fcd29a11c92",
      "tree": "239da4074ced93ee6918fdb03e3839ef721191bb",
      "parents": [
        "37b07e4163f7306aa735a6e250e8d22293e5b8de"
      ],
      "author": {
        "name": "Yasunori Goto",
        "email": "y-goto@jp.fujitsu.com",
        "time": "Tue Oct 16 01:25:40 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:42:59 2007 -0700"
      },
      "message": "Fix panic of cpu online with memory less node\n\nWhen a cpu is onlined on memory-less-node box, kernel panics due to touch\nNULL pointer of pgdat-\u003ekswapd.  Current kswapd runs only nodes which have\nmemory.  So, calling of set_cpus_allowed() is not necessary for memory-less\nnode.\n\nThis is fix for it.\n\nSigned-off-by: Yasunori Goto \u003cy-goto@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "37c0708dbee5825df3bd9ce6ef2199c6c1713970",
      "tree": "747551aa58484e7f872da118b864c8f3ca6e892d",
      "parents": [
        "56bbd65df0e92a4a8eb70c5f2b416ae2b6c5fb31"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Tue Oct 16 01:25:36 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:42:58 2007 -0700"
      },
      "message": "Memoryless nodes: Add N_CPU node state\n\nWe need the check for a node with cpu in zone reclaim.  Zone reclaim will not\nallow remote zone reclaim if a node has a cpu.\n\n[Lee.Schermerhorn@hp.com: Move setup of N_CPU node state mask]\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nTested-by:  Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nAcked-by: Bob Picco \u003cbob.picco@hp.com\u003e\nCc: Nishanth Aravamudan \u003cnacc@us.ibm.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Mel Gorman \u003cmel@skynet.ie\u003e\nSigned-off-by: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9422ffba4adc82b4b67a3ca6ef51516aa61f8248",
      "tree": "e30f87beca455b3e3b1f4c8c8921e9ef049c000f",
      "parents": [
        "ee31af5d649d8aa6ac7948a6d97ae48367ff2d7e"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Tue Oct 16 01:25:31 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:42:58 2007 -0700"
      },
      "message": "Memoryless nodes: No need for kswapd\n\nA node without memory does not need a kswapd.  So use the memory map instead\nof the online map when starting kswapd.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nAcked-by: Nishanth Aravamudan \u003cnacc@us.ibm.com\u003e\nTested-by: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nAcked-by: Bob Picco \u003cbob.picco@hp.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Mel Gorman \u003cmel@skynet.ie\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "32a4330d4156e55a4888a201f484dbafed9504ed",
      "tree": "1339473dab0fe493dc9feb59833cdf23cf2b1780",
      "parents": [
        "8691f3a72f32f8b3ed535faa27140b3ae293c90b"
      ],
      "author": {
        "name": "Rik van Riel",
        "email": "riel@redhat.com",
        "time": "Tue Oct 16 01:24:50 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:42:54 2007 -0700"
      },
      "message": "mm: prevent kswapd from freeing excessive amounts of lowmem\n\nThe current VM can get itself into trouble fairly easily on systems with a\nsmall ZONE_HIGHMEM, which is common on i686 computers with 1GB of memory.\n\nOn one side, page_alloc() will allocate down to zone-\u003epages_low, while on\nthe other side, kswapd() and balance_pgdat() will try to free memory from\nevery zone, until every zone has more free pages than zone-\u003epages_high.\n\nHighmem can be filled up to zone-\u003epages_low with page tables, ramfs,\nvmalloc allocations and other unswappable things quite easily and without\nmany bad side effects, since we still have a huge ZONE_NORMAL to do future\nallocations from.\n\nHowever, as long as the number of free pages in the highmem zone is below\nzone-\u003epages_high, kswapd will continue swapping things out from\nZONE_NORMAL, too!\n\nSami Farin managed to get his system into a stage where kswapd had freed\nabout 700MB of low memory and was still \"going strong\".\n\nThe attached patch will make kswapd stop paging out data from zones when\nthere is more than enough memory free.  We do go above zone-\u003epages_high in\norder to keep pressure between zones equal in normal circumstances, but the\npatch should prevent the kind of excesses that made Sami\u0027s computer totally\nunusable.\n\nSigned-off-by: Rik van Riel \u003criel@redhat.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c661b078fd62abe06fd11fab4ac5e4eeafe26b6d",
      "tree": "f21ffeed682900b783563e7d8a8dde906706cc88",
      "parents": [
        "e9187bdcbbc06090757d565a3077e1b0ecab23d2"
      ],
      "author": {
        "name": "Andy Whitcroft",
        "email": "apw@shadowen.org",
        "time": "Wed Aug 22 14:01:26 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Aug 22 19:52:45 2007 -0700"
      },
      "message": "synchronous lumpy reclaim: wait for page writeback when directly reclaiming contiguous areas\n\nLumpy reclaim works by selecting a lead page from the LRU list and then\nselecting pages for reclaim from the order-aligned area of pages.  In the\nsituation were all pages in that region are inactive and not referenced by any\nprocess over time, it works well.\n\nIn the situation where there is even light load on the system, the pages may\nnot free quickly.  Out of a area of 1024 pages, maybe only 950 of them are\nfreed when the allocation attempt occurs because lumpy reclaim returned early.\n This patch alters the behaviour of direct reclaim for large contiguous\nblocks.\n\nThe first attempt to call shrink_page_list() is asynchronous but if it fails,\nthe pages are submitted a second time and the calling process waits for the IO\nto complete.  This may stall allocators waiting for contiguous memory but that\nshould be expected behaviour for high-order users.  It is preferable behaviour\nto potentially queueing unnecessary areas for IO.  Note that kswapd will not\nstall in this fashion.\n\n[apw@shadowen.org: update to version 2]\n[apw@shadowen.org: update to version 3]\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nSigned-off-by: Andy Whitcroft \u003capw@shadowen.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e9187bdcbbc06090757d565a3077e1b0ecab23d2",
      "tree": "5393cb22c5aef33ec27fa23d633ea088a6066c13",
      "parents": [
        "0cd82ef1fb8909d6d414f36f291c2f67ca70e2be"
      ],
      "author": {
        "name": "Andy Whitcroft",
        "email": "apw@shadowen.org",
        "time": "Wed Aug 22 14:01:25 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Aug 22 19:52:45 2007 -0700"
      },
      "message": "synchronous lumpy reclaim: ensure we count pages transitioning inactive via clear_active_flags\n\nAs pointed out by Mel when reclaim is applied at higher orders a significant\namount of IO may be started.  As this takes finite time to drain reclaim will\nconsider more areas than ultimatly needed to satisfy the request.  This leads\nto more reclaim than strictly required and reduced success rates.\n\nI was able to confirm Mel\u0027s test results on systems locally.  These show that\neven under light load the success rates drop off far more than expected.\nTesting with a modified version of his patch (which follows) I was able to\nallocate almost all of ZONE_MOVABLE with a near idle system.  I ran 5 test\npasses sequentially following system boot (the system has 29 hugepages in\nZONE_MOVABLE):\n\n  2.6.23-rc1              11  8  6  7  7\n  sync_lumpy              28 28 29 29 26\n\nThese show that although hugely better than the near 0% success normally\nexpected we can only allocate about a 1/4 of the zone.  Using synchronous\nreclaim for these allocations we get close to 100% as expected.\n\nI have also run our standard high order tests and these show no regressions in\nallocation success rates at rest, and some significant improvements under\nload.\n\nThis patch:\n\nWe are transitioning pages from active to inactive in clear_active_flags,\nthose need counting as PGDEACTIVATE vm events.\n\nSigned-off-by: Andy Whitcroft \u003capw@shadowen.org\u003e\nAcked-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "831441862956fffa17b9801db37e6ea1650b0f69",
      "tree": "b0334921341f8f1734bdd3243de76d676329d21c",
      "parents": [
        "787d2214c19bcc9b6ac48af0ce098277a801eded"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue Jul 17 04:03:35 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Jul 17 10:23:02 2007 -0700"
      },
      "message": "Freezer: make kernel threads nonfreezable by default\n\nCurrently, the freezer treats all tasks as freezable, except for the kernel\nthreads that explicitly set the PF_NOFREEZE flag for themselves.  This\napproach is problematic, since it requires every kernel thread to either\nset PF_NOFREEZE explicitly, or call try_to_freeze(), even if it doesn\u0027t\ncare for the freezing of tasks at all.\n\nIt seems better to only require the kernel threads that want to or need to\nbe frozen to use some freezer-related code and to remove any\nfreezer-related code from the other (nonfreezable) kernel threads, which is\ndone in this patch.\n\nThe patch causes all kernel threads to be nonfreezable by default (ie.  to\nhave PF_NOFREEZE set by default) and introduces the set_freezable()\nfunction that should be called by the freezable kernel threads in order to\nunset PF_NOFREEZE.  It also makes all of the currently freezable kernel\nthreads call set_freezable(), so it shouldn\u0027t cause any (intentional)\nchange of behaviour to appear.  Additionally, it updates documentation to\ndescribe the freezing of tasks more accurately.\n\n[akpm@linux-foundation.org: build fixes]\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Nigel Cunningham \u003cnigel@nigel.suspend2.net\u003e\nCc: Pavel Machek \u003cpavel@ucw.cz\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Gautham R Shenoy \u003cego@in.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8e1f936b73150f5095448a0fee6d4f30a1f9001d",
      "tree": "0996203e35c629e2ec243d128c7bd91ecd74d24a",
      "parents": [
        "5ad333eb66ff1e52a87639822ae088577669dcf9"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Jul 17 04:03:17 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Jul 17 10:23:00 2007 -0700"
      },
      "message": "mm: clean up and kernelify shrinker registration\n\nI can never remember what the function to register to receive VM pressure\nis called.  I have to trace down from __alloc_pages() to find it.\n\nIt\u0027s called \"set_shrinker()\", and it needs Your Help.\n\n1) Don\u0027t hide struct shrinker.  It contains no magic.\n2) Don\u0027t allocate \"struct shrinker\".  It\u0027s not helpful.\n3) Call them \"register_shrinker\" and \"unregister_shrinker\".\n4) Call the function \"shrink\" not \"shrinker\".\n5) Reduce the 17 lines of waffly comments to 13, but document it properly.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: David Chinner \u003cdgc@sgi.com\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5ad333eb66ff1e52a87639822ae088577669dcf9",
      "tree": "addae6bbd19585f19328f309924d06d647e8f2b7",
      "parents": [
        "7e63efef857575320fb413fbc3d0ee704b72845f"
      ],
      "author": {
        "name": "Andy Whitcroft",
        "email": "apw@shadowen.org",
        "time": "Tue Jul 17 04:03:16 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Jul 17 10:22:59 2007 -0700"
      },
      "message": "Lumpy Reclaim V4\n\nWhen we are out of memory of a suitable size we enter reclaim.  The current\nreclaim algorithm targets pages in LRU order, which is great for fairness at\norder-0 but highly unsuitable if you desire pages at higher orders.  To get\npages of higher order we must shoot down a very high proportion of memory;\n\u003e95% in a lot of cases.\n\nThis patch set adds a lumpy reclaim algorithm to the allocator.  It targets\ngroups of pages at the specified order anchored at the end of the active and\ninactive lists.  This encourages groups of pages at the requested orders to\nmove from active to inactive, and active to free lists.  This behaviour is\nonly triggered out of direct reclaim when higher order pages have been\nrequested.\n\nThis patch set is particularly effective when utilised with an\nanti-fragmentation scheme which groups pages of similar reclaimability\ntogether.\n\nThis patch set is based on Peter Zijlstra\u0027s lumpy reclaim V2 patch which forms\nthe foundation.  Credit to Mel Gorman for sanitity checking.\n\nMel said:\n\n  The patches have an application with hugepage pool resizing.\n\n  When lumpy-reclaim is used used with ZONE_MOVABLE, the hugepages pool can\n  be resized with greater reliability.  Testing on a desktop machine with 2GB\n  of RAM showed that growing the hugepage pool with ZONE_MOVABLE on it\u0027s own\n  was very slow as the success rate was quite low.  Without lumpy-reclaim,\n  each attempt to grow the pool by 100 pages would yield 1 or 2 hugepages.\n  With lumpy-reclaim, getting 40 to 70 hugepages on each attempt was typical.\n\n[akpm@osdl.org: ia64 pfn_to_nid fixes and loop cleanup]\n[bunk@stusta.de: static declarations for internal functions]\n[a.p.zijlstra@chello.nl: initial lumpy V2 implementation]\nSigned-off-by: Andy Whitcroft \u003capw@shadowen.org\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nAcked-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nAcked-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Bob Picco \u003cbob.picco@hp.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8bb7844286fb8c9fce6f65d8288aeb09d03a5e0d",
      "tree": "f4e305edaedbde05774bb1e4acd89a9475661d2e",
      "parents": [
        "f37bc2712b54ec641e0c0c8634f1a4b61d9956c0"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Wed May 09 02:35:10 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:56 2007 -0700"
      },
      "message": "Add suspend-related notifications for CPU hotplug\n\nSince nonboot CPUs are now disabled after tasks and devices have been\nfrozen and the CPU hotplug infrastructure is used for this purpose, we need\nspecial CPU hotplug notifications that will help the CPU-hotplug-aware\nsubsystems distinguish normal CPU hotplug events from CPU hotplug events\nrelated to a system-wide suspend or resume operation in progress.  This\npatch introduces such notifications and causes them to be used during\nsuspend and resume transitions.  It also changes all of the\nCPU-hotplug-aware subsystems to take these notifications into consideration\n(for now they are handled in the same way as the corresponding \"normal\"\nones).\n\n[oleg@tv-sign.ru: cleanups]\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nCc: Gautham R Shenoy \u003cego@in.ibm.com\u003e\nCc: Pavel Machek \u003cpavel@ucw.cz\u003e\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3e9f45bd18191bbd05468b19b7064b8da8262aba",
      "tree": "06c790a9cb1afc83d170447a277e51f5a1a5f303",
      "parents": [
        "c83e44842074a87614c78eca70fa6467b0bc3c4a"
      ],
      "author": {
        "name": "Guillaume Chazarain",
        "email": "guichaz@yahoo.fr",
        "time": "Tue May 08 00:23:25 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:14:57 2007 -0700"
      },
      "message": "Factor outstanding I/O error handling\n\nCleanup: setting an outstanding error on a mapping was open coded too many\ntimes.  Factor it out in mapping_set_error().\n\nSigned-off-by: Guillaume Chazarain \u003cguichaz@yahoo.fr\u003e\nCc: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b1296cc48b39355241470ef934a5e2270e3f23bd",
      "tree": "cfaf24de442b9ce19414f67106461f7c4829a1a7",
      "parents": [
        "d1d241cc2c5feec057c370aa71637380b1b945d5"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sun May 06 14:50:48 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon May 07 12:12:59 2007 -0700"
      },
      "message": "freezer: fix racy usage of try_to_freeze in kswapd\n\nCurrently we can miss freeze_process()-\u003esignal_wake_up() in kswapd() if it\nhappens between try_to_freeze() and prepare_to_wait().  To prevent this\nfrom happening we should check freezing(current) before calling schedule().\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nCc: Pavel Machek \u003cpavel@ucw.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "232ea4d69d81169453344b7d05203425c88d973b",
      "tree": "00799a50022f97a93c0e7524752b817399955851",
      "parents": [
        "b1a316f6f9c54d668df4304ddf935595501ccb25"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Wed Feb 28 20:13:21 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Mar 01 14:53:38 2007 -0800"
      },
      "message": "[PATCH] throttle_vm_writeout(): don\u0027t loop on GFP_NOFS and GFP_NOIO allocations\n\nthrottle_vm_writeout() is designed to wait for the dirty levels to subside.\nBut if the caller holds IO or FS locks, we might be holding up that writeout.\n\nSo change it to take a single nap to give other devices a chance to clean some\nmemory, then return.\n\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: OGAWA Hirofumi \u003chirofumi@mail.parknet.co.jp\u003e\nCc: Kumar Gala \u003cgalak@kernel.crashing.org\u003e\nCc: Pete Zaitcev \u003czaitcev@redhat.com\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c878538598d1e7ab41ecc0de8894e34e2fdef630",
      "tree": "d22e73fddef75521e287c3e7754a1d3224c348d9",
      "parents": [
        "c3704ceb4ad055b489b143f4e37c57d128908012"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Sat Feb 10 01:43:01 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Sun Feb 11 10:51:17 2007 -0800"
      },
      "message": "[PATCH] Use ZVC for inactive and active counts\n\nThe determination of the dirty ratio to determine writeback behavior is\ncurrently based on the number of total pages on the system.\n\nHowever, not all pages in the system may be dirtied.  Thus the ratio is always\ntoo low and can never reach 100%.  The ratio may be particularly skewed if\nlarge hugepage allocations, slab allocations or device driver buffers make\nlarge sections of memory not available anymore.  In that case we may get into\na situation in which f.e.  the background writeback ratio of 40% cannot be\nreached anymore which leads to undesired writeback behavior.\n\nThis patchset fixes that issue by determining the ratio based on the actual\npages that may potentially be dirty.  These are the pages on the active and\nthe inactive list plus free pages.\n\nThe problem with those counts has so far been that it is expensive to\ncalculate these because counts from multiple nodes and multiple zones will\nhave to be summed up.  This patchset makes these counters ZVC counters.  This\nmeans that a current sum per zone, per node and for the whole system is always\navailable via global variables and not expensive anymore to calculate.\n\nThe patchset results in some other good side effects:\n\n- Removal of the various functions that sum up free, active and inactive\n  page counts\n\n- Cleanup of the functions that display information via the proc filesystem.\n\nThis patch:\n\nThe use of a ZVC for nr_inactive and nr_active allows a simplification of some\ncounter operations.  More ZVC functionality is used for sums etc in the\nfollowing patches.\n\n[akpm@osdl.org: UP build fix]\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "76395d37611e8758dd8bd6c6f5bfcb31e1dc48f9",
      "tree": "8002f85993ac66e46d4eac3d5bf41bc58581b769",
      "parents": [
        "d63b70902befe189ba2672925f28ec3f4db41352"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Fri Jan 05 16:37:05 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Fri Jan 05 23:55:29 2007 -0800"
      },
      "message": "[PATCH] shrink_all_memory(): fix lru_pages handling\n\nAt the end of shrink_all_memory() we forget to recalculate lru_pages: it can\nbe zero.\n\nFix that up, and add a helper function for this operation too.\n\nAlso, recalculate lru_pages each time around the inner loop to get the\nbalancing correct.\n\nCc: \"Rafael J. Wysocki\" \u003crjw@sisk.pl\u003e\nCc: Pavel Machek \u003cpavel@ucw.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "918d3f90e8d5657491024f64427e9a5ea632d284",
      "tree": "7c1be7f238372f3b7d5de1d5b3a5c2339765813e",
      "parents": [
        "463cab36926a39d5e690664ebb5560a8b119fc71"
      ],
      "author": {
        "name": "Shantanu Goel",
        "email": "sgoel01@yahoo.com",
        "time": "Fri Dec 29 16:48:59 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Sat Dec 30 10:56:43 2006 -0800"
      },
      "message": "[PATCH] Buglet in vmscan.c\n\nFix a rather obvious buglet.  Noticed while instrumenting the VM using\n/proc/vmstat.\n\nCc: Christoph Lameter \u003cclameter@engr.sgi.com\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e07aa05b606deeb1a8b55cd19098427c72daebce",
      "tree": "c13323bfb4345f69fbc58bc4aab1324f66a5d0ec",
      "parents": [
        "3b2b96abbf321891bdde5412d23bc4123c6cccec"
      ],
      "author": {
        "name": "Nigel Cunningham",
        "email": "nigel@suspend2.net",
        "time": "Fri Dec 22 01:07:21 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Fri Dec 22 08:55:47 2006 -0800"
      },
      "message": "[PATCH] Fix swapped parameters in mm/vmscan.c\n\nThe version of mm/vmscan.c in Linus\u0027 current tree has swapped parameters in\nthe shrink_all_zones declaration and call, used by the various\nsuspend-to-disk implementations.  This doesn\u0027t seem to have any great\nadverse effect, but it\u0027s clearly wrong.\n\nSigned-off-by: Nigel Cunningham \u003cnigel@suspend2.net\u003e\nCc: Pavel Machek \u003cpavel@ucw.cz\u003e\nCc: \"Rafael J. Wysocki\" \u003crjw@sisk.pl\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "02a0e53d8227aff5e62e0433f82c12c1c2805fd6",
      "tree": "fe32435308e5f1afe8bd12357bd8c5ff3b4133c7",
      "parents": [
        "55935a34a428a1497e3b37982e2782c09c6f914d"
      ],
      "author": {
        "name": "Paul Jackson",
        "email": "pj@sgi.com",
        "time": "Wed Dec 13 00:34:25 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Wed Dec 13 09:05:49 2006 -0800"
      },
      "message": "[PATCH] cpuset: rework cpuset_zone_allowed api\n\nElaborate the API for calling cpuset_zone_allowed(), so that users have to\nexplicitly choose between the two variants:\n\n  cpuset_zone_allowed_hardwall()\n  cpuset_zone_allowed_softwall()\n\nUntil now, whether or not you got the hardwall flavor depended solely on\nwhether or not you or\u0027d in the __GFP_HARDWALL gfp flag to the gfp_mask\nargument.\n\nIf you didn\u0027t specify __GFP_HARDWALL, you implicitly got the softwall\nversion.\n\nUnfortunately, this meant that users would end up with the softwall version\nwithout thinking about it.  Since only the softwall version might sleep,\nthis led to bugs with possible sleeping in interrupt context on more than\none occassion.\n\nThe hardwall version requires that the current tasks mems_allowed allows\nthe node of the specified zone (or that you\u0027re in interrupt or that\n__GFP_THISNODE is set or that you\u0027re on a one cpuset system.)\n\nThe softwall version, depending on the gfp_mask, might allow a node if it\nwas allowed in the nearest enclusing cpuset marked mem_exclusive (which\nrequires taking the cpuset lock \u0027callback_mutex\u0027 to evaluate.)\n\nThis patch removes the cpuset_zone_allowed() call, and forces the caller to\nexplicitly choose between the hardwall and the softwall case.\n\nIf the caller wants the gfp_mask to determine this choice, they should (1)\nbe sure they can sleep or that __GFP_HARDWALL is set, and (2) invoke the\ncpuset_zone_allowed_softwall() routine.\n\nThis adds another 100 or 200 bytes to the kernel text space, due to the few\nlines of nearly duplicate code at the top of both cpuset_zone_allowed_*\nroutines.  It should save a few instructions executed for the calls that\nturned into calls of cpuset_zone_allowed_hardwall, thanks to not having to\nset (before the call) then check (within the call) the __GFP_HARDWALL flag.\n\nFor the most critical call, from get_page_from_freelist(), the same\ninstructions are executed as before -- the old cpuset_zone_allowed()\nroutine it used to call is the same code as the\ncpuset_zone_allowed_softwall() routine that it calls now.\n\nNot a perfect win, but seems worth it, to reduce this chance of hitting a\nsleeping with irq off complaint again.\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": "02316067852187b8bec781bec07410e91af79627",
      "tree": "856e3f4610c91a6548bf3bf5c70ecbc0b28a4145",
      "parents": [
        "a38a44c1a93078fc5fadc4ac2df8dea4697069e2"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Dec 06 20:38:17 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Dec 07 08:39:39 2006 -0800"
      },
      "message": "[PATCH] hotplug CPU: clean up hotcpu_notifier() use\n\nThere was lots of #ifdef noise in the kernel due to hotcpu_notifier(fn,\nprio) not correctly marking \u0027fn\u0027 as used in the !HOTPLUG_CPU case, and thus\ngenerating compiler warnings of unused symbols, hence forcing people to add\n#ifdefs.\n\nthe compiler can skip truly unused functions just fine:\n\n    text    data     bss     dec     hex filename\n 1624412  728710 3674856 6027978  5bfaca vmlinux.before\n 1624412  728710 3674856 6027978  5bfaca vmlinux.after\n\n[akpm@osdl.org: topology.c fix]\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "7dfb71030f7636a0d65200158113c37764552f93",
      "tree": "276b812903d377b16d8828e888552fd256f48aab",
      "parents": [
        "8a05aac2631aa0e6494d9dc990f8c68ed8b8fde7"
      ],
      "author": {
        "name": "Nigel Cunningham",
        "email": "ncunningham@linuxmail.org",
        "time": "Wed Dec 06 20:34:23 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Dec 07 08:39:27 2006 -0800"
      },
      "message": "[PATCH] Add include/linux/freezer.h and move definitions from sched.h\n\nMove process freezing functions from include/linux/sched.h to freezer.h, so\nthat modifications to the freezer or the kernel configuration don\u0027t require\nrecompiling just about everything.\n\n[akpm@osdl.org: fix ueagle driver]\nSigned-off-by: Nigel Cunningham \u003cnigel@suspend2.net\u003e\nCc: \"Rafael J. Wysocki\" \u003crjw@sisk.pl\u003e\nCc: Pavel Machek \u003cpavel@ucw.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "8357376d3df21b7d6f857931a57ac50da9c66e26",
      "tree": "daf2c369e9b79d24c1666323b3ae75189e482a4a",
      "parents": [
        "bf73bae6ba0dc4bd4f1e570feb34a06b72725af6"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Wed Dec 06 20:34:18 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Dec 07 08:39:27 2006 -0800"
      },
      "message": "[PATCH] swsusp: Improve handling of highmem\n\nCurrently swsusp saves the contents of highmem pages by copying them to the\nnormal zone which is quite inefficient (eg.  it requires two normal pages\nto be used for saving one highmem page).  This may be improved by using\nhighmem for saving the contents of saveable highmem pages.\n\nNamely, during the suspend phase of the suspend-resume cycle we try to\nallocate as many free highmem pages as there are saveable highmem pages.\nIf there are not enough highmem image pages to store the contents of all of\nthe saveable highmem pages, some of them will be stored in the \"normal\"\nmemory.  Next, we allocate as many free \"normal\" pages as needed to store\nthe (remaining) image data.  We use a memory bitmap to mark the allocated\nfree pages (ie.  highmem as well as \"normal\" image pages).\n\nNow, we use another memory bitmap to mark all of the saveable pages\n(highmem as well as \"normal\") and the contents of the saveable pages are\ncopied into the image pages.  Then, the second bitmap is used to save the\npfns corresponding to the saveable pages and the first one is used to save\ntheir data.\n\nDuring the resume phase the pfns of the pages that were saveable during the\nsuspend are loaded from the image and used to mark the \"unsafe\" page\nframes.  Next, we try to allocate as many free highmem page frames as to\nload all of the image data that had been in the highmem before the suspend\nand we allocate so many free \"normal\" page frames that the total number of\nallocated free pages (highmem and \"normal\") is equal to the size of the\nimage.  While doing this we have to make sure that there will be some extra\nfree \"normal\" and \"safe\" page frames for two lists of PBEs constructed\nlater.\n\nNow, the image data are loaded, if possible, into their \"original\" page\nframes.  The image data that cannot be written into their \"original\" page\nframes are loaded into \"safe\" page frames and their \"original\" kernel\nvirtual addresses, as well as the addresses of the \"safe\" pages containing\ntheir copies, are stored in one of two lists of PBEs.\n\nOne list of PBEs is for the copies of \"normal\" suspend pages (ie.  \"normal\"\npages that were saveable during the suspend) and it is used in the same way\nas previously (ie.  by the architecture-dependent parts of swsusp).  The\nother list of PBEs is for the copies of highmem suspend pages.  The pages\nin this list are restored (in a reversible way) right before the\narch-dependent code is called.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nCc: Pavel Machek \u003cpavel@ucw.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e1dbeda60a7ea9e82a908d93c07308d104d50d79",
      "tree": "f83d342064a72336bf37fb6bb8bdf5fc9fc47c10",
      "parents": [
        "cc102509074bba0316f2b5deebd7ef4447da295e"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Wed Dec 06 20:32:01 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Dec 07 08:39:21 2006 -0800"
      },
      "message": "[PATCH] balance_pdgat() cleanup\n\nDespaghettify balance_pdgat() a bit.\n\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "bbdb396a60b2ebf7de3b717991e5d3e28c8b7bbd",
      "tree": "efeca197ae8a2421940006ace6c1b719b1811a0c",
      "parents": [
        "3bb1a852ab6c9cdf211a2f4a2f502340c8c38eca"
      ],
      "author": {
        "name": "Martin Bligh",
        "email": "mbligh@google.com",
        "time": "Sat Oct 28 10:38:25 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 28 11:30:51 2006 -0700"
      },
      "message": "[PATCH] Use min of two prio settings in calculating distress for reclaim\n\nIf try_to_free_pages / balance_pgdat are called with a gfp_mask specifying\nGFP_IO and/or GFP_FS, they will reclaim the requisite number of pages, and the\nreset prev_priority to DEF_PRIORITY (or to some other high (ie: unurgent)\nvalue).\n\nHowever, another reclaimer without those gfp_mask flags set (say, GFP_NOIO)\nmay still be struggling to reclaim pages.  The concurrent overwrite of\nzone-\u003eprev_priority will cause this GFP_NOIO thread to unexpectedly cease\ndeactivating mapped pages, thus causing reclaim difficulties.\n\nFix this is to key the distress calculation not off zone-\u003eprev_priority, but\nalso take into account the local caller\u0027s priority by using\nmin(zone-\u003eprev_priority, sc-\u003epriority)\n\nSigned-off-by: Martin J. Bligh \u003cmbligh@google.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\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": "3bb1a852ab6c9cdf211a2f4a2f502340c8c38eca",
      "tree": "d08aa652e8eb40c47d5bc37fa1a240b4fb7db029",
      "parents": [
        "2ae88149a27cadf2840e0ab8155bef13be285c03"
      ],
      "author": {
        "name": "Martin Bligh",
        "email": "mbligh@mbligh.org",
        "time": "Sat Oct 28 10:38:24 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 28 11:30:50 2006 -0700"
      },
      "message": "[PATCH] vmscan: Fix temp_priority race\n\nThe temp_priority field in zone is racy, as we can walk through a reclaim\npath, and just before we copy it into prev_priority, it can be overwritten\n(say with DEF_PRIORITY) by another reclaimer.\n\nThe same bug is contained in both try_to_free_pages and balance_pgdat, but\nit is fixed slightly differently.  In balance_pgdat, we keep a separate\npriority record per zone in a local array.  In try_to_free_pages there is\nno need to do this, as the priority level is the same for all zones that we\nreclaim from.\n\nImpact of this bug is that temp_priority is copied into prev_priority, and\nsetting this artificially high causes reclaimers to set distress\nartificially low.  They then fail to reclaim mapped pages, when they are,\nin fact, under severe memory pressure (their priority may be as low as 0).\nThis causes the OOM killer to fire incorrectly.\n\nFrom: Andrew Morton \u003cakpm@osdl.org\u003e\n\n__zone_reclaim() isn\u0027t modifying zone-\u003eprev_priority.  But zone-\u003eprev_priority\nis used in the decision whether or not to bring mapped pages onto the inactive\nlist.  Hence there\u0027s a risk here that __zone_reclaim() will fail because\nzone-\u003eprev_priority ir large (ie: low urgency) and lots of mapped pages end up\nstuck on the active list.\n\nFix that up by decreasing (ie making more urgent) zone-\u003eprev_priority as\n__zone_reclaim() scans the zone\u0027s pages.\n\nThis bug perhaps explains why ZONE_RECLAIM_PRIORITY was created.  It should be\npossible to remove that now, and to just start out at DEF_PRIORITY?\n\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Christoph Lameter \u003cclameter@engr.sgi.com\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "3fcfab16c5b86eaa3db3a9a31adba550c5b67141",
      "tree": "bd348fa081b8fbec2c79fbf8f173a306d70b2b2c",
      "parents": [
        "79e2de4bc53d7ca2a8eedee49e4a92479b4b530e"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Thu Oct 19 23:28:16 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Oct 20 10:26:35 2006 -0700"
      },
      "message": "[PATCH] separate bdi congestion functions from queue congestion functions\n\nSeparate out the concept of \"queue congestion\" from \"backing-dev congestion\".\nCongestion is a backing-dev concept, not a queue concept.\n\nThe blk_* congestion functions are retained, as wrappers around the core\nbacking-dev congestion functions.\n\nThis proper layering is needed so that NFS can cleanly use the congestion\nfunctions, and so that CONFIG_BLOCK\u003dn actually links.\n\nCc: \"Thomas Maier\" \u003cbalagi@justmail.de\u003e\nCc: \"Jens Axboe\" \u003cjens.axboe@oracle.com\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: Peter Osterlund \u003cpetero2@telia.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "a649fd9271773dd0f78e2b9f347bcceecb8827f9",
      "tree": "59b29ffef77a2c5cce233393848c13354f02c0f2",
      "parents": [
        "5eb30790d4ccd3409240a80eaf9ab76b4fb75fd8"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Tue Oct 17 00:09:36 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Oct 17 08:18:43 2006 -0700"
      },
      "message": "[PATCH] invalidate: remove_mapping() fix\n\nIf remove_mapping() failed to remove the page from its mapping, don\u0027t go and\nmark it not uptodate!  Makes kernel go dead.\n\n(Actually, I don\u0027t think the ClearPageUptodate is needed there at all).\n\nSays Nick Piggin:\n\n   \"Right, it isn\u0027t needed because at this point the page is guaranteed\n    by remove_mapping to have no references (except us) and cannot pick\n    up any new ones because it is removed from pagecache.\n\n    We can delete it.\"\n\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nAcked-by: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "0fd0e6b05aa096622f151cac2f81f2e6844fb1bb",
      "tree": "4fd336eaea48b320f69e970323eef5dc77c62f20",
      "parents": [
        "5b99cd0effaf846240a15441aec459a592577eaf"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "nickpiggin@yahoo.com.au",
        "time": "Wed Sep 27 01:50:02 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Sep 27 08:26:12 2006 -0700"
      },
      "message": "[PATCH] page invalidation cleanup\n\nClean up the invalidate code, and use a common function to safely remove\nthe page from pagecache.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e129b5c23c2b471d47f1c5d2b8b193fc2034af43",
      "tree": "78232266849d0f04b056b0f44554bcb476f0b8e1",
      "parents": [
        "fb01439c5b778d5974a488c5d4fe85e6d0e18a68"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Wed Sep 27 01:50:00 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Sep 27 08:26:12 2006 -0700"
      },
      "message": "[PATCH] vm: add per-zone writeout counter\n\nThe VM is supposed to minimise the number of pages which get written off the\nLRU (for IO scheduling efficiency, and for high reclaim-success rates).  But\nwe don\u0027t actually have a clear way of showing how true this is.\n\nSo add `nr_vmscan_write\u0027 to /proc/vmstat and /proc/zoneinfo - the number of\npages which have been written by the vm scanner in this zone and globally.\n\nCc: Christoph Lameter \u003cclameter@engr.sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "89fa30242facca249aead2aac03c4c69764f911c",
      "tree": "1ac46b4777b819f2a4793d8e37330576ae5089ec",
      "parents": [
        "4415cc8df630b05d3a54267d5f3e5c0b63a4ec05"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Mon Sep 25 23:31:55 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Sep 26 08:48:52 2006 -0700"
      },
      "message": "[PATCH] NUMA: Add zone_to_nid function\n\nThere are many places where we need to determine the node of a zone.\nCurrently we use a difficult to read sequence of pointer dereferencing.\nPut that into an inline function and use throughout VM.  Maybe we can find\na way to optimize the lookup in the future.\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": "83e33a4711760469f5c3861b8ffea4947656d4eb",
      "tree": "3c6b534760dee49a77157eb6512aeb329e19bc2c",
      "parents": [
        "0ff38490c836dc379ff7ec45b10a15a662f4e5f6"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Mon Sep 25 23:31:53 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Sep 26 08:48:52 2006 -0700"
      },
      "message": "[PATCH] zone reclaim with slab: avoid unecessary off node allocations\n\nMinor performance fix.\n\nIf we reclaimed enough slab pages from a zone then we can avoid going off\nnode with the current allocation.  Take care of updating nr_reclaimed when\nreclaiming from the slab.\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": "0ff38490c836dc379ff7ec45b10a15a662f4e5f6",
      "tree": "cb42d5d3cace3c8d12f0b304879039c503807981",
      "parents": [
        "972d1a7b140569084439a81265a0f15b74e924e0"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Mon Sep 25 23:31:52 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Sep 26 08:48:51 2006 -0700"
      },
      "message": "[PATCH] zone_reclaim: dynamic slab reclaim\n\nCurrently one can enable slab reclaim by setting an explicit option in\n/proc/sys/vm/zone_reclaim_mode.  Slab reclaim is then used as a final\noption if the freeing of unmapped file backed pages is not enough to free\nenough pages to allow a local allocation.\n\nHowever, that means that the slab can grow excessively and that most memory\nof a node may be used by slabs.  We have had a case where a machine with\n46GB of memory was using 40-42GB for slab.  Zone reclaim was effective in\ndealing with pagecache pages.  However, slab reclaim was only done during\nglobal reclaim (which is a bit rare on NUMA systems).\n\nThis patch implements slab reclaim during zone reclaim.  Zone reclaim\noccurs if there is a danger of an off node allocation.  At that point we\n\n1. Shrink the per node page cache if the number of pagecache\n   pages is more than min_unmapped_ratio percent of pages in a zone.\n\n2. Shrink the slab cache if the number of the nodes reclaimable slab pages\n   (patch depends on earlier one that implements that counter)\n   are more than min_slab_ratio (a new /proc/sys/vm tunable).\n\nThe shrinking of the slab cache is a bit problematic since it is not node\nspecific.  So we simply calculate what point in the slab we want to reach\n(current per node slab use minus the number of pages that neeed to be\nallocated) and then repeately run the global reclaim until that is\nunsuccessful or we have reached the limit.  I hope we will have zone based\nslab reclaim at some point which will make that easier.\n\nThe default for the min_slab_ratio is 5%\n\nAlso remove the slab option from /proc/sys/vm/zone_reclaim_mode.\n\n[akpm@osdl.org: cleanups]\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "972d1a7b140569084439a81265a0f15b74e924e0",
      "tree": "e86e676e407503ef3d98020a88bb925235f11434",
      "parents": [
        "8417bba4b151346ed475fcc923693c9e3be89063"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Mon Sep 25 23:31:51 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Sep 26 08:48:51 2006 -0700"
      },
      "message": "[PATCH] ZVC: Support NR_SLAB_RECLAIMABLE / NR_SLAB_UNRECLAIMABLE\n\nRemove the atomic counter for slab_reclaim_pages and replace the counter\nand NR_SLAB with two ZVC counter that account for unreclaimable and\nreclaimable slab pages: NR_SLAB_RECLAIMABLE and NR_SLAB_UNRECLAIMABLE.\n\nChange the check in vmscan.c to refer to to NR_SLAB_RECLAIMABLE.  The\nintend seems to be to check for slab pages that could be freed.\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": "8417bba4b151346ed475fcc923693c9e3be89063",
      "tree": "93d559e32bc76077c1f837aed09a5df56849c610",
      "parents": [
        "d00bcc98d7ec2c87391c9d9e1cca519ef64d33ef"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Mon Sep 25 23:31:51 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Sep 26 08:48:51 2006 -0700"
      },
      "message": "[PATCH] Replace min_unmapped_ratio by min_unmapped_pages in struct zone\n\n*_pages is a better description of the role of the variable.\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": "4ff1ffb4870b007b86f21e5f27eeb11498c4c077",
      "tree": "f168408f90214873e1fa36733d29f2ba002fae46",
      "parents": [
        "408d85441cd5a9bd6bc851d677a10c605ed8db5f"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Mon Sep 25 23:31:28 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Sep 26 08:48:48 2006 -0700"
      },
      "message": "[PATCH] oom: reclaim_mapped on oom\n\nPotentially it takes several scans of the lru lists before we can even start\nreclaiming pages.\n\nmapped pages, with young ptes can take 2 passes on the active list + one on\nthe inactive list.  But reclaim_mapped may not always kick in instantly, so it\ncould take even more than that.\n\nRaise the threshold for marking a zone as all_unreclaimable from a factor of 4\ntime the pages in the zone to 6.  Introduce a mechanism to force\nreclaim_mapped if we\u0027ve reached a factor 3 and still haven\u0027t made progress.\n\nPreviously, a customer doing stress testing was able to easily OOM the box\nafter using only a small fraction of its swap (~100MB).  After the patches, it\nwould only OOM after having used up all swap (~800MB).\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "408d85441cd5a9bd6bc851d677a10c605ed8db5f",
      "tree": "547ba9fbd4000585f14e9fcdd3cf539cde58a25a",
      "parents": [
        "6ddab3b9ebebc88bfdd8107c64f12d7e4480c559"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Mon Sep 25 23:31:27 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Sep 26 08:48:48 2006 -0700"
      },
      "message": "[PATCH] oom: use unreclaimable info\n\n__alloc_pages currently starts shooting if page reclaim has failed to free up\nswap_cluster_max pages in one run through the priorities.  This is not always\na good indicator on its own, so make use of the all_unreclaimable logic as\nwell: don\u0027t consider going OOM until all zones we\u0027re interested in are\nunreclaimable.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "28e4d965e6131ace1e813e93aebca89ac6b82dc1",
      "tree": "6c98aa227c5cfdc9fb51ddf53c4497127beb3ca1",
      "parents": [
        "bfa5bf6d6446f0028187a727f792fbc7934228ad"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Mon Sep 25 23:31:23 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Sep 26 08:48:48 2006 -0700"
      },
      "message": "[PATCH] mm: remove_mapping() safeness\n\nSome users of remove_mapping had been unsafe.\n\nModify the remove_mapping precondition to ensure the caller has locked the\npage and obtained the correct mapping.  Modify callers to ensure the\nmapping is the correct one.\n\n[hugh@veritas.com: swapper_space fix]\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "725d704ecaca4a43f067092c140d4f3271cf2856",
      "tree": "320cf8ab5457ac6c01c05da8c30d6026538ee259",
      "parents": [
        "a6ca1b99ed434f3fb41bbed647ed36c0420501e5"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Mon Sep 25 23:30:55 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Sep 26 08:48:44 2006 -0700"
      },
      "message": "[PATCH] mm: VM_BUG_ON\n\nIntroduce a VM_BUG_ON, which is turned on with CONFIG_DEBUG_VM.  Use this\nin the lightweight, inline refcounting functions; PageLRU and PageActive\nchecks in vmscan, because they\u0027re pretty well confined to vmscan.  And in\npage allocate/free fastpaths which can be the hottest parts of the kernel\nfor kbuilds.\n\nUnlike BUG_ON, VM_BUG_ON must not be used to execute statements with\nside-effects, and should not be used outside core mm code.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: Christoph Lameter \u003cclameter@engr.sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "9614634fe6a138fd8ae044950700d2af8d203f97",
      "tree": "9b020c1d36d8625f4048c057058efb2e17c81973",
      "parents": [
        "cb6358eb69d9854f65f2979c0ce9280eee041828"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Mon Jul 03 00:24:13 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jul 03 15:26:59 2006 -0700"
      },
      "message": "[PATCH] ZVC/zone_reclaim: Leave 1% of unmapped pagecache pages for file I/O\n\nIt turns out that it is advantageous to leave a small portion of unmapped file\nbacked pages if all of a zone\u0027s pages (or almost all pages) are allocated and\nso the page allocator has to go off-node.\n\nThis allows recently used file I/O buffers to stay on the node and\nreduces the times that zone reclaim is invoked if file I/O occurs\nwhen we run out of memory in a zone.\n\nThe problem is that zone reclaim runs too frequently when the page cache is\nused for file I/O (read write and therefore unmapped pages!) alone and we have\nalmost all pages of the zone allocated.  Zone reclaim may remove 32 unmapped\npages.  File I/O will use these pages for the next read/write requests and the\nunmapped pages increase.  After the zone has filled up again zone reclaim will\nremove it again after only 32 pages.  This cycle is too inefficient and there\nare potentially too many zone reclaim cycles.\n\nWith the 1% boundary we may still remove all unmapped pages for file I/O in\nzone reclaim pass.  However.  it will take a large number of read and writes\nto get back to 1% again where we trigger zone reclaim again.\n\nThe zone reclaim 2.6.16/17 does not show this behavior because we have a 30\nsecond timeout.\n\n[akpm@osdl.org: rename the /proc file and the variable]\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "f8891e5e1f93a128c3900f82035e8541357896a7",
      "tree": "97b078ac97970962b17c85d39fd64cb48dc01168",
      "parents": [
        "ca889e6c45e0b112cb2ca9d35afc66297519b5d5"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Fri Jun 30 01:55:45 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 30 11:25:36 2006 -0700"
      },
      "message": "[PATCH] Light weight event counters\n\nThe remaining counters in page_state after the zoned VM counter patches\nhave been applied are all just for show in /proc/vmstat.  They have no\nessential function for the VM.\n\nWe use a simple increment of per cpu variables.  In order to avoid the most\nsevere races we disable preempt.  Preempt does not prevent the race between\nan increment and an interrupt handler incrementing the same statistics\ncounter.  However, that race is exceedingly rare, we may only loose one\nincrement or so and there is no requirement (at least not in kernel) that\nthe vm event counters have to be accurate.\n\nIn the non preempt case this results in a simple increment for each\ncounter.  For many architectures this will be reduced by the compiler to a\nsingle instruction.  This single instruction is atomic for i386 and x86_64.\n And therefore even the rare race condition in an interrupt is avoided for\nboth architectures in most cases.\n\nThe patchset also adds an off switch for embedded systems that allows a\nbuilding of linux kernels without these counters.\n\nThe implementation of these counters is through inline code that hopefully\nresults in only a single instruction increment instruction being emitted\n(i386, x86_64) or in the increment being hidden though instruction\nconcurrency (EPIC architectures such as ia64 can get that done).\n\nBenefits:\n- VM event counter operations usually reduce to a single inline instruction\n  on i386 and x86_64.\n- No interrupt disable, only preempt disable for the preempt case.\n  Preempt disable can also be avoided by moving the counter into a spinlock.\n- Handling is similar to zoned VM counters.\n- Simple and easily extendable.\n- Can be omitted to reduce memory use for embedded use.\n\nReferences:\n\nRFC http://marc.theaimsgroup.com/?l\u003dlinux-kernel\u0026m\u003d113512330605497\u0026w\u003d2\nRFC http://marc.theaimsgroup.com/?l\u003dlinux-kernel\u0026m\u003d114988082814934\u0026w\u003d2\nlocal_t http://marc.theaimsgroup.com/?l\u003dlinux-kernel\u0026m\u003d114991748606690\u0026w\u003d2\nV2 http://marc.theaimsgroup.com/?t\u003d115014808400007\u0026r\u003d1\u0026w\u003d2\nV3 http://marc.theaimsgroup.com/?l\u003dlinux-kernel\u0026m\u003d115024767022346\u0026w\u003d2\nV4 http://marc.theaimsgroup.com/?l\u003dlinux-kernel\u0026m\u003d115047968808926\u0026w\u003d2\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "9a865ffa34b6117a5e0b67640a084d8c2e198c93",
      "tree": "c295d5a0831df81eeeded3834f32f513b9ae05c7",
      "parents": [
        "34aa1330f9b3c5783d269851d467326525207422"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Fri Jun 30 01:55:38 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 30 11:25:35 2006 -0700"
      },
      "message": "[PATCH] zoned vm counters: conversion of nr_slab to per zone counter\n\n- Allows reclaim to access counter without looping over processor counts.\n\n- Allows accurate statistics on how many pages are used in a zone by\n  the slab. This may become useful to balance slab allocations over\n  various zones.\n\n[akpm@osdl.org: bugfix]\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "34aa1330f9b3c5783d269851d467326525207422",
      "tree": "a47db4fa53527ea937dee9e763267ab21865ce11",
      "parents": [
        "f3dbd34460ff54962d3e3244b6bcb7f5295356e6"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Fri Jun 30 01:55:37 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 30 11:25:35 2006 -0700"
      },
      "message": "[PATCH] zoned vm counters: zone_reclaim: remove /proc/sys/vm/zone_reclaim_interval\n\nThe zone_reclaim_interval was necessary because we were not able to determine\nhow many unmapped pages exist in a zone.  Therefore we had to scan in\nintervals to figure out if any pages were unmapped.\n\nWith the zoned counters and NR_ANON_PAGES we now know the number of pagecache\npages and the number of mapped pages in a zone.  So we can simply skip the\nreclaim if there is an insufficient number of unmapped pages.  We use\nSWAP_CLUSTER_MAX as the boundary.\n\nDrop all support for /proc/sys/vm/zone_reclaim_interval.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "f3dbd34460ff54962d3e3244b6bcb7f5295356e6",
      "tree": "91caae2b90d684a7640b5da451a9a2ff8a5c8fb8",
      "parents": [
        "bf02cf4b6cf931d060ad5c6ce9b960af6faefd2d"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Fri Jun 30 01:55:36 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 30 11:25:35 2006 -0700"
      },
      "message": "[PATCH] zoned vm counters: split NR_ANON_PAGES off from NR_FILE_MAPPED\n\nThe current NR_FILE_MAPPED is used by zone reclaim and the dirty load\ncalculation as the number of mapped pagecache pages.  However, that is not\ntrue.  NR_FILE_MAPPED includes the mapped anonymous pages.  This patch\nseparates those and therefore allows an accurate tracking of the anonymous\npages per zone.\n\nIt then becomes possible to determine the number of unmapped pages per zone\nand we can avoid scanning for unmapped pages if there are none.\n\nAlso it may now be possible to determine the mapped/unmapped ratio in\nget_dirty_limit.  Isnt the number of anonymous pages irrelevant in that\ncalculation?\n\nNote that this will change the meaning of the number of mapped pages reported\nin /proc/vmstat /proc/meminfo and in the per node statistics.  This may affect\nuser space tools that monitor these counters!  NR_FILE_MAPPED works like\nNR_FILE_DIRTY.  It is only valid for pagecache pages.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "bf02cf4b6cf931d060ad5c6ce9b960af6faefd2d",
      "tree": "9856eceb13b2c86c7748f4060bbb3b35008b7ee0",
      "parents": [
        "347ce434d57da80fd5809c0c836f206a50999c26"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Fri Jun 30 01:55:36 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 30 11:25:35 2006 -0700"
      },
      "message": "[PATCH] zoned vm counters: remove NR_FILE_MAPPED from scan control structure\n\nWe can now access the number of pages in a mapped state in an inexpensive way\nin shrink_active_list.  So drop the nr_mapped field from scan_control.\n\n[akpm@osdl.org: bugfix]\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "65ba55f500a37272985d071c9bbb35256a2f7c14",
      "tree": "e7735326ef2d2dca9d00a6c5ae47e9eb03c7834f",
      "parents": [
        "2244b95a7bcf8d24196f8a3a44187ba5dfff754c"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Fri Jun 30 01:55:34 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 30 11:25:34 2006 -0700"
      },
      "message": "[PATCH] zoned vm counters: convert nr_mapped to per zone counter\n\nnr_mapped is important because it allows a determination of how many pages of\na zone are not mapped, which would allow a more efficient means of determining\nwhen we need to reclaim memory in a zone.\n\nWe take the nr_mapped field out of the page state structure and define a new\nper zone counter named NR_FILE_MAPPED (the anonymous pages will be split off\nfrom NR_MAPPED in the next patch).\n\nWe replace the use of nr_mapped in various kernel locations.  This avoids the\nlooping over all processors in try_to_free_pages(), writeback, reclaim (swap +\nzone reclaim).\n\n[akpm@osdl.org: bugfix]\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "9c7b216d23e820e0e148d5be01bbb5bd2d8378fe",
      "tree": "53e6c1e4870db49b4999b4053862d3f63375773f",
      "parents": [
        "6ac12dfe9c2027cd3c5ed603f11d1bb4f04906fe"
      ],
      "author": {
        "name": "Chandra Seetharaman",
        "email": "sekharan@us.ibm.com",
        "time": "Tue Jun 27 02:54:07 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jun 27 17:32:40 2006 -0700"
      },
      "message": "[PATCH] cpu hotplug: revert init patch submitted for 2.6.17\n\nIn 2.6.17, there was a problem with cpu_notifiers and XFS.  I provided a\nband-aid solution to solve that problem.  In the process, i undid all the\nchanges you both were making to ensure that these notifiers were available\nonly at init time (unless CONFIG_HOTPLUG_CPU is defined).\n\nWe deferred the real fix to 2.6.18.  Here is a set of patches that fixes the\nXFS problem cleanly and makes the cpu notifiers available only at init time\n(unless CONFIG_HOTPLUG_CPU is defined).\n\nIf CONFIG_HOTPLUG_CPU is defined then cpu notifiers are available at run\ntime.\n\nThis patch reverts the notifier_call changes made in 2.6.17\n\nSigned-off-by: Chandra Seetharaman \u003csekharan@us.ibm.com\u003e\nCc: Ashok Raj \u003cashok.raj@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "3218ae14b1e3ee2ab81df30ed690c8e864d23316",
      "tree": "91933138cb7c32dad2246ed39baa8ea4e6f98cd8",
      "parents": [
        "10ad400b49aca15ecf83b0fde7e35e4064b15c85"
      ],
      "author": {
        "name": "Yasunori Goto",
        "email": "y-goto@jp.fujitsu.com",
        "time": "Tue Jun 27 02:53:33 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jun 27 17:32:36 2006 -0700"
      },
      "message": "[PATCH] pgdat allocation for new node add (export kswapd start func)\n\nWhen node is hot-added, kswapd for the node should start.  This export kswapd\nstart function as kswapd_run() to use at add_memory().\n\n[akpm@osdl.org: daemonize() isn\u0027t needed when using the kthread API]\nSigned-off-by: Yasunori Goto \u003cy-goto@jp.fujitsu.com\u003e\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nCc: \"Brown, Len\" \u003clen.brown@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "bd1e22b8e0a90f9a91e4c27db14ca15773659bf7",
      "tree": "8d32bdc39977af9dd3ba577b1fa34c0106b7f18e",
      "parents": [
        "e0a42726794f71336ff4b26084d453dd597471ce"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Fri Jun 23 02:03:47 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 23 07:42:52 2006 -0700"
      },
      "message": "[PATCH] initialise total_memory() earlier\n\nInitialise total_memory earlier in boot.  Because if for some reason we run\npage reclaim early in boot, we don\u0027t want total_memory to be zero when we use\nit as a divisor.\n\nAnd rename total_memory to vm_total_pages to avoid naming clashes with\narchitectures.\n\nCc: Yasunori Goto \u003cy-goto@jp.fujitsu.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.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": "04e62a29bf157ce1edd168f2b71b533c80d13628",
      "tree": "7f0d5a58eeef2c2e08da86dc7141a1ccd050a37d",
      "parents": [
        "442c9137de8d769053e81d325709dca72f0b5e44"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Fri Jun 23 02:03:38 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 23 07:42:51 2006 -0700"
      },
      "message": "[PATCH] More page migration: use migration entries for file pages\n\nThis implements the use of migration entries to preserve ptes of file backed\npages during migration.  Processes can therefore be migrated back and forth\nwithout loosing their connection to pagecache pages.\n\nNote that we implement the migration entries only for linear mappings.\nNonlinear mappings still require the unmapping of the ptes for migration.\n\nAnd another writepage() ugliness shows up.  writepage() can drop the page\nlock.  Therefore we have to remove migration ptes before calling writepages()\nin order to avoid having migration entries point to unlocked 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": "111ebb6e6f7bd7de6d722c5848e95621f43700d9",
      "tree": "bb00b13001db9be201e9b6d31468a79f4d1240bf",
      "parents": [
        "4c91c3648c620003cb7b21b8858f36cd6132e168"
      ],
      "author": {
        "name": "OGAWA Hirofumi",
        "email": "hirofumi@mail.parknet.co.jp",
        "time": "Fri Jun 23 02:03:26 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 23 07:42:49 2006 -0700"
      },
      "message": "[PATCH] writeback: fix range handling\n\nWhen a writeback_control\u0027s `start\u0027 and `end\u0027 fields are used to\nindicate a one-byte-range starting at file offset zero, the required\nvalues of .start\u003d0,.end\u003d0 mean that the -\u003ewritepages() implementation\nhas no way of telling that it is being asked to perform a range\nrequest.  Because we\u0027re currently overloading (start \u003d\u003d 0 \u0026\u0026 end \u003d\u003d 0)\nto mean \"this is not a write-a-range request\".\n\nTo make all this sane, the patch changes range of writeback_control.\n\nSo caller does: If it is calling -\u003ewritepages() to write pages, it\nsets range (range_start/end or range_cyclic) always.\n\nAnd if range_cyclic is true, -\u003ewritepages() thinks the range is\ncyclic, otherwise it just uses range_start and range_end.\n\nThis patch does,\n\n    - Add LLONG_MAX, LLONG_MIN, ULLONG_MAX to include/linux/kernel.h\n      -1 is usually ok for range_end (type is long long). But, if someone did,\n\n\t\trange_end +\u003d val;\t\trange_end is \"val - 1\"\n\t\tu64val \u003d range_end \u003e\u003e bits;\tu64val is \"~(0ULL)\"\n\n      or something, they are wrong. So, this adds LLONG_MAX to avoid nasty\n      things, and uses LLONG_MAX for range_end.\n\n    - All callers of -\u003ewritepages() sets range_start/end or range_cyclic.\n\n    - Fix updates of -\u003ewriteback_index. It seems already bit strange.\n      If it starts at 0 and ended by check of nr_to_write, this last\n      index may reduce chance to scan end of file.  So, this updates\n      -\u003ewriteback_index only if range_cyclic is true or whole-file is\n      scanned.\n\nSigned-off-by: OGAWA Hirofumi \u003chirofumi@mail.parknet.co.jp\u003e\nCc: Nathan Scott \u003cnathans@sgi.com\u003e\nCc: Anton Altaparmakov \u003caia21@cantab.net\u003e\nCc: Steven French \u003csfrench@us.ibm.com\u003e\nCc: \"Vladimir V. Saveliev\" \u003cvs@namesys.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "d6277db4ab271862ed599da08d78961c70f00002",
      "tree": "f11b2f82200c95d17e10779b44a6da37bc03965f",
      "parents": [
        "7a7c381d25067b9a2bfe025dfcb16459daec0373"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Fri Jun 23 02:03:18 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 23 07:42:48 2006 -0700"
      },
      "message": "[PATCH] swsusp: rework memory shrinker\n\nRework the swsusp\u0027s memory shrinker in the following way:\n\n- Simplify balance_pgdat() by removing all of the swsusp-related code\n  from it.\n\n- Make shrink_all_memory() use shrink_slab() and a new function\n  shrink_all_zones() which calls shrink_active_list() and\n  shrink_inactive_list() directly for each zone in a way that\u0027s optimized\n  for suspend.\n\nIn shrink_all_memory() we try to free exactly as many pages as the caller\nasks for, preferably in one shot, starting from easier targets.   If slab\ncaches are huge, they are most likely to have enough pages to reclaim.\n The inactive lists are next (the zones with more inactive pages go first)\netc.\n\nEach time shrink_all_memory() attempts to shrink the active and inactive\nlists for each zone in 5 passes.   In the first pass, only the inactive\nlists are taken into consideration.   In the next two passes the active\nlists are also shrunk, but mapped pages are not reclaimed.   In the last\ntwo passes the active and inactive lists are shrunk and mapped pages are\nreclaimed as well.  The aim of this is to alter the reclaim logic to choose\nthe best pages to keep on resume and improve the responsiveness of the\nresumed system.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nSigned-off-by: Con Kolivas \u003ckernel@kolivas.org\u003e\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "c0bbbc73d58f1b774cd987b5687a478a027f137c",
      "tree": "b07538753116e6e4792e2a283318694e3cbbc614",
      "parents": [
        "650fb8382287f7990d5127a82a54295139224606"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Sun Jun 11 15:22:26 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jun 11 15:27:37 2006 -0700"
      },
      "message": "[PATCH] typo in vmscan.c\n\nFrom: Christoph Lameter \u003cclameter@sgi.com\u003e\n\nLooks like a comma was left from the conversion from a struct to an\nassignment.\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": "83d722f7e198b034699b1500d98729beff930efd",
      "tree": "7d790a2fd62165373ec7bacde704837288e0bec3",
      "parents": [
        "649bbaa484bcdce94f40a1b97a6a2ded0549e8a2"
      ],
      "author": {
        "name": "Chandra Seetharaman",
        "email": "sekharan@us.ibm.com",
        "time": "Mon Apr 24 19:35:21 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Apr 26 08:30:03 2006 -0700"
      },
      "message": "[PATCH] Remove __devinit and __cpuinit from notifier_call definitions\n\nFew of the notifier_chain_register() callers use __init in the definition\nof notifier_call.  It is incorrect as the function definition should be\navailable after the initializations (they do not unregister them during\ninitializations).\n\nThis patch fixes all such usages to _not_ have the notifier_call __init\nsection.\n\nSigned-off-by: Chandra Seetharaman \u003csekharan@us.ibm.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "ec936fc563715a9e2b2e363eb060655b49529325",
      "tree": "72e77aefeeda3c6ff396f080a5c6a82f25d52bf0",
      "parents": [
        "679bc9fbb508a0aac9539b2de747eb5849feb428"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Mon Mar 27 01:15:59 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Mar 27 08:44:48 2006 -0800"
      },
      "message": "[PATCH] for_each_online_pgdat: renaming for_each_pgdat\n\nReplace for_each_pgdat() with for_each_online_pgdat().\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "05eeae208d08a05a6980cf2ff61f02843c0955fd",
      "tree": "be6c6c4e16cfac07edf437a1f74ef027ada8ccc7",
      "parents": [
        "c1f5a1944657ba6abe375e3bb2a3238a46849f70"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Sat Mar 25 03:07:48 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Mar 25 08:22:57 2006 -0800"
      },
      "message": "[PATCH] find_task_by_pid() needs tasklist_lock\n\nA couple of places are forgetting to take it.\n\nThe kswapd case is probably unimportant.  keventd_create_kthread() was racy.\n\nThe whole thing is a bit flakey: you start a kernel thread, get its pid from\nkernel_thread() then look up its task_struct.\n\na) It assumes that pid recycling takes a \"long\" time.\n\nb) We get a task_struct but no reference was taken on it.  The owner of the\n   kswapd and kthread task_struct*\u0027s must assume that the new thread won\u0027t\n   exit unexpectedly.  Because if it does, they\u0027re left holding dead memory\n   and any attempt to control or stop that task will crash.\n\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "b20a35035f983f4ac7e29c4a68f30e43510007e0",
      "tree": "fdf090ddddbcc275349f62f71adc98649e2c683b",
      "parents": [
        "442295c94bf650221af3ef20fc68fa3e93876818"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Wed Mar 22 00:09:12 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Mar 22 07:54:06 2006 -0800"
      },
      "message": "[PATCH] page migration reorg\n\nCentralize the page migration functions in anticipation of additional\ntinkering.  Creates a new file mm/migrate.c\n\n1. Extract buffer_migrate_page() from fs/buffer.c\n\n2. Extract central migration code from vmscan.c\n\n3. Extract some components from mempolicy.c\n\n4. Export pageout() and remove_from_swap() from vmscan.c\n\n5. Make it possible to configure NUMA systems without page migration\n   and non-NUMA systems with page migration.\n\nI had to so some #ifdeffing in mempolicy.c that may need a cleanup.\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": "248a0301e703cbf781aa02a91bcfc6da75870dd7",
      "tree": "74168da24983ec948fb25f92c2b3a1b9d76a5f13",
      "parents": [
        "d5d4b0aa4e1430d73050babba999365593bdb9d2"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Wed Mar 22 00:09:04 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Mar 22 07:54:05 2006 -0800"
      },
      "message": "[PATCH] mm: make shrink_all_memory try harder\n\nMake shrink_all_memory() repeat the attempts to free more memory if there\nseems to be no pages to free.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nCc: Pavel Machek \u003cpavel@ucw.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "6e5ef1a96e6e3b123da56292bc35017c8c401491",
      "tree": "db9532c53013bccd7ac9d186784bbc6fd343bca4",
      "parents": [
        "a7290ee08e434399660ace34427c17696e47c562"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@engr.sgi.com",
        "time": "Wed Mar 22 00:08:45 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Mar 22 07:54:02 2006 -0800"
      },
      "message": "[PATCH] vmscan: emove obsolete checks from shrink_list() and fix unlikely in refill_inactive_zone()\n\nAs suggested by Marcelo:\n\n1. The optimization introduced recently for not calling\n   page_referenced() during zone reclaim makes two additional checks in\n   shrink_list unnecessary.\n\n2. The if (unlikely(sc-\u003emay_swap)) in refill_inactive_zone is optimized\n   for the zone_reclaim case.  However, most peoples system only does swap.\n   Undo that.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: Marcelo Tosatti \u003cmarcelo.tosatti@cyclades.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "0f8053a509ceba4a077a50ea7b77039b5559b428",
      "tree": "5a66021540395e20256f38a3a45174617428a832",
      "parents": [
        "4fa4f53bf92139595cae6f1a3d972fc0a3451d29"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Wed Mar 22 00:08:33 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Mar 22 07:54:01 2006 -0800"
      },
      "message": "[PATCH] mm: make __put_page internal\n\nRemove __put_page from outside the core mm/.  It is dangerous because it does\nnot handle compound pages nicely, and misses 1-\u003e0 transitions.  If a user\nlater appears that really needs the extra speed we can reevaluate.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "fb8d14e172a29ba5ac69a73b61196be86fdfc3e1",
      "tree": "5b31eac00f8fc5860170d7f8b2e7e961dbda0ddf",
      "parents": [
        "c9b02d970c385a253edb36c87643b0df706b50b4"
      ],
      "author": {
        "name": "Wu Fengguang",
        "email": "wfg@mail.ustc.edu.cn",
        "time": "Wed Mar 22 00:08:28 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Mar 22 07:54:00 2006 -0800"
      },
      "message": "[PATCH] mm: shrink_inactive_lis() nr_scan accounting fix\n\nIn shrink_inactive_list(), nr_scan is not accounted when nr_taken is 0.\nBut 0 pages taken does not mean 0 pages scanned.\n\nMove the goto statement below the accounting code to fix it.\n\nSigned-off-by: Wu Fengguang \u003cwfg@mail.ustc.edu.cn\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "c9b02d970c385a253edb36c87643b0df706b50b4",
      "tree": "0e1990c1ced842a923221b36ee1546bf9aac8509",
      "parents": [
        "7fb2d46d396b2491818f8e43b01049b3234e6c07"
      ],
      "author": {
        "name": "Wu Fengguang",
        "email": "wfg@mail.ustc.edu.cn",
        "time": "Wed Mar 22 00:08:23 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Mar 22 07:54:00 2006 -0800"
      },
      "message": "[PATCH] mm: isolate_lru_pages() scan count fix\n\nIn isolate_lru_pages(), *scanned reports one more scan because the scan\ncounter is increased one more time on exit of the while-loop.\n\nChange the while-loop to for-loop to fix it.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Wu Fengguang \u003cwfg@mail.ustc.edu.cn\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "7fb2d46d396b2491818f8e43b01049b3234e6c07",
      "tree": "d5826a4d1c3b1853be20c6049311eb52f1a98360",
      "parents": [
        "1742f19fa920cdd6905f0db5898524dde22ab2a4"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@engr.sgi.com",
        "time": "Wed Mar 22 00:08:22 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Mar 22 07:54:00 2006 -0800"
      },
      "message": "[PATCH] zone_reclaim: additional comments and cleanup\n\nAdd some comments to explain how zone reclaim works.  And it fixes the\nfollowing issues:\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": "1742f19fa920cdd6905f0db5898524dde22ab2a4",
      "tree": "90a490795f29f96e89503ead5affb4c8f99e5e75",
      "parents": [
        "05ff51376f01fd8837946a4f8144a84f6cc71c19"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Wed Mar 22 00:08:21 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Mar 22 07:54:00 2006 -0800"
      },
      "message": "[PATCH] vmscan: rename functions\n\nWe have:\n\n\ttry_to_free_pages\n\t-\u003eshrink_caches(struct zone **zones, ..)\n\t  -\u003eshrink_zone(struct zone *, ...)\n\t    -\u003eshrink_cache(struct zone *, ...)\n\t      -\u003eshrink_list(struct list_head *, ...)\n\t    -\u003erefill_inactive_list((struct zone *, ...)\n\nwhich is fairly irrational.\n\nRename things so that we have\n\n \ttry_to_free_pages\n \t-\u003eshrink_zones(struct zone **zones, ..)\n \t  -\u003eshrink_zone(struct zone *, ...)\n \t    -\u003eshrink_inactive_list(struct zone *, ...)\n \t      -\u003eshrink_page_list(struct list_head *, ...)\n\t    -\u003eshrink_active_list(struct zone *, ...)\n\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\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": "05ff51376f01fd8837946a4f8144a84f6cc71c19",
      "tree": "ca91bcabe6b4bfa71801a39e2921a44ec0bb1003",
      "parents": [
        "69e05944af39fc6c97b09380c8721e38433bd828"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Wed Mar 22 00:08:20 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Mar 22 07:54:00 2006 -0800"
      },
      "message": "[PATCH] vmscan return nr_reclaimed\n\nChange all the vmscan functions to retunr the number-of-reclaimed pages and\nremove scan_conrtol.nr_reclaimed.\n\nSaves ten-odd bytes of text and makes things clearer and more consistent.\n\nThe patch also changes the behaviour of zone_reclaim() when it falls back to slab shrinking.  Christoph says\n\n  \"Setting this to one means that we will rescan and shrink the slab for\n  each allocation if we are out of zone memory and RECLAIM_SLAB is set.  Plus\n  if we do an order 0 allocation we do not go off node as intended.\n\n  \"We better set this to zero.  This means the allocation will go offnode\n  despite us having potentially freed lots of memory on the zone.  Future\n  allocations can then again be done from this zone.\"\n\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\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": "69e05944af39fc6c97b09380c8721e38433bd828",
      "tree": "165e594ed5cd34c3a2b2ec236f75ac5b192ade7a",
      "parents": [
        "179e96395b1f01e95ebe1ff5ef306b810dbbd147"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Wed Mar 22 00:08:19 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Mar 22 07:54:00 2006 -0800"
      },
      "message": "[PATCH] vmscan: use unsigned longs\n\nTurn basically everything in vmscan.c into `unsigned long\u0027.  This is to avoid\nthe possibility that some piece of code in there might decide to operate upon\nmore than 4G (or even 2G) of pages in one hit.\n\nThis might be silly, but we\u0027ll need it one day.\n\nCc: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "179e96395b1f01e95ebe1ff5ef306b810dbbd147",
      "tree": "c21157905aa04dc37b531a1deaacd022932fa48e",
      "parents": [
        "8695949a1d7c99e039595db00af8e0fe4722307d"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Wed Mar 22 00:08:18 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Mar 22 07:54:00 2006 -0800"
      },
      "message": "[PATCH] vmscan: scan_control cleanup\n\nInitialise as much of scan_control as possible at the declaration site.  This\ntidies things up a bit and assures us that all unmentioned fields are zeroed\nout.\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": "8695949a1d7c99e039595db00af8e0fe4722307d",
      "tree": "ac845804aeabdeb19963b5907df921cb9ba8839e",
      "parents": [
        "a07fa3944bf924881450884224cbb2f1269cb9fa"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@engr.sgi.com",
        "time": "Wed Mar 22 00:08:18 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Mar 22 07:53:59 2006 -0800"
      },
      "message": "[PATCH] Thin out scan_control: remove nr_to_scan and priority\n\nMake nr_to_scan and priority a parameter instead of putting it into scan\ncontrol.  This allows various small optimizations and IMHO makes the code\neasier to read.\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": "7c8ee9a86340db686cd4314e9944dc9b6111bda9",
      "tree": "80638e1658556b4fd7c0b92d571aaac854245bd3",
      "parents": [
        "f205b2fe62d321403525065a4cb31b6bff1bbe53"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Wed Mar 22 00:08:03 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Mar 22 07:53:57 2006 -0800"
      },
      "message": "[PATCH] mm: simplify vmscan vs release refcounting\n\nThe VM has an interesting race where a page refcount can drop to zero, but it\nis still on the LRU lists for a short time.  This was solved by testing a 0-\u003e1\nrefcount transition when picking up pages from the LRU, and dropping the\nrefcount in that case.\n\nInstead, use atomic_add_unless to ensure we never pick up a 0 refcount page\nfrom the LRU, thus a 0 refcount page will never have its refcount elevated\nuntil it is allocated again.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "4c84cacfa424264f7ad5287298d3ea4a3e935278",
      "tree": "8cefe97dfd0cdfbdebe5636ccc68b14ab3ae1207",
      "parents": [
        "8d438f96d2b8eade6cbcd8adfc22dae6f5cbd6c0"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Wed Mar 22 00:08:00 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Mar 22 07:53:57 2006 -0800"
      },
      "message": "[PATCH] mm: PageActive no testset\n\nPG_active is protected by zone-\u003elru_lock, it does not need TestSet/TestClear\noperations.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "8d438f96d2b8eade6cbcd8adfc22dae6f5cbd6c0",
      "tree": "5248caf52ed9ba1dbb172d9e3bd3216c97ab3b84",
      "parents": [
        "46453a6e194a8c55fe6cf3dc8e1c4f24e2abc013"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Wed Mar 22 00:07:59 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Mar 22 07:53:56 2006 -0800"
      },
      "message": "[PATCH] mm: PageLRU no testset\n\nPG_lru is protected by zone-\u003elru_lock. It does not need TestSet/TestClear\noperations.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "46453a6e194a8c55fe6cf3dc8e1c4f24e2abc013",
      "tree": "e407665e6c8cdf33814007750c49fdbea0a21e0e",
      "parents": [
        "2492ecc1a16b8ccf679d2999dca4f1b48aef07ee"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Wed Mar 22 00:07:58 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Mar 22 07:53:56 2006 -0800"
      },
      "message": "[PATCH] mm: never ClearPageLRU released pages\n\nIf vmscan finds a zero refcount page on the lru list, never ClearPageLRU\nit.  This means the release code need not hold -\u003elru_lock to stabilise\nPageLRU, so that lock may be skipped entirely when releasing !PageLRU pages\n(because we know PageLRU won\u0027t have been temporarily cleared by vmscan,\nwhich was previously guaranteed by holding the lock to synchronise against\nvmscan).\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "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": "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"
    }
  ],
  "next": "d4f7796e9b387e471ab0e8ed4e0c2bd616b3c193"
}
