)]}'
{
  "log": [
    {
      "commit": "7c363b8c6536f26934172d3c46f0bbec01a97c61",
      "tree": "46a9ce1b0ef9285ab2c7b04f0cf584294853a16f",
      "parents": [
        "15f59adae001766a2c7f7fe4f196387bb04bcff5"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@kernel.org",
        "time": "Fri Jul 25 19:46:24 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jul 26 12:00:12 2008 -0700"
      },
      "message": "mm/swapfile.c: make code static\n\nThis patch makes the following needlessly global code static:\n - swap_lock\n - nr_swapfiles\n - struct swap_list\n\nSigned-off-by: Adrian Bunk \u003cbunk@kernel.org\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "15f59adae001766a2c7f7fe4f196387bb04bcff5",
      "tree": "941f7a7c38af5783d55560ce303f3432fcffc01b",
      "parents": [
        "9d8fddfb17aaee4ffc5e3d0560620d0fa8b50a42"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@kernel.org",
        "time": "Fri Jul 25 19:46:23 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jul 26 12:00:12 2008 -0700"
      },
      "message": "make mm/memory.c:print_bad_pte() static\n\nThis patch makes the needlessly global print_bad_pte() static.\n\nSigned-off-by: Adrian Bunk \u003cbunk@kernel.org\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9d8fddfb17aaee4ffc5e3d0560620d0fa8b50a42",
      "tree": "f8a6b13a3048d1ae9c169b2d732fa05d8dcdf2ac",
      "parents": [
        "9e5c6da71e89fa25ced6e88182225a99941bec90"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@kernel.org",
        "time": "Fri Jul 25 19:46:23 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jul 26 12:00:12 2008 -0700"
      },
      "message": "mm/allocpercpu.c: make 4 functions static\n\nThis patch makes the following needlessly global functions static:\n - percpu_depopulate()\n - __percpu_depopulate_mask()\n - percpu_populate()\n - __percpu_populate_mask()\n\nSigned-off-by: Adrian Bunk \u003cbunk@kernel.org\u003e\nAcked-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9e5c6da71e89fa25ced6e88182225a99941bec90",
      "tree": "076faf410107f55d1d6cfdf05c779faf0b5d21e3",
      "parents": [
        "23d5f96ce6571da51c0f6bfa7361e5f91f314b2b"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@kernel.org",
        "time": "Fri Jul 25 19:46:22 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jul 26 12:00:12 2008 -0700"
      },
      "message": "make mm/sparse.c: make a function static\n\nThis patch makes the needlessly global sparse_early_mem_map_alloc()\nstatic.\n\nSigned-off-by: Adrian Bunk \u003cbunk@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": "2c97b7fc0d8c8661981beb9517da342ced3b3bc7",
      "tree": "c1cc4bd6a13624f38a7e2c7ea242efdb79193696",
      "parents": [
        "ebcb67341fee34061430f3367f2e507e52ee051b"
      ],
      "author": {
        "name": "Johannes Weiner",
        "email": "hannes@saeurebad.de",
        "time": "Fri Jul 25 19:46:01 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jul 26 12:00:10 2008 -0700"
      },
      "message": "mm: print swapcache page count in show_swap_cache_info()\n\nEvery arch implements its own show_mem() function.  Most of them share\nquite some code, some of them are completely identical.\n\nThis series implements a generic version of this function and migrates\nalmost all architectures to it.\n\nThis patch:\n\nMost show_mem() implementations calculate the amount of pages within\nthe swapcache every time.  Move the output to a more appropriate place\nand use the anyway available total_swapcache_pages variable.\n\nSigned-off-by: Johannes Weiner \u003channes@saeurebad.de\u003e\nCc: Richard Henderson \u003crth@twiddle.net\u003e\nCc: Ivan Kokshaysky \u003cink@jurassic.park.msu.ru\u003e\nCc: Haavard Skinnemoen \u003chskinnemoen@atmel.com\u003e\nCc: Bryan Wu \u003ccooloney@kernel.org\u003e\nCc: Chris Zankel \u003cchris@zankel.net\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Jeff Dike \u003cjdike@addtoit.com\u003e\nCc: David S. Miller \u003cdavem@davemloft.net\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Yoshinori Sato \u003cysato@users.sourceforge.jp\u003e\nCc: Ralf Baechle \u003cralf@linux-mips.org\u003e\nCc: Greg Ungerer \u003cgerg@uclinux.org\u003e\nCc: Geert Uytterhoeven \u003cgeert@linux-m68k.org\u003e\nCc: Roman Zippel \u003czippel@linux-m68k.org\u003e\nCc: Hirokazu Takata \u003ctakata@linux-m32r.org\u003e\nCc: Mikael Starvik \u003cstarvik@axis.com\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "fa8e26ccd485216fc45c8c2dd1ec3b7ef1a0a2f8",
      "tree": "b6c3059593d7d185aaf7f5b69c363a48b18c5bb1",
      "parents": [
        "0d094efeb1e98010c6b99923f1eb7e17bf1e3a74"
      ],
      "author": {
        "name": "Roland McGrath",
        "email": "roland@redhat.com",
        "time": "Fri Jul 25 19:45:50 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jul 26 12:00:09 2008 -0700"
      },
      "message": "tracehook: tracehook_expect_breakpoints\n\nThis adds tracehook_expect_breakpoints() as a formal hook for the nommu\ncode to use for its, \"Is text-poking likely?\" check at mmap time.  This\nnames the actual semantics the code means to test, and documents it.\n\nSigned-off-by: Roland McGrath \u003croland@redhat.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nReviewed-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4c8573e25f27b60b495aaa23089032f685ffd5ba",
      "tree": "2e145313b10076801e8c60828f22d73d14ec2fd7",
      "parents": [
        "b8c512f6190e313df69060bae4a161c5c044e272"
      ],
      "author": {
        "name": "Arjan van de Ven",
        "email": "arjan@linux.intel.com",
        "time": "Fri Jul 25 19:45:37 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jul 26 12:00:07 2008 -0700"
      },
      "message": "Use WARN() in mm/vmalloc.c\n\nUse WARN() instead of a printk+WARN_ON() pair; this way the message becomes\npart of the warning section for better reporting/collection.\n\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "51cc50685a4275c6a02653670af9f108a64e01cf",
      "tree": "819d47bd2b0c8a9d1835d863853804b0a0242b97",
      "parents": [
        "d91958815d214ea365b98cbff6215383897edcb6"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Fri Jul 25 19:45:34 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jul 26 12:00:07 2008 -0700"
      },
      "message": "SL*B: drop kmem cache argument from constructor\n\nKmem cache passed to constructor is only needed for constructors that are\nthemselves multiplexeres.  Nobody uses this \"feature\", nor does anybody uses\npassed kmem cache in non-trivial way, so pass only pointer to object.\n\nNon-trivial places are:\n\tarch/powerpc/mm/init_64.c\n\tarch/powerpc/mm/hugetlbpage.c\n\nThis is flag day, yes.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nAcked-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nAcked-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Jon Tollefson \u003ckniht@linux.vnet.ibm.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Matt Mackall \u003cmpm@selenic.com\u003e\n[akpm@linux-foundation.org: fix arch/powerpc/mm/hugetlbpage.c]\n[akpm@linux-foundation.org: fix mm/slab.c]\n[akpm@linux-foundation.org: fix ubifs]\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": "a60637c85893e7191faaafa6a72e197c24386727",
      "tree": "fa3ec63f505e64d3b4a2be4efd9a5314ab5f6234",
      "parents": [
        "e286781d5f2e9c846e012a39653a166e9d31777d"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Fri Jul 25 19:45:31 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jul 26 12:00:06 2008 -0700"
      },
      "message": "mm: lockless pagecache\n\nCombine page_cache_get_speculative with lockless radix tree lookups to\nintroduce lockless page cache lookups (ie.  no mapping-\u003etree_lock on the\nread-side).\n\nThe only atomicity changes this introduces is that the gang pagecache\nlookup functions now behave as if they are implemented with multiple\nfind_get_page calls, rather than operating on a snapshot of the pages.  In\npractice, this atomicity guarantee is not used anyway, and it is to\nreplace individual lookups, so these semantics are natural.\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": "30002ed2e41830ec03ec3e577ad83ac6b188f96e",
      "tree": "13896f3038e391eb41246455239d7678cf51b011",
      "parents": [
        "652ea695364142b2464744746beac206d050ef19"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Fri Jul 25 19:45:28 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jul 26 12:00:06 2008 -0700"
      },
      "message": "mm: readahead scan lockless\n\nradix_tree_next_hole() is implemented as a series of radix_tree_lookup()s.\nSo it can be called locklessly, under rcu_read_lock().\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": "8174c430e445a93016ef18f717fe570214fa38bf",
      "tree": "f1b4426eae7401425e9102c7b3e141be86f0930c",
      "parents": [
        "21cc199baa815d7b3f1ace4be20b9558cbddc00f"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Fri Jul 25 19:45:24 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jul 26 12:00:06 2008 -0700"
      },
      "message": "x86: lockless get_user_pages_fast()\n\nImplement get_user_pages_fast without locking in the fastpath on x86.\n\nDo an optimistic lockless pagetable walk, without taking mmap_sem or any\npage table locks or even mmap_sem.  Page table existence is guaranteed by\nturning interrupts off (combined with the fact that we\u0027re always looking\nup the current mm, means we can do the lockless page table walk within the\nconstraints of the TLB shootdown design).  Basically we can do this\nlockless pagetable walk in a similar manner to the way the CPU\u0027s pagetable\nwalker does not have to take any locks to find present ptes.\n\nThis patch (combined with the subsequent ones to convert direct IO to use\nit) was found to give about 10% performance improvement on a 2 socket 8\ncore Intel Xeon system running an OLTP workload on DB2 v9.5\n\n \"To test the effects of the patch, an OLTP workload was run on an IBM\n  x3850 M2 server with 2 processors (quad-core Intel Xeon processors at\n  2.93 GHz) using IBM DB2 v9.5 running Linux 2.6.24rc7 kernel.  Comparing\n  runs with and without the patch resulted in an overall performance\n  benefit of ~9.8%.  Correspondingly, oprofiles showed that samples from\n  __up_read and __down_read routines that is seen during thread contention\n  for system resources was reduced from 2.8% down to .05%.  Monitoring the\n  /proc/vmstat output from the patched run showed that the counter for\n  fast_gup contained a very high number while the fast_gup_slow value was\n  zero.\"\n\n(fast_gup is the old name for get_user_pages_fast, fast_gup_slow is a\ncounter we had for the number of times the slowpath was invoked).\n\nThe main reason for the improvement is that DB2 has multiple threads each\nissuing direct-IO.  Direct-IO uses get_user_pages, and thus the threads\ncontend the mmap_sem cacheline, and can also contend on page table locks.\n\nI would anticipate larger performance gains on larger systems, however I\nthink DB2 uses an adaptive mix of threads and processes, so it could be\nthat thread contention remains pretty constant as machine size increases.\nIn which case, we stuck with \"only\" a 10% gain.\n\nThe downside of using get_user_pages_fast is that if there is not a pte\nwith the correct permissions for the access, we end up falling back to\nget_user_pages and so the get_user_pages_fast is a bit of extra work.\nHowever this should not be the common case in most performance critical\ncode.\n\n[akpm@linux-foundation.org: coding-style fixes]\n[akpm@linux-foundation.org: build fix]\n[akpm@linux-foundation.org: Kconfig fix]\n[akpm@linux-foundation.org: Makefile fix/cleanup]\n[akpm@linux-foundation.org: warning fix]\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Dave Kleikamp \u003cshaggy@austin.ibm.com\u003e\nCc: Andy Whitcroft \u003capw@shadowen.org\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nCc: Dave Kleikamp \u003cshaggy@austin.ibm.com\u003e\nCc: Badari Pulavarty \u003cpbadari@us.ibm.com\u003e\nCc: Zach Brown \u003czach.brown@oracle.com\u003e\nCc: Jens Axboe \u003cjens.axboe@oracle.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": "8a21346058ad946134b6ddfeb5de975c3cfcf5da",
      "tree": "cd9210fc5a56a5d3090941d62f1bc0217499940f",
      "parents": [
        "16d69265b930f7e2fa9eea381715696f780718f4"
      ],
      "author": {
        "name": "Nishanth Aravamudan",
        "email": "nacc@us.ibm.com",
        "time": "Fri Jul 25 19:44:37 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jul 26 12:00:01 2008 -0700"
      },
      "message": "hugetlb: fix CONFIG_SYSCTL\u003dn build\n\nFixes a build failure reported by Alan Cox:\n\nmm/hugetlb.c: In function `hugetlb_acct_memory\u0027: mm/hugetlb.c:1507:\nerror: implicit declaration of function `cpuset_mems_nr\u0027\n\nAlso reverts Ingo\u0027s\n\n    commit e44d1b2998d62a1f2f4d7eb17b56ba396535509f\n    Author: Ingo Molnar \u003cmingo@elte.hu\u003e\n    Date:   Fri Jul 25 12:57:41 2008 +0200\n\n        mm/hugetlb.c: fix build failure with !CONFIG_SYSCTL\n\nwhich fixed the build error but added some unused-static-function warnings.\n\nSigned-off-by: Nishanth Aravamudan \u003cnacc@us.ibm.com\u003e\nCc: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "16d69265b930f7e2fa9eea381715696f780718f4",
      "tree": "5b3bf02f5f4fe21da4e9b5e0f22f6518bd81b609",
      "parents": [
        "0c7ad106e779549792deb307242dece6f3499bb9"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Fri Jul 25 19:44:36 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jul 26 12:00:01 2008 -0700"
      },
      "message": "uninline arch_pick_mmap_layout()\n\nFix this, on avr32:\n\n  include/linux/utsname.h:35,\n                   from init/main.c:20:\n  include/linux/sched.h: In function \u0027arch_pick_mmap_layout\u0027:\n  include/linux/sched.h:2149: error: implicit declaration of function \u0027PAGE_ALIGN\u0027\n\nReported-by: Adrian Bunk \u003cbunk@kernel.org\u003e\nCc: Haavard Skinnemoen \u003chskinnemoen@atmel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e44d1b2998d62a1f2f4d7eb17b56ba396535509f",
      "tree": "febb4d6e113c34e0f83375712f078da41a0a59af",
      "parents": [
        "5047887caf1806f31652210df27fb62a7c43f27d"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jul 25 12:57:41 2008 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 11:35:41 2008 -0700"
      },
      "message": "mm/hugetlb.c: fix build failure with !CONFIG_SYSCTL\n\non !CONFIG_SYSCTL on x86 with latest -git i get:\n\n     mm/hugetlb.c: In function \u0027decrement_hugepage_resv_vma\u0027:\n     mm/hugetlb.c:83: error: \u0027reserve\u0027 undeclared (first use in this function)\n     mm/hugetlb.c:83: error: (Each undeclared identifier is reported only once\n     mm/hugetlb.c:83: error: for each function it appears in.)\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\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": "628f42355389cfb596ca3a5a5f64fb9054a2a06a",
      "tree": "a1a19788e554f4345f80ae835edcb5ad2402533a",
      "parents": [
        "12b9804419cfb1c1bdac413f6c373af3b88d154b"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Fri Jul 25 01:47:20 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:37 2008 -0700"
      },
      "message": "memcg: limit change shrink usage\n\nShrinking memory usage at limit change.\n\n[akpm@linux-foundation.org: coding-style fixes]\nAcked-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nAcked-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "cede86acd8bd5d2205dec28db8ac86410a3a19e8",
      "tree": "67ad2d42cadee0b6f9a4de21e06602faae8d8604",
      "parents": [
        "accf163e6ab729f1fc5fffaa0310e498270bf4e7"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Fri Jul 25 01:47:18 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:37 2008 -0700"
      },
      "message": "memcg: clean up checking of the disabled flag\n\nThose checks are unnecessary, because when the subsystem is disabled\nit can\u0027t be mounted, so those functions won\u0027t get called.\n\nThe check is needed in functions which will be called in other places\nexcept cgroup.\n\n[hugh@veritas.com: further checking of disabled flag]\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nAcked-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nAcked-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "accf163e6ab729f1fc5fffaa0310e498270bf4e7",
      "tree": "798d5c97aa10bd26018fb1175a176c9d57560a39",
      "parents": [
        "b76734e5e34e1889ab9fc5f3756570b1129f0f50"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Fri Jul 25 01:47:17 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:37 2008 -0700"
      },
      "message": "memcg: remove a redundant check\n\nBecause of remove refcnt patch, it\u0027s very rare case to that\nmem_cgroup_charge_common() is called against a page which is accounted.\n\nmem_cgroup_charge_common() is called when.\n 1. a page is added into file cache.\n 2. an anon page is _newly_ mapped.\n\nA racy case is that a newly-swapped-in anonymous page is referred from\nprural threads in do_swap_page() at the same time.\n(a page is not Locked when mem_cgroup_charge() is called from do_swap_page.)\n\nAnother case is shmem. It charges its page before calling add_to_page_cache().\nThen, mem_cgroup_charge_cache() is called twice. This case is handled in\nmem_cgroup_cache_charge(). But this check may be too hacky...\n\nSigned-off-by : KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: YAMAMOTO Takashi \u003cyamamoto@valinux.co.jp\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: 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": "b76734e5e34e1889ab9fc5f3756570b1129f0f50",
      "tree": "9929c25da8b9c29fcb0c5394023f66b7668cdfa1",
      "parents": [
        "c9b0ed51483cc2fc42bb801b6675c4231b0e4634"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Fri Jul 25 01:47:16 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:37 2008 -0700"
      },
      "message": "memcg: add hints for branch\n\nShowing brach direction for obvious conditions.\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: YAMAMOTO Takashi \u003cyamamoto@valinux.co.jp\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: 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": "c9b0ed51483cc2fc42bb801b6675c4231b0e4634",
      "tree": "1d322b4bfcaad3296752f6efcab918d1b13b50a3",
      "parents": [
        "69029cd550284e32de13d6dd2f77b723c8a0e444"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Fri Jul 25 01:47:15 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:37 2008 -0700"
      },
      "message": "memcg: helper function for relcaim from shmem.\n\nA new call, mem_cgroup_shrink_usage() is added for shmem handling and\nrelacing non-standard usage of mem_cgroup_charge/uncharge.\n\nNow, shmem calls mem_cgroup_charge() just for reclaim some pages from\nmem_cgroup.  In general, shmem is used by some process group and not for\nglobal resource (like file caches).  So, it\u0027s reasonable to reclaim pages\nfrom mem_cgroup where shmem is mainly used.\n\n[hugh@veritas.com: shmem_getpage release page sooner]\n[hugh@veritas.com: mem_cgroup_shrink_usage css_put]\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: YAMAMOTO Takashi \u003cyamamoto@valinux.co.jp\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "69029cd550284e32de13d6dd2f77b723c8a0e444",
      "tree": "b57b87e5025b6c01722f39302cb98d0dfcd58940",
      "parents": [
        "e8589cc189f96b87348ae83ea4db38eaac624135"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Fri Jul 25 01:47:14 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:37 2008 -0700"
      },
      "message": "memcg: remove refcnt from page_cgroup\n\nmemcg: performance improvements\n\nPatch Description\n 1/5 ... remove refcnt fron page_cgroup patch (shmem handling is fixed)\n 2/5 ... swapcache handling patch\n 3/5 ... add helper function for shmem\u0027s memory reclaim patch\n 4/5 ... optimize by likely/unlikely ppatch\n 5/5 ... remove redundunt check patch (shmem handling is fixed.)\n\nUnix bench result.\n\n\u003d\u003d 2.6.26-rc2-mm1 + memory resource controller\nExecl Throughput                           2915.4 lps   (29.6 secs, 3 samples)\nC Compiler Throughput                      1019.3 lpm   (60.0 secs, 3 samples)\nShell Scripts (1 concurrent)               5796.0 lpm   (60.0 secs, 3 samples)\nShell Scripts (8 concurrent)               1097.7 lpm   (60.0 secs, 3 samples)\nShell Scripts (16 concurrent)               565.3 lpm   (60.0 secs, 3 samples)\nFile Read 1024 bufsize 2000 maxblocks    1022128.0 KBps  (30.0 secs, 3 samples)\nFile Write 1024 bufsize 2000 maxblocks   544057.0 KBps  (30.0 secs, 3 samples)\nFile Copy 1024 bufsize 2000 maxblocks    346481.0 KBps  (30.0 secs, 3 samples)\nFile Read 256 bufsize 500 maxblocks      319325.0 KBps  (30.0 secs, 3 samples)\nFile Write 256 bufsize 500 maxblocks     148788.0 KBps  (30.0 secs, 3 samples)\nFile Copy 256 bufsize 500 maxblocks       99051.0 KBps  (30.0 secs, 3 samples)\nFile Read 4096 bufsize 8000 maxblocks    2058917.0 KBps  (30.0 secs, 3 samples)\nFile Write 4096 bufsize 8000 maxblocks   1606109.0 KBps  (30.0 secs, 3 samples)\nFile Copy 4096 bufsize 8000 maxblocks    854789.0 KBps  (30.0 secs, 3 samples)\nDc: sqrt(2) to 99 decimal places         126145.2 lpm   (30.0 secs, 3 samples)\n\n                     INDEX VALUES\nTEST                                        BASELINE     RESULT      INDEX\n\nExecl Throughput                                43.0     2915.4      678.0\nFile Copy 1024 bufsize 2000 maxblocks         3960.0   346481.0      875.0\nFile Copy 256 bufsize 500 maxblocks           1655.0    99051.0      598.5\nFile Copy 4096 bufsize 8000 maxblocks         5800.0   854789.0     1473.8\nShell Scripts (8 concurrent)                     6.0     1097.7     1829.5\n                                                                 \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n     FINAL SCORE                                                     991.3\n\n\u003d\u003d 2.6.26-rc2-mm1 + this set \u003d\u003d\nExecl Throughput                           3012.9 lps   (29.9 secs, 3 samples)\nC Compiler Throughput                       981.0 lpm   (60.0 secs, 3 samples)\nShell Scripts (1 concurrent)               5872.0 lpm   (60.0 secs, 3 samples)\nShell Scripts (8 concurrent)               1120.3 lpm   (60.0 secs, 3 samples)\nShell Scripts (16 concurrent)               578.0 lpm   (60.0 secs, 3 samples)\nFile Read 1024 bufsize 2000 maxblocks    1003993.0 KBps  (30.0 secs, 3 samples)\nFile Write 1024 bufsize 2000 maxblocks   550452.0 KBps  (30.0 secs, 3 samples)\nFile Copy 1024 bufsize 2000 maxblocks    347159.0 KBps  (30.0 secs, 3 samples)\nFile Read 256 bufsize 500 maxblocks      314644.0 KBps  (30.0 secs, 3 samples)\nFile Write 256 bufsize 500 maxblocks     151852.0 KBps  (30.0 secs, 3 samples)\nFile Copy 256 bufsize 500 maxblocks      101000.0 KBps  (30.0 secs, 3 samples)\nFile Read 4096 bufsize 8000 maxblocks    2033256.0 KBps  (30.0 secs, 3 samples)\nFile Write 4096 bufsize 8000 maxblocks   1611814.0 KBps  (30.0 secs, 3 samples)\nFile Copy 4096 bufsize 8000 maxblocks    847979.0 KBps  (30.0 secs, 3 samples)\nDc: sqrt(2) to 99 decimal places         128148.7 lpm   (30.0 secs, 3 samples)\n\n                     INDEX VALUES\nTEST                                        BASELINE     RESULT      INDEX\n\nExecl Throughput                                43.0     3012.9      700.7\nFile Copy 1024 bufsize 2000 maxblocks         3960.0   347159.0      876.7\nFile Copy 256 bufsize 500 maxblocks           1655.0   101000.0      610.3\nFile Copy 4096 bufsize 8000 maxblocks         5800.0   847979.0     1462.0\nShell Scripts (8 concurrent)                     6.0     1120.3     1867.2\n                                                                 \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n     FINAL SCORE                                                    1004.6\n\nThis patch:\n\nRemove refcnt from page_cgroup().\n\nAfter this,\n\n * A page is charged only when !page_mapped() \u0026\u0026 no page_cgroup is assigned.\n\t* Anon page is newly mapped.\n\t* File page is added to mapping-\u003etree.\n\n * A page is uncharged only when\n\t* Anon page is fully unmapped.\n\t* File page is removed from LRU.\n\nThere is no change in behavior from user\u0027s view.\n\nThis patch also removes unnecessary calls in rmap.c which was used only for\nrefcnt mangement.\n\n[akpm@linux-foundation.org: fix warning]\n[hugh@veritas.com: fix shmem_unuse_inode charging]\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: YAMAMOTO Takashi \u003cyamamoto@valinux.co.jp\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e8589cc189f96b87348ae83ea4db38eaac624135",
      "tree": "6693422dc81e6da78c4ad892b0d326fb7f946dda",
      "parents": [
        "508b7be0a5b06b64203512ed9b34191cddc83f56"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Fri Jul 25 01:47:10 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:37 2008 -0700"
      },
      "message": "memcg: better migration handling\n\nThis patch changes page migration under memory controller to use a\ndifferent algorithm.  (thanks to Christoph for new idea.)\n\nBefore:\n - page_cgroup is migrated from an old page to a new page.\nAfter:\n - a new page is accounted , no reuse of page_cgroup.\n\nPros:\n\n - We can avoid compliated lock depndencies and races in migration.\n\nCons:\n\n - new param to mem_cgroup_charge_common().\n\n - mem_cgroup_getref() is added for handling ref_cnt ping-pong.\n\nThis version simplifies complicated lock dependency in page migraiton\nunder memory resource controller.\n\n  new refcnt sequence is following.\n\na mapped page:\n  prepage_migration() ..... +1 to NEW page\n  try_to_unmap()      ..... all refs to OLD page is gone.\n  move_pages()        ..... +1 to NEW page if page cache.\n  remap...            ..... all refs from *map* is added to NEW one.\n  end_migration()     ..... -1 to New page.\n\n  page\u0027s mapcount + (page_is_cache) refs are added to NEW one.\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: YAMAMOTO Takashi \u003cyamamoto@valinux.co.jp\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "508b7be0a5b06b64203512ed9b34191cddc83f56",
      "tree": "48b1be978a74d7c2b333efe8a2d1a1187bfe67f0",
      "parents": [
        "a181b0e888a1d917edcab57cd73ccf7d8e75a46c"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Fri Jul 25 01:47:09 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:37 2008 -0700"
      },
      "message": "memcg: avoid unnecessary initialization\n\n* remove over-killing initialization (in fast path)\n* makeing the condition for PAGE_CGROUP_FLAG_ACTIVE be more obvious.\n\nSigned-off-by: KAMEAZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nReviewed-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nAcked-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nAcked-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a181b0e888a1d917edcab57cd73ccf7d8e75a46c",
      "tree": "d58dc8da5c16840d3c530ee9cc0014906630ed4b",
      "parents": [
        "7759fc9d10d3559f365cb122d81e0c0a185fe0fe"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Fri Jul 25 01:47:08 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:37 2008 -0700"
      },
      "message": "memcg: make global var read_mostly\n\nmem_cgroup_subsys and page_cgroup_cache should be read_mostly and\nMEM_CGROUP_RECLAIM_RETRIES can be just a fixed number.\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nAcked-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nAcked-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "856c13aa1ff6136c1968414fdea5938ea9d5ebf2",
      "tree": "deee908f253c77cbcb868a915e45bfb2ed99383c",
      "parents": [
        "f92523e3a7861f5dbd76021e0719a35fe8771f2d"
      ],
      "author": {
        "name": "Paul Menage",
        "email": "menage@google.com",
        "time": "Fri Jul 25 01:47:04 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:36 2008 -0700"
      },
      "message": "cgroup files: convert res_counter_write() to be a cgroups write_string() handler\n\nCurrently res_counter_write() is a raw file handler even though it\u0027s\nultimately taking a number, since in some cases it wants to\npre-process the string when converting it to a number.\n\nThis patch converts res_counter_write() from a raw file handler to a\nwrite_string() handler; this allows some of the boilerplate\ncopying/locking/checking to be removed, and simplies the cleanup path,\nsince these functions are now performed by the cgroups framework.\n\n[lizf@cn.fujitsu.com: build fix]\nSigned-off-by: Paul Menage \u003cmenage@google.com\u003e\nCc: Paul Jackson \u003cpj@sgi.com\u003e\nCc: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Serge Hallyn \u003cserue@us.ibm.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Li Zefan \u003clizf@cn.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": "3f31fddfa26b7594b44ff2b34f9a04ba409e0f91",
      "tree": "88994baf22f65dc4da0bef17ce61eda09c59db2a",
      "parents": [
        "9ebfbe9f926553eabc21b4400918d1216b27ed0c"
      ],
      "author": {
        "name": "Mingming Cao",
        "email": "cmm@us.ibm.com",
        "time": "Fri Jul 25 01:46:22 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:32 2008 -0700"
      },
      "message": "jbd: fix race between free buffer and commit transaction\n\njournal_try_to_free_buffers() could race with jbd commit transaction when\nthe later is holding the buffer reference while waiting for the data\nbuffer to flush to disk.  If the caller of journal_try_to_free_buffers()\nrequest tries hard to release the buffers, it will treat the failure as\nerror and return back to the caller.  We have seen the directo IO failed\ndue to this race.  Some of the caller of releasepage() also expecting the\nbuffer to be dropped when passed with GFP_KERNEL mask to the\nreleasepage()-\u003ejournal_try_to_free_buffers().\n\nWith this patch, if the caller is passing the __GFP_WAIT and __GFP_FS to\nindicating this call could wait, in case of try_to_free_buffers() failed,\nlet\u0027s waiting for journal_commit_transaction() to finish commit the\ncurrent committing transaction, then try to free those buffers again.\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: Mingming Cao \u003ccmm@us.ibm.com\u003e\nReviewed-by: Badari Pulavarty \u003cpbadari@us.ibm.com\u003e\nAcked-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2b4bc46052ea8cd7c370b67ca0b9c26586f1439a",
      "tree": "7ea589780fa4f579e2d678bbf4c2655c57cfadbb",
      "parents": [
        "b69c49b78457f681ecfb3147bd968434ee6559c1"
      ],
      "author": {
        "name": "OGAWA Hirofumi",
        "email": "hirofumi@mail.parknet.co.jp",
        "time": "Fri Jul 25 01:45:42 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:28 2008 -0700"
      },
      "message": "pdflush: use time_after() instead of open-coding it\n\nSigned-off-by: OGAWA Hirofumi \u003chirofumi@mail.parknet.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "78ecba081224a2db5876b6b81cfed0b78f58adc7",
      "tree": "db29cc9357ea95172f42e64e833a3a7d3fcfa8fb",
      "parents": [
        "83d1674a946141c3c59d430e96c224f7937e6158"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Wed Jul 23 21:28:23 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:21 2008 -0700"
      },
      "message": "mm: fix ever-decreasing swap priority\n\nVegard Nossum has noticed the ever-decreasing negative priority in a\nswapon /swapoff loop, which eventually would misprioritize when int wraps\npositive.  Not worth spending much code on, but probably better fixed.\n\nIt\u0027s easy to handle the swapping on and off of just one area, but there\u0027s\nnot much point if a pair or more still misbehave.  To handle the general\ncase, swapoff should compact negative priorities, keeping them always from\n-1 to -MAX_SWAPFILES.  That\u0027s a change, but should cause no regression,\nsince these negative (unspecified) priorities are disjoint from the the\npositive specified priorities 0 to 32767.\n\nOne small functional difference, which seems appropriate: when swapoff\nfails to free all swap from a negative priority area, that area is now\nreinserted at lowest priority, rather than at its original priority.\n\nIn moving down swapon\u0027s setting of priority, I notice that an area is\nvisible to /proc/swaps when it has swap_map set, yet that was being set\nbefore all the visible fields were properly filled in: corrected.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nReported-by: Vegard Nossum \u003cvegard.nossum@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": "83d1674a946141c3c59d430e96c224f7937e6158",
      "tree": "03420c9fdf56ad35de685b7c0b48899d886bd7ff",
      "parents": [
        "9ca908f47bc784c90e17a553ce33e756c73feac4"
      ],
      "author": {
        "name": "Gerald Schaefer",
        "email": "gerald.schaefer@de.ibm.com",
        "time": "Wed Jul 23 21:28:22 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:21 2008 -0700"
      },
      "message": "mm: make CONFIG_MIGRATION available w/o CONFIG_NUMA\n\nWe\u0027d like to support CONFIG_MEMORY_HOTREMOVE on s390, which depends on\nCONFIG_MIGRATION.  So far, CONFIG_MIGRATION is only available with NUMA\nsupport.\n\nThis patch makes CONFIG_MIGRATION selectable for architectures that define\nARCH_ENABLE_MEMORY_HOTREMOVE.  When MIGRATION is enabled w/o NUMA, the\nkernel won\u0027t compile because migrate_vmas() does not know about\nvm_ops-\u003emigrate() and vma_migratable() does not know about policy_zone.\nTo fix this, those two functions can be restricted to \u0027#ifdef CONFIG_NUMA\u0027\nbecause they are not being used w/o NUMA.  vma_migratable() is moved over\nfrom migrate.h to mempolicy.h.\n\n[kosaki.motohiro@jp.fujitsu.com: build fix]\nAcked-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nSigned-off-by: Gerald Schaefer \u003cgerald.schaefer@de.ibm.com\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nSigned-off-by: KOSAKI Motorhiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5c755e9fd813810680abd56ec09a5f90143e815b",
      "tree": "1686c0666f6bd630441957a53c546d90b0f61723",
      "parents": [
        "2f7f24eca31c4fc2fdb134b2ef743ccd67cfb9a9"
      ],
      "author": {
        "name": "Badari Pulavarty",
        "email": "pbadari@us.ibm.com",
        "time": "Wed Jul 23 21:28:19 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:21 2008 -0700"
      },
      "message": "memory-hotplug: add sysfs removable attribute for hotplug memory remove\n\nMemory may be hot-removed on a per-memory-block basis, particularly on\nPOWER where the SPARSEMEM section size often matches the memory-block\nsize.  A user-level agent must be able to identify which sections of\nmemory are likely to be removable before attempting the potentially\nexpensive operation.  This patch adds a file called \"removable\" to the\nmemory directory in sysfs to help such an agent.  In this patch, a memory\nblock is considered removable if;\n\no It contains only MOVABLE pageblocks\no It contains only pageblocks with free pages regardless of pageblock type\n\nOn the other hand, a memory block starting with a PageReserved() page will\nnever be considered removable.  Without this patch, the user-agent is\nforced to choose a memory block to remove randomly.\n\nSample output of the sysfs files:\n\n./memory/memory0/removable: 0\n./memory/memory1/removable: 0\n./memory/memory2/removable: 0\n./memory/memory3/removable: 0\n./memory/memory4/removable: 0\n./memory/memory5/removable: 0\n./memory/memory6/removable: 0\n./memory/memory7/removable: 1\n./memory/memory8/removable: 0\n./memory/memory9/removable: 0\n./memory/memory10/removable: 0\n./memory/memory11/removable: 0\n./memory/memory12/removable: 0\n./memory/memory13/removable: 0\n./memory/memory14/removable: 0\n./memory/memory15/removable: 0\n./memory/memory16/removable: 0\n./memory/memory17/removable: 1\n./memory/memory18/removable: 1\n./memory/memory19/removable: 1\n./memory/memory20/removable: 1\n./memory/memory21/removable: 1\n./memory/memory22/removable: 1\n\nSigned-off-by: Badari Pulavarty \u003cpbadari@us.ibm.com\u003e\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2f7f24eca31c4fc2fdb134b2ef743ccd67cfb9a9",
      "tree": "6c2169b8a7b160cbacdc41f376a4e2dea993e579",
      "parents": [
        "af370fb8cb3031f20438f246798d5f0d98089f29"
      ],
      "author": {
        "name": "Kent Liu",
        "email": "kent.liu@linux.intel.com",
        "time": "Wed Jul 23 21:28:18 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:21 2008 -0700"
      },
      "message": "memory-hotplug: don\u0027t calculate vm_total_pages twice when rebuilding zonelists in online_pages()\n\nIf zonelist is required to be rebuilt in online_pages(), there is no need\nto recalculate vm_total_pages in that function, as it has been updated in\nthe call build_all_zonelists().\n\nSigned-off-by: Kent Liu \u003ckent.liu@linux.intel.com\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Yasunori Goto \u003cy-goto@jp.fujitsu.com\u003e\nCc: 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": "af370fb8cb3031f20438f246798d5f0d98089f29",
      "tree": "a5b06adeeaeaafb89c7d326ed1daabd0caa364c8",
      "parents": [
        "48c906823f3927b981db9f0b03c2e2499977ee93"
      ],
      "author": {
        "name": "Yasunori Goto",
        "email": "y-goto@jp.fujitsu.com",
        "time": "Wed Jul 23 21:28:17 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:21 2008 -0700"
      },
      "message": "memory hotplug: small fixes to bootmem freeing for memory hotremove\n\n- Change some naming\n  * Magic -\u003e types\n  * MIX_INFO -\u003e MIX_SECTION_INFO\n  * Change definition of bootmem type from direct hex value\n\n- __free_pages_bootmem() becomes __meminit.\n\nSigned-off-by: Yasunori Goto \u003cy-goto@jp.fujitsu.com\u003e\nCc: Andy Whitcroft \u003capw@shadowen.org\u003e\nCc: Badari Pulavarty \u003cpbadari@us.ibm.com\u003e\nCc: Yinghai Lu \u003cyhlu.kernel@gmail.com\u003e\nCc: Johannes Weiner \u003channes@saeurebad.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "48c906823f3927b981db9f0b03c2e2499977ee93",
      "tree": "f01270b14dbc8e0816e966e1aed1e3294e1c1d4a",
      "parents": [
        "f84f9504bddeec33a72d64ebe95143d3aaeb3f9b"
      ],
      "author": {
        "name": "Yasunori Goto",
        "email": "y-goto@jp.fujitsu.com",
        "time": "Wed Jul 23 21:28:15 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:21 2008 -0700"
      },
      "message": "memory hotplug: allocate usemap on the section with pgdat\n\nUsemaps are allocated on the section which has pgdat by this.\n\nBecause usemap size is very small, many other sections usemaps are\nallocated on only one page.  If a section has usemap, it can\u0027t be removed\nuntil removing other sections.  This dependency is not desirable for\nmemory removing.\n\nPgdat has similar feature.  When a section has pgdat area, it must be the\nlast section for removing on the node.  So, if section A has pgdat and\nsection B has usemap for section A, Both sections can\u0027t be removed due to\ndependency each other.\n\nTo solve this issue, this patch collects usemap on same section with pgdat\nas much as possible.  If other sections doesn\u0027t have any dependency, this\nsection will be able to be removed finally.\n\nSigned-off-by: Yasunori Goto \u003cy-goto@jp.fujitsu.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Andy Whitcroft \u003capw@shadowen.org\u003e\nCc: David Miller \u003cdavem@davemloft.net\u003e\nCc: Badari Pulavarty \u003cpbadari@us.ibm.com\u003e\nCc: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nCc: Hiroyuki KAMEZAWA \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Tony Breeds \u003ctony@bakeyournoodle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f84f9504bddeec33a72d64ebe95143d3aaeb3f9b",
      "tree": "cf390092511689e9ae340a4cb74cf2104d5785ed",
      "parents": [
        "27ac792ca0b0a1e7e65f20342260650516c95864"
      ],
      "author": {
        "name": "Vegard Nossum",
        "email": "vegard.nossum@gmail.com",
        "time": "Wed Jul 23 21:28:14 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:21 2008 -0700"
      },
      "message": "mm: remove initialization of static per-cpu variables\n\nThis was required by some old, no-longer-used gcc on sparc.\n\nSigned-off-by: Vegard Nossum \u003cvegard.nossum@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": "d92bc318547507a944a22e7ef936793dc0fe167f",
      "tree": "6c1406734048b3ea710de744389c2db07db8983c",
      "parents": [
        "b69a7288ea7bf171328f313f0edae629f50e3bdb"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@kernel.org",
        "time": "Wed Jul 23 21:28:12 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:21 2008 -0700"
      },
      "message": "mm: make register_page_bootmem_info_section() static\n\nMake the needlessly global register_page_bootmem_info_section() static.\n\nSigned-off-by: Adrian Bunk \u003cbunk@kernel.org\u003e\nAcked-by: Yasunori Goto \u003cy-goto@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b69a7288ea7bf171328f313f0edae629f50e3bdb",
      "tree": "20cb483cced19bda14dc4f12bbba6e7c1d01c4a3",
      "parents": [
        "2be0ffe2b29bd31d3debd0877797892ff2d91f4c"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@kernel.org",
        "time": "Wed Jul 23 21:28:12 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:20 2008 -0700"
      },
      "message": "mm/page_alloc.c: cleanups\n\nThis patch contains the following cleanups:\n- make the following needlessly global variables static:\n  - required_kernelcore\n  - zone_movable_pfn[]\n- make the following needlessly global functions static:\n  - move_freepages()\n  - move_freepages_block()\n  - setup_pageset()\n  - find_usable_zone_for_movable()\n  - adjust_zone_range_for_zone_movable()\n  - __absent_pages_in_range()\n  - find_min_pfn_for_node()\n  - find_zone_movable_pfns_for_nodes()\n\nSigned-off-by: Adrian Bunk \u003cbunk@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": "2be0ffe2b29bd31d3debd0877797892ff2d91f4c",
      "tree": "7f6e56b3fc5a721296851448e3facf821ef543dd",
      "parents": [
        "3560e249abda6bee41a07a7bf0383a6e193e2839"
      ],
      "author": {
        "name": "Timur Tabi",
        "email": "timur@freescale.com",
        "time": "Wed Jul 23 21:28:11 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:20 2008 -0700"
      },
      "message": "mm: add alloc_pages_exact() and free_pages_exact()\n\nalloc_pages_exact() is similar to alloc_pages(), except that it allocates\nthe minimum number of pages to fulfill the request.  This is useful if you\nwant to allocate a very large buffer that is slightly larger than an even\npower-of-two number of pages.  In that case, alloc_pages() will waste a\nlot of memory.\n\nI have a video driver that wants to allocate a 5MB buffer.  alloc_pages()\nwiill waste 3MB of physically-contiguous memory.\n\nSigned-off-by: Timur Tabi \u003ctimur@freescale.com\u003e\nCc: Andi Kleen \u003candi@firstfloor.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": "3560e249abda6bee41a07a7bf0383a6e193e2839",
      "tree": "a5770b74f13dca64e34cd5a1e3182e4e1f98a9ca",
      "parents": [
        "75a56cfe9fdb064d1db1cfbc564315fddb756fb1"
      ],
      "author": {
        "name": "Johannes Weiner",
        "email": "hannes@saeurebad.de",
        "time": "Wed Jul 23 21:28:09 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:20 2008 -0700"
      },
      "message": "bootmem: replace node_boot_start in struct bootmem_data\n\nAlmost all users of this field need a PFN instead of a physical address,\nso replace node_boot_start with node_min_pfn.\n\n[Lee.Schermerhorn@hp.com: fix spurious BUG_ON() in mark_bootmem()]\nSigned-off-by: Johannes Weiner \u003channes@saeureba.de\u003e\nCc: \u003clinux-arch@vger.kernel.org\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": "75a56cfe9fdb064d1db1cfbc564315fddb756fb1",
      "tree": "4b72b655e1137792a3213678416bf0541e7a3b1b",
      "parents": [
        "4cc278b721d5bf3569dfc5f1100253042e097bc3"
      ],
      "author": {
        "name": "Johannes Weiner",
        "email": "hannes@saeurebad.de",
        "time": "Wed Jul 23 21:28:09 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:20 2008 -0700"
      },
      "message": "bootmem: revisit alloc_bootmem_section\n\nSince alloc_bootmem_core does no goal-fallback anymore and just returns\nNULL if the allocation fails, we might now use it in alloc_bootmem_section\nwithout all the fixup code for a misplaced allocation.\n\nAlso, the limit can be the first PFN of the next section as the semantics\nis that the limit is _above_ the allocated region, not within.\n\nSigned-off-by: Johannes Weiner \u003channes@saeurebad.de\u003e\nCc: 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": "4cc278b721d5bf3569dfc5f1100253042e097bc3",
      "tree": "a2e1a918b76a68c72152f8f9c95449d1a5ba69ab",
      "parents": [
        "0f3caba211babef6e3fbde1ba76ddc79321bc92f"
      ],
      "author": {
        "name": "Johannes Weiner",
        "email": "hannes@saeurebad.de",
        "time": "Wed Jul 23 21:28:08 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:20 2008 -0700"
      },
      "message": "bootmem: Make __alloc_bootmem_low_node fall back to other nodes\n\n__alloc_bootmem_node already does this, make the interface consistent.\n\nSigned-off-by: Johannes Weiner \u003channes@saeurebad.de\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Yinghai Lu \u003cyhlu.kernel@gmail.com\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0f3caba211babef6e3fbde1ba76ddc79321bc92f",
      "tree": "a240561bc4288ab3e17f16c458377df9d043a177",
      "parents": [
        "e2bf3cae515090fefe28329e71230dfe7ab873b1"
      ],
      "author": {
        "name": "Johannes Weiner",
        "email": "hannes@saeurebad.de",
        "time": "Wed Jul 23 21:28:07 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:20 2008 -0700"
      },
      "message": "bootmem: respect goal more likely\n\nThe old node-agnostic code tried allocating on all nodes starting from the\none with the lowest range.  alloc_bootmem_core retried without the goal if\nit could not satisfy it and so the goal was only respected at all when it\nhappened to be on the first (lowest page numbers) node (or theoretically\nif allocations failed on all nodes before to the one holding the goal).\n\nIntroduce a non-panicking helper that starts allocating from the node\nholding the goal and falls back only after all thes tries failed, thus\nmoving the goal fallback code out of alloc_bootmem_core.\n\nMake all other allocation functions benefit from this new helper.\n\nSigned-off-by: Johannes Weiner \u003channes@saeurebad.de\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Yinghai Lu \u003cyhlu.kernel@gmail.com\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nCc: 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": "e2bf3cae515090fefe28329e71230dfe7ab873b1",
      "tree": "459543aefbeef71a3479ab15ccfe2423bbce6602",
      "parents": [
        "d747fa4bcebcf3696607b86a6b0dafa644be0676"
      ],
      "author": {
        "name": "Johannes Weiner",
        "email": "hannes@saeurebad.de",
        "time": "Wed Jul 23 21:28:06 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:20 2008 -0700"
      },
      "message": "bootmem: factor out the marking of a PFN range\n\nIntroduce new helpers that mark a range that resides completely on a node\nor node-agnostic ranges that might also span node boundaries.\n\nThe free/reserve API functions will then directly use these helpers.\n\nNote that the free/reserve semantics become more strict: while the prior\ncode took basically arbitrary range arguments and marked the PFNs that\nhappen to fall into that range, the new code requires node-specific ranges\nto be completely on the node.  The node-agnostic requests might span node\nboundaries as long as the nodes are contiguous.\n\nPassing ranges that do not satisfy these criteria is a bug.\n\n[akpm@linux-foundation.org: fix printk warnings]\nSigned-off-by: Johannes Weiner \u003channes@saeurebad.de\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Yinghai Lu \u003cyhlu.kernel@gmail.com\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d747fa4bcebcf3696607b86a6b0dafa644be0676",
      "tree": "ca6efae6f21cc357b75ecf2c91344d79ac465645",
      "parents": [
        "5f2809e69c7128f86316048221cf45146f69a4a0"
      ],
      "author": {
        "name": "Johannes Weiner",
        "email": "hannes@saeurebad.de",
        "time": "Wed Jul 23 21:28:05 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:20 2008 -0700"
      },
      "message": "bootmem: free/reserve helpers\n\nFactor out the common operation of marking a range on the bitmap.\n\n[akpm@linux-foundation.org: fix various warnings]\nSigned-off-by: Johannes Weiner \u003channes@saeurebad.de\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Yinghai Lu \u003cyhlu.kernel@gmail.com\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5f2809e69c7128f86316048221cf45146f69a4a0",
      "tree": "3c958e4f2c563a0d59f577bf239fe103057d6730",
      "parents": [
        "41546c17418fba08ece978bad72a33072715b8f3"
      ],
      "author": {
        "name": "Johannes Weiner",
        "email": "hannes@saeurebad.de",
        "time": "Wed Jul 23 21:28:05 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:20 2008 -0700"
      },
      "message": "bootmem: clean up alloc_bootmem_core\n\nalloc_bootmem_core has become quite nasty to read over time.  This is a\nclean rewrite that keeps the semantics.\n\nbdata-\u003elast_pos has been dropped.\n\nbdata-\u003elast_success has been renamed to hint_idx and it is now an index\nrelative to the node\u0027s range.  Since further block searching might start\nat this index, it is now set to the end of a succeeded allocation rather\nthan its beginning.\n\nbdata-\u003elast_offset has been renamed to last_end_off to be more clear that\nit represents the ending address of the last allocation relative to the\nnode.\n\n[y-goto@jp.fujitsu.com: fix new alloc_bootmem_core()]\nSigned-off-by: Johannes Weiner \u003channes@saeurebad.de\u003e\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": "41546c17418fba08ece978bad72a33072715b8f3",
      "tree": "16d14d3e22c557289233ed547bacea3739e413c0",
      "parents": [
        "636cc40cb79f511d9caa27ef098a83e4fa4971fb"
      ],
      "author": {
        "name": "Johannes Weiner",
        "email": "hannes@saeurebad.de",
        "time": "Wed Jul 23 21:28:03 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:20 2008 -0700"
      },
      "message": "bootmem: clean up free_all_bootmem_core\n\nRewrite the code in a more concise way using less variables.\n\n[akpm@linux-foundation.org: fix printk warnings]\nSigned-off-by: Johannes Weiner \u003channes@saeurebad.de\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Yinghai Lu \u003cyhlu.kernel@gmail.com\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "636cc40cb79f511d9caa27ef098a83e4fa4971fb",
      "tree": "c1090aa1a56bfc1ddb3de2f17447b98c20515646",
      "parents": [
        "df049a5f41a3b2eee2131221959e3b558ba7c705"
      ],
      "author": {
        "name": "Johannes Weiner",
        "email": "hannes@saeurebad.de",
        "time": "Wed Jul 23 21:28:03 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:20 2008 -0700"
      },
      "message": "bootmem: revisit bootmem descriptor list handling\n\nlink_bootmem handles an insertion of a new descriptor into the sorted list\nin more or less three explicit branches; empty list, insert in between and\nappend.  These cases can be expressed implicite.\n\nAlso mark the sorted list as initdata as it can be thrown away after boot\nas well.\n\nSigned-off-by: Johannes Weiner \u003channes@saeurebad.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "df049a5f41a3b2eee2131221959e3b558ba7c705",
      "tree": "dcba7fb3e442838e93e2fb0deb66acc79372b123",
      "parents": [
        "2e5237daf0cc3c8d87762f53f704dc54fa91dcf6"
      ],
      "author": {
        "name": "Johannes Weiner",
        "email": "hannes@saeurebad.de",
        "time": "Wed Jul 23 21:28:02 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:20 2008 -0700"
      },
      "message": "bootmem: revisit bitmap size calculations\n\nReincarnate get_mapsize as bootmap_bytes and implement\nbootmem_bootmap_pages on top of it.\n\nAdjust users of these helpers and make free_all_bootmem_core use\nbootmem_bootmap_pages instead of open-coding it.\n\nSigned-off-by: Johannes Weiner \u003channes@saeurebad.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2e5237daf0cc3c8d87762f53f704dc54fa91dcf6",
      "tree": "d3ef2691082e233379ceaf8e19b6cfe480c50abe",
      "parents": [
        "a66fd7daec1f40c1f0eac466f0da9206b615fe2a"
      ],
      "author": {
        "name": "Johannes Weiner",
        "email": "hannes@saeurebad.de",
        "time": "Wed Jul 23 21:28:02 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:20 2008 -0700"
      },
      "message": "bootmem: add debugging framework\n\nIntroduce the bootmem_debug kernel parameter that enables very verbose\ndiagnostics regarding all range operations of bootmem as well as the\ninitialization and release of nodes.\n\n[akpm@linux-foundation.org: fix printk warnings]\nSigned-off-by: Johannes Weiner \u003channes@saeurebad.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a66fd7daec1f40c1f0eac466f0da9206b615fe2a",
      "tree": "76a9e76d4bbe68ed87f83d1f95651f9a4310ab2a",
      "parents": [
        "57cfc29efac6670355ee0e107c8dbae8237d406b"
      ],
      "author": {
        "name": "Johannes Weiner",
        "email": "hannes@saeurebad.de",
        "time": "Wed Jul 23 21:28:01 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:19 2008 -0700"
      },
      "message": "bootmem: add documentation to API functions\n\nSigned-off-by: Johannes Weiner \u003channes@saeurebad.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "57cfc29efac6670355ee0e107c8dbae8237d406b",
      "tree": "546988a73bf379b40c70c7a45fd1d850cbb0be37",
      "parents": [
        "223e8dc9249c9e15f6c8b638d73fcad78ccb0a88"
      ],
      "author": {
        "name": "Johannes Weiner",
        "email": "hannes@saeurebad.de",
        "time": "Wed Jul 23 21:28:00 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:19 2008 -0700"
      },
      "message": "bootmem: clean up bootmem.c file header\n\nChange the description, move a misplaced comment about the allocator\nitself and add me to the list of copyright holders.\n\nSigned-off-by: Johannes Weiner \u003channes@saeurebad.de\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "223e8dc9249c9e15f6c8b638d73fcad78ccb0a88",
      "tree": "dff068c99609163c1632926c7f321279d8f945d8",
      "parents": [
        "7251ff78b94c2a68d267623d09b32672b20662c1"
      ],
      "author": {
        "name": "Johannes Weiner",
        "email": "hannes@saeurebad.de",
        "time": "Wed Jul 23 21:28:00 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:19 2008 -0700"
      },
      "message": "bootmem: reorder code to match new bootmem structure\n\nThis only reorders functions so that further patches will be easier to\nread.  No code changed.\n\nSigned-off-by: Johannes Weiner \u003channes@saeurebad.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7251ff78b94c2a68d267623d09b32672b20662c1",
      "tree": "bfe107d8837b259b4043d1b38ec0d44e35eb2cd0",
      "parents": [
        "7f09ca51e925ba62e9ebfd4979f093e97e38adeb"
      ],
      "author": {
        "name": "Adam Litke",
        "email": "agl@us.ibm.com",
        "time": "Wed Jul 23 21:27:59 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:19 2008 -0700"
      },
      "message": "hugetlb: quota is not freed for unused reserved private huge pages\n\nWith shared reservations (and now also with private reservations), we reserve\nhuge pages at mmap time.  We also account for the mapping against fs quota to\nprevent a reservation from being preempted by quota exhaustion.\n\nWhen testing with the libhugetlbfs test suite, I found a problem with quota\naccounting.  FS quota for allocated pages is handled correctly but we are not\nreleasing quota for private pages that were reserved but never allocated.  Do\nthis in hugetlb_vm_op_close() at the same time as unused page reservations are\nreleased.\n\nSigned-off-by: Adam Litke \u003cagl@us.ibm.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Johannes Weiner \u003channes@saeurebad.de\u003e\nCc: William Lee Irwin III \u003cwli@holomorphy.com\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nAcked-by: Andy Whitcroft \u003capw@shadowen.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7f09ca51e925ba62e9ebfd4979f093e97e38adeb",
      "tree": "58d34768289dce10e32019657c550912fbb37bad",
      "parents": [
        "0d9ea75443dc7e37843e656b8ebc947a6d16d618"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mel@csn.ul.ie",
        "time": "Wed Jul 23 21:27:58 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:19 2008 -0700"
      },
      "message": "hugetlb: fix a hugepage reservation check for MAP_SHARED\n\nWhen removing a huge page from the hugepage pool for a fault the system checks\nto see if the mapping requires additional pages to be reserved, and if it does\nwhether there are any unreserved pages remaining.  If not, the allocation\nfails without even attempting to get a page.  In order to determine whether to\napply this check we call vma_has_private_reserves() which tells us if this vma\nis MAP_PRIVATE and is the owner.  This incorrectly triggers the remaining\nreservation test for MAP_SHARED mappings which prevents allocation of the\nfinal page in the pool even though it is reserved for this mapping.\n\nIn reality we only want to check this for MAP_PRIVATE mappings where the\nprocess is not the original mapper.  Replace vma_has_private_reserves() with\nvma_has_reserves() which indicates whether further reserves are required, and\nupdate the caller.\n\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nAcked-by: Adam Litke \u003cagl@us.ibm.com\u003e\nAcked-by: Andy Whitcroft \u003capw@shadowen.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "53ba51d21d6e048424ab8aadfebdb1f25ae07b60",
      "tree": "0d5c5ee420e85f3a86ff7fe9151e7c3d547e7de1",
      "parents": [
        "e11bfbfcb08ef4223b863799897c19cdf7c5bc00"
      ],
      "author": {
        "name": "Jon Tollefson",
        "email": "kniht@linux.vnet.ibm.com",
        "time": "Wed Jul 23 21:27:52 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:19 2008 -0700"
      },
      "message": "hugetlb: allow arch overridden hugepage allocation\n\nAllow alloc_bootmem_huge_page() to be overridden by architectures that\ncan\u0027t always use bootmem.  This requires huge_boot_pages to be available\nfor use by this function.\n\nThis is required for powerpc 16G pages, which have to be reserved prior to\nboot-time.  The location of these pages are indicated in the device tree.\n\nAcked-by: Adam Litke \u003cagl@us.ibm.com\u003e\nSigned-off-by: Jon Tollefson \u003ckniht@linux.vnet.ibm.com\u003e\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e11bfbfcb08ef4223b863799897c19cdf7c5bc00",
      "tree": "2d66db5a2f92e3ad299e95a09d327f30f306aa24",
      "parents": [
        "b4718e628dbf68a2dee23b5709e2aa3190409c56"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Wed Jul 23 21:27:52 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:19 2008 -0700"
      },
      "message": "hugetlb: override default huge page size\n\nAllow configurations with the default huge page size which is different to\nthe traditional HPAGE_SIZE size.  The default huge page size is the one\nrepresented in the legacy /proc ABIs, SHM, and which is defaulted to when\nmounting hugetlbfs filesystems.\n\nThis is implemented with a new kernel option default_hugepagesz\u003d, which\ndefaults to HPAGE_SIZE if not specified.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ceb868796181dc95ea01a110e123afd391639873",
      "tree": "991be618e5195b05c31974a19adb4b9602315013",
      "parents": [
        "4abd32dbab201c3ced0b0af12accea77cd9eeffc"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "ak@suse.de",
        "time": "Wed Jul 23 21:27:50 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:18 2008 -0700"
      },
      "message": "hugetlb: introduce pud_huge\n\nStraight forward extensions for huge pages located in the PUD instead of\nPMDs.\n\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4abd32dbab201c3ced0b0af12accea77cd9eeffc",
      "tree": "152295359540e704fb1d0a4a0fbf5df889108634",
      "parents": [
        "8faa8b077b2cdc4e4646842fe50b07840955a013"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "ak@suse.de",
        "time": "Wed Jul 23 21:27:49 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:18 2008 -0700"
      },
      "message": "hugetlb: printk cleanup\n\n- Reword sentence to clarify meaning with multiple options\n- Add support for using GB prefixes for the page size\n- Add extra printk to delayed \u003e MAX_ORDER allocation code\n\nAcked-by: Adam Litke \u003cagl@us.ibm.com\u003e\nAcked-by: Nishanth Aravamudan \u003cnacc@us.ibm.com\u003e\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8faa8b077b2cdc4e4646842fe50b07840955a013",
      "tree": "9c55a56ad5bb36219c8cf030329e67acd1b7e2e0",
      "parents": [
        "aa888a74977a8f2120ae9332376e179c39a6b07d"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "ak@suse.de",
        "time": "Wed Jul 23 21:27:48 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:18 2008 -0700"
      },
      "message": "hugetlb: support boot allocate different sizes\n\nMake some infrastructure changes to allow boot-time allocation of\ndifferent hugepage page sizes.\n\n- move all basic hstate initialisation into hugetlb_add_hstate\n- create a new function hugetlb_hstate_alloc_pages() to do the\n  actual initial page allocations. Call this function early in\n  order to allocate giant pages from bootmem.\n- Check for multiple hugepages\u003d parameters\n\nAcked-by: Adam Litke \u003cagl@us.ibm.com\u003e\nAcked-by: Nishanth Aravamudan \u003cnacc@us.ibm.com\u003e\nAcked-by: Andrew Hastings \u003cabh@cray.com\u003e\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "aa888a74977a8f2120ae9332376e179c39a6b07d",
      "tree": "1834f8a81e0126ffdd9d9622a9522331dffa2ac8",
      "parents": [
        "01ad1c0827db5b3695c53e296dbb2c1da16a0911"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "ak@suse.de",
        "time": "Wed Jul 23 21:27:47 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:18 2008 -0700"
      },
      "message": "hugetlb: support larger than MAX_ORDER\n\nThis is needed on x86-64 to handle GB pages in hugetlbfs, because it is\nnot practical to enlarge MAX_ORDER to 1GB.\n\nInstead the 1GB pages are only allocated at boot using the bootmem\nallocator using the hugepages\u003d...  option.\n\nThese 1G bootmem pages are never freed.  In theory it would be possible to\nimplement that with some complications, but since it would be a one-way\nstreet (\u003e\u003d MAX_ORDER pages cannot be allocated later) I decided not to\ncurrently.\n\nThe \u003e\u003d MAX_ORDER code is not ifdef\u0027ed per architecture.  It is not very\nbig and the ifdef uglyness seemed not be worth it.\n\nKnown problems: /proc/meminfo and \"free\" do not display the memory\nallocated for gb pages in \"Total\".  This is a little confusing for the\nuser.\n\nAcked-by: Andrew Hastings \u003cabh@cray.com\u003e\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "01ad1c0827db5b3695c53e296dbb2c1da16a0911",
      "tree": "80c46c00832094f2413ad97b8e1953018a71cc68",
      "parents": [
        "b54bbf7b81170f03597c17dd0b559e3006bc9868"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "ak@suse.de",
        "time": "Wed Jul 23 21:27:46 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:17 2008 -0700"
      },
      "message": "mm: export prep_compound_page to mm\n\nhugetlb will need to get compound pages from bootmem to handle the case of\nthem being greater than or equal to MAX_ORDER.  Export the constructor\nfunction needed for this.\n\nAcked-by: Adam Litke \u003cagl@us.ibm.com\u003e\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b54bbf7b81170f03597c17dd0b559e3006bc9868",
      "tree": "abc6b326e293d3a685d943956d32ab4038a90e1f",
      "parents": [
        "5ced66c901f1cf0b684feb15c2cd8b126e263d07"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "ak@suse.de",
        "time": "Wed Jul 23 21:27:45 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:17 2008 -0700"
      },
      "message": "mm: introduce non panic alloc_bootmem\n\nStraight forward variant of the existing __alloc_bootmem_node, only\nsubsequent patch when allocating giant hugepages at boot -- don\u0027t want to\npanic if we can\u0027t allocate as many as the user asked for.\n\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5ced66c901f1cf0b684feb15c2cd8b126e263d07",
      "tree": "d5faa514fa226a2fcba97aef1673c404369c1ad2",
      "parents": [
        "a3437870160cf2caaac6bdd76c7377a5a4145a8c"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "ak@suse.de",
        "time": "Wed Jul 23 21:27:45 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:17 2008 -0700"
      },
      "message": "hugetlb: abstract numa round robin selection\n\nNeed this as a separate function for a future patch.\n\nNo behaviour change.\n\nAcked-by: Adam Litke \u003cagl@us.ibm.com\u003e\nAcked-by: Nishanth Aravamudan \u003cnacc@us.ibm.com\u003e\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a3437870160cf2caaac6bdd76c7377a5a4145a8c",
      "tree": "6d3c8ddd442e4cd96f1f8bdcf59fcaef72f4edc9",
      "parents": [
        "a137e1cc6d6e7d315fef03962a2a5a113348b13b"
      ],
      "author": {
        "name": "Nishanth Aravamudan",
        "email": "nacc@us.ibm.com",
        "time": "Wed Jul 23 21:27:44 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:17 2008 -0700"
      },
      "message": "hugetlb: new sysfs interface\n\nProvide new hugepages user APIs that are more suited to multiple hstates\nin sysfs.  There is a new directory, /sys/kernel/hugepages.  Underneath\nthat directory there will be a directory per-supported hugepage size,\ne.g.:\n\n/sys/kernel/hugepages/hugepages-64kB\n/sys/kernel/hugepages/hugepages-16384kB\n/sys/kernel/hugepages/hugepages-16777216kB\n\ncorresponding to 64k, 16m and 16g respectively.  Within each\nhugepages-size directory there are a number of files, corresponding to the\ntracked counters in the hstate, e.g.:\n\n/sys/kernel/hugepages/hugepages-64/nr_hugepages\n/sys/kernel/hugepages/hugepages-64/nr_overcommit_hugepages\n/sys/kernel/hugepages/hugepages-64/free_hugepages\n/sys/kernel/hugepages/hugepages-64/resv_hugepages\n/sys/kernel/hugepages/hugepages-64/surplus_hugepages\n\nOf these files, the first two are read-write and the latter three are\nread-only.  The size of the hugepage being manipulated is trivially\ndeducible from the enclosing directory and is always expressed in kB (to\nmatch meminfo).\n\n[dave@linux.vnet.ibm.com: fix build]\n[nacc@us.ibm.com: hugetlb: hang off of /sys/kernel/mm rather than /sys/kernel]\n[nacc@us.ibm.com: hugetlb: remove CONFIG_SYSFS dependency]\nAcked-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\nSigned-off-by: Nishanth Aravamudan \u003cnacc@us.ibm.com\u003e\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Dave Hansen \u003cdave@linux.vnet.ibm.com\u003e\nSigned-off-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": "a137e1cc6d6e7d315fef03962a2a5a113348b13b",
      "tree": "b47e195c392abaa3640cc2f9187d99d58cee664a",
      "parents": [
        "e5ff215941d59f8ae6bf58f6428dc5c26745a612"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "ak@suse.de",
        "time": "Wed Jul 23 21:27:43 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:17 2008 -0700"
      },
      "message": "hugetlbfs: per mount huge page sizes\n\nAdd the ability to configure the hugetlb hstate used on a per mount basis.\n\n- Add a new pagesize\u003d option to the hugetlbfs mount that allows setting\n  the page size\n- This option causes the mount code to find the hstate corresponding to the\n  specified size, and sets up a pointer to the hstate in the mount\u0027s\n  superblock.\n- Change the hstate accessors to use this information rather than the\n  global_hstate they were using (requires a slight change in mm/memory.c\n  so we don\u0027t NULL deref in the error-unmap path -- see comments).\n\n[np: take hstate out of hugetlbfs inode and vma-\u003evm_private_data]\n\nAcked-by: Adam Litke \u003cagl@us.ibm.com\u003e\nAcked-by: Nishanth Aravamudan \u003cnacc@us.ibm.com\u003e\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e5ff215941d59f8ae6bf58f6428dc5c26745a612",
      "tree": "d8a3f730124d6608c6c880515625ca2d4e4ed044",
      "parents": [
        "a5516438959d90b071ff0a484ce4f3f523dc3152"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "ak@suse.de",
        "time": "Wed Jul 23 21:27:42 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:17 2008 -0700"
      },
      "message": "hugetlb: multiple hstates for multiple page sizes\n\nAdd basic support for more than one hstate in hugetlbfs.  This is the key\nto supporting multiple hugetlbfs page sizes at once.\n\n- Rather than a single hstate, we now have an array, with an iterator\n- default_hstate continues to be the struct hstate which we use by default\n- Add functions for architectures to register new hstates\n\n[akpm@linux-foundation.org: coding-style fixes]\nAcked-by: Adam Litke \u003cagl@us.ibm.com\u003e\nAcked-by: Nishanth Aravamudan \u003cnacc@us.ibm.com\u003e\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a5516438959d90b071ff0a484ce4f3f523dc3152",
      "tree": "e356ba9364c76b93c176b4d4a262b7aca3ee8f91",
      "parents": [
        "b7ba30c679ed1eb7ed3ed8f281f6493282042bd4"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "ak@suse.de",
        "time": "Wed Jul 23 21:27:41 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:17 2008 -0700"
      },
      "message": "hugetlb: modular state for hugetlb page size\n\nThe goal of this patchset is to support multiple hugetlb page sizes.  This\nis achieved by introducing a new struct hstate structure, which\nencapsulates the important hugetlb state and constants (eg.  huge page\nsize, number of huge pages currently allocated, etc).\n\nThe hstate structure is then passed around the code which requires these\nfields, they will do the right thing regardless of the exact hstate they\nare operating on.\n\nThis patch adds the hstate structure, with a single global instance of it\n(default_hstate), and does the basic work of converting hugetlb to use the\nhstate.\n\nFuture patches will add more hstate structures to allow for different\nhugetlbfs mounts to have different page sizes.\n\n[akpm@linux-foundation.org: coding-style fixes]\nAcked-by: Adam Litke \u003cagl@us.ibm.com\u003e\nAcked-by: Nishanth Aravamudan \u003cnacc@us.ibm.com\u003e\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b7ba30c679ed1eb7ed3ed8f281f6493282042bd4",
      "tree": "9857d629f7903fc6e56e518c2443cee8899902d9",
      "parents": [
        "ff7ea79cf7c3a481851bd4b2185fdeb6ce4afa29"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "ak@suse.de",
        "time": "Wed Jul 23 21:27:40 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:17 2008 -0700"
      },
      "message": "hugetlb: factor out prep_new_huge_page\n\nNeeded to avoid code duplication in follow up patches.\n\nAcked-by: Adam Litke \u003cagl@us.ibm.com\u003e\nAcked-by: Nishanth Aravamudan \u003cnacc@us.ibm.com\u003e\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ff7ea79cf7c3a481851bd4b2185fdeb6ce4afa29",
      "tree": "ea0438b98c268584c28c8f5f8c331cb12c2c44b9",
      "parents": [
        "5e9426abe209cf134adbbd62c5e73ef534eb73e9"
      ],
      "author": {
        "name": "Nishanth Aravamudan",
        "email": "nacc@us.ibm.com",
        "time": "Wed Jul 23 21:27:39 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:17 2008 -0700"
      },
      "message": "mm: create /sys/kernel/mm\n\nAdd a kobject to create /sys/kernel/mm when sysfs is mounted.  The kobject\nwill exist regardless.  This will allow for the hugepage related sysfs\ndirectories to exist under the mm \"subsystem\" directory.  Add an ABI file\nappropriately.\n\n[kosaki.motohiro@jp.fujitsu.com: fix build]\nSigned-off-by: Nishanth Aravamudan \u003cnacc@us.ibm.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5e9426abe209cf134adbbd62c5e73ef534eb73e9",
      "tree": "d253e0130b30fe5b30ca27cb1e7d59dad86fa086",
      "parents": [
        "a47a126ad5ea072aca3e611ed8f8dc6adad24bab"
      ],
      "author": {
        "name": "Nishanth Aravamudan",
        "email": "nacc@us.ibm.com",
        "time": "Wed Jul 23 21:27:39 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:17 2008 -0700"
      },
      "message": "mm: remove mm_init compilation dependency on CONFIG_DEBUG_MEMORY_INIT\n\nTowards the end of putting all core mm initialization in mm_init.c, I\nplan on putting the creation of a mm kobject in a function in that file.\nHowever, the file is currently only compiled if CONFIG_DEBUG_MEMORY_INIT\nis set. Remove this dependency, but put the code under an #ifdef on the\nsame config option. This should result in no functional changes.\n\nSigned-off-by: Nishanth Aravamudan \u003cnacc@us.ibm.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a47a126ad5ea072aca3e611ed8f8dc6adad24bab",
      "tree": "be47608111f762eba4fc6e80c7c2fcd82ffd6fd6",
      "parents": [
        "cce770815869e9209171d819dfde89bcc738ab62"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "dada1@cosmosbay.com",
        "time": "Wed Jul 23 21:27:38 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:17 2008 -0700"
      },
      "message": "vmallocinfo: add NUMA information\n\nChristoph recently added /proc/vmallocinfo file to get information about\nvmalloc allocations.\n\nThis patch adds NUMA specific information, giving number of pages\nallocated on each memory node.\n\nThis should help to check that vmalloc() is able to respect NUMA policies.\n\nExample of output on a four nodes machine (one cpu per node)\n\n1) network hash tables are evenly spreaded on four nodes (OK) (Same\n   point for inodes and dentries hash tables)\n\n2) iptables tables (x_tables) are correctly allocated on each cpu node\n   (OK).\n\n3) sys_swapon() allocates its memory from one node only.\n\n4) each loaded module is using memory on one node.\n\nSysadmins could tune their setup to change points 3) and 4) if necessary.\n\ngrep \"pages\u003d\"  /proc/vmallocinfo\n0xffffc20000000000-0xffffc20000201000 2101248 alloc_large_system_hash+0x204/0x2c0 pages\u003d512 vmalloc N0\u003d128 N1\u003d128 N2\u003d128 N3\u003d128\n0xffffc20000201000-0xffffc20000302000 1052672 alloc_large_system_hash+0x204/0x2c0 pages\u003d256 vmalloc N0\u003d64 N1\u003d64 N2\u003d64 N3\u003d64\n0xffffc2000031a000-0xffffc2000031d000   12288 alloc_large_system_hash+0x204/0x2c0 pages\u003d2 vmalloc N1\u003d1 N2\u003d1\n0xffffc2000031f000-0xffffc2000032b000   49152 cramfs_uncompress_init+0x2e/0x80 pages\u003d11 vmalloc N0\u003d3 N1\u003d3 N2\u003d2 N3\u003d3\n0xffffc2000033e000-0xffffc20000341000   12288 sys_swapon+0x640/0xac0 pages\u003d2 vmalloc N0\u003d2\n0xffffc20000341000-0xffffc20000344000   12288 xt_alloc_table_info+0xfe/0x130 [x_tables] pages\u003d2 vmalloc N0\u003d2\n0xffffc20000344000-0xffffc20000347000   12288 xt_alloc_table_info+0xfe/0x130 [x_tables] pages\u003d2 vmalloc N1\u003d2\n0xffffc20000347000-0xffffc2000034a000   12288 xt_alloc_table_info+0xfe/0x130 [x_tables] pages\u003d2 vmalloc N2\u003d2\n0xffffc2000034a000-0xffffc2000034d000   12288 xt_alloc_table_info+0xfe/0x130 [x_tables] pages\u003d2 vmalloc N3\u003d2\n0xffffc20004381000-0xffffc20004402000  528384 alloc_large_system_hash+0x204/0x2c0 pages\u003d128 vmalloc N0\u003d32 N1\u003d32 N2\u003d32 N3\u003d32\n0xffffc20004402000-0xffffc20004803000 4198400 alloc_large_system_hash+0x204/0x2c0 pages\u003d1024 vmalloc vpages N0\u003d256 N1\u003d256 N2\u003d256 N3\u003d256\n0xffffc20004803000-0xffffc20004904000 1052672 alloc_large_system_hash+0x204/0x2c0 pages\u003d256 vmalloc N0\u003d64 N1\u003d64 N2\u003d64 N3\u003d64\n0xffffc20004904000-0xffffc20004bec000 3047424 sys_swapon+0x640/0xac0 pages\u003d743 vmalloc vpages N0\u003d743\n0xffffffffa0000000-0xffffffffa000f000   61440 sys_init_module+0xc27/0x1d00 pages\u003d14 vmalloc N1\u003d14\n0xffffffffa000f000-0xffffffffa0014000   20480 sys_init_module+0xc27/0x1d00 pages\u003d4 vmalloc N0\u003d4\n0xffffffffa0014000-0xffffffffa0017000   12288 sys_init_module+0xc27/0x1d00 pages\u003d2 vmalloc N0\u003d2\n0xffffffffa0017000-0xffffffffa0022000   45056 sys_init_module+0xc27/0x1d00 pages\u003d10 vmalloc N1\u003d10\n0xffffffffa0022000-0xffffffffa0028000   24576 sys_init_module+0xc27/0x1d00 pages\u003d5 vmalloc N3\u003d5\n0xffffffffa0028000-0xffffffffa0050000  163840 sys_init_module+0xc27/0x1d00 pages\u003d39 vmalloc N1\u003d39\n0xffffffffa0050000-0xffffffffa0052000    8192 sys_init_module+0xc27/0x1d00 pages\u003d1 vmalloc N1\u003d1\n0xffffffffa0052000-0xffffffffa0056000   16384 sys_init_module+0xc27/0x1d00 pages\u003d3 vmalloc N1\u003d3\n0xffffffffa0056000-0xffffffffa0081000  176128 sys_init_module+0xc27/0x1d00 pages\u003d42 vmalloc N3\u003d42\n0xffffffffa0081000-0xffffffffa00ae000  184320 sys_init_module+0xc27/0x1d00 pages\u003d44 vmalloc N3\u003d44\n0xffffffffa00ae000-0xffffffffa00b1000   12288 sys_init_module+0xc27/0x1d00 pages\u003d2 vmalloc N3\u003d2\n0xffffffffa00b1000-0xffffffffa00b9000   32768 sys_init_module+0xc27/0x1d00 pages\u003d7 vmalloc N0\u003d7\n0xffffffffa00b9000-0xffffffffa00c4000   45056 sys_init_module+0xc27/0x1d00 pages\u003d10 vmalloc N3\u003d10\n0xffffffffa00c6000-0xffffffffa00e0000  106496 sys_init_module+0xc27/0x1d00 pages\u003d25 vmalloc N2\u003d25\n0xffffffffa00e0000-0xffffffffa00f1000   69632 sys_init_module+0xc27/0x1d00 pages\u003d16 vmalloc N2\u003d16\n0xffffffffa00f1000-0xffffffffa00f4000   12288 sys_init_module+0xc27/0x1d00 pages\u003d2 vmalloc N3\u003d2\n0xffffffffa00f4000-0xffffffffa00f7000   12288 sys_init_module+0xc27/0x1d00 pages\u003d2 vmalloc N3\u003d2\n\n[akpm@linux-foundation.org: fix comment]\nSigned-off-by: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bcd78e49613c41b5bed96fa288e983876f286a59",
      "tree": "0ad2591ca2e0d46923d8ec489ef7378f1a3c0d8e",
      "parents": [
        "11fa977ecde652ab324dd79c179deb52e82a8df1"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Wed Jul 23 21:27:35 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:16 2008 -0700"
      },
      "message": "tmpfs: support aio\n\nWe have a request for tmpfs to support the AIO interface: easily done, no\nmore than replacing the old shmem_file_read by shmem_file_aio_read,\ncribbed from generic_file_aio_read.  (In 2.6.25 its write side was already\nchanged to use generic_file_aio_write.)\n\nIncorporate cleanups from Andrew Morton and Harvey Harrison.\n\nTests out fine with LTP\u0027s ltp-aiodio.sh, given hacks (not included) to\nsupport O_DIRECT.  tmpfs cannot honestly support O_DIRECT: its\ncache-avoiding-IO nature is at odds with direct IO-avoiding-cache.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nTested-by: Lawrence Greenfield \u003cleg@google.com\u003e\nCc: Christoph Rohland \u003chans-christoph.rohland@sap.com\u003e\nCc: Badari Pulavarty \u003cpbadari@us.ibm.com\u003e\nCc: Zach Brown \u003czach.brown@oracle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "11fa977ecde652ab324dd79c179deb52e82a8df1",
      "tree": "5842dab40a3754f3f34223b50f9dcfa5dd67dfa0",
      "parents": [
        "a858f7b2e9bb4eb665176dde5cf32eeaaf90f153"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Wed Jul 23 21:27:34 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:16 2008 -0700"
      },
      "message": "generic_file_aio_read() cleanups\n\nAs akpm points out, there\u0027s really no need for generic_file_aio_read to\nmake a special case of count 0: just loop through nr_segs doing nothing.\nAnd as Harvey Harrison points out, there\u0027s no need to reset retval to 0\nwhere it\u0027s already 0.\n\nSetting count (or ocount) to 0 before calling generic_segment_checks is\nunnecessary too; but reluctantly I\u0027ll leave that removal to someone with a\nwider range of gcc versions to hand - 4.1.2 and 4.2.1 don\u0027t warn about it,\nbut perhaps others do - I forget which are the warniest versions.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nTested-by: Lawrence Greenfield \u003cleg@google.com\u003e\nCc: Christoph Rohland \u003chans-christoph.rohland@sap.com\u003e\nCc: Badari Pulavarty \u003cpbadari@us.ibm.com\u003e\nCc: Zach Brown \u003czach.brown@oracle.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": "a858f7b2e9bb4eb665176dde5cf32eeaaf90f153",
      "tree": "54f79db047c42d476502e9023d3cbdb0a4c2c767",
      "parents": [
        "84afd99b8398c9d73af8238aa3cd835858e3097a"
      ],
      "author": {
        "name": "Johannes Weiner",
        "email": "hannes@saeurebad.de",
        "time": "Wed Jul 23 21:27:33 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:16 2008 -0700"
      },
      "message": "vma_page_offset() has no callees: drop it\n\nHugh adds: vma_pagecache_offset() has a dangerously misleading name, since\nit\u0027s using hugepage units: rename it to vma_hugecache_offset().\n\n[apw@shadowen.org: restack onto fixed MAP_PRIVATE reservations]\n[akpm@linux-foundation.org: vma_split conversion]\nSigned-off-by: Johannes Weiner \u003channes@saeurebad.de\u003e\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: Adam Litke \u003cagl@us.ibm.com\u003e\nCc: Nishanth Aravamudan \u003cnacc@us.ibm.com\u003e\nCc: Andi Kleen \u003cak@suse.de\u003e\nCc: Nick Piggin \u003cnpiggin@suse.de\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": "84afd99b8398c9d73af8238aa3cd835858e3097a",
      "tree": "11908ca096ef8e95e578b766d1077e7d12eb2a62",
      "parents": [
        "c37f9fb11c976ffc08200d631dada6dcbfd07ea4"
      ],
      "author": {
        "name": "Andy Whitcroft",
        "email": "apw@shadowen.org",
        "time": "Wed Jul 23 21:27:32 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:16 2008 -0700"
      },
      "message": "hugetlb reservations: fix hugetlb MAP_PRIVATE reservations across vma splits\n\nWhen a hugetlb mapping with a reservation is split, a new VMA is cloned\nfrom the original.  This new VMA is a direct copy of the original\nincluding the reservation count.  When this pair of VMAs are unmapped we\nwill incorrect double account the unused reservation and the overall\nreservation count will be incorrect, in extreme cases it will wrap.\n\nThe problem occurs when we split an existing VMA say to unmap a page in\nthe middle.  split_vma() will create a new VMA copying all fields from the\noriginal.  As we are storing our reservation count in vm_private_data this\nis also copies, endowing the new VMA with a duplicate of the original\nVMA\u0027s reservation.  Neither of the new VMAs can exhaust these reservations\nas they are too small, but when we unmap and close these VMAs we will\nincorrect credit the remainder twice and resv_huge_pages will become out\nof sync.  This can lead to allocation failures on mappings with\nreservations and even to resv_huge_pages wrapping which prevents all\nsubsequent hugepage allocations.\n\nThe simple fix would be to correctly apportion the remaining reservation\ncount when the split is made.  However the only hook we have vm_ops-\u003eopen\nonly has the new VMA we do not know the identity of the preceeding VMA.\nAlso even if we did have that VMA to hand we do not know how much of the\nreservation was consumed each side of the split.\n\nThis patch therefore takes a different tack.  We know that the whole of\nany private mapping (which has a reservation) has a reservation over its\nwhole size.  Any present pages represent consumed reservation.  Therefore\nif we track the instantiated pages we can calculate the remaining\nreservation.\n\nThis patch reuses the existing regions code to track the regions for which\nwe have consumed reservation (ie.  the instantiated pages), as each page\nis faulted in we record the consumption of reservation for the new page.\nWhen we need to return unused reservations at unmap time we simply count\nthe consumed reservation region subtracting that from the whole of the\nmap.  During a VMA split the newly opened VMA will point to the same\nregion map, as this map is offset oriented it remains valid for both of\nthe split VMAs.  This map is referenced counted so that it is removed when\nall VMAs which are part of the mmap are gone.\n\nThanks to Adam Litke and Mel Gorman for their review feedback.\n\nSigned-off-by: Andy Whitcroft \u003capw@shadowen.org\u003e\nAcked-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Adam Litke \u003cagl@us.ibm.com\u003e\nCc: Johannes Weiner \u003channes@saeurebad.de\u003e\nCc: Andy Whitcroft \u003capw@shadowen.org\u003e\nCc: William Lee Irwin III \u003cwli@holomorphy.com\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: Michael Kerrisk \u003cmtk.manpages@googlemail.com\u003e\nCc: Jon Tollefson \u003ckniht@linux.vnet.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c37f9fb11c976ffc08200d631dada6dcbfd07ea4",
      "tree": "2598f0713e4e61ed90335db1745decf2da6086a4",
      "parents": [
        "9682290484370ce68ba23cd2ec2838e301934199"
      ],
      "author": {
        "name": "Andy Whitcroft",
        "email": "apw@shadowen.org",
        "time": "Wed Jul 23 21:27:30 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:16 2008 -0700"
      },
      "message": "hugetlb: allow huge page mappings to be created without reservations\n\nBy default all shared mappings and most private mappings now have\nreservations associated with them.  This improves semantics by providing\nallocation guarentees to the mapper.  However a small number of\napplications may attempt to make very large sparse mappings, with these\nstrict reservations the system will never be able to honour the mapping.\n\nThis patch set brings MAP_NORESERVE support to hugetlb files.  This allows\nnew mappings to be made to hugetlbfs files without an associated\nreservation, for both shared and private mappings.  This allows\napplications which want to create very sparse mappings to opt-out of the\nreservation system.  Obviously as there is no reservation they are liable\nto fault at runtime if the huge page pool becomes exhausted; buyer beware.\n\nSigned-off-by: Andy Whitcroft \u003capw@shadowen.org\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Adam Litke \u003cagl@us.ibm.com\u003e\nCc: Johannes Weiner \u003channes@saeurebad.de\u003e\nCc: Andy Whitcroft \u003capw@shadowen.org\u003e\nCc: William Lee Irwin III \u003cwli@holomorphy.com\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: Michael Kerrisk \u003cmtk.manpages@googlemail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9682290484370ce68ba23cd2ec2838e301934199",
      "tree": "435dbd415ed2324d9f8e768425cf26704365cf3c",
      "parents": [
        "cdfd4325c0d878679bd6a3ba8285b71d9980e3c0"
      ],
      "author": {
        "name": "Andy Whitcroft",
        "email": "apw@shadowen.org",
        "time": "Wed Jul 23 21:27:29 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:16 2008 -0700"
      },
      "message": "hugetlb: move reservation region support earlier\n\nThe following patch will require use of the reservation regions support.\nMove this earlier in the file.  No changes have been made to this code.\n\nSigned-off-by: Andy Whitcroft \u003capw@shadowen.org\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nAcked-by: Adam Litke \u003cagl@us.ibm.com\u003e\nCc: Johannes Weiner \u003channes@saeurebad.de\u003e\nCc: Andy Whitcroft \u003capw@shadowen.org\u003e\nCc: William Lee Irwin III \u003cwli@holomorphy.com\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: Michael Kerrisk \u003cmtk.manpages@googlemail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "cdfd4325c0d878679bd6a3ba8285b71d9980e3c0",
      "tree": "1b1d52ce2ac528851630c706fbcf9db1072460a5",
      "parents": [
        "e7c4b0bfd025f71cf7624b7c1be174f63caade33"
      ],
      "author": {
        "name": "Andy Whitcroft",
        "email": "apw@shadowen.org",
        "time": "Wed Jul 23 21:27:28 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:16 2008 -0700"
      },
      "message": "mm: record MAP_NORESERVE status on vmas and fix small page mprotect reservations\n\nWith Mel\u0027s hugetlb private reservation support patches applied, strict\novercommit semantics are applied to both shared and private huge page\nmappings.  This can be a problem if an application relied on unlimited\novercommit semantics for private mappings.  An example of this would be an\napplication which maps a huge area with the intention of using it very\nsparsely.  These application would benefit from being able to opt-out of\nthe strict overcommit.  It should be noted that prior to hugetlb\nsupporting demand faulting all mappings were fully populated and so\napplications of this type should be rare.\n\nThis patch stack implements the MAP_NORESERVE mmap() flag for huge page\nmappings.  This flag has the same meaning as for small page mappings,\nsuppressing reservations for that mapping.\n\nThanks to Mel Gorman for reviewing a number of early versions of these\npatches.\n\nThis patch:\n\nWhen a small page mapping is created with mmap() reservations are created\nby default for any memory pages required.  When the region is read/write\nthe reservation is increased for every page, no reservation is needed for\nread-only regions (as they implicitly share the zero page).  Reservations\nare tracked via the VM_ACCOUNT vma flag which is present when the region\nhas reservation backing it.  When we convert a region from read-only to\nread-write new reservations are aquired and VM_ACCOUNT is set.  However,\nwhen a read-only map is created with MAP_NORESERVE it is indistinguishable\nfrom a normal mapping.  When we then convert that to read/write we are\nforced to incorrectly create reservations for it as we have no record of\nthe original MAP_NORESERVE.\n\nThis patch introduces a new vma flag VM_NORESERVE which records the\npresence of the original MAP_NORESERVE flag.  This allows us to\ndistinguish these two circumstances and correctly account the reserve.\n\nAs well as fixing this FIXME in the code, this makes it much easier to\nintroduce MAP_NORESERVE support for huge pages as this flag is available\nconsistantly for the life of the mapping.  VM_ACCOUNT on the other hand is\nheavily used at the generic level in association with small pages.\n\nSigned-off-by: Andy Whitcroft \u003capw@shadowen.org\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Adam Litke \u003cagl@us.ibm.com\u003e\nCc: Johannes Weiner \u003channes@saeurebad.de\u003e\nCc: Andy Whitcroft \u003capw@shadowen.org\u003e\nCc: William Lee Irwin III \u003cwli@holomorphy.com\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: Michael Kerrisk \u003cmtk.manpages@googlemail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e7c4b0bfd025f71cf7624b7c1be174f63caade33",
      "tree": "ee81ef1fafe34ca1a4a914d0db7e5decbc122379",
      "parents": [
        "04f2cbe35699d22dbf428373682ead85ca1240f5"
      ],
      "author": {
        "name": "Andy Whitcroft",
        "email": "apw@shadowen.org",
        "time": "Wed Jul 23 21:27:26 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:16 2008 -0700"
      },
      "message": "huge page private reservation review cleanups\n\nCreate some new accessors for vma private data to cut down on and contain\nthe casts.  Encapsulates the huge and small page offset calculations.\nAlso adds a couple of VM_BUG_ONs for consistency.\n\n[akpm@linux-foundation.org: Make things static]\nSigned-off-by: Andy Whitcroft \u003capw@shadowen.org\u003e\nAcked-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Adam Litke \u003cagl@us.ibm.com\u003e\nCc: Johannes Weiner \u003channes@saeurebad.de\u003e\nCc: Andy Whitcroft \u003capw@shadowen.org\u003e\nCc: William Lee Irwin III \u003cwli@holomorphy.com\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: Michael Kerrisk \u003cmtk.manpages@googlemail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "04f2cbe35699d22dbf428373682ead85ca1240f5",
      "tree": "1987a2c704cc97d8adf603054c9d89d18b9b30e0",
      "parents": [
        "a1e78772d72b2616ed20e54896e68e0e7044854e"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mel@csn.ul.ie",
        "time": "Wed Jul 23 21:27:25 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:16 2008 -0700"
      },
      "message": "hugetlb: guarantee that COW faults for a process that called mmap(MAP_PRIVATE) on hugetlbfs will succeed\n\nAfter patch 2 in this series, a process that successfully calls mmap() for\na MAP_PRIVATE mapping will be guaranteed to successfully fault until a\nprocess calls fork().  At that point, the next write fault from the parent\ncould fail due to COW if the child still has a reference.\n\nWe only reserve pages for the parent but a copy must be made to avoid\nleaking data from the parent to the child after fork().  Reserves could be\ntaken for both parent and child at fork time to guarantee faults but if\nthe mapping is large it is highly likely we will not have sufficient pages\nfor the reservation, and it is common to fork only to exec() immediatly\nafter.  A failure here would be very undesirable.\n\nNote that the current behaviour of mainline with MAP_PRIVATE pages is\npretty bad.  The following situation is allowed to occur today.\n\n1. Process calls mmap(MAP_PRIVATE)\n2. Process calls mlock() to fault all pages and makes sure it succeeds\n3. Process forks()\n4. Process writes to MAP_PRIVATE mapping while child still exists\n5. If the COW fails at this point, the process gets SIGKILLed even though it\n   had taken care to ensure the pages existed\n\nThis patch improves the situation by guaranteeing the reliability of the\nprocess that successfully calls mmap().  When the parent performs COW, it\nwill try to satisfy the allocation without using reserves.  If that fails\nthe parent will steal the page leaving any children without a page.\nFaults from the child after that point will result in failure.  If the\nchild COW happens first, an attempt will be made to allocate the page\nwithout reserves and the child will get SIGKILLed on failure.\n\nTo summarise the new behaviour:\n\n1. If the original mapper performs COW on a private mapping with multiple\n   references, it will attempt to allocate a hugepage from the pool or\n   the buddy allocator without using the existing reserves. On fail, VMAs\n   mapping the same area are traversed and the page being COW\u0027d is unmapped\n   where found. It will then steal the original page as the last mapper in\n   the normal way.\n\n2. The VMAs the pages were unmapped from are flagged to note that pages\n   with data no longer exist. Future no-page faults on those VMAs will\n   terminate the process as otherwise it would appear that data was corrupted.\n   A warning is printed to the console that this situation occured.\n\n2. If the child performs COW first, it will attempt to satisfy the COW\n   from the pool if there are enough pages or via the buddy allocator if\n   overcommit is allowed and the buddy allocator can satisfy the request. If\n   it fails, the child will be killed.\n\nIf the pool is large enough, existing applications will not notice that\nthe reserves were a factor.  Existing applications depending on the\nno-reserves been set are unlikely to exist as for much of the history of\nhugetlbfs, pages were prefaulted at mmap(), allocating the pages at that\npoint or failing the mmap().\n\n[npiggin@suse.de: fix CONFIG_HUGETLB\u003dn build]\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nAcked-by: Adam Litke \u003cagl@us.ibm.com\u003e\nCc: Andy Whitcroft \u003capw@shadowen.org\u003e\nCc: William Lee Irwin III \u003cwli@holomorphy.com\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: 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": "a1e78772d72b2616ed20e54896e68e0e7044854e",
      "tree": "d752dd96c2a4fcc555779a7aa99f95069c9b95ae",
      "parents": [
        "fc1b8a73dd71226902a11928dd5500326e101df9"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mel@csn.ul.ie",
        "time": "Wed Jul 23 21:27:23 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:16 2008 -0700"
      },
      "message": "hugetlb: reserve huge pages for reliable MAP_PRIVATE hugetlbfs mappings until fork()\n\nThis patch reserves huge pages at mmap() time for MAP_PRIVATE mappings in\na similar manner to the reservations taken for MAP_SHARED mappings.  The\nreserve count is accounted both globally and on a per-VMA basis for\nprivate mappings.  This guarantees that a process that successfully calls\nmmap() will successfully fault all pages in the future unless fork() is\ncalled.\n\nThe characteristics of private mappings of hugetlbfs files behaviour after\nthis patch are;\n\n1. The process calling mmap() is guaranteed to succeed all future faults until\n   it forks().\n2. On fork(), the parent may die due to SIGKILL on writes to the private\n   mapping if enough pages are not available for the COW. For reasonably\n   reliable behaviour in the face of a small huge page pool, children of\n   hugepage-aware processes should not reference the mappings; such as\n   might occur when fork()ing to exec().\n3. On fork(), the child VMAs inherit no reserves. Reads on pages already\n   faulted by the parent will succeed. Successful writes will depend on enough\n   huge pages being free in the pool.\n4. Quotas of the hugetlbfs mount are checked at reserve time for the mapper\n   and at fault time otherwise.\n\nBefore this patch, all reads or writes in the child potentially needs page\nallocations that can later lead to the death of the parent.  This applies\nto reads and writes of uninstantiated pages as well as COW.  After the\npatch it is only a write to an instantiated page that causes problems.\n\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nAcked-by: Adam Litke \u003cagl@us.ibm.com\u003e\nCc: Andy Whitcroft \u003capw@shadowen.org\u003e\nCc: William Lee Irwin III \u003cwli@holomorphy.com\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "fc1b8a73dd71226902a11928dd5500326e101df9",
      "tree": "524abe44f0da15bef579cbeffad0a78d26571f72",
      "parents": [
        "9109fb7b3520de187ebc3646c209d66a233f7169"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mel@csn.ul.ie",
        "time": "Wed Jul 23 21:27:22 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:16 2008 -0700"
      },
      "message": "hugetlb: move hugetlb_acct_memory()\n\nThis is a patchset to give reliable behaviour to a process that\nsuccessfully calls mmap(MAP_PRIVATE) on a hugetlbfs file.  Currently, it\nis possible for the process to be killed due to a small hugepage pool size\neven if it calls mlock().\n\nMAP_SHARED mappings on hugetlbfs reserve huge pages at mmap() time.  This\nguarantees all future faults against the mapping will succeed.  This\nallows local allocations at first use improving NUMA locality whilst\nretaining reliability.\n\nMAP_PRIVATE mappings do not reserve pages.  This can result in an\napplication being SIGKILLed later if a huge page is not available at fault\ntime.  This makes huge pages usage very ill-advised in some cases as the\nunexpected application failure cannot be detected and handled as it is\nimmediately fatal.  Although an application may force instantiation of the\npages using mlock(), this may lead to poor memory placement and the\nprocess may still be killed when performing COW.\n\nThis patchset introduces a reliability guarantee for the process which\ncreates a private mapping, i.e.  the process that calls mmap() on a\nhugetlbfs file successfully.  The first patch of the set is purely\nmechanical code move to make later diffs easier to read.  The second patch\nwill guarantee faults up until the process calls fork().  After patch two,\nas long as the child keeps the mappings, the parent is no longer\nguaranteed to be reliable.  Patch 3 guarantees that the parent will always\nsuccessfully COW by unmapping the pages from the child in the event there\nare insufficient pages in the hugepage pool in allocate a new page, be it\nvia a static or dynamic pool.\n\nExisting hugepage-aware applications are unlikely to be affected by this\nchange.  For much of hugetlbfs\u0027s history, pages were pre-faulted at mmap()\ntime or mmap() failed which acts in a reserve-like manner.  If the pool is\nsized correctly already so that parent and child can fault reliably, the\napplication will not even notice the reserves.  It\u0027s only when the pool is\ntoo small for the application to function perfectly reliably that the\nreserves come into play.\n\nCredit goes to Andy Whitcroft for cleaning up a number of mistakes during\nreview before the patches were released.\n\nThis patch:\n\nA later patch in this set needs to call hugetlb_acct_memory() before it is\ndefined.  This patch moves the function without modification.  This makes\nlater diffs easier to read.\n\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nAcked-by: Adam Litke \u003cagl@us.ibm.com\u003e\nCc: Andy Whitcroft \u003capw@shadowen.org\u003e\nCc: William Lee Irwin III \u003cwli@holomorphy.com\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9109fb7b3520de187ebc3646c209d66a233f7169",
      "tree": "f1d64d2efafb8e1652836126523f1b36fb10acd1",
      "parents": [
        "2185e69f680ae8c8496b6fc15e20c889d5b39b67"
      ],
      "author": {
        "name": "Johannes Weiner",
        "email": "hannes@saeurebad.de",
        "time": "Wed Jul 23 21:27:20 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:16 2008 -0700"
      },
      "message": "mm: drop unneeded pgdat argument from free_area_init_node()\n\nfree_area_init_node() gets passed in the node id as well as the node\ndescriptor.  This is redundant as the function can trivially get the node\ndescriptor itself by means of NODE_DATA() and the node\u0027s id.\n\nI checked all the users and NODE_DATA() seems to be usable everywhere\nfrom where this function is called.\n\nSigned-off-by: Johannes Weiner \u003channes@saeurebad.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9023cb7e8564d95a1893f8cb6895a293be9a71fe",
      "tree": "641e9918124a2a9e6642916ed9d23f97fbf95526",
      "parents": [
        "8a38082d21cbc5ec961da7dda195e98a9a064dcf"
      ],
      "author": {
        "name": "Andy Whitcroft",
        "email": "apw@shadowen.org",
        "time": "Wed Jul 23 21:27:19 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:15 2008 -0700"
      },
      "message": "slob: record page flag overlays explicitly\n\nSLOB reuses two page bits for internal purposes, it overlays PG_active and\nPG_private.  This is hidden away in slob.c.  Document these overlays\nexplicitly in the main page-flags enum along with all the others.\n\nSigned-off-by: Andy Whitcroft \u003capw@shadowen.org\u003e\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Matt Mackall \u003cmpm@selenic.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Jeremy Fitzhardinge \u003cjeremy@goop.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8a38082d21cbc5ec961da7dda195e98a9a064dcf",
      "tree": "e68f8c612c9f4be60d9e8b11a654e10416470155",
      "parents": [
        "0cad47cf13bc2e9142d3a11d9f50523797d0d4ea"
      ],
      "author": {
        "name": "Andy Whitcroft",
        "email": "apw@shadowen.org",
        "time": "Wed Jul 23 21:27:18 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:15 2008 -0700"
      },
      "message": "slub: record page flag overlays explicitly\n\nSLUB reuses two page bits for internal purposes, it overlays PG_active and\nPG_error.  This is hidden away in slub.c.  Document these overlays\nexplicitly in the main page-flags enum along with all the others.\n\nSigned-off-by: Andy Whitcroft \u003capw@shadowen.org\u003e\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Matt Mackall \u003cmpm@selenic.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nTested-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Jeremy Fitzhardinge \u003cjeremy@goop.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3c82d0ce2c4f642b2f24ef98707a030543b06b90",
      "tree": "bfbb2ee1919bb2bbd0e5158103c7382af73da31d",
      "parents": [
        "42b7772812d15b86543a23b82bd6070eef9a08b1"
      ],
      "author": {
        "name": "Andy Whitcroft",
        "email": "apw@shadowen.org",
        "time": "Wed Jul 23 21:27:11 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:15 2008 -0700"
      },
      "message": "buddy: clarify comments describing buddy merge\n\nIn __free_one_page(), the comment \"Move the buddy up one level\" appears\nattached to the break and by implication when the break is taken we are\nmoving it up one level:\n\n\tif (!page_is_buddy(page, buddy, order))\n\t\tbreak;          /* Move the buddy up one level. */\n\nIn reality the inverse is true, we break out when we can no longer merge\nthis page with its buddy.  Looking back into pre-history (into the full\ngit history) it appears that these two lines accidentally got joined as\npart of another change.\n\nMove the comment down where it belongs below the if and clarify its\nlanguage.\n\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": "42b7772812d15b86543a23b82bd6070eef9a08b1",
      "tree": "10665ee01fe82ce17c68a6278d044531b1ed64c0",
      "parents": [
        "a352894d07059649398c4769dc8b645e1a1dad88"
      ],
      "author": {
        "name": "Jan Beulich",
        "email": "jbeulich@novell.com",
        "time": "Wed Jul 23 21:27:10 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:15 2008 -0700"
      },
      "message": "mm: remove double indirection on tlb parameter to free_pgd_range() \u0026 Co\n\nThe double indirection here is not needed anywhere and hence (at least)\nconfusing.\n\nSigned-off-by: Jan Beulich \u003cjbeulich@novell.com\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: \"Luck, Tony\" \u003ctony.luck@intel.com\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nAcked-by: Jeremy Fitzhardinge \u003cjeremy@goop.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "28b2ee20c7cba812b6f2ccf6d722cf86d00a84dc",
      "tree": "e8f1efd05c38c1cb26ca3ee051a454eb685fd122",
      "parents": [
        "0d71d10a4252a3938e6b70189bc776171c02e076"
      ],
      "author": {
        "name": "Rik van Riel",
        "email": "riel@redhat.com",
        "time": "Wed Jul 23 21:27:05 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:15 2008 -0700"
      },
      "message": "access_process_vm device memory infrastructure\n\nIn order to be able to debug things like the X server and programs using\nthe PPC Cell SPUs, the debugger needs to be able to access device memory\nthrough ptrace and /proc/pid/mem.\n\nThis patch:\n\nAdd the generic_access_phys access function and put the hooks in place\nto allow access_process_vm to access device or PPC Cell SPU memory.\n\n[riel@redhat.com: Add documentation for the vm_ops-\u003eaccess function]\nSigned-off-by: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-by: Benjamin Herrensmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Dave Airlie \u003cairlied@linux.ie\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Arnd Bergmann \u003carnd@arndb.de\u003e\nAcked-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": "0d71d10a4252a3938e6b70189bc776171c02e076",
      "tree": "2bdaddc5eb5de1543368508e63d8859a94354073",
      "parents": [
        "a969e903a944f69309ee5cc9e7c7b08310d1151e"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Wed Jul 23 21:27:05 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:15 2008 -0700"
      },
      "message": "mm: remove nopfn\n\nThere are no users of nopfn in the tree. Remove it.\n\n[hugh@veritas.com: fix build error]\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\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": "a969e903a944f69309ee5cc9e7c7b08310d1151e",
      "tree": "fa8a26a8e9b870b3c4f9a876070de03e4901c579",
      "parents": [
        "75353bed36cfbbfb55bbde0896bbf5a02d9ba355"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Wed Jul 23 21:27:04 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:14 2008 -0700"
      },
      "message": "kill generic_file_direct_IO()\n\ngeneric_file_direct_IO is a common helper around the invocation of\n-\u003edirect_IO.  But there\u0027s almost nothing shared between the read and write\nside, so we\u0027re better off without this helper.\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "75353bed36cfbbfb55bbde0896bbf5a02d9ba355",
      "tree": "da149cfb59d289845dc1ee4d33612314e03be5a1",
      "parents": [
        "c748e1340e0de3fa7fed86f8bdf499be9242afff"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@kernel.org",
        "time": "Wed Jul 23 21:27:03 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:14 2008 -0700"
      },
      "message": "mm/hugetlb.c: fix duplicate variable\n\nIt\u0027s confusing that set_max_huge_pages() contained two different\nvariables named \"ret\", and although the code works correctly this should\nbe fixed.\n\nThe inner of the two variables can simply be removed.\n\nSpotted by sparse.\n\nSigned-off-by: Adrian Bunk \u003cbunk@kernel.org\u003e\nCc:  \"KOSAKI Motohiro\" \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c748e1340e0de3fa7fed86f8bdf499be9242afff",
      "tree": "864d3133bb8c3f73615497ef1fc557fcf93e5f1b",
      "parents": [
        "4f5ca265788973e3f5a1129a96ee4a9cbf587f2b"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@kernel.org",
        "time": "Wed Jul 23 21:27:03 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:14 2008 -0700"
      },
      "message": "mm/vmstat.c: proper externs\n\nThis patch adds proper extern declarations for five variables in\ninclude/linux/vmstat.h\n\nSigned-off-by: Adrian Bunk \u003cbunk@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": "4f5ca265788973e3f5a1129a96ee4a9cbf587f2b",
      "tree": "68d99bd13f654286b2d5684ad0ea175a98d91f1a",
      "parents": [
        "e4048e5dc4aecec670f48ed007a28779f09cebd6"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@kernel.org",
        "time": "Wed Jul 23 21:27:02 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:14 2008 -0700"
      },
      "message": "mm/migrate.c should #include \u003clinux/syscalls.h\u003e\n\nEvery file should include the headers containing the externs for its\nglobal functions (in this case for sys_move_pages()).\n\nSigned-off-by: Adrian Bunk \u003cbunk@kernel.org\u003e\nAcked-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e4048e5dc4aecec670f48ed007a28779f09cebd6",
      "tree": "eb22cb47f1885d8006a85c5142d6e7f9d115de49",
      "parents": [
        "efe9e77997f6e0306fedc6efa98df491dcf5ecb0"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Wed Jul 23 21:27:01 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:14 2008 -0700"
      },
      "message": "page allocator: inline some __alloc_pages() wrappers\n\nTwo zonelist patch series rewrote __page_alloc() largely.  Now, it is just\na wrapper function.  Inlining them will save a function call.\n\n[akpm@linux-foundation.org: export __alloc_pages_internal]\nCc: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ffc6421f0720f433b5b35b89ff56e998eabff93b",
      "tree": "171f85b314b062eae1ad5b36e4f64dddc511aa11",
      "parents": [
        "8ae04463077324ed9f6b04ab3a5b17ae1ee4dd35"
      ],
      "author": {
        "name": "Johannes Weiner",
        "email": "hannes@saeurebad.de",
        "time": "Wed Jul 23 21:26:59 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:14 2008 -0700"
      },
      "message": "mm: unexport __alloc_bootmem_core()\n\nThis function has no external callers, so unexport it.  Also fix its naming\ninconsistency.\n\nSigned-off-by: Johannes Weiner \u003channes@saeurebad.de\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Yinghai Lu \u003cyhlu.kernel@gmail.com\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Andy Whitcroft \u003capw@shadowen.org\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: 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": "8ae04463077324ed9f6b04ab3a5b17ae1ee4dd35",
      "tree": "2982394dd832fc105bddf759e007ba158a10c3ed",
      "parents": [
        "6b312c0e6e2f44b020e12953d1dd37eed60e3609"
      ],
      "author": {
        "name": "Johannes Weiner",
        "email": "hannes@saeurebad.de",
        "time": "Wed Jul 23 21:26:59 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:14 2008 -0700"
      },
      "message": "mm: normalize internal argument passing of bootmem data\n\nAll _core functions only need the bootmem data, not the whole node descriptor.\nAdjust the two functions that take the node descriptor unneededly.\n\nSigned-off-by: Johannes Weiner \u003channes@saeurebad.de\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Yinghai Lu \u003cyhlu.kernel@gmail.com\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: 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": "6b312c0e6e2f44b020e12953d1dd37eed60e3609",
      "tree": "4f2a1177b0013b411bf4799fb3c776128f5fa6f9",
      "parents": [
        "b61bfa3c462671c48a51fb5c31af337c5a996a04"
      ],
      "author": {
        "name": "Johannes Weiner",
        "email": "hannes@saeurebad.de",
        "time": "Wed Jul 23 21:26:58 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:14 2008 -0700"
      },
      "message": "mm: fix free_all_bootmem_core alignment check\n\nThe check for node_boot_start is bogus because we start freeing at the\ncorresponding pfn.  So check if the pfn is properly aligned instead in a more\nreadable way and adjust the documentation.\n\nAlso remove an unneeded accounting variable.\n\nSigned-off-by: Johannes Weiner \u003channes@saeurebad.de\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Yinghai Lu \u003cyhlu.kernel@gmail.com\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: 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": "b61bfa3c462671c48a51fb5c31af337c5a996a04",
      "tree": "020363fd43a85ddde9998759150b428ee794dae6",
      "parents": [
        "8b05c7e6e159d2f33c9275281b8b909a89eb7c5d"
      ],
      "author": {
        "name": "Johannes Weiner",
        "email": "hannes@saeurebad.de",
        "time": "Wed Jul 23 21:26:55 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:14 2008 -0700"
      },
      "message": "mm: move bootmem descriptors definition to a single place\n\nThere are a lot of places that define either a single bootmem descriptor or an\narray of them.  Use only one central array with MAX_NUMNODES items instead.\n\nSigned-off-by: Johannes Weiner \u003channes@saeurebad.de\u003e\nAcked-by: Ralf Baechle \u003cralf@linux-mips.org\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Richard Henderson \u003crth@twiddle.net\u003e\nCc: Russell King \u003crmk@arm.linux.org.uk\u003e\nCc: Tony Luck \u003ctony.luck@intel.com\u003e\nCc: Hirokazu Takata \u003ctakata@linux-m32r.org\u003e\nCc: Geert Uytterhoeven \u003cgeert@linux-m68k.org\u003e\nCc: Kyle McMartin \u003ckyle@parisc-linux.org\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: David S. Miller \u003cdavem@davemloft.net\u003e\nCc: Yinghai Lu \u003cyhlu.kernel@gmail.com\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: 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": "68ad8df42e12037c3894c9706ab428bf5cd6426b",
      "tree": "42999fc8e3cbf400b6133f832f310690f8f28b76",
      "parents": [
        "2dbb51c49f4fecb8330e43247a0edfbc4b2b8974"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mel@csn.ul.ie",
        "time": "Wed Jul 23 21:26:52 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:14 2008 -0700"
      },
      "message": "mm: print out the zonelists on request for manual verification\n\nThis patch prints out the zonelists during boot for manual verification by the\nuser if the mminit_loglevel is MMINIT_VERIFY or higher.\n\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Andy Whitcroft \u003capw@shadowen.org\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    }
  ],
  "next": "2dbb51c49f4fecb8330e43247a0edfbc4b2b8974"
}
