)]}'
{
  "log": [
    {
      "commit": "31f1de46b90ad360a16e7af3e277d104961df923",
      "tree": "a54e8698d4e4d088c4008e0ae91b579b13d2c208",
      "parents": [
        "1a510089849ff9f70b654659bf976a6baf3a4833"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Tue Feb 12 13:30:22 2008 +0900"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Feb 11 20:48:29 2008 -0800"
      },
      "message": "mempolicy: silently restrict nodemask to allowed nodes\n\nKosaki Motohito noted that \"numactl --interleave\u003dall ...\" failed in the\npresence of memoryless nodes.  This patch attempts to fix that problem.\n\nSome background:\n\nnumactl --interleave\u003dall calls set_mempolicy(2) with a fully populated\n[out to MAXNUMNODES] nodemask.  set_mempolicy() [in do_set_mempolicy()]\ncalls contextualize_policy() which requires that the nodemask be a\nsubset of the current task\u0027s mems_allowed; else EINVAL will be returned.\n\nA task\u0027s mems_allowed will always be a subset of node_states[N_HIGH_MEMORY]\ni.e., nodes with memory.  So, a fully populated nodemask will be\ndeclared invalid if it includes memoryless nodes.\n\n  NOTE:  the same thing will occur when running in a cpuset\n         with restricted mem_allowed--for the same reason:\n         node mask contains dis-allowed nodes.\n\nmbind(2), on the other hand, just masks off any nodes in the nodemask\nthat are not included in the caller\u0027s mems_allowed.\n\nIn each case [mbind() and set_mempolicy()], mpol_check_policy() will\ncomplain [again, resulting in EINVAL] if the nodemask contains any\nmemoryless nodes.  This is somewhat redundant as mpol_new() will remove\nmemoryless nodes for interleave policy, as will bind_zonelist()--called\nby mpol_new() for BIND policy.\n\nProposed fix:\n\n1) modify contextualize_policy logic to:\n   a) remember whether the incoming node mask is empty.\n   b) if not, restrict the nodemask to allowed nodes, as is\n      currently done in-line for mbind().  This guarantees\n      that the resulting mask includes only nodes with memory.\n\n      NOTE:  this is a [benign, IMO] change in behavior for\n             set_mempolicy().  Dis-allowed nodes will be\n             silently ignored, rather than returning an error.\n\n   c) fold this code into mpol_check_policy(), replace 2 calls to\n      contextualize_policy() to call mpol_check_policy() directly\n      and remove contextualize_policy().\n\n2) In existing mpol_check_policy() logic, after \"contextualization\":\n   a) MPOL_DEFAULT:  require that in coming mask \"was_empty\"\n   b) MPOL_{BIND|INTERLEAVE}:  require that contextualized nodemask\n      contains at least one node.\n   c) add a case for MPOL_PREFERRED:  if in coming was not empty\n      and resulting mask IS empty, user specified invalid nodes.\n      Return EINVAL.\n   c) remove the now redundant check for memoryless nodes\n\n3) remove the now redundant masking of policy nodes for interleave\n   policy from mpol_new().\n\n4) Now that mpol_check_policy() contextualizes the nodemask, remove\n   the in-line nodes_and() from sys_mbind().  I believe that this\n   restores mbind() to the behavior before the memoryless-nodes\n   patch series.  E.g., we\u0027ll no longer treat an invalid nodemask\n   with MPOL_PREFERRED as local allocation.\n\n[ Patch history:\n\n  v1 -\u003e v2:\n   - Communicate whether or not incoming node mask was empty to\n     mpol_check_policy() for better error checking.\n   - As suggested by David Rientjes, remove the now unused\n     cpuset_nodes_subset_current_mems_allowed() from cpuset.h\n\n  v2 -\u003e v3:\n   - As suggested by Kosaki Motohito, fold the \"contextualization\"\n     of policy nodemask into mpol_check_policy().  Looks a little\n     cleaner. ]\n\nSigned-off-by:  Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nSigned-off-by:  KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nTested-by:      KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nAcked-by:       David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "900cf086fd2fbad07f72f4575449e0d0958f860f",
      "tree": "9d48ca4463111c074ea8688fd8041115387156e1",
      "parents": [
        "b1292b17dc03fcd90f3301974cea1b7c61371ba5"
      ],
      "author": {
        "name": "Jonathan Corbet",
        "email": "corbet@lwn.net",
        "time": "Mon Feb 11 16:17:33 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Feb 11 20:44:44 2008 -0800"
      },
      "message": "Be more robust about bad arguments in get_user_pages()\n\nSo I spent a while pounding my head against my monitor trying to figure\nout the vmsplice() vulnerability - how could a failure to check for\n*read* access turn into a root exploit? It turns out that it\u0027s a buffer\noverflow problem which is made easy by the way get_user_pages() is\ncoded.\n\nIn particular, \"len\" is a signed int, and it is only checked at the\n*end* of a do {} while() loop.  So, if it is passed in as zero, the loop\nwill execute once and decrement len to -1.  At that point, the loop will\nproceed until the next invalid address is found; in the process, it will\nlikely overflow the pages array passed in to get_user_pages().\n\nI think that, if get_user_pages() has been asked to grab zero pages,\nthat\u0027s what it should do.  Thus this patch; it is, among other things,\nenough to block the (already fixed) root exploit and any others which\nmight be lurking in similar code.  I also think that the number of pages\nshould be unsigned, but changing the prototype of this function probably\nrequires some more careful review.\n\nSigned-off-by: Jonathan Corbet \u003ccorbet@lwn.net\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "60c12b1202a60eabb1c61317e5d2678fcea9893f",
      "tree": "143e5bdbd10d32832fce9183500deebad6c6e4db",
      "parents": [
        "6966a97753854c8b5336cf3997d5d1d205d91b12"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Sat Feb 09 00:10:15 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Sat Feb 09 11:08:33 2008 -0800"
      },
      "message": "memcontrol: add vm_match_cgroup()\n\nmm_cgroup() is exclusively used to test whether an mm\u0027s mem_cgroup pointer\nis pointing to a specific cgroup.  Instead of returning the pointer, we can\njust do the test itself in a new macro:\n\n\tvm_match_cgroup(mm, cgroup)\n\nreturns non-zero if the mm\u0027s mem_cgroup points to cgroup.  Otherwise it\nreturns zero.\n\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Adrian Bunk \u003cbunk@stusta.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b1d0e4f535e10775cffde922208b49629169aeaa",
      "tree": "c5fa68fb25ffd2485da5de236fcf2b67d9df3dfd",
      "parents": [
        "6a306e8b4c81a1c1f538e390d92bfe80d04b254c"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Sat Feb 09 01:15:19 2008 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 18:57:39 2008 -0800"
      },
      "message": "mm: special mapping nopage\n\nConvert special mapping install from nopage to fault.\n\nBecause the \"vm_file\" is NULL for the special mapping, the generic VM\ncode has messed up \"vm_pgoff\" thinking that it\u0027s an anonymous mapping\nand the offset does\u0027t matter.  For that reason, we need to undo the\nvm_pgoff offset that got added into vmf-\u003epgoff.\n\n[ We _really_ should clean that up - either by making this whole special\n  mapping code just use a real file entry rather than that ugly array of\n  \"struct page\" pointers, or by just making the VM code realize that\n  even if vm_file is NULL it may not be a regular anonymous mmap.\n\t\t\t\t\t\t\t - Linus ]\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: linux-mm@kvack.org\nCc: linux-kernel@vger.kernel.org\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2f569afd9ced9ebec9a6eb3dbf6f83429be0a7b4",
      "tree": "23a31763887d9505e62e9d7cc8ec2fa4b86bd380",
      "parents": [
        "13214adf738abc92b0a00c0763fd3be79eebaa7c"
      ],
      "author": {
        "name": "Martin Schwidefsky",
        "email": "schwidefsky@de.ibm.com",
        "time": "Fri Feb 08 04:22:04 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:42 2008 -0800"
      },
      "message": "CONFIG_HIGHPTE vs. sub-page page tables.\n\nBackground: I\u0027ve implemented 1K/2K page tables for s390.  These sub-page\npage tables are required to properly support the s390 virtualization\ninstruction with KVM.  The SIE instruction requires that the page tables\nhave 256 page table entries (pte) followed by 256 page status table entries\n(pgste).  The pgstes are only required if the process is using the SIE\ninstruction.  The pgstes are updated by the hardware and by the hypervisor\nfor a number of reasons, one of them is dirty and reference bit tracking.\nTo avoid wasting memory the standard pte table allocation should return\n1K/2K (31/64 bit) and 2K/4K if the process is using SIE.\n\nProblem: Page size on s390 is 4K, page table size is 1K or 2K.  That means\nthe s390 version for pte_alloc_one cannot return a pointer to a struct\npage.  Trouble is that with the CONFIG_HIGHPTE feature on x86 pte_alloc_one\ncannot return a pointer to a pte either, since that would require more than\n32 bit for the return value of pte_alloc_one (and the pte * would not be\naccessible since its not kmapped).\n\nSolution: The only solution I found to this dilemma is a new typedef: a\npgtable_t.  For s390 pgtable_t will be a (pte *) - to be introduced with a\nlater patch.  For everybody else it will be a (struct page *).  The\nadditional problem with the initialization of the ptl lock and the\nNR_PAGETABLE accounting is solved with a constructor pgtable_page_ctor and\na destructor pgtable_page_dtor.  The page table allocation and free\nfunctions need to call these two whenever a page table page is allocated or\nfreed.  pmd_populate will get a pgtable_t instead of a struct page pointer.\n To get the pgtable_t back from a pmd entry that has been installed with\npmd_populate a new function pmd_pgtable is added.  It replaces the pmd_page\ncall in free_pte_range and apply_to_pte_range.\n\nSigned-off-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: \u003clinux-arch@vger.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": "b76db735407a26c1036fdfef249ddc35eb969bc4",
      "tree": "02a9eb85b34765bc1eb82d632b1913ce79b8a6d6",
      "parents": [
        "680d794babebc74484c141448baa9b95b211cf5e"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Fri Feb 08 04:21:49 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:41 2008 -0800"
      },
      "message": "mount-options-fix-tmpfs-fix\n\nDocumentation/SubmitCheckist, please.\n\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: Miklos Szeredi \u003cmszeredi@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": "680d794babebc74484c141448baa9b95b211cf5e",
      "tree": "fa8b9c085fceaed12b54ea20a8c04696c750053e",
      "parents": [
        "90d09e141bb23bf0df5e31c40fb3175c17e8bda2"
      ],
      "author": {
        "name": "akpm@linux-foundation.org",
        "email": "akpm@linux-foundation.org",
        "time": "Fri Feb 08 04:21:48 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:41 2008 -0800"
      },
      "message": "mount options: fix tmpfs\n\nAdd .show_options super operation to tmpfs.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Miklos Szeredi \u003cmszeredi@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": "36e789144267105e0b3f2b9bca7db3184fce50dc",
      "tree": "cff6b92b2d54cf5e88db3f0fd71071a6b80b06f5",
      "parents": [
        "7437a51b30743ff1488981a393fc9e67894bf757"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Fri Feb 08 04:21:24 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:39 2008 -0800"
      },
      "message": "kill do_generic_mapping_read\n\ndo_generic_mapping_read was used by gfs2 for internals reads, but this use\nof the interface was rather suboptimal (as was the whole interface) and has\nbeen replaced by an internal helper now.  This patch kills\ndo_generic_mapping_read and surrounding damage in preparation of additional\ncleanups for the buffered read path.\n\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": "2004dc8eec1b4f0692b3be87ea80c70faa44d619",
      "tree": "9458abfdecf29c08a33cccb845eb273c70ad49c5",
      "parents": [
        "476aed3870b26735c4fcfdaa95420fa9e1de5119"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri Feb 08 04:20:11 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:32 2008 -0800"
      },
      "message": "Use pgoff_t instead of unsigned long\n\nConvert variables containing page indexes to pgoff_t.\n\nSigned-off-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": "edde08f2a8f13a648ab6d26f33e88d0c6146f3d1",
      "tree": "16c0580449068472b7cb2ab3093fda3cc19f18b0",
      "parents": [
        "144b2a91468bdc0d4fa64b220c152fb58b8ffe05"
      ],
      "author": {
        "name": "Harvey Harrison",
        "email": "harvey.harrison@gmail.com",
        "time": "Fri Feb 08 04:19:57 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:31 2008 -0800"
      },
      "message": "misc: removal of final callers using fastcall\n\nSigned-off-by: Harvey Harrison \u003charvey.harrison@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a3d0c6aa1bb342b9b2c7b123b52ac2f48a4d4d0a",
      "tree": "0c6766dd2add1f08c6153769c655e46ddff82a42",
      "parents": [
        "ac74c00e499ed276a965e5b5600667d5dc04a84a"
      ],
      "author": {
        "name": "Nishanth Aravamudan",
        "email": "nacc@us.ibm.com",
        "time": "Fri Feb 08 04:18:18 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:23 2008 -0800"
      },
      "message": "hugetlb: add locking for overcommit sysctl\n\nWhen I replaced hugetlb_dynamic_pool with nr_overcommit_hugepages I used\nproc_doulongvec_minmax() directly.  However, hugetlb.c\u0027s locking rules\nrequire that all counter modifications occur under the hugetlb_lock.  Add a\ncallback into the hugetlb code similar to the one for nr_hugepages.  Grab\nthe lock around the manipulation of nr_overcommit_hugepages in\nproc_doulongvec_minmax().\n\nSigned-off-by: Nishanth Aravamudan \u003cnacc@us.ibm.com\u003e\nAcked-by: Adam Litke \u003cagl@us.ibm.com\u003e\nCc: David Gibson \u003cdavid@gibson.dropbear.id.au\u003e\nCc: William Lee Irwin III \u003cwli@holomorphy.com\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3adbefee6fd58a061b2bf1df4f3769701860fc62",
      "tree": "846b65d2aedbdeabece8e661761960e54bc11f6c",
      "parents": [
        "a76d354629ea46c449705970a2c0b9e9090d6f03"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Feb 05 17:57:39 2008 -0800"
      },
      "committer": {
        "name": "Christoph Lameter",
        "email": "christoph@stapp.engr.sgi.com",
        "time": "Thu Feb 07 17:52:39 2008 -0800"
      },
      "message": "SLUB: fix checkpatch warnings\n\nfix checkpatch --file mm/slub.c errors and warnings.\n\n $ q-code-quality-compare\n                                      errors   lines of code   errors/KLOC\n mm/slub.c      [before]                  22            4204           5.2\n mm/slub.c      [after]                    0            4210             0\n\nno code changed:\n\n    text    data     bss     dec     hex filename\n   22195    8634     136   30965    78f5 slub.o.before\n   22195    8634     136   30965    78f5 slub.o.after\n\n   md5:\n     93cdfbec2d6450622163c590e1064358  slub.o.before.asm\n     93cdfbec2d6450622163c590e1064358  slub.o.after.asm\n\n[clameter: rediffed against Pekka\u0027s cleanup patch, omitted\nmoves of the name of a function to the start of line]\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\n"
    },
    {
      "commit": "a76d354629ea46c449705970a2c0b9e9090d6f03",
      "tree": "b2e1b9db59125e9e9a7866a8aff58165ac2ea1fd",
      "parents": [
        "8ff12cfc009a2a38d87fa7058226fe197bb2696f"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "nickpiggin@yahoo.com.au",
        "time": "Mon Jan 07 23:20:27 2008 -0800"
      },
      "committer": {
        "name": "Christoph Lameter",
        "email": "christoph@stapp.engr.sgi.com",
        "time": "Thu Feb 07 17:47:42 2008 -0800"
      },
      "message": "Use non atomic unlock\n\nSlub can use the non-atomic version to unlock because other flags will not\nget modified with the lock held.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nAcked-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8ff12cfc009a2a38d87fa7058226fe197bb2696f",
      "tree": "1358ed247d3c897d8790342a978dd5078354a207",
      "parents": [
        "1f84260c8ce3b1ce26d4c1d6dedc2f33a3a29c0c"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Thu Feb 07 17:47:41 2008 -0800"
      },
      "committer": {
        "name": "Christoph Lameter",
        "email": "christoph@stapp.engr.sgi.com",
        "time": "Thu Feb 07 17:47:41 2008 -0800"
      },
      "message": "SLUB: Support for performance statistics\n\nThe statistics provided here allow the monitoring of allocator behavior but\nat the cost of some (minimal) loss of performance. Counters are placed in\nSLUB\u0027s per cpu data structure. The per cpu structure may be extended by the\nstatistics to grow larger than one cacheline which will increase the cache\nfootprint of SLUB.\n\nThere is a compile option to enable/disable the inclusion of the runtime\nstatistics and its off by default.\n\nThe slabinfo tool is enhanced to support these statistics via two options:\n\n-D \tSwitches the line of information displayed for a slab from size\n\tmode to activity mode.\n\n-A\tSorts the slabs displayed by activity. This allows the display of\n\tthe slabs most important to the performance of a certain load.\n\n-r\tReport option will report detailed statistics on\n\nExample (tbench load):\n\nslabinfo -AD\t\t-\u003eShows the most active slabs\n\nName                   Objects    Alloc     Free   %Fast\nskbuff_fclone_cache         33 111953835 111953835  99  99\n:0000192                  2666  5283688  5281047  99  99\n:0001024                   849  5247230  5246389  83  83\nvm_area_struct            1349   119642   118355  91  22\n:0004096                    15    66753    66751  98  98\n:0000064                  2067    25297    23383  98  78\ndentry                   10259    28635    18464  91  45\n:0000080                 11004    18950     8089  98  98\n:0000096                  1703    12358    10784  99  98\n:0000128                   762    10582     9875  94  18\n:0000512                   184     9807     9647  95  81\n:0002048                   479     9669     9195  83  65\nanon_vma                   777     9461     9002  99  71\nkmalloc-8                 6492     9981     5624  99  97\n:0000768                   258     7174     6931  58  15\n\nSo the skbuff_fclone_cache is of highest importance for the tbench load.\nPretty high load on the 192 sized slab. Look for the aliases\n\nslabinfo -a | grep 000192\n:0000192     \u003c- xfs_btree_cur filp kmalloc-192 uid_cache tw_sock_TCP\n\trequest_sock_TCPv6 tw_sock_TCPv6 skbuff_head_cache xfs_ili\n\nLikely skbuff_head_cache.\n\n\nLooking into the statistics of the skbuff_fclone_cache is possible through\n\nslabinfo skbuff_fclone_cache\t-\u003e-r option implied if cache name is mentioned\n\n\n.... Usual output ...\n\nSlab Perf Counter       Alloc     Free %Al %Fr\n--------------------------------------------------\nFastpath             111953360 111946981  99  99\nSlowpath                 1044     7423   0   0\nPage Alloc                272      264   0   0\nAdd partial                25      325   0   0\nRemove partial             86      264   0   0\nRemoteObj/SlabFrozen      350     4832   0   0\nTotal                111954404 111954404\n\nFlushes       49 Refill        0\nDeactivate Full\u003d325(92%) Empty\u003d0(0%) ToHead\u003d24(6%) ToTail\u003d1(0%)\n\nLooks good because the fastpath is overwhelmingly taken.\n\n\nskbuff_head_cache:\n\nSlab Perf Counter       Alloc     Free %Al %Fr\n--------------------------------------------------\nFastpath              5297262  5259882  99  99\nSlowpath                 4477    39586   0   0\nPage Alloc                937      824   0   0\nAdd partial                 0     2515   0   0\nRemove partial           1691      824   0   0\nRemoteObj/SlabFrozen     2621     9684   0   0\nTotal                 5301739  5299468\n\nDeactivate Full\u003d2620(100%) Empty\u003d0(0%) ToHead\u003d0(0%) ToTail\u003d0(0%)\n\n\nDescriptions of the output:\n\nTotal:\t\tThe total number of allocation and frees that occurred for a\n\t\tslab\n\nFastpath:\tThe number of allocations/frees that used the fastpath.\n\nSlowpath:\tOther allocations\n\nPage Alloc:\tNumber of calls to the page allocator as a result of slowpath\n\t\tprocessing\n\nAdd Partial:\tNumber of slabs added to the partial list through free or\n\t\talloc (occurs during cpuslab flushes)\n\nRemove Partial:\tNumber of slabs removed from the partial list as a result of\n\t\tallocations retrieving a partial slab or by a free freeing\n\t\tthe last object of a slab.\n\nRemoteObj/Froz:\tHow many times were remotely freed object encountered when a\n\t\tslab was about to be deactivated. Frozen: How many times was\n\t\tfree able to skip list processing because the slab was in use\n\t\tas the cpuslab of another processor.\n\nFlushes:\tNumber of times the cpuslab was flushed on request\n\t\t(kmem_cache_shrink, may result from races in __slab_alloc)\n\nRefill:\t\tNumber of times we were able to refill the cpuslab from\n\t\tremotely freed objects for the same slab.\n\nDeactivate:\tStatistics how slabs were deactivated. Shows how they were\n\t\tput onto the partial list.\n\nIn general fastpath is very good. Slowpath without partial list processing is\nalso desirable. Any touching of partial list uses node specific locks which\nmay potentially cause list lock contention.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\n\n"
    },
    {
      "commit": "1f84260c8ce3b1ce26d4c1d6dedc2f33a3a29c0c",
      "tree": "d57e305168291f1b0f5f2d42853d2c2419f4140b",
      "parents": [
        "683d0baad3d6e18134927f8c28ee804dbe10fe71"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Mon Jan 07 23:20:30 2008 -0800"
      },
      "committer": {
        "name": "Christoph Lameter",
        "email": "christoph@stapp.engr.sgi.com",
        "time": "Thu Feb 07 17:47:41 2008 -0800"
      },
      "message": "SLUB: Alternate fast paths using cmpxchg_local\n\nProvide an alternate implementation of the SLUB fast paths for alloc\nand free using cmpxchg_local. The cmpxchg_local fast path is selected\nfor arches that have CONFIG_FAST_CMPXCHG_LOCAL set. An arch should only\nset CONFIG_FAST_CMPXCHG_LOCAL if the cmpxchg_local is faster than an\ninterrupt enable/disable sequence. This is known to be true for both\nx86 platforms so set FAST_CMPXCHG_LOCAL for both arches.\n\nCurrently another requirement for the fastpath is that the kernel is\ncompiled without preemption. The restriction will go away with the\nintroduction of a new per cpu allocator and new per cpu operations.\n\nThe advantages of a cmpxchg_local based fast path are:\n\n1. Potentially lower cycle count (30%-60% faster)\n\n2. There is no need to disable and enable interrupts on the fast path.\n   Currently interrupts have to be disabled and enabled on every\n   slab operation. This is likely avoiding a significant percentage\n   of interrupt off / on sequences in the kernel.\n\n3. The disposal of freed slabs can occur with interrupts enabled.\n\nThe alternate path is realized using #ifdef\u0027s. Several attempts to do the\nsame with macros and inline functions resulted in a mess (in particular due\nto the strange way that local_interrupt_save() handles its argument and due\nto the need to define macros/functions that sometimes disable interrupts\nand sometimes do something else).\n\n[clameter: Stripped preempt bits and disabled fastpath if preempt is enabled]\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nReviewed-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: \u003clinux-arch@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\n"
    },
    {
      "commit": "683d0baad3d6e18134927f8c28ee804dbe10fe71",
      "tree": "a1ef69f9cde406492b5deedc6874312cbeb3b357",
      "parents": [
        "5bb983b0cce9b7b281af15730f7019116dd42568"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Mon Jan 07 23:20:29 2008 -0800"
      },
      "committer": {
        "name": "Christoph Lameter",
        "email": "christoph@stapp.engr.sgi.com",
        "time": "Thu Feb 07 17:47:41 2008 -0800"
      },
      "message": "SLUB: Use unique end pointer for each slab page.\n\nWe use a NULL pointer on freelists to signal that there are no more objects.\nHowever the NULL pointers of all slabs match in contrast to the pointers to\nthe real objects which are in different ranges for different slab pages.\n\nChange the end pointer to be a pointer to the first object and set bit 0.\nEvery slab will then have a different end pointer. This is necessary to ensure\nthat end markers can be matched to the source slab during cmpxchg_local.\n\nBring back the use of the mapping field by SLUB since we would otherwise have\nto call a relatively expensive function page_address() in __slab_alloc().  Use\nof the mapping field allows avoiding a call to page_address() in various other\nfunctions as well.\n\nThere is no need to change the page_mapping() function since bit 0 is set on\nthe mapping as also for anonymous pages.  page_mapping(slab_page) will\ntherefore still return NULL although the mapping field is overloaded.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5bb983b0cce9b7b281af15730f7019116dd42568",
      "tree": "858d23397eaffb7023e50918bc0a9f785b79c962",
      "parents": [
        "0afc2edfada50980bec999f94dcea26ebad3dda6"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Thu Feb 07 17:47:41 2008 -0800"
      },
      "committer": {
        "name": "Christoph Lameter",
        "email": "christoph@stapp.engr.sgi.com",
        "time": "Thu Feb 07 17:47:41 2008 -0800"
      },
      "message": "SLUB: Deal with annoying gcc warning on kfree()\n\ngcc 4.2 spits out an annoying warning if one casts a const void *\npointer to a void * pointer. No warning is generated if the\nconversion is done through an assignment.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\n\n"
    },
    {
      "commit": "72a7fe3967dbf86cb34e24fbf1d957fe24d2f246",
      "tree": "c19f7d0b530577359840e959cce204939caf0649",
      "parents": [
        "25fad945a7f7ff2cf06e437381c6a1121784dbd9"
      ],
      "author": {
        "name": "Bernhard Walle",
        "email": "bwalle@suse.de",
        "time": "Thu Feb 07 00:15:17 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:25 2008 -0800"
      },
      "message": "Introduce flags for reserve_bootmem()\n\nThis patchset adds a flags variable to reserve_bootmem() and uses the\nBOOTMEM_EXCLUSIVE flag in crashkernel reservation code to detect collisions\nbetween crashkernel area and already used memory.\n\nThis patch:\n\nChange the reserve_bootmem() function to accept a new flag BOOTMEM_EXCLUSIVE.\nIf that flag is set, the function returns with -EBUSY if the memory already\nhas been reserved in the past.  This is to avoid conflicts.\n\nBecause that code runs before SMP initialisation, there\u0027s no race condition\ninside reserve_bootmem_core().\n\n[akpm@linux-foundation.org: coding-style fixes]\n[akpm@linux-foundation.org: fix powerpc build]\nSigned-off-by: Bernhard Walle \u003cbwalle@suse.de\u003e\nCc: \u003clinux-arch@vger.kernel.org\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Vivek Goyal \u003cvgoyal@in.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3c541e14bfa553133c3473a6ed3e4c0583ea2285",
      "tree": "4e8ca5d7272803d3fe1bb06963b132248d0b4240",
      "parents": [
        "072c56c13e1302fcdc39961dc64e76485731ad67"
      ],
      "author": {
        "name": "Balbir Singh",
        "email": "balbir@linux.vnet.ibm.com",
        "time": "Thu Feb 07 00:14:41 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:22 2008 -0800"
      },
      "message": "Memory controller remove control_type feature\n\nBased on the discussion at http://lkml.org/lkml/2007/12/20/383, it was felt\nthat control_type might not be a good thing to implement right away.  We\ncan add this flexibility at a later point when required.\n\nSigned-off-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\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": "072c56c13e1302fcdc39961dc64e76485731ad67",
      "tree": "934896fdd8aeaa72cb93cb3be2c816a2ac0f0ae7",
      "parents": [
        "1ecaab2bd221251a3fd148abb08e8b877f1e93c8"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Thu Feb 07 00:14:39 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:22 2008 -0800"
      },
      "message": "per-zone and reclaim enhancements for memory controller: per-zone-lock for cgroup\n\nNow, lru is per-zone.\n\nThen, lru_lock can be (should be) per-zone, too.\nThis patch implementes per-zone lru lock.\n\nlru_lock is placed into mem_cgroup_per_zone struct.\n\nlock can be accessed by\n   mz \u003d mem_cgroup_zoneinfo(mem_cgroup, node, zone);\n   \u0026mz-\u003elru_lock\n\n   or\n   mz \u003d page_cgroup_zoneinfo(page_cgroup);\n   \u0026mz-\u003elru_lock\n\nSigned-off-by: KAMEZAWA hiroyuki \u003ckmaezawa.hiroyu@jp.fujitsu.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nCc: Kirill Korotaev \u003cdev@sw.ru\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Pavel Emelianov \u003cxemul@openvz.org\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Vaidyanathan Srinivasan \u003csvaidy@linux.vnet.ibm.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1ecaab2bd221251a3fd148abb08e8b877f1e93c8",
      "tree": "e5ce53b4d045832382ec38555b2a03749cc9d128",
      "parents": [
        "1cfb419b394ba82745c54ff05436d598ecc2dbd5"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Thu Feb 07 00:14:38 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:22 2008 -0800"
      },
      "message": "per-zone and reclaim enhancements for memory controller: per zone lru for cgroup\n\nThis patch implements per-zone lru for memory cgroup.\nThis patch makes use of mem_cgroup_per_zone struct for per zone lru.\n\nLRU can be accessed by\n\n   mz \u003d mem_cgroup_zoneinfo(mem_cgroup, node, zone);\n   \u0026mz-\u003eactive_list\n   \u0026mz-\u003einactive_list\n\n   or\n   mz \u003d page_cgroup_zoneinfo(page_cgroup);\n   \u0026mz-\u003eactive_list\n   \u0026mz-\u003einactive_list\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nCc: Kirill Korotaev \u003cdev@sw.ru\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Pavel Emelianov \u003cxemul@openvz.org\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Vaidyanathan Srinivasan \u003csvaidy@linux.vnet.ibm.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1cfb419b394ba82745c54ff05436d598ecc2dbd5",
      "tree": "33624176aff8f3a09f572c0fa3d699dbacdb447d",
      "parents": [
        "cc38108e1ba7f3b9e12b82d0236fa3730c2e0439"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Thu Feb 07 00:14:37 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:22 2008 -0800"
      },
      "message": "per-zone and reclaim enhancements for memory controller: modifies vmscan.c for isolate globa/cgroup lru activity\n\nWhen using memory controller, there are 2 levels of memory reclaim.\n 1. zone memory reclaim because of system/zone memory shortage.\n 2. memory cgroup memory reclaim because of hitting limit.\n\nThese two can be distinguished by sc-\u003emem_cgroup parameter.\n(scan_global_lru() macro)\n\nThis patch tries to make memory cgroup reclaim routine avoid affecting\nsystem/zone memory reclaim. This patch inserts if (scan_global_lru()) and\nhook to memory_cgroup reclaim support functions.\n\nThis patch can be a help for isolating system lru activity and group lru\nactivity and shows what additional functions are necessary.\n\n * mem_cgroup_calc_mapped_ratio() ... calculate mapped ratio for cgroup.\n * mem_cgroup_reclaim_imbalance() ... calculate active/inactive balance in\n                                        cgroup.\n * mem_cgroup_calc_reclaim_active() ... calculate the number of active pages to\n                                be scanned in this priority in mem_cgroup.\n\n * mem_cgroup_calc_reclaim_inactive() ... calculate the number of inactive pages\n                                to be scanned in this priority in mem_cgroup.\n\n * mem_cgroup_all_unreclaimable() .. checks cgroup\u0027s page is all unreclaimable\n                                     or not.\n * mem_cgroup_get_reclaim_priority() ...\n * mem_cgroup_note_reclaim_priority() ... record reclaim priority (temporal)\n * mem_cgroup_remember_reclaim_priority()\n                             .... record reclaim priority as\n                                  zone-\u003eprev_priority.\n                                  This value is used for calc reclaim_mapped.\n\n[akpm@linux-foundation.org: fix unused var warning]\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nCc: Kirill Korotaev \u003cdev@sw.ru\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Pavel Emelianov \u003cxemul@openvz.org\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Vaidyanathan Srinivasan \u003csvaidy@linux.vnet.ibm.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "cc38108e1ba7f3b9e12b82d0236fa3730c2e0439",
      "tree": "6e51d191006b5db840c1eee659c372a2de7f85a8",
      "parents": [
        "6c48a1d040a9a9eaa4acdd7d4cb3885e04bf8413"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Thu Feb 07 00:14:35 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:22 2008 -0800"
      },
      "message": "per-zone and reclaim enhancements for memory controller: calculate the number of pages to be scanned per cgroup\n\nDefine function for calculating the number of scan target on each Zone/LRU.\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nCc: Kirill Korotaev \u003cdev@sw.ru\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Pavel Emelianov \u003cxemul@openvz.org\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Vaidyanathan Srinivasan \u003csvaidy@linux.vnet.ibm.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6c48a1d040a9a9eaa4acdd7d4cb3885e04bf8413",
      "tree": "2fcfb405b5664028d337a8a185c696c9c1f23e64",
      "parents": [
        "5932f3671bb2dd873c5ac443cbf5dc2cd167ae94"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Thu Feb 07 00:14:34 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:22 2008 -0800"
      },
      "message": "per-zone and reclaim enhancements for memory controller: remember reclaim priority in memory cgroup\n\nFunctions to remember reclaim priority per cgroup (as zone-\u003eprev_priority)\n\n[akpm@linux-foundation.org: build fixes]\n[akpm@linux-foundation.org: more build fixes]\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nCc: Kirill Korotaev \u003cdev@sw.ru\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Pavel Emelianov \u003cxemul@openvz.org\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Vaidyanathan Srinivasan \u003csvaidy@linux.vnet.ibm.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5932f3671bb2dd873c5ac443cbf5dc2cd167ae94",
      "tree": "31e2a8fc80487b5ec80d7730c61b62127aebc15d",
      "parents": [
        "58ae83db2a40dea15d4277d499a11dadc823c388"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Thu Feb 07 00:14:33 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:21 2008 -0800"
      },
      "message": "per-zone and reclaim enhancements for memory controller: calculate active/inactive imbalance per cgroup\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nCc: Kirill Korotaev \u003cdev@sw.ru\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Pavel Emelianov \u003cxemul@openvz.org\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Vaidyanathan Srinivasan \u003csvaidy@linux.vnet.ibm.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "58ae83db2a40dea15d4277d499a11dadc823c388",
      "tree": "18e43609ab67a9577c01188d39714999d5ed03d0",
      "parents": [
        "6d12e2d8ddbe653d80ea4f71578481c1bc933025"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Thu Feb 07 00:14:32 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:21 2008 -0800"
      },
      "message": "per-zone and reclaim enhancements for memory controller: calculate mapper_ratio per cgroup\n\nDefine function for calculating mapped_ratio in memory cgroup.\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nCc: Kirill Korotaev \u003cdev@sw.ru\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Pavel Emelianov \u003cxemul@openvz.org\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Vaidyanathan Srinivasan \u003csvaidy@linux.vnet.ibm.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6d12e2d8ddbe653d80ea4f71578481c1bc933025",
      "tree": "f175cdcadd8566b8f8a2e6a155b33e531eba7f11",
      "parents": [
        "c0149530d0bb356c933a09f3c8103ea02f452d8a"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Thu Feb 07 00:14:31 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:21 2008 -0800"
      },
      "message": "per-zone and reclaim enhancements for memory controller: per-zone active inactive counter\n\nThis patch adds per-zone status in memory cgroup.  These values are often read\n(as per-zone value) by page reclaiming.\n\nIn current design, per-zone stat is just a unsigned long value and not an\natomic value because they are modified only under lru_lock.  (So, atomic_ops\nis not necessary.)\n\nThis patch adds ACTIVE and INACTIVE per-zone status values.\n\nFor handling per-zone status, this patch adds\n  struct mem_cgroup_per_zone {\n\t\t...\n  }\nand some helper functions. This will be useful to add per-zone objects\nin mem_cgroup.\n\nThis patch turns memory controller\u0027s early_init to be 0 for calling\nkmalloc() in initialization.\n\nAcked-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nCc: Kirill Korotaev \u003cdev@sw.ru\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Pavel Emelianov \u003cxemul@openvz.org\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Vaidyanathan Srinivasan \u003csvaidy@linux.vnet.ibm.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c0149530d0bb356c933a09f3c8103ea02f452d8a",
      "tree": "84f378ab7209bac903d49fe4e0807537c609697c",
      "parents": [
        "91a45470f7ddc322073752e711a2e8dcbc339e6f"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Thu Feb 07 00:14:30 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:21 2008 -0800"
      },
      "message": "per-zone and reclaim enhancements for memory controller: nid/zid helper function for cgroup\n\nAdd macro to get node_id and zone_id of page_cgroup.  Will be used in\nper-zone-xxx patches and others.\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nCc: Kirill Korotaev \u003cdev@sw.ru\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Pavel Emelianov \u003cxemul@openvz.org\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Vaidyanathan Srinivasan \u003csvaidy@linux.vnet.ibm.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "91a45470f7ddc322073752e711a2e8dcbc339e6f",
      "tree": "187e912a1245adf692600d4fd32d33ded15e671d",
      "parents": [
        "df878fb04dea044378274d40d063279a9cb787fb"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Thu Feb 07 00:14:29 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:21 2008 -0800"
      },
      "message": "per-zone and reclaim enhancements for memory controller: add scan_global_lru macro\n\nThis is used to detect which scan_control scans global lru or mem_cgroup lru.\nAnd compiled to be static value (1) when memory controller is not configured.\nThis may make the meaning obvious.\n\nAcked-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nCc: Kirill Korotaev \u003cdev@sw.ru\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Pavel Emelianov \u003cxemul@openvz.org\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Vaidyanathan Srinivasan \u003csvaidy@linux.vnet.ibm.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "df878fb04dea044378274d40d063279a9cb787fb",
      "tree": "ba2246475af5c84b9968182b6b8212348671ddef",
      "parents": [
        "4fca88c87b7969c698912e2de9b1b31088c777cb"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Thu Feb 07 00:14:28 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:20 2008 -0800"
      },
      "message": "memory cgroup enhancements: implicit force_empty() at rmdir\n\nAdd pre_destroy handler for mem_cgroup and try to make mem_cgroup empty at\nrmdir().\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nCc: Kirill Korotaev \u003cdev@sw.ru\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Pavel Emelianov \u003cxemul@openvz.org\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Vaidyanathan Srinivasan \u003csvaidy@linux.vnet.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d2ceb9b7ddedbb2e8e590bc6ce33c854043016f9",
      "tree": "1c75e7947a86c6891bae16129086f4b0d10abc33",
      "parents": [
        "d52aa412d43827033a8e2ce4415ef6e8f8d53635"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Thu Feb 07 00:14:25 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:20 2008 -0800"
      },
      "message": "memory cgroup enhancements: add memory.stat file\n\nShow accounted information of memory cgroup by memory.stat file\n\n[akpm@linux-foundation.org: coding-style fixes]\n[akpm@linux-foundation.org: fix printk warning]\nSigned-off-by: YAMAMOTO Takashi \u003cyamamoto@valinux.co.jp\u003e\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: Pavel Emelianov \u003cxemul@openvz.org\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Kirill Korotaev \u003cdev@sw.ru\u003e\nCc: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Vaidyanathan Srinivasan \u003csvaidy@linux.vnet.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d52aa412d43827033a8e2ce4415ef6e8f8d53635",
      "tree": "24d446d16a2acf33c612ebf8856529607632bf37",
      "parents": [
        "3564c7c45156b358efe921ab2e4e516dad92c94c"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Thu Feb 07 00:14:24 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:20 2008 -0800"
      },
      "message": "memory cgroup enhancements: add status accounting function for memory cgroup\n\nAdd statistics account infrastructure for memory controller.  All account\ninformation is stored per-cpu and caller will not have to take lock or use\natomic ops.  This will be used by memory.stat file later.\n\nCACHE includes swapcache now. I\u0027d like to divide it to\nPAGECACHE and SWAPCACHE later.\n\nThis patch adds 3 functions for accounting.\n * __mem_cgroup_stat_add() ... for usual routine.\n * __mem_cgroup_stat_add_safe ... for calling under irq_disabled section.\n * mem_cgroup_read_stat() ... for reading stat value.\n * renamed PAGECACHE to CACHE (because it may include swapcache *now*)\n\n[akpm@linux-foundation.org: coding-style fixes]\n[akpm@linux-foundation.org: fix smp_processor_id-in-preemptible]\n[akpm@linux-foundation.org: uninline things]\n[akpm@linux-foundation.org: remove dead code]\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: YAMAMOTO Takashi \u003cyamamoto@valinux.co.jp\u003e\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: Pavel Emelianov \u003cxemul@openvz.org\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Kirill Korotaev \u003cdev@sw.ru\u003e\nCc: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Vaidyanathan Srinivasan \u003csvaidy@linux.vnet.ibm.com\u003e\nCc: Kirill Korotaev \u003cdev@sw.ru\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Pavel Emelianov \u003cxemul@openvz.org\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Vaidyanathan Srinivasan \u003csvaidy@linux.vnet.ibm.com\u003e\nCc: YAMAMOTO Takashi \u003cyamamoto@valinux.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": "3564c7c45156b358efe921ab2e4e516dad92c94c",
      "tree": "112cf3f5ed5d723620a1ec736f3516d83b4630ac",
      "parents": [
        "82369553d6d3bc67c54129a02e0bc0b5b88f3045"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Thu Feb 07 00:14:23 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:20 2008 -0800"
      },
      "message": "memory cgroup enhancements: remember \"a page is on active list of cgroup or not\"\n\nRemember page_cgroup is on active_list or not in page_cgroup-\u003eflags.\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: YAMAMOTO Takashi \u003cyamamoto@valinux.co.jp\u003e\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: Pavel Emelianov \u003cxemul@openvz.org\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Kirill Korotaev \u003cdev@sw.ru\u003e\nCc: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Vaidyanathan Srinivasan \u003csvaidy@linux.vnet.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "82369553d6d3bc67c54129a02e0bc0b5b88f3045",
      "tree": "1d80a6cc9f5840550ad025b32ac8ef8fd915fd98",
      "parents": [
        "3be91277e754c7db04eae145ba622b3a3e3ad96d"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Thu Feb 07 00:14:22 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:20 2008 -0800"
      },
      "message": "memcgroup: fix hang with shmem/tmpfs\n\nThe memcgroup regime relies upon a cgroup reclaiming pages from itself within\nadd_to_page_cache: which may involve some waiting.  Whereas shmem and tmpfs\nrely upon using add_to_page_cache while holding a spinlock: when it cannot\nwait.  The consequence is that when a cgroup reaches its limit, shmem_getpage\njust hangs - unless there is outside memory pressure too, neither kswapd nor\nradix_tree_preload get it out of the retry loop.\n\nIn most cases we can mem_cgroup_cache_charge the page waitably first, to\nattach the page_cgroup in advance, so add_to_page_cache will do no more than\nincrement a count; then mem_cgroup_uncharge_page after (in both success and\nfailure cases) to balance the books again.\n\nAnd where there used to be a congestion_wait for kswapd (recently made\nredundant by radix_tree_preload), use mem_cgroup_cache_charge with NULL page\nto go through a cycle of allocation and freeing, without accounting to any\nparticular page, and without updating the statistics vector.  This brings the\ncgroup below its limit so the next try usually succeeds.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\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": "3be91277e754c7db04eae145ba622b3a3e3ad96d",
      "tree": "347aa7cd186ed87ba7585d63e6584c94fffc2fd6",
      "parents": [
        "ac44d354d5c9ced49b1165d6496f134501134219"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Thu Feb 07 00:14:19 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:20 2008 -0800"
      },
      "message": "memcgroup: tidy up mem_cgroup_charge_common\n\nTidy up mem_cgroup_charge_common before extending it.  Adjust some comments,\nbut mainly clean up its loop: I\u0027ve an aversion to loops full of continues,\nthen a break or a goto at the bottom.  And the is_atomic test should be on the\n__GFP_WAIT bit, not GFP_ATOMIC bits.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\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": "ac44d354d5c9ced49b1165d6496f134501134219",
      "tree": "be054e8e2d37739a33d94cc78db3fd65e73c3aff",
      "parents": [
        "217bc3194d57150549e9234e6ddfee30de28cc78"
      ],
      "author": {
        "name": "Balbir Singh",
        "email": "balbir@linux.vnet.ibm.com",
        "time": "Thu Feb 07 00:14:18 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:20 2008 -0800"
      },
      "message": "Memory controller use rcu_read_lock() in mem_cgroup_cache_charge()\n\nHugh Dickins noticed that we were using rcu_dereference() without\nrcu_read_lock() in the cache charging routine. The patch below fixes\nthis problem\n\nSigned-off-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.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": "217bc3194d57150549e9234e6ddfee30de28cc78",
      "tree": "1de36e60115164b9c3d86b176ce45989cafbc2f2",
      "parents": [
        "cc8475822f8a4b17e9b76e7fadb6b9a341860422"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Thu Feb 07 00:14:17 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:20 2008 -0800"
      },
      "message": "memory cgroup enhancements: remember \"a page is charged as page cache\"\n\nAdd a flag to page_cgroup to remember \"this page is\ncharged as cache.\"\ncache here includes page caches and swap cache.\nThis is useful for implementing precise accounting in memory cgroup.\nTODO:\n  distinguish page-cache and swap-cache\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: YAMAMOTO Takashi \u003cyamamoto@valinux.co.jp\u003e\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: Pavel Emelianov \u003cxemul@openvz.org\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Kirill Korotaev \u003cdev@sw.ru\u003e\nCc: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Vaidyanathan Srinivasan \u003csvaidy@linux.vnet.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "cc8475822f8a4b17e9b76e7fadb6b9a341860422",
      "tree": "b7e3ee9aba56ffaf93130786f3439cc43339e586",
      "parents": [
        "417eead30434b4bd09a54455e839cf9a62c05460"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Thu Feb 07 00:14:16 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:20 2008 -0800"
      },
      "message": "memory cgroup enhancements: force_empty interface for dropping all account in empty cgroup\n\nThis patch adds an interface \"memory.force_empty\".  Any write to this file\nwill drop all charges in this cgroup if there is no task under.\n\n%echo 1 \u003e /....../memory.force_empty\n\nwill drop all charges of memory cgroup if cgroup\u0027s tasks is empty.\n\nThis is useful to invoke rmdir() against memory cgroup successfully.\n\nTested and worked well on x86_64/fake-NUMA system.\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: Pavel Emelianov \u003cxemul@openvz.org\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Kirill Korotaev \u003cdev@sw.ru\u003e\nCc: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Vaidyanathan Srinivasan \u003csvaidy@linux.vnet.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "417eead30434b4bd09a54455e839cf9a62c05460",
      "tree": "138ed49bab9cf21579ffff98a9d428fbabe74fc8",
      "parents": [
        "fa1de9008c9bcce8ab5122529dd19b24c273eba2"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Thu Feb 07 00:14:14 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:20 2008 -0800"
      },
      "message": "memory cgroup enhancements: fix zone handling in try_to_free_mem_cgroup_page\n\nBecause NODE_DATA(node)-\u003enode_zonelists[] is guaranteed to contain all\nnecessary zones, it is not necessary to use for_each_online_node.\n\nAnd this for_each_online_node() makes reclaim routine start always\nfrom node 0. This is not good. This patch makes reclaim start from\ncaller\u0027s node and just use usual (default) zonelist order.\n\n[akpm@linux-foundation.org: fix warning]\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: Pavel Emelianov \u003cxemul@openvz.org\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Kirill Korotaev \u003cdev@sw.ru\u003e\nCc: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Vaidyanathan Srinivasan \u003csvaidy@linux.vnet.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "fa1de9008c9bcce8ab5122529dd19b24c273eba2",
      "tree": "5afd94b03265ae4d9173ef471b6d5a30ed6d4ff3",
      "parents": [
        "436c6541b13a73790646eb11429bdc8ee50eec41"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Thu Feb 07 00:14:13 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:20 2008 -0800"
      },
      "message": "memcgroup: revert swap_state mods\n\nIf we\u0027re charging rss and we\u0027re charging cache, it seems obvious that we\nshould be charging swapcache - as has been done.  But in practice that\ndoesn\u0027t work out so well: both swapin readahead and swapoff leave the\nmajority of pages charged to the wrong cgroup (the cgroup that happened to\nread them in, rather than the cgroup to which they belong).\n\n(Which is why unuse_pte\u0027s GFP_KERNEL while holding pte lock never showed up\nas a problem: no allocation was ever done there, every page read being\nalready charged to the cgroup which initiated the swapoff.)\n\nIt all works rather better if we leave the charging to do_swap_page and\nunuse_pte, and do nothing for swapcache itself: revert mm/swap_state.c to\nwhat it was before the memory-controller patches.  This also speeds up\nsignificantly a contained process working at its limit: because it no\nlonger needs to keep waiting for swap writeback to complete.\n\nIs it unfair that swap pages become uncharged once they\u0027re unmapped, even\nthough they\u0027re still clearly private to particular cgroups?  For a short\nwhile, yes; but PageReclaim arranges for those pages to go to the end of\nthe inactive list and be reclaimed soon if necessary.\n\nshmem/tmpfs pages are a distinct case: their charging also benefits from\nthis change, but their second life on the lists as swapcache pages may\nprove more unfair - that I need to check next.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: Pavel Emelianov \u003cxemul@openvz.org\u003e\nAcked-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Kirill Korotaev \u003cdev@sw.ru\u003e\nCc: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Vaidyanathan Srinivasan \u003csvaidy@linux.vnet.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "436c6541b13a73790646eb11429bdc8ee50eec41",
      "tree": "45be274e89e7b8db83a98eb3c07031d066e13b16",
      "parents": [
        "ff7283fa3a66823933991ad55a558a3a01d5ab27"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Thu Feb 07 00:14:12 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:20 2008 -0800"
      },
      "message": "memcgroup: fix zone isolation OOM\n\nmem_cgroup_charge_common shows a tendency to OOM without good reason, when\na memhog goes well beyond its rss limit but with plenty of swap available.\nSeen on x86 but not on PowerPC; seen when the next patch omits swapcache\nfrom memcgroup, but we presume it can happen without.\n\nmem_cgroup_isolate_pages is not quite satisfying reclaim\u0027s criteria for OOM\navoidance.  Already it has to scan beyond the nr_to_scan limit when it\nfinds a !LRU page or an active page when handling inactive or an inactive\npage when handling active.  It needs to do exactly the same when it finds a\npage from the wrong zone (the x86 tests had two zones, the PowerPC tests\nhad only one).\n\nDon\u0027t increment scan and then decrement it in these cases, just move the\nincrementation down.  Fix recent off-by-one when checking against\nnr_to_scan.  Cut out \"Check if the meta page went away from under us\",\npresumably left over from early debugging: no amount of such checks could\nsave us if this list really were being updated without locking.\n\nThis change does make the unlimited scan while holding two spinlocks\neven worse - bad for latency and bad for containment; but that\u0027s a\nseparate issue which is better left to be fixed a little later.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: Pavel Emelianov \u003cxemul@openvz.org\u003e\nAcked-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Kirill Korotaev \u003cdev@sw.ru\u003e\nCc: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Vaidyanathan Srinivasan \u003csvaidy@linux.vnet.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ff7283fa3a66823933991ad55a558a3a01d5ab27",
      "tree": "e183c588497ce9f18fea1589fa66b6a000e2cbb8",
      "parents": [
        "ae41be374293e70e1ed441d986afcc6e744ef9d9"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Thu Feb 07 00:14:11 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:20 2008 -0800"
      },
      "message": "bugfix for memory cgroup controller: avoid !PageLRU page in mem_cgroup_isolate_pages\n\nThis patch makes mem_cgroup_isolate_pages() to be\n\n  - ignore !PageLRU pages.\n  - fixes the bug that isolation makes no progress if page_zone(page) !\u003d zone\n    page once find. (just increment scan in this case.)\n\nkswapd and memory migration removes a page from list when it handles\na page for reclaiming/migration.\n\nBecause __isolate_lru_page() doesn\u0027t moves page !PageLRU pages, it will\nbe safe to avoid touching !PageLRU() page and its page_cgroup.\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: Pavel Emelianov \u003cxemul@openvz.org\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Kirill Korotaev \u003cdev@sw.ru\u003e\nCc: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Vaidyanathan Srinivasan \u003csvaidy@linux.vnet.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ae41be374293e70e1ed441d986afcc6e744ef9d9",
      "tree": "d8e2143820bbf3ed2f1f79ed99ee430284567b93",
      "parents": [
        "9175e0311ec9e6d1bf1f6dfecf9268baf08765e6"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Thu Feb 07 00:14:10 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:19 2008 -0800"
      },
      "message": "bugfix for memory cgroup controller: migration under memory controller fix\n\nWhile using memory control cgroup, page-migration under it works as following.\n\u003d\u003d\n 1. uncharge all refs at try to unmap.\n 2. charge regs again remove_migration_ptes()\n\u003d\u003d\nThis is simple but has following problems.\n\u003d\u003d\n The page is uncharged and charged back again if *mapped*.\n    - This means that cgroup before migration can be different from one after\n      migration\n    - If page is not mapped but charged as page cache, charge is just ignored\n      (because not mapped, it will not be uncharged before migration)\n      This is memory leak.\n\u003d\u003d\nThis patch tries to keep memory cgroup at page migration by increasing\none refcnt during it. 3 functions are added.\n\n mem_cgroup_prepare_migration() --- increase refcnt of page-\u003epage_cgroup\n mem_cgroup_end_migration()     --- decrease refcnt of page-\u003epage_cgroup\n mem_cgroup_page_migration() --- copy page-\u003epage_cgroup from old page to\n                                 new page.\n\nDuring migration\n  - old page is under PG_locked.\n  - new page is under PG_locked, too.\n  - both old page and new page is not on LRU.\n\nThese 3 facts guarantee that page_cgroup() migration has no race.\n\nTested and worked well in x86_64/fake-NUMA box.\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: Pavel Emelianov \u003cxemul@openvz.org\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Kirill Korotaev \u003cdev@sw.ru\u003e\nCc: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Vaidyanathan Srinivasan \u003csvaidy@linux.vnet.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9175e0311ec9e6d1bf1f6dfecf9268baf08765e6",
      "tree": "36ca9f47f8bc18345980270dc9d355f7c107cf6e",
      "parents": [
        "f1a9ee758de7de1e040de849fdef46e6802ea117"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Thu Feb 07 00:14:08 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:19 2008 -0800"
      },
      "message": "bugfix for memory controller: add helper function for assigning cgroup to page\n\nThis patch adds following functions.\n   - clear_page_cgroup(page, pc)\n   - page_cgroup_assign_new_page_group(page, pc)\n\nMainly for cleanup.\n\nA manner \"check page-\u003ecgroup again after lock_page_cgroup()\" is\nimplemented in straight way.\n\nA comment in mem_cgroup_uncharge() will be removed by force-empty patch\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: Pavel Emelianov \u003cxemul@openvz.org\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Kirill Korotaev \u003cdev@sw.ru\u003e\nCc: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Vaidyanathan Srinivasan \u003csvaidy@linux.vnet.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f1a9ee758de7de1e040de849fdef46e6802ea117",
      "tree": "99dfac0c81de111025e12546d97aaebd3d8d576c",
      "parents": [
        "fef1bdd68c81b71882ccb6f47c70980a03182063"
      ],
      "author": {
        "name": "Rik van Riel",
        "email": "riel@redhat.com",
        "time": "Thu Feb 07 00:14:08 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:19 2008 -0800"
      },
      "message": "kswapd should only wait on IO if there is IO\n\nThe current kswapd (and try_to_free_pages) code has an oddity where the\ncode will wait on IO, even if there is no IO in flight.  This problem is\nnotable especially when the system scans through many unfreeable pages,\ncausing unnecessary stalls in the VM.\n\nAdditionally, tasks without __GFP_FS or __GFP_IO in the direct reclaim path\nwill sleep if a significant number of pages are encountered that should be\nwritten out.  This gives kswapd a chance to write out those pages, while\nthe direct reclaim task sleeps.\n\nSigned-off-by: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "fef1bdd68c81b71882ccb6f47c70980a03182063",
      "tree": "4cfa5c2c10787a3d54de05ca511db31730a239fd",
      "parents": [
        "4c4a22148909e4c003562ea7ffe0a06e26919e3c"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Thu Feb 07 00:14:07 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:19 2008 -0800"
      },
      "message": "oom: add sysctl to enable task memory dump\n\nAdds a new sysctl, \u0027oom_dump_tasks\u0027, that enables the kernel to produce a\ndump of all system tasks (excluding kernel threads) when performing an\nOOM-killing.  Information includes pid, uid, tgid, vm size, rss, cpu,\noom_adj score, and name.\n\nThis is helpful for determining why there was an OOM condition and which\nrogue task caused it.\n\nIt is configurable so that large systems, such as those with several\nthousand tasks, do not incur a performance penalty associated with dumping\ndata they may not desire.\n\nIf an OOM was triggered as a result of a memory controller, the tasklist\nshall be filtered to exclude tasks that are not a member of the same\ncgroup.\n\nCc: Andrea Arcangeli \u003candrea@suse.de\u003e\nCc: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4c4a22148909e4c003562ea7ffe0a06e26919e3c",
      "tree": "fa8b7d00e89f0eb4cdb4394dbc74d898810519aa",
      "parents": [
        "4c6bc8dd5a0932f2c0b30a5f0a124464b7f614d0"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Thu Feb 07 00:14:06 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:19 2008 -0800"
      },
      "message": "memcontrol: move oom task exclusion to tasklist scan\n\nCreates a helper function to return non-zero if a task is a member of a\nmemory controller:\n\n\tint task_in_mem_cgroup(const struct task_struct *task,\n\t\t\t       const struct mem_cgroup *mem);\n\nWhen the OOM killer is constrained by the memory controller, the exclusion\nof tasks that are not a member of that controller was previously misplaced\nand appeared in the badness scoring function.  It should be excluded\nduring the tasklist scan in select_bad_process() instead.\n\n[akpm@linux-foundation.org: build fix]\nCc: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4c6bc8dd5a0932f2c0b30a5f0a124464b7f614d0",
      "tree": "90fda3b23ed1adb780ef063df4559ca929e6378a",
      "parents": [
        "35c754d79f4da80d5e8972f6403dd26f7962fd88"
      ],
      "author": {
        "name": "Badari Pulavarty",
        "email": "pbadari@gmail.com",
        "time": "Thu Feb 07 00:14:05 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:19 2008 -0800"
      },
      "message": "mem-controller gfp-mask fix\n\nNeed to strip __GFP_HIGHMEM flag while passing to mem_container_cache_charge().\n\nSigned-off-by: Badari Pulavarty \u003cpbadari@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": "35c754d79f4da80d5e8972f6403dd26f7962fd88",
      "tree": "5e497fd0ac832b5c832044d0267170d7144e1a0e",
      "parents": [
        "044d66c1d2b1c5aa50b4d6d68c21c6c93dd678da"
      ],
      "author": {
        "name": "Balbir Singh",
        "email": "balbir@linux.vnet.ibm.com",
        "time": "Thu Feb 07 00:14:05 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:19 2008 -0800"
      },
      "message": "memory controller BUG_ON()\n\nMove mem_controller_cache_charge() above radix_tree_preload().\nradix_tree_preload() disables preemption, even though the gfp_mask passed\ncontains __GFP_WAIT, we cannot really do __GFP_WAIT allocations, thus we\nhit a BUG_ON() in kmem_cache_alloc().\n\nThis patch moves mem_controller_cache_charge() to above radix_tree_preload()\nfor cache charging.\n\nSigned-off-by: Balbir Singh \u003cbalbir@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": "044d66c1d2b1c5aa50b4d6d68c21c6c93dd678da",
      "tree": "35442e01a5ef7e2d45abc20d45122c3c4c809d5d",
      "parents": [
        "3062fc67dad01b1d2a15d58c709eff946389eca4"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Thu Feb 07 00:14:04 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:19 2008 -0800"
      },
      "message": "memcgroup: reinstate swapoff mod\n\nThis patch reinstates the \"swapoff: scan ptes preemptibly\" mod we started\nwith: in due course it should be rendered down into the earlier patches,\nleaving us with a more straightforward mem_cgroup_charge mod to unuse_pte,\nallocating with GFP_KERNEL while holding no spinlock and no atomic kmap.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: Pavel Emelianov \u003cxemul@openvz.org\u003e\nAcked-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Kirill Korotaev \u003cdev@sw.ru\u003e\nCc: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Vaidyanathan Srinivasan \u003csvaidy@linux.vnet.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3062fc67dad01b1d2a15d58c709eff946389eca4",
      "tree": "521b26bda2f6b106c8b3747a88214eec5f24b998",
      "parents": [
        "e1a1cd590e3fcb0d2e230128daf2337ea55387dc"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Thu Feb 07 00:14:03 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:19 2008 -0800"
      },
      "message": "memcontrol: move mm_cgroup to header file\n\nInline functions must preceed their use, so mm_cgroup() should be defined\nin linux/memcontrol.h.\n\ninclude/linux/memcontrol.h:48: warning: \u0027mm_cgroup\u0027 declared inline after\n\tbeing called\ninclude/linux/memcontrol.h:48: warning: previous declaration of\n\t\u0027mm_cgroup\u0027 was here\n\n[akpm@linux-foundation.org: build fix]\n[akpm@linux-foundation.org: nuther build fix]\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e1a1cd590e3fcb0d2e230128daf2337ea55387dc",
      "tree": "eb660ab340c657a1eb595b2d4d8e8b62783bf6fb",
      "parents": [
        "bed7161a519a2faef53e1bce1b47595e297c1d14"
      ],
      "author": {
        "name": "Balbir Singh",
        "email": "balbir@linux.vnet.ibm.com",
        "time": "Thu Feb 07 00:14:02 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:19 2008 -0800"
      },
      "message": "Memory controller: make charging gfp mask aware\n\nNick Piggin pointed out that swap cache and page cache addition routines\ncould be called from non GFP_KERNEL contexts.  This patch makes the\ncharging routine aware of the gfp context.  Charging might fail if the\ncgroup is over it\u0027s limit, in which case a suitable error is returned.\n\nThis patch was tested on a Powerpc box.  I am still looking at being able\nto test the path, through which allocations happen in non GFP_KERNEL\ncontexts.\n\n[kamezawa.hiroyu@jp.fujitsu.com: problem with ZONE_MOVABLE]\nSigned-off-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: Pavel Emelianov \u003cxemul@openvz.org\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Kirill Korotaev \u003cdev@sw.ru\u003e\nCc: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Vaidyanathan Srinivasan \u003csvaidy@linux.vnet.ibm.com\u003e\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bed7161a519a2faef53e1bce1b47595e297c1d14",
      "tree": "fbc0541340465f7d83221b829a9382cac2855916",
      "parents": [
        "8697d33194faae6fdd6b2e799f6308aa00cfdf67"
      ],
      "author": {
        "name": "Balbir Singh",
        "email": "balbir@linux.vnet.ibm.com",
        "time": "Thu Feb 07 00:14:01 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:19 2008 -0800"
      },
      "message": "Memory controller: make page_referenced() cgroup aware\n\nMake page_referenced() cgroup aware.  Without this patch, page_referenced()\ncan cause a page to be skipped while reclaiming pages.  This patch ensures\nthat other cgroups do not hold pages in a particular cgroup hostage.  It\nis required to ensure that shared pages are freed from a cgroup when they\nare not actively referenced from the cgroup that brought them in\n\nSigned-off-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: Pavel Emelianov \u003cxemul@openvz.org\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Kirill Korotaev \u003cdev@sw.ru\u003e\nCc: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Vaidyanathan Srinivasan \u003csvaidy@linux.vnet.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8697d33194faae6fdd6b2e799f6308aa00cfdf67",
      "tree": "edf6b3e4698b80aac6f1d1f2b9e5698ce8dfa6e5",
      "parents": [
        "c7ba5c9e8176704bfac0729875fa62798037584d"
      ],
      "author": {
        "name": "Balbir Singh",
        "email": "balbir@linux.vnet.ibm.com",
        "time": "Thu Feb 07 00:13:59 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:19 2008 -0800"
      },
      "message": "Memory controller: add switch to control what type of pages to limit\n\nChoose if we want cached pages to be accounted or not.  By default both are\naccounted for.  A new set of tunables are added.\n\necho -n 1 \u003e mem_control_type\n\nswitches the accounting to account for only mapped pages\n\necho -n 3 \u003e mem_control_type\n\nswitches the behaviour back\n\n[bunk@kernel.org: mm/memcontrol.c: clenups]\n[akpm@linux-foundation.org: fix sparc32 build]\nSigned-off-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: Pavel Emelianov \u003cxemul@openvz.org\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Kirill Korotaev \u003cdev@sw.ru\u003e\nCc: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Vaidyanathan Srinivasan \u003csvaidy@linux.vnet.ibm.com\u003e\nSigned-off-by: 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": "c7ba5c9e8176704bfac0729875fa62798037584d",
      "tree": "00df1c4cb67e313cdb66233381b4cee275fd46c0",
      "parents": [
        "0eea10301708c64a6b793894c156e21ddd15eb64"
      ],
      "author": {
        "name": "Pavel Emelianov",
        "email": "xemul@openvz.org",
        "time": "Thu Feb 07 00:13:58 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:19 2008 -0800"
      },
      "message": "Memory controller: OOM handling\n\nOut of memory handling for cgroups over their limit. A task from the\ncgroup over limit is chosen using the existing OOM logic and killed.\n\nTODO:\n1. As discussed in the OLS BOF session, consider implementing a user\nspace policy for OOM handling.\n\n[akpm@linux-foundation.org: fix build due to oom-killer changes]\nSigned-off-by: Pavel Emelianov \u003cxemul@openvz.org\u003e\nSigned-off-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Kirill Korotaev \u003cdev@sw.ru\u003e\nCc: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Vaidyanathan Srinivasan \u003csvaidy@linux.vnet.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0eea10301708c64a6b793894c156e21ddd15eb64",
      "tree": "a0dcbe47d48d35ec0554faa5f86068cfab94ca6e",
      "parents": [
        "66e1707bc34609f626e2e7b4fe7e454c9748bad5"
      ],
      "author": {
        "name": "Balbir Singh",
        "email": "balbir@linux.vnet.ibm.com",
        "time": "Thu Feb 07 00:13:57 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:18 2008 -0800"
      },
      "message": "Memory controller improve user interface\n\nChange the interface to use bytes instead of pages.  Page sizes can vary\nacross platforms and configurations.  A new strategy routine has been added\nto the resource counters infrastructure to format the data as desired.\n\nSuggested by David Rientjes, Andrew Morton and Herbert Poetzl\n\nTested on a UML setup with the config for memory control enabled.\n\n[kamezawa.hiroyu@jp.fujitsu.com: possible race fix in res_counter]\nSigned-off-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nSigned-off-by: Pavel Emelianov \u003cxemul@openvz.org\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Kirill Korotaev \u003cdev@sw.ru\u003e\nCc: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Vaidyanathan Srinivasan \u003csvaidy@linux.vnet.ibm.com\u003e\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "66e1707bc34609f626e2e7b4fe7e454c9748bad5",
      "tree": "d850a729887485874c976ba64eb85e3406e488a1",
      "parents": [
        "67e465a77ba658635309ee00b367bec6555ea544"
      ],
      "author": {
        "name": "Balbir Singh",
        "email": "balbir@linux.vnet.ibm.com",
        "time": "Thu Feb 07 00:13:56 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:18 2008 -0800"
      },
      "message": "Memory controller: add per cgroup LRU and reclaim\n\nAdd the page_cgroup to the per cgroup LRU.  The reclaim algorithm has\nbeen modified to make the isolate_lru_pages() as a pluggable component.  The\nscan_control data structure now accepts the cgroup on behalf of which\nreclaims are carried out.  try_to_free_pages() has been extended to become\ncgroup aware.\n\n[akpm@linux-foundation.org: fix warning]\n[Lee.Schermerhorn@hp.com: initialize all scan_control\u0027s isolate_pages member]\n[bunk@kernel.org: make do_try_to_free_pages() static]\n[hugh@veritas.com: memcgroup: fix try_to_free order]\n[kamezawa.hiroyu@jp.fujitsu.com: this unlock_page_cgroup() is unnecessary]\nSigned-off-by: Pavel Emelianov \u003cxemul@openvz.org\u003e\nSigned-off-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Kirill Korotaev \u003cdev@sw.ru\u003e\nCc: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Vaidyanathan Srinivasan \u003csvaidy@linux.vnet.ibm.com\u003e\nSigned-off-by: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "67e465a77ba658635309ee00b367bec6555ea544",
      "tree": "172060de1a91624725215c5f0e1131ce5e5c5e92",
      "parents": [
        "8a9f3ccd24741b50200c3f33d62534c7271f3dfc"
      ],
      "author": {
        "name": "Balbir Singh",
        "email": "balbir@linux.vnet.ibm.com",
        "time": "Thu Feb 07 00:13:54 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:18 2008 -0800"
      },
      "message": "Memory controller: task migration\n\nAllow tasks to migrate from one cgroup to the other.  We migrate\nmm_struct\u0027s mem_cgroup only when the thread group id migrates.\n\nSigned-off-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: Pavel Emelianov \u003cxemul@openvz.org\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Kirill Korotaev \u003cdev@sw.ru\u003e\nCc: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Vaidyanathan Srinivasan \u003csvaidy@linux.vnet.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8a9f3ccd24741b50200c3f33d62534c7271f3dfc",
      "tree": "066aabd8d2952299501f067a91cbfd6f47ee62f6",
      "parents": [
        "78fb74669e80883323391090e4d26d17fe29488f"
      ],
      "author": {
        "name": "Balbir Singh",
        "email": "balbir@linux.vnet.ibm.com",
        "time": "Thu Feb 07 00:13:53 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:18 2008 -0800"
      },
      "message": "Memory controller: memory accounting\n\nAdd the accounting hooks.  The accounting is carried out for RSS and Page\nCache (unmapped) pages.  There is now a common limit and accounting for both.\nThe RSS accounting is accounted at page_add_*_rmap() and page_remove_rmap()\ntime.  Page cache is accounted at add_to_page_cache(),\n__delete_from_page_cache().  Swap cache is also accounted for.\n\nEach page\u0027s page_cgroup is protected with the last bit of the\npage_cgroup pointer, this makes handling of race conditions involving\nsimultaneous mappings of a page easier.  A reference count is kept in the\npage_cgroup to deal with cases where a page might be unmapped from the RSS\nof all tasks, but still lives in the page cache.\n\nCredits go to Vaidyanathan Srinivasan for helping with reference counting work\nof the page cgroup.  Almost all of the page cache accounting code has help\nfrom Vaidyanathan Srinivasan.\n\n[hugh@veritas.com: fix swapoff breakage]\n[akpm@linux-foundation.org: fix locking]\nSigned-off-by: Vaidyanathan Srinivasan \u003csvaidy@linux.vnet.ibm.com\u003e\nSigned-off-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: Pavel Emelianov \u003cxemul@openvz.org\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Kirill Korotaev \u003cdev@sw.ru\u003e\nCc: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: \u003cValdis.Kletnieks@vt.edu\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": "78fb74669e80883323391090e4d26d17fe29488f",
      "tree": "9154b703510415ae87bdae8750c1054e79710c61",
      "parents": [
        "8cdea7c05454260c0d4d83503949c358eb131d17"
      ],
      "author": {
        "name": "Pavel Emelianov",
        "email": "xemul@openvz.org",
        "time": "Thu Feb 07 00:13:51 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:18 2008 -0800"
      },
      "message": "Memory controller: accounting setup\n\nBasic setup routines, the mm_struct has a pointer to the cgroup that\nit belongs to and the the page has a page_cgroup associated with it.\n\nSigned-off-by: Pavel Emelianov \u003cxemul@openvz.org\u003e\nSigned-off-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Kirill Korotaev \u003cdev@sw.ru\u003e\nCc: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8cdea7c05454260c0d4d83503949c358eb131d17",
      "tree": "62f8d7262744dd9ec507252bf3e84a89c088ff9b",
      "parents": [
        "e552b6617067ab785256dcec5ca29eeea981aacb"
      ],
      "author": {
        "name": "Balbir Singh",
        "email": "balbir@linux.vnet.ibm.com",
        "time": "Thu Feb 07 00:13:50 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:18 2008 -0800"
      },
      "message": "Memory controller: cgroups setup\n\nSetup the memory cgroup and add basic hooks and controls to integrate\nand work with the cgroup.\n\nSigned-off-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: Pavel Emelianov \u003cxemul@openvz.org\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Kirill Korotaev \u003cdev@sw.ru\u003e\nCc: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Vaidyanathan Srinivasan \u003csvaidy@linux.vnet.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "59bd26582de660d4c9c26125747f1b4a5eb40d1e",
      "tree": "2b7606b3f18a87cdee5022381ba52f94efdb5d42",
      "parents": [
        "1b6df3aa457690100f9827548943101447766572"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Thu Feb 07 00:13:48 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:18 2008 -0800"
      },
      "message": "memcgroup: temporarily revert swapoff mod\n\nThis patch precisely reverts the \"swapoff: scan ptes preemptibly\" patch\njust presented.  It\u0027s a temporary measure to allow existing memory\ncontroller patches to apply without rejects: in due course they should be\nrendered down into one sensible patch, and this reversion disappear.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: 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": "3e6bdf473f489664dac4d7511d26c7ac3dfdc748",
      "tree": "10cb2e928830b9de8bbc3f6dd47c18c24cd2affa",
      "parents": [
        "3d4d4582e5b3f67a68f2cf32fd5b70d8d80f119d",
        "58d5d0d8dd52cbca988af24b5692a20b00285543"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Feb 06 13:54:09 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Feb 06 13:54:09 2008 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/x86/linux-2.6-x86\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/x86/linux-2.6-x86:\n  x86: fix deadlock, make pgd_lock irq-safe\n  virtio: fix trivial build bug\n  x86: fix mttr trimming\n  x86: delay CPA self-test and repeat it\n  x86: fix 64-bit sections\n  generic: add __FINITDATA\n  x86: remove suprious ifdefs from pageattr.c\n  x86: mark the .rodata section also NX\n  x86: fix iret exception recovery on 64-bit\n  cpuidle: dubious one-bit signed bitfield in cpuidle.h\n  x86: fix sparse warnings in powernow-k8.c\n  x86: fix sparse error in traps_32.c\n  x86: trivial sparse/checkpatch in quirks.c\n  x86 ptrace: disallow null cs/ss\n  MAINTAINERS: RDC R-321x SoC maintainer\n  brk randomization: introduce CONFIG_COMPAT_BRK\n  brk: check the lower bound properly\n  x86: remove X2 workaround\n  x86: make spurious fault handler aware of large mappings\n  x86: make traps on entry code be debuggable in user space, 64-bit\n"
    },
    {
      "commit": "32a932332c8bad842804842eaf9651ad6268e637",
      "tree": "58f187409029f089f788c5c35ad5c200b4a555af",
      "parents": [
        "4cc6028d4040f95cdb590a87db478b42b8be0508"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Feb 06 22:39:44 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Feb 06 22:39:44 2008 +0100"
      },
      "message": "brk randomization: introduce CONFIG_COMPAT_BRK\n\nbased on similar patch from: Pavel Machek \u003cpavel@ucw.cz\u003e\n\nIntroduce CONFIG_COMPAT_BRK. If disabled then the kernel is free\n(but not obliged to) randomize the brk area.\n\nHeap randomization breaks ancient binaries, so we keep COMPAT_BRK\nenabled by default.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "4cc6028d4040f95cdb590a87db478b42b8be0508",
      "tree": "9b9879d8b8cc055e4bb8eabd69b979a17e6e52cd",
      "parents": [
        "2d684cd6d9cf0c6a0e28978362671b6e2d8fb56c"
      ],
      "author": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Wed Feb 06 22:39:44 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Feb 06 22:39:44 2008 +0100"
      },
      "message": "brk: check the lower bound properly\n\nThere is a check in sys_brk(), that tries to make sure that we do not\nunderflow the area that is dedicated to brk heap.\n\nThe check is however wrong, as it assumes that brk area starts immediately\nafter the end of the code (+bss), which is wrong for example in\nenvironments with randomized brk start. The proper way is to check whether\nthe address is not below the start_brk address.\n\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "b3242151906372f30f57feaa43b4cac96a23edb1",
      "tree": "d258219aa13dfeae8d9fb5db1fd220a0664a680d",
      "parents": [
        "e7ca2d41a029577a8cff453d1445951d4f96bfd8"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "dada1@cosmosbay.com",
        "time": "Wed Feb 06 01:37:01 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Feb 06 10:41:04 2008 -0800"
      },
      "message": "PERCPU : __percpu_alloc_mask() can dynamically size percpu_data storage\n\nInstead of allocating a fix sized array of NR_CPUS pointers for percpu_data,\nwe can use nr_cpu_ids, which is generally \u003c NR_CPUS.\n\nSigned-off-by: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nCc: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b297d520b9af536d5580ac505dd316be4cf5560c",
      "tree": "a8f292b308c166ebd383b73fa09538775352c874",
      "parents": [
        "c773633916c66f8362ca01983d97bd33e35b743f",
        "e34f44b3517fe545f7fd45a8c2f6ee1e5e4432d3"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 19:05:48 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 19:05:48 2008 -0800"
      },
      "message": "Merge branch \u0027dmapool\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/willy/misc\n\n* \u0027dmapool\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/willy/misc:\n  pool: Improve memory usage for devices which can\u0027t cross boundaries\n  Change dmapool free block management\n  dmapool: Tidy up includes and add comments\n  dmapool: Validate parameters to dma_pool_create\n  Avoid taking waitqueue lock in dmapool\n  dmapool: Fix style problems\n  Move dmapool.c to mm/ directory\n"
    },
    {
      "commit": "f905bc447c303fefcb180c7e8b641746ffa6cf87",
      "tree": "390d3f3490eb6b22a40598775538dd5bbd9653c1",
      "parents": [
        "f156ac8c7aeddb2d85294b7a3b849178625e15e2"
      ],
      "author": {
        "name": "Paul Mundt",
        "email": "lethal@linux-sh.org",
        "time": "Mon Feb 04 22:29:59 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:21 2008 -0800"
      },
      "message": "nommu: add new vmalloc_user() and remap_vmalloc_range() interfaces.\n\nThis builds on top of the earlier vmalloc_32_user() work introduced by\nb50731732f926d6c49fd0724616a7344c31cd5cf, as we now have places in the nommu\nallmodconfig that hit up against these missing APIs.\n\nAs vmalloc_32_user() is already implemented, this is moved over to\nvmalloc_user() and simply made a wrapper.  As all current nommu platforms are\n32-bit addressable, there\u0027s no special casing we have to do for ZONE_DMA and\nthings of that nature as per GFP_VMALLOC32.\n\nremap_vmalloc_range() needs to check VM_USERMAP in order to figure out whether\nwe permit the remap or not, which means that we also have to rework the\nvmalloc_user() code to grovel for the VMA and set the flag.\n\nSigned-off-by: Paul Mundt \u003clethal@linux-sh.org\u003e\nAcked-by: David McCullough \u003cdavid_mccullough@securecomputing.com\u003e\nAcked-by: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: Greg Ungerer \u003cgerg@snapgear.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "97829955ad291acec1d8b94e9911b3ceb1118bb1",
      "tree": "4af91977d82494375e09a961594f83ca77f253d7",
      "parents": [
        "3b7391de67da515c91f48aa371de77cb6cc5c07e"
      ],
      "author": {
        "name": "Serge E. Hallyn",
        "email": "serue@us.ibm.com",
        "time": "Mon Feb 04 22:29:47 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:20 2008 -0800"
      },
      "message": "oom_kill: remove uid\u003d\u003d0 checks\n\nRoot processes are considered more important when out of memory and killing\nproceses.  The check for CAP_SYS_ADMIN was augmented with a check for\nuid\u003d\u003d0 or euid\u003d\u003d0.\n\nThere are several possible ways to look at this:\n\n\t1. uid comparisons are unnecessary, trust CAP_SYS_ADMIN\n\t   alone.  However CAP_SYS_RESOURCE is the one that really\n\t   means \"give me extra resources\" so allow for that as\n\t   well.\n\t2. Any privileged code should be protected, but uid is not\n\t   an indication of privilege.  So we should check whether\n\t   any capabilities are raised.\n\t3. uid\u003d\u003d0 makes processes on the host as well as in containers\n\t   more important, so we should keep the existing checks.\n\t4. uid\u003d\u003d0 makes processes only on the host more important,\n\t   even without any capabilities.  So we should be keeping\n\t   the (uid\u003d\u003d0||euid\u003d\u003d0) check but only when\n\t   userns\u003d\u003d\u0026init_user_ns.\n\nI\u0027m following number 1 here.\n\nSigned-off-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nCc: Andrew Morgan \u003cmorgan@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": "e338d263a76af78fe8f38a72131188b58fceb591",
      "tree": "f3f046fc6fd66de43de7191830f0daf3bc4ec8eb",
      "parents": [
        "8f6936f4d29aa14e54a2470b954a2e1f96322988"
      ],
      "author": {
        "name": "Andrew Morgan",
        "email": "morgan@kernel.org",
        "time": "Mon Feb 04 22:29:42 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:20 2008 -0800"
      },
      "message": "Add 64-bit capability support to the kernel\n\nThe patch supports legacy (32-bit) capability userspace, and where possible\ntranslates 32-bit capabilities to/from userspace and the VFS to 64-bit\nkernel space capabilities.  If a capability set cannot be compressed into\n32-bits for consumption by user space, the system call fails, with -ERANGE.\n\nFWIW libcap-2.00 supports this change (and earlier capability formats)\n\n http://www.kernel.org/pub/linux/libs/security/linux-privs/kernel-2.6/\n\n[akpm@linux-foundation.org: coding-syle fixes]\n[akpm@linux-foundation.org: use get_task_comm()]\n[ezk@cs.sunysb.edu: build fix]\n[akpm@linux-foundation.org: do not initialise statics to 0 or NULL]\n[akpm@linux-foundation.org: unused var]\n[serue@us.ibm.com: export __cap_ symbols]\nSigned-off-by: Andrew G. Morgan \u003cmorgan@kernel.org\u003e\nCc: Stephen Smalley \u003csds@tycho.nsa.gov\u003e\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nCc: Chris Wright \u003cchrisw@sous-sol.org\u003e\nCc: James Morris \u003cjmorris@namei.org\u003e\nCc: Casey Schaufler \u003ccasey@schaufler-ca.com\u003e\nSigned-off-by: Erez Zadok \u003cezk@cs.sunysb.edu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "42492594043d621a7910ff5877c3eb9202870b45",
      "tree": "9188d112c019a189606847dc1d90ccc63c1bacf2",
      "parents": [
        "3729145821e3088a0c3c4183037fde356204bf97"
      ],
      "author": {
        "name": "David P. Quigley",
        "email": "dpquigl@tycho.nsa.gov",
        "time": "Mon Feb 04 22:29:39 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:20 2008 -0800"
      },
      "message": "VFS/Security: Rework inode_getsecurity and callers to return resulting buffer\n\nThis patch modifies the interface to inode_getsecurity to have the function\nreturn a buffer containing the security blob and its length via parameters\ninstead of relying on the calling function to give it an appropriately sized\nbuffer.\n\nSecurity blobs obtained with this function should be freed using the\nrelease_secctx LSM hook.  This alleviates the problem of the caller having to\nguess a length and preallocate a buffer for this function allowing it to be\nused elsewhere for Labeled NFS.\n\nThe patch also removed the unused err parameter.  The conversion is similar to\nthe one performed by Al Viro for the security_getprocattr hook.\n\nSigned-off-by: David P. Quigley \u003cdpquigl@tycho.nsa.gov\u003e\nCc: Stephen Smalley \u003csds@tycho.nsa.gov\u003e\nCc: Chris Wright \u003cchrisw@sous-sol.org\u003e\nAcked-by: James Morris \u003cjmorris@namei.org\u003e\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nCc: Casey Schaufler \u003ccasey@schaufler-ca.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: 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": "20cecbae44528d347c46e71f40650b75e0dcbc8e",
      "tree": "fae7206c9aff698b76c5c6aab796539d047947bc",
      "parents": [
        "679299b32dbf9bac4bdaedc850fb95d0f81b4963"
      ],
      "author": {
        "name": "Matt Mackall",
        "email": "mpm@selenic.com",
        "time": "Mon Feb 04 22:29:37 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:19 2008 -0800"
      },
      "message": "slob: reduce external fragmentation by using three free lists\n\nBy putting smaller objects on their own list, we greatly reduce overall\nexternal fragmentation and increase repeatability.  This reduces total SLOB\noverhead from \u003e 50% to ~6% on a simple boot test.\n\nSigned-off-by: Matt Mackall \u003cmpm@selenic.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "679299b32dbf9bac4bdaedc850fb95d0f81b4963",
      "tree": "1dc7edbdaf67611958273345b24d271f188371a8",
      "parents": [
        "8bc3be2751b4f74ab90a446da1912fd8204d53f7"
      ],
      "author": {
        "name": "Matt Mackall",
        "email": "mpm@selenic.com",
        "time": "Mon Feb 04 22:29:37 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:19 2008 -0800"
      },
      "message": "slob: fix free block merging at head of subpage\n\nWe weren\u0027t merging freed blocks at the beginning of the free list.  Fixing\nthis showed a 2.5% efficiency improvement in a userspace test harness.\n\nSigned-off-by: Matt Mackall \u003cmpm@selenic.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8bc3be2751b4f74ab90a446da1912fd8204d53f7",
      "tree": "2bc514025a906203244d98de70fb6bd87f3ac9ac",
      "parents": [
        "a322f8ab66f50b6c0dcdb59abae84fede7a5fded"
      ],
      "author": {
        "name": "Fengguang Wu",
        "email": "wfg@mail.ustc.edu.cn",
        "time": "Mon Feb 04 22:29:36 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:19 2008 -0800"
      },
      "message": "writeback: speed up writeback of big dirty files\n\nAfter making dirty a 100M file, the normal behavior is to start the\nwriteback for all data after 30s delays.  But sometimes the following\nhappens instead:\n\n\t- after 30s:    ~4M\n\t- after 5s:     ~4M\n\t- after 5s:     all remaining 92M\n\nSome analyze shows that the internal io dispatch queues goes like this:\n\n\t\ts_io            s_more_io\n\t\t-------------------------\n\t1)\t100M,1K         0\n\t2)\t1K              96M\n\t3)\t0               96M\n1) initial state with a 100M file and a 1K file\n\n2) 4M written, nr_to_write \u003c\u003d 0, so write more\n\n3) 1K written, nr_to_write \u003e 0, no more writes(BUG)\n\nnr_to_write \u003e 0 in (3) fools the upper layer to think that data have all\nbeen written out.  The big dirty file is actually still sitting in\ns_more_io.  We cannot simply splice s_more_io back to s_io as soon as s_io\nbecomes empty, and let the loop in generic_sync_sb_inodes() continue: this\nmay starve newly expired inodes in s_dirty.  It is also not an option to\ndraw inodes from both s_more_io and s_dirty, an let the loop go on: this\nmight lead to live locks, and might also starve other superblocks in sync\ntime(well kupdate may still starve some superblocks, that\u0027s another bug).\n\nWe have to return when a full scan of s_io completes.  So nr_to_write \u003e 0\ndoes not necessarily mean that \"all data are written\".  This patch\nintroduces a flag writeback_control.more_io to indicate that more io should\nbe done.  With it the big dirty file no longer has to wait for the next\nkupdate invokation 5s later.\n\nIn sync_sb_inodes() we only set more_io on super_blocks we actually\nvisited.  This avoids the interaction between two pdflush deamons.\n\nAlso in __sync_single_inode() we don\u0027t blindly keep requeuing the io if the\nfilesystem cannot progress.  Failing to do so may lead to 100% iowait.\n\nTested-by: Mike Snitzer \u003csnitzer@gmail.com\u003e\nSigned-off-by: Fengguang Wu \u003cwfg@mail.ustc.edu.cn\u003e\nCc: Michael Rubin \u003cmrubin@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": "a322f8ab66f50b6c0dcdb59abae84fede7a5fded",
      "tree": "de492ded59ef0ed1f1705244f51e46628fa26603",
      "parents": [
        "0ed361dec36945f3116ee1338638ada9a8920905"
      ],
      "author": {
        "name": "Sam Ravnborg",
        "email": "sam@ravnborg.org",
        "time": "Mon Feb 04 22:29:35 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:19 2008 -0800"
      },
      "message": "mm: fix section mismatch warning in sparse.c\n\nFix following warning:\nWARNING: mm/built-in.o(.text+0x22069): Section mismatch in reference from the function sparse_early_usemap_alloc() to the function .init.text:__alloc_bootmem_node()\n\nstatic sparse_early_usemap_alloc() were used only by sparse_init()\nand with sparse_init() annotated _init it is safe to\nannotate sparse_early_usemap_alloc with __init too.\n\nSigned-off-by: Sam Ravnborg \u003csam@ravnborg.org\u003e\nCc: Andy Whitcroft \u003capw@shadowen.org\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0ed361dec36945f3116ee1338638ada9a8920905",
      "tree": "3e0fc6319ef49f6cac82e8203a8aa199302ab9c5",
      "parents": [
        "62e1c55300f306e06478f460a7eefba085206e0b"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Mon Feb 04 22:29:34 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:19 2008 -0800"
      },
      "message": "mm: fix PageUptodate data race\n\nAfter running SetPageUptodate, preceeding stores to the page contents to\nactually bring it uptodate may not be ordered with the store to set the\npage uptodate.\n\nTherefore, another CPU which checks PageUptodate is true, then reads the\npage contents can get stale data.\n\nFix this by having an smp_wmb before SetPageUptodate, and smp_rmb after\nPageUptodate.\n\nMany places that test PageUptodate, do so with the page locked, and this\nwould be enough to ensure memory ordering in those places if\nSetPageUptodate were only called while the page is locked.  Unfortunately\nthat is not always the case for some filesystems, but it could be an idea\nfor the future.\n\nAlso bring the handling of anonymous page uptodateness in line with that of\nfile backed page management, by marking anon pages as uptodate when they\n_are_ uptodate, rather than when our implementation requires that they be\nmarked as such.  Doing allows us to get rid of the smp_wmb\u0027s in the page\ncopying functions, which were especially added for anonymous pages for an\nanalogous memory ordering problem.  Both file and anonymous pages are\nhandled with the same barriers.\n\nFAQ:\nQ. Why not do this in flush_dcache_page?\nA. Firstly, flush_dcache_page handles only one side (the smb side) of the\nordering protocol; we\u0027d still need smp_rmb somewhere. Secondly, hiding away\nmemory barriers in a completely unrelated function is nasty; at least in the\nPageUptodate macros, they are located together with (half) the operations\ninvolved in the ordering. Thirdly, the smp_wmb is only required when first\nbringing the page uptodate, wheras flush_dcache_page should be called each time\nit is written to through the kernel mapping. It is logically the wrong place to\nput it.\n\nQ. Why does this increase my text size / reduce my performance / etc.\nA. Because it is adding the necessary instructions to eliminate the data-race.\n\nQ. Can it be improved?\nA. Yes, eg. if you were to create a rule that all SetPageUptodate operations\nrun under the page lock, we could avoid the smp_rmb places where PageUptodate\nis queried under the page lock. Requires audit of all filesystems and at least\nsome would need reworking. That\u0027s great you\u0027re interested, I\u0027m eagerly awaiting\nyour patches.\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": "62e1c55300f306e06478f460a7eefba085206e0b",
      "tree": "be15b2e4801c837c5e20d43b8f29a53c0ba1391c",
      "parents": [
        "7786fa9ac5366214fb942a9e62c6e46b4272c22c"
      ],
      "author": {
        "name": "Shaohua Li",
        "email": "shaohua.li@intel.com",
        "time": "Mon Feb 04 22:29:33 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:19 2008 -0800"
      },
      "message": "page migraton: handle orphaned pages\n\nOrphaned page might have fs-private metadata, the page is truncated.  As\nthe page hasn\u0027t mapping, page migration refuse to migrate the page.  It\nappears the page is only freed in page reclaim and if zone watermark is\nlow, the page is never freed, as a result migration always fail.  I thought\nwe could free the metadata so such page can be freed in migration and make\nmigration more reliable.\n\n[akpm@linux-foundation.org: go direct to try_to_free_buffers()]\nSigned-off-by: Shaohua Li \u003cshaohua.li@intel.com\u003e\nAcked-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nAcked-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b5beb1caff4ce063e6e2dc13f23b80eeef4e9782",
      "tree": "f3fcf8baafa1e9891edd7f16ffafd768c41c29d6",
      "parents": [
        "e6f3602d2c58815775b2a293cec6650622236169"
      ],
      "author": {
        "name": "Masatake YAMATO",
        "email": "yamato@redhat.com",
        "time": "Mon Feb 04 22:29:31 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:19 2008 -0800"
      },
      "message": "check ADVICE of fadvise64_64 even if get_xip_page is given\n\nI\u0027ve written some test programs in ltp project.  During writing I met an\nproblem which I cannot solve in user land.  So I wrote a patch for linux\nkernel.  Please, include this patch if acceptable.\n\nThe test program tests the 4th parameter of fadvise64_64:\n\n    long sys_fadvise64_64(int fd, loff_t offset, loff_t len, int advice);\n\nMy test case calls fadvise64_64 with invalid advice value and checks errno is\nset to EINVAL.  About the advice parameter man page says:\n\n    ...\n    Permissible values for advice include:\n\n\t   POSIX_FADV_NORMAL\n                  ...\n\t   POSIX_FADV_SEQUENTIAL\n                  ...\n\t   POSIX_FADV_RANDOM\n\t\t  ...\n\t   POSIX_FADV_NOREUSE\n                  ...\n\t   POSIX_FADV_WILLNEED\n                  ...\n\t   POSIX_FADV_DONTNEED\n\t\t  ...\n    ERRORS\n           ...\n\t   EINVAL An invalid value was specified for advice.\n\nHowever, I got a bug report that the system call invocations\nin my test case returned 0 unexpectedly.\n\nI\u0027ve inspected the kernel code:\n\n    asmlinkage long sys_fadvise64_64(int fd, loff_t offset, loff_t len, int advice)\n    {\n\t    struct file *file \u003d fget(fd);\n\t    struct address_space *mapping;\n\t    struct backing_dev_info *bdi;\n\t    loff_t endbyte;\t\t\t/* inclusive */\n\t    pgoff_t start_index;\n\t    pgoff_t end_index;\n\t    unsigned long nrpages;\n\t    int ret \u003d 0;\n\n\t    if (!file)\n\t\t    return -EBADF;\n\n\t    if (S_ISFIFO(file-\u003ef_path.dentry-\u003ed_inode-\u003ei_mode)) {\n\t\t    ret \u003d -ESPIPE;\n\t\t    goto out;\n\t    }\n\n\t    mapping \u003d file-\u003ef_mapping;\n\t    if (!mapping || len \u003c 0) {\n\t\t    ret \u003d -EINVAL;\n\t\t    goto out;\n\t    }\n\n\t    if (mapping-\u003ea_ops-\u003eget_xip_page)\n\t\t    /* no bad return value, but ignore advice */\n\t\t    goto out;\n    ...\n    out:\n\t    fput(file);\n\t    return ret;\n    }\n\nI found the advice parameter is just ignored in the case\nmapping-\u003ea_ops-\u003eget_xip_page is given. This behavior is different from\nwhat is written on the man page. Is this o.k.?\n\nget_xip_page is given if CONFIG_EXT2_FS_XIP is true.\nAnyway I cannot find the easy way to detect get_xip_page\nfield is given or CONFIG_EXT2_FS_XIP is true from the\nuser space.\n\nI propose the following patch which checks the advice parameter\neven if get_xip_page is given.\n\nSigned-off-by: Masatake YAMATO \u003cyamato@redhat.com\u003e\nAcked-by: Carsten Otte \u003ccotte@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": "e6f3602d2c58815775b2a293cec6650622236169",
      "tree": "84721b0074e745474c7e71f53d58b6211cf30c40",
      "parents": [
        "a2b345642f530054a92b8d2b5108436225a8093e"
      ],
      "author": {
        "name": "Larry Woodman",
        "email": "lwoodman@redhat.com",
        "time": "Mon Feb 04 22:29:30 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:19 2008 -0800"
      },
      "message": "Include count of pagecache pages in show_mem() output\n\nThe show_mem() output does not include the total number of pagecache\npages.  This would be helpful when analyzing the debug information in\nthe /var/log/messages file after OOM kills occur.\n\nThis patch includes the total pagecache pages in that output.\n\nSigned-off-by: Larry Woodman \u003clwoodman@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a2b345642f530054a92b8d2b5108436225a8093e",
      "tree": "9be466168baf0fb0c57504e9fe87aec07f09445a",
      "parents": [
        "ae1276b9349a2fd9c3afb4651e25a77ac03299d9"
      ],
      "author": {
        "name": "Bjorn Steinbrink",
        "email": "B.Steinbrink@gmx.de",
        "time": "Mon Feb 04 22:29:28 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:19 2008 -0800"
      },
      "message": "Fix dirty page accounting leak with ext3 data\u003djournal\n\nIn 46d2277c796f9f4937bfa668c40b2e3f43e93dd0 (\"Clean up and make\ntry_to_free_buffers() not race with dirty pages\"), try_to_free_buffers\nwas changed to bail out if the page was dirty.\n\nThat in turn caused truncate_complete_page to leak massive amounts of\nmemory, because the dirty bit was only cleared after the call to\ntry_to_free_buffers.\n\nSo the call to cancel_dirty_page was moved up to have the dirty bit\ncleared early in 3e67c0987d7567ad666641164a153dca9a43b11d (\"truncate:\nclear page dirtiness before running try_to_free_buffers()\").\n\nThe problem with that fix is, that the page can be redirtied after\ncancel_dirty_page was called, eg. like this:\n\ntruncate_complete_page()\n  cancel_dirty_page() // PG_dirty cleared, decr. dirty pages\n  do_invalidatepage()\n    ext3_invalidatepage()\n      journal_invalidatepage()\n        journal_unmap_buffer()\n          __dispose_buffer()\n            __journal_unfile_buffer()\n              __journal_temp_unlink_buffer()\n                mark_buffer_dirty(); // PG_dirty set, incr. dirty pages\n\nAnd then we end up with dirty pages being wrongly accounted.\n\nAs a result, in ecdfc9787fe527491baefc22dce8b2dbd5b2908d (\"Resurrect\n\u0027try_to_free_buffers()\u0027 VM hackery\") the changes to try_to_free_buffers\nwere reverted, so the original reason for the massive memory leak is\ngone, and we can also revert the move of the call to cancel_dirty_page\nfrom truncate_complete_page and get the accounting right again.\n\nI\u0027m not sure if it matters, but opposed to the final check in\n__remove_from_page_cache, this one also cares about the task io\naccounting, so maybe we want to use this instead, although it\u0027s not\nquite the clean fix either.\n\nSigned-off-by: Björn Steinbrink \u003cB.Steinbrink@gmx.de\u003e\nTested-by: Krzysztof Piotr Oledzki \u003cole@ans.pl\u003e\nCc: Jan Kara \u003cjack@ucw.cz\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Thomas Osterried \u003costerried@jesse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ae1276b9349a2fd9c3afb4651e25a77ac03299d9",
      "tree": "e3bef5a303f308e398caf53ac098b1d4a2a8061f",
      "parents": [
        "920c7a5d0c94b8ce740f1d76fa06422f2a95a757"
      ],
      "author": {
        "name": "Qi Yong",
        "email": "qiyong@fc-cn.com",
        "time": "Mon Feb 04 22:29:27 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:19 2008 -0800"
      },
      "message": "set_page_refcounted() VM_BUG_ON fix\n\nThe current PageTail semantic is that a PageTail page is first a\nPageCompound page.  So remove the redundant PageCompound test in\nset_page_refcounted().\n\nSigned-off-by: Qi Yong \u003cqiyong@fc-cn.com\u003e\nCc: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "920c7a5d0c94b8ce740f1d76fa06422f2a95a757",
      "tree": "74ab4b9b5a6f4279b9b9d2a463c6700546ba0011",
      "parents": [
        "1e548deb5d1630ca14ba04da04e3b6b3766178c7"
      ],
      "author": {
        "name": "Harvey Harrison",
        "email": "harvey.harrison@gmail.com",
        "time": "Mon Feb 04 22:29:26 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:18 2008 -0800"
      },
      "message": "mm: remove fastcall from mm/\n\nfastcall is always defined to be empty, remove it\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: Harvey Harrison \u003charvey.harrison@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1e548deb5d1630ca14ba04da04e3b6b3766178c7",
      "tree": "0f5f6e1e92e9433014da15185c3dfcb27a200801",
      "parents": [
        "2d544564f9954860235db97df2e549a66c61f557"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "ak@suse.de",
        "time": "Mon Feb 04 22:29:26 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:18 2008 -0800"
      },
      "message": "page allocator: remove unused arguments in zone_init_free_lists()\n\nSigned-off-by: Andi Kleen \u003cak@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": "5a9bbdcd29adbb786c53eba1dfc3c2d256020d6b",
      "tree": "44fbcff2ad653d7a328bab3144d63da9aaea6f7a",
      "parents": [
        "9eccf2a816ed0aad82b577de6a40cd098ad41944"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Mon Feb 04 22:29:23 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:18 2008 -0800"
      },
      "message": "mm: don\u0027t waste swap on locked pages\n\ntry_to_unmap always fails on a page found in a VM_LOCKED vma (unless\nmigrating), and recycles it back to the active list.  But if it\u0027s an\nanonymous page, we\u0027ve already allocated swap to it: just wasting swap.\nSpot locked pages in page_referenced_one and treat them as referenced.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nTested-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Ethan Solomita \u003csolo@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": "9eccf2a816ed0aad82b577de6a40cd098ad41944",
      "tree": "28d971fbb701d545b54f9f5fdf71c12940d2b8df",
      "parents": [
        "7766755a2f249e7e0dabc5255a0a3d151ff79821"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Mon Feb 04 22:29:22 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:18 2008 -0800"
      },
      "message": "vmstat: remove prefetch\n\nRemove the prefetch logic in order to avoid touching impossible per cpu\nareas.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: Mike Travis \u003ctravis@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "195cf453d2c3d789cbe80e3735755f860c2fb222",
      "tree": "fad48a8167744b6c091c8ca499bc78b859af8957",
      "parents": [
        "3dfa5721f12c3d5a441448086bee156887daa961"
      ],
      "author": {
        "name": "Bron Gondwana",
        "email": "brong@fastmail.fm",
        "time": "Mon Feb 04 22:29:20 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:18 2008 -0800"
      },
      "message": "mm/page-writeback: highmem_is_dirtyable option\n\nAdd vm.highmem_is_dirtyable toggle\n\nA 32 bit machine with HIGHMEM64 enabled running DCC has an MMAPed file of\napproximately 2Gb size which contains a hash format that is written\nrandomly by the dbclean process.  On 2.6.16 this process took a few\nminutes.  With lowmem only accounting of dirty ratios, this takes about 12\nhours of 100% disk IO, all random writes.\n\nInclude a toggle in /proc/sys/vm/highmem_is_dirtyable which can be set to 1 to\nadd the highmem back to the total available memory count.\n\n[akpm@linux-foundation.org: Fix the CONFIG_DETECT_SOFTLOCKUP\u003dy build]\nSigned-off-by: Bron Gondwana \u003cbrong@fastmail.fm\u003e\nCc: Ethan Solomita \u003csolo@google.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: WU Fengguang \u003cwfg@mail.ustc.edu.cn\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3dfa5721f12c3d5a441448086bee156887daa961",
      "tree": "8ace8c3f842f8b626b762bb9d2a9b24d8e3bd130",
      "parents": [
        "5dc331852848a38ca00a2817e5b98a1d0561b116"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Mon Feb 04 22:29:19 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:18 2008 -0800"
      },
      "message": "Page allocator: get rid of the list of cold pages\n\nWe have repeatedly discussed if the cold pages still have a point. There is\none way to join the two lists: Use a single list and put the cold pages at the\nend and the hot pages at the beginning. That way a single list can serve for\nboth types of allocations.\n\nThe discussion of the RFC for this and Mel\u0027s measurements indicate that\nthere may not be too much of a point left to having separate lists for\nhot and cold pages (see http://marc.info/?t\u003d119492914200001\u0026r\u003d1\u0026w\u003d2).\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Martin Bligh \u003cmbligh@mbligh.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5dc331852848a38ca00a2817e5b98a1d0561b116",
      "tree": "c306874d0194ecf88c2073a042e6f932e710f67f",
      "parents": [
        "a7f75e25860ac0a7b70cf6e14c37618d2d2bb890"
      ],
      "author": {
        "name": "Robert Bragg",
        "email": "robert@sixbynine.org",
        "time": "Mon Feb 04 22:29:18 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:18 2008 -0800"
      },
      "message": "mm: don\u0027t allow ioremapping of ranges larger than vmalloc space\n\nWhen running with a 16M IOREMAP_MAX_ORDER (on armv7) we found that the\nvmlist search routine in __get_vm_area_node can mistakenly allow a driver\nto ioremap a range larger than vmalloc space.\n\nIf at the time of the ioremap all existing vmlist areas sit below the\ndetermined alignment then the search routine continues past all entries and\nexits the for loop - straight into the found: label - without ever testing\nfor integer wrapping or that the requested size fits.\n\nWe were seeing a driver successfully ioremap 128M of flash even though\nthere was only 120M of vmalloc space.  From that point the system was left\nwith the remainder of the first 16M of space to vmalloc/ioremap within.\n\nSigned-off-by: Robert Bragg \u003crobert@sixbynine.org\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": "a7f75e25860ac0a7b70cf6e14c37618d2d2bb890",
      "tree": "12f651d69e72159c6f904e007973874e912853bb",
      "parents": [
        "08e7d9b557299ba6ce57165ce8df310780bd681c"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Mon Feb 04 22:29:16 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:18 2008 -0800"
      },
      "message": "vmstat: small revisions to refresh_cpu_vm_stats()\n\n1. Add comments explaining how the function can be called.\n\n2. Collect global diffs in a local array and only spill\n   them once into the global counters when the zone scan\n   is finished. This means that we only touch each global\n   counter once instead of each time we fold cpu counters\n   into zone counters.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "08e7d9b557299ba6ce57165ce8df310780bd681c",
      "tree": "8733b402eaa1de1a6bcdea5ee72ea8655c896dd4",
      "parents": [
        "5e5419734c8719cbc01af959ad9c0844002c0df5"
      ],
      "author": {
        "name": "Martin Schwidefsky",
        "email": "schwidefsky@de.ibm.com",
        "time": "Mon Feb 04 22:29:16 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:18 2008 -0800"
      },
      "message": "arch_rebalance_pgtables call\n\nIn order to change the layout of the page tables after an mmap has crossed the\nadress space limit of the current page table layout a architecture hook in\nget_unmapped_area is needed.  The arguments are the address of the new mapping\nand the length of it.\n\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nSigned-off-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: \u003clinux-arch@vger.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": "5e5419734c8719cbc01af959ad9c0844002c0df5",
      "tree": "a075dca3f719946689efa0245464855cbf2a20ce",
      "parents": [
        "9f8f2172537de7af0b0fbd33502d18d52b1339bc"
      ],
      "author": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Mon Feb 04 22:29:14 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:18 2008 -0800"
      },
      "message": "add mm argument to pte/pmd/pud/pgd_free\n\n(with Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e)\n\nThe pgd/pud/pmd/pte page table allocation functions get a mm_struct pointer as\nfirst argument.  The free functions do not get the mm_struct argument.  This\nis 1) asymmetrical and 2) to do mm related page table allocations the mm\nargument is needed on the free function as well.\n\n[kamalesh@linux.vnet.ibm.com: i386 fix]\n[akpm@linux-foundation.org: coding-syle fixes]\nSigned-off-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nSigned-off-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: \u003clinux-arch@vger.kernel.org\u003e\nSigned-off-by: Kamalesh Babulal \u003ckamalesh@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": "9f8f2172537de7af0b0fbd33502d18d52b1339bc",
      "tree": "273c86583ed0295059c5526d3bd6927520a20add",
      "parents": [
        "e2848a0efedef4dad52d1334d37f8719cd6268fd"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Mon Feb 04 22:29:11 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:17 2008 -0800"
      },
      "message": "Page allocator: clean up pcp draining functions\n\n- Add comments explaing how drain_pages() works.\n\n- Eliminate useless functions\n\n- Rename drain_all_local_pages to drain_all_pages(). It does drain\n  all pages not only those of the local processor.\n\n- Eliminate useless interrupt off / on sequences. drain_pages()\n  disables interrupts on its own. The execution thread is\n  pinned to processor by the caller. So there is no need to\n  disable interrupts.\n\n- Put drain_all_pages() declaration in gfp.h and remove the\n  declarations from suspend.h and from mm/memory_hotplug.c\n\n- Make software suspend call drain_all_pages(). The draining\n  of processor local pages is may not the right approach if\n  software suspend wants to support SMP. If they call drain_all_pages\n  then we can make drain_pages() static.\n\n[akpm@linux-foundation.org: fix build]\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nAcked-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: \"Rafael J. Wysocki\" \u003crjw@sisk.pl\u003e\nCc: Daniel Walker \u003cdwalker@mvista.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e2848a0efedef4dad52d1334d37f8719cd6268fd",
      "tree": "f5d2b600b1275793e7c490f34ae9ec902af138b5",
      "parents": [
        "e31d9eb5c17ae3b80f9e9403f8a5eaf6dba879c9"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Mon Feb 04 22:29:10 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:17 2008 -0800"
      },
      "message": "radix-tree: avoid atomic allocations for preloaded insertions\n\nMost pagecache (and some other) radix tree insertions have the great\nopportunity to preallocate a few nodes with relaxed gfp flags.  But the\npreallocation is squandered when it comes time to allocate a node, we\ndefault to first attempting a GFP_ATOMIC allocation -- that doesn\u0027t\nnormally fail, but it can eat into atomic memory reserves that we don\u0027t\nneed to be using.\n\nAnother upshot of this is that it removes the sometimes highly contended\nzone-\u003elock from underneath tree_lock.  Pagecache insertions are always\nperformed with a radix tree preload, and after this change, such a\nsituation will never fall back to kmem_cache_alloc within\nradix_tree_node_alloc.\n\nDavid Miller reports seeing this allocation fail on a highly threaded\nsparc64 system:\n\n[527319.459981] dd: page allocation failure. order:0, mode:0x20\n[527319.460403] Call Trace:\n[527319.460568]  [00000000004b71e0] __slab_alloc+0x1b0/0x6a8\n[527319.460636]  [00000000004b7bbc] kmem_cache_alloc+0x4c/0xa8\n[527319.460698]  [000000000055309c] radix_tree_node_alloc+0x20/0x90\n[527319.460763]  [0000000000553238] radix_tree_insert+0x12c/0x260\n[527319.460830]  [0000000000495cd0] add_to_page_cache+0x38/0xb0\n[527319.460893]  [00000000004e4794] mpage_readpages+0x6c/0x134\n[527319.460955]  [000000000049c7fc] __do_page_cache_readahead+0x170/0x280\n[527319.461028]  [000000000049cc88] ondemand_readahead+0x208/0x214\n[527319.461094]  [0000000000496018] do_generic_mapping_read+0xe8/0x428\n[527319.461152]  [0000000000497948] generic_file_aio_read+0x108/0x170\n[527319.461217]  [00000000004badac] do_sync_read+0x88/0xd0\n[527319.461292]  [00000000004bb5cc] vfs_read+0x78/0x10c\n[527319.461361]  [00000000004bb920] sys_read+0x34/0x60\n[527319.461424]  [0000000000406294] linux_sparc_syscall32+0x3c/0x40\n\nThe calltrace is significant: __do_page_cache_readahead allocates a number\nof pages with GFP_KERNEL, and hence it should have reclaimed sufficient\nmemory to satisfy GFP_ATOMIC allocations.  However after the list of pages\ngoes to mpage_readpages, there can be significant intervals (including disk\nIO) before all the pages are inserted into the radix-tree.  So the reserves\ncan easily be depleted at that point.  The patch is confirmed to fix the\nproblem.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e31d9eb5c17ae3b80f9e9403f8a5eaf6dba879c9",
      "tree": "8cd63d594e618938d14a77169792ddee3995edf4",
      "parents": [
        "625d9573d0f905146efd15169a35ea9c5a841198"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@kernel.org",
        "time": "Mon Feb 04 22:29:09 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:17 2008 -0800"
      },
      "message": "make __vmalloc_area_node() static\n\n__vmalloc_area_node() can become static.\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": "625d9573d0f905146efd15169a35ea9c5a841198",
      "tree": "40d5f49b9613b3ec41d0a6a182b766433bce5a7f",
      "parents": [
        "f61eaf9fc58f3b2d9e3ad424496620f3381ccd1e"
      ],
      "author": {
        "name": "Balbir Singh",
        "email": "balbir@linux.vnet.ibm.com",
        "time": "Mon Feb 04 22:29:08 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:17 2008 -0800"
      },
      "message": "Remove unused code from mm/tiny-shmem.c\n\nThis code in mm/tiny-shmem.c is under #if 0 - remove it.\n\nSigned-off-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nAcked-by: Matt Mackall \u003cmpm@selenic.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f61eaf9fc58f3b2d9e3ad424496620f3381ccd1e",
      "tree": "cc81b75fbdc13589ac0defb0b6f018d066e1c21d",
      "parents": [
        "1e88328111aae3ea408f346763ba9f9bad71f876"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@kernel.org",
        "time": "Mon Feb 04 22:29:08 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:17 2008 -0800"
      },
      "message": "mm/page-writeback.c: make a function static\n\ntask_dirty_limit() can become static.\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": "1e88328111aae3ea408f346763ba9f9bad71f876",
      "tree": "22be92057a7426ca5b6c8ee9b136bbc417c902a8",
      "parents": [
        "304daa8132a95e998b6716d4b7bd8bd76aa152b2"
      ],
      "author": {
        "name": "Matt Mackall",
        "email": "mpm@selenic.com",
        "time": "Mon Feb 04 22:29:07 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:17 2008 -0800"
      },
      "message": "maps4: make page monitoring /proc file optional\n\nMake /proc/ page monitoring configurable\n\nThis puts the following files under an embedded config option:\n\n/proc/pid/clear_refs\n/proc/pid/smaps\n/proc/pid/pagemap\n/proc/kpagecount\n/proc/kpageflags\n\n[akpm@linux-foundation.org: Kconfig fix]\nSigned-off-by: Matt Mackall \u003cmpm@selenic.com\u003e\nCc: Dave Hansen \u003chaveblue@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": "e6473092bd9116583ce9ab8cf1b6570e1aa6fc83",
      "tree": "e91a7ca6ce89f24a4a2d500d748dabf727c61887",
      "parents": [
        "698dd4ba6b12e34e1e432c944c01478c0b2cd773"
      ],
      "author": {
        "name": "Matt Mackall",
        "email": "mpm@selenic.com",
        "time": "Mon Feb 04 22:29:01 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:16 2008 -0800"
      },
      "message": "maps4: introduce a generic page walker\n\nIntroduce a general page table walker\n\nSigned-off-by: Matt Mackall \u003cmpm@selenic.com\u003e\nCc: Dave Hansen \u003chaveblue@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": "698dd4ba6b12e34e1e432c944c01478c0b2cd773",
      "tree": "fe524e3ae12b54968b363314ad45841abbd55d98",
      "parents": [
        "824552574162ac00ae636fa41386b1072379ea4a"
      ],
      "author": {
        "name": "Matt Mackall",
        "email": "mpm@selenic.com",
        "time": "Mon Feb 04 22:29:00 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:16 2008 -0800"
      },
      "message": "maps4: move is_swap_pte\n\nMove is_swap_pte helper function to swapops.h for use by pagemap code\n\nSigned-off-by: Matt Mackall \u003cmpm@selenic.com\u003e\nCc: Dave Hansen \u003chaveblue@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": "61d5048f149572434daee0cce5e1374a8a7cf3e8",
      "tree": "97ac9c25bc44a58145a750a99887195df31cbe40",
      "parents": [
        "1b1b32f2c6f6bb32535d2da62075b51c980880eb"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Mon Feb 04 22:28:56 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:16 2008 -0800"
      },
      "message": "clean up vmtruncate\n\nvmtruncate is a twisted maze of gotos, this patch cleans it up to have a\nproper if else for the two major cases of extending and truncating truncate\nand thus makes it a lot more readable while keeping exactly the same\nfunctinality.\n\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"
    }
  ],
  "next": "1b1b32f2c6f6bb32535d2da62075b51c980880eb"
}
