)]}'
{
  "log": [
    {
      "commit": "f3ef9ead31ae995251b420ac98398bd7545bf4e1",
      "tree": "aa5addbe49c1f7864bc2e5023b7edb11aaf3706b",
      "parents": [
        "24fd425edd53ea580cad917e825c1f6715e9b939"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@cs.washington.edu",
        "time": "Mon Sep 25 16:24:57 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Sep 25 17:38:36 2006 -0700"
      },
      "message": "[PATCH] do not free non slab allocated per_cpu_pageset\n\nStops panic associated with attempting to free a non slab-allocated\nper_cpu_pageset.\n\nSigned-off-by: David Rientjes \u003crientjes@cs.washington.edu\u003e\nAcked-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "f034b5d4efdfe0fb9e2a1ce1d95fa7914f24de49",
      "tree": "e166f1e87606f7e53a78cac543284c3484481727",
      "parents": [
        "8f126e37c0b250310a48a609bedf92a19a5559ec"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Thu Aug 24 03:08:07 2006 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Fri Sep 22 15:08:41 2006 -0700"
      },
      "message": "[XFRM]: Dynamic xfrm_state hash table sizing.\n\nThe grow algorithm is simple, we grow if:\n\n1) we see a hash chain collision at insert, and\n2) we haven\u0027t hit the hash size limit (currently 1*1024*1024 slots), and\n3) the number of xfrm_state objects is \u003e the current hash mask\n\nAll of this needs some tweaking.\n\nRemove __initdata from \"hashdist\" so we can use it safely at run time.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "9614634fe6a138fd8ae044950700d2af8d203f97",
      "tree": "9b020c1d36d8625f4048c057058efb2e17c81973",
      "parents": [
        "cb6358eb69d9854f65f2979c0ce9280eee041828"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Mon Jul 03 00:24:13 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jul 03 15:26:59 2006 -0700"
      },
      "message": "[PATCH] ZVC/zone_reclaim: Leave 1% of unmapped pagecache pages for file I/O\n\nIt turns out that it is advantageous to leave a small portion of unmapped file\nbacked pages if all of a zone\u0027s pages (or almost all pages) are allocated and\nso the page allocator has to go off-node.\n\nThis allows recently used file I/O buffers to stay on the node and\nreduces the times that zone reclaim is invoked if file I/O occurs\nwhen we run out of memory in a zone.\n\nThe problem is that zone reclaim runs too frequently when the page cache is\nused for file I/O (read write and therefore unmapped pages!) alone and we have\nalmost all pages of the zone allocated.  Zone reclaim may remove 32 unmapped\npages.  File I/O will use these pages for the next read/write requests and the\nunmapped pages increase.  After the zone has filled up again zone reclaim will\nremove it again after only 32 pages.  This cycle is too inefficient and there\nare potentially too many zone reclaim cycles.\n\nWith the 1% boundary we may still remove all unmapped pages for file I/O in\nzone reclaim pass.  However.  it will take a large number of read and writes\nto get back to 1% again where we trigger zone reclaim again.\n\nThe zone reclaim 2.6.16/17 does not show this behavior because we have a 30\nsecond timeout.\n\n[akpm@osdl.org: rename the /proc file and the variable]\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "22a3e233ca08a2ddc949ba1ae8f6e16ec7ef1a13",
      "tree": "7ef158ba2c30e0dde2dc103d1904fae243759a6b",
      "parents": [
        "39302175c26d74be35715c05a0f342c9e64c21bf",
        "6ab3d5624e172c553004ecc862bfeac16d9d68b7"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 30 15:39:30 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 30 15:39:30 2006 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/bunk/trivial\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/bunk/trivial:\n  Remove obsolete #include \u003clinux/config.h\u003e\n  remove obsolete swsusp_encrypt\n  arch/arm26/Kconfig typos\n  Documentation/IPMI typos\n  Kconfig: Typos in net/sched/Kconfig\n  v9fs: do not include linux/version.h\n  Documentation/DocBook/mtdnand.tmpl: typo fixes\n  typo fixes: specfic -\u003e specific\n  typo fixes in Documentation/networking/pktgen.txt\n  typo fixes: occuring -\u003e occurring\n  typo fixes: infomation -\u003e information\n  typo fixes: disadvantadge -\u003e disadvantage\n  typo fixes: aquire -\u003e acquire\n  typo fixes: mecanism -\u003e mechanism\n  typo fixes: bandwith -\u003e bandwidth\n  fix a typo in the RTC_CLASS help text\n  smb is no longer maintained\n\nManually merged trivial conflict in arch/um/kernel/vmlinux.lds.S\n"
    },
    {
      "commit": "f8891e5e1f93a128c3900f82035e8541357896a7",
      "tree": "97b078ac97970962b17c85d39fd64cb48dc01168",
      "parents": [
        "ca889e6c45e0b112cb2ca9d35afc66297519b5d5"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Fri Jun 30 01:55:45 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 30 11:25:36 2006 -0700"
      },
      "message": "[PATCH] Light weight event counters\n\nThe remaining counters in page_state after the zoned VM counter patches\nhave been applied are all just for show in /proc/vmstat.  They have no\nessential function for the VM.\n\nWe use a simple increment of per cpu variables.  In order to avoid the most\nsevere races we disable preempt.  Preempt does not prevent the race between\nan increment and an interrupt handler incrementing the same statistics\ncounter.  However, that race is exceedingly rare, we may only loose one\nincrement or so and there is no requirement (at least not in kernel) that\nthe vm event counters have to be accurate.\n\nIn the non preempt case this results in a simple increment for each\ncounter.  For many architectures this will be reduced by the compiler to a\nsingle instruction.  This single instruction is atomic for i386 and x86_64.\n And therefore even the rare race condition in an interrupt is avoided for\nboth architectures in most cases.\n\nThe patchset also adds an off switch for embedded systems that allows a\nbuilding of linux kernels without these counters.\n\nThe implementation of these counters is through inline code that hopefully\nresults in only a single instruction increment instruction being emitted\n(i386, x86_64) or in the increment being hidden though instruction\nconcurrency (EPIC architectures such as ia64 can get that done).\n\nBenefits:\n- VM event counter operations usually reduce to a single inline instruction\n  on i386 and x86_64.\n- No interrupt disable, only preempt disable for the preempt case.\n  Preempt disable can also be avoided by moving the counter into a spinlock.\n- Handling is similar to zoned VM counters.\n- Simple and easily extendable.\n- Can be omitted to reduce memory use for embedded use.\n\nReferences:\n\nRFC http://marc.theaimsgroup.com/?l\u003dlinux-kernel\u0026m\u003d113512330605497\u0026w\u003d2\nRFC http://marc.theaimsgroup.com/?l\u003dlinux-kernel\u0026m\u003d114988082814934\u0026w\u003d2\nlocal_t http://marc.theaimsgroup.com/?l\u003dlinux-kernel\u0026m\u003d114991748606690\u0026w\u003d2\nV2 http://marc.theaimsgroup.com/?t\u003d115014808400007\u0026r\u003d1\u0026w\u003d2\nV3 http://marc.theaimsgroup.com/?l\u003dlinux-kernel\u0026m\u003d115024767022346\u0026w\u003d2\nV4 http://marc.theaimsgroup.com/?l\u003dlinux-kernel\u0026m\u003d115047968808926\u0026w\u003d2\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "ca889e6c45e0b112cb2ca9d35afc66297519b5d5",
      "tree": "0a5efdec2a61540204d34bcbf56dc691d8f9c391",
      "parents": [
        "bab1846a0582f627f5ec22aa2dc5f4f3e82e8176"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Fri Jun 30 01:55:44 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 30 11:25:36 2006 -0700"
      },
      "message": "[PATCH] Use Zoned VM Counters for NUMA statistics\n\nThe numa statistics are really event counters.  But they are per node and\nso we have had special treatment for these counters through additional\nfields on the pcp structure.  We can now use the per zone nature of the\nzoned VM counters to realize these.\n\nThis will shrink the size of the pcp structure on NUMA systems.  We will\nhave some room to add additional per zone counters that will all still fit\nin the same cacheline.\n\n Bits\tPrior pcp size\t  \tSize after patch\tWe can add\n ------------------------------------------------------------------\n 64\t128 bytes (16 words)\t80 bytes (10 words)\t48\n 32\t 76 bytes (19 words)\t56 bytes (14 words)\t8 (64 byte cacheline)\n\t\t\t\t\t\t\t72 (128 byte)\n\nRemove the special statistics for numa and replace them with zoned vm\ncounters.  This has the side effect that global sums of these events now\nshow up in /proc/vmstat.\n\nAlso take the opportunity to move the zone_statistics() function from\npage_alloc.c into vmstat.c.\n\nDiscussions:\nV2 http://marc.theaimsgroup.com/?t\u003d115048227000002\u0026r\u003d1\u0026w\u003d2\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nAcked-by: Andi Kleen \u003cak@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "fd39fc8561be33065306bdac0e30414e1e8ac8e1",
      "tree": "ae0740716eed3f850a8f7232c61caebe360bb5ae",
      "parents": [
        "ce866b34ae1b7f1ce60234cf65855886ac7e7d30"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Fri Jun 30 01:55:40 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 30 11:25:36 2006 -0700"
      },
      "message": "[PATCH] zoned vm counters: conversion of nr_unstable to per zone counter\n\nConversion of nr_unstable to a per zone counter\n\nWe need to do some special modifications to the nfs code since there are\nmultiple cases of disposition and we need to have a page ref for proper\naccounting.\n\nThis converts the last critical page state of the VM and therefore we need to\nremove several functions that were depending on GET_PAGE_STATE_LAST in order\nto make the kernel compile again.  We are only left with event type counters\nin page state.\n\n[akpm@osdl.org: bugfixes]\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "ce866b34ae1b7f1ce60234cf65855886ac7e7d30",
      "tree": "e9a2664f0abc5221b9a92e1417d8e02b94a634c4",
      "parents": [
        "b1e7a8fd854d2f895730e82137400012b509650e"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Fri Jun 30 01:55:40 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 30 11:25:35 2006 -0700"
      },
      "message": "[PATCH] zoned vm counters: conversion of nr_writeback to per zone counter\n\nConversion of nr_writeback to per zone counter.\n\nThis removes the last page_state counter from arch/i386/mm/pgtable.c so we\ndrop the page_state from there.\n\n[akpm@osdl.org: bugfix]\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "b1e7a8fd854d2f895730e82137400012b509650e",
      "tree": "9fba87ff6b0146ebd4ee5bc7d5f0c8b037dbb3ad",
      "parents": [
        "df849a1529c106f7460e51479ca78fe07b07dc8c"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Fri Jun 30 01:55:39 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 30 11:25:35 2006 -0700"
      },
      "message": "[PATCH] zoned vm counters: conversion of nr_dirty to per zone counter\n\nThis makes nr_dirty a per zone counter.  Looping over all processors is\navoided during writeback state determination.\n\nThe counter aggregation for nr_dirty had to be undone in the NFS layer since\nwe summed up the page counts from multiple zones.  Someone more familiar with\nNFS should probably review what I have done.\n\n[akpm@osdl.org: bugfix]\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "df849a1529c106f7460e51479ca78fe07b07dc8c",
      "tree": "f0e52e4720160aa7540a57715c247dce44584cbc",
      "parents": [
        "9a865ffa34b6117a5e0b67640a084d8c2e198c93"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Fri Jun 30 01:55:38 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 30 11:25:35 2006 -0700"
      },
      "message": "[PATCH] zoned vm counters: conversion of nr_pagetables to per zone counter\n\nConversion of nr_page_table_pages to a per zone counter\n\n[akpm@osdl.org: bugfix]\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "9a865ffa34b6117a5e0b67640a084d8c2e198c93",
      "tree": "c295d5a0831df81eeeded3834f32f513b9ae05c7",
      "parents": [
        "34aa1330f9b3c5783d269851d467326525207422"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Fri Jun 30 01:55:38 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 30 11:25:35 2006 -0700"
      },
      "message": "[PATCH] zoned vm counters: conversion of nr_slab to per zone counter\n\n- Allows reclaim to access counter without looping over processor counts.\n\n- Allows accurate statistics on how many pages are used in a zone by\n  the slab. This may become useful to balance slab allocations over\n  various zones.\n\n[akpm@osdl.org: bugfix]\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "347ce434d57da80fd5809c0c836f206a50999c26",
      "tree": "f730d151be77977f594e5cc083a93bbeb4c602cc",
      "parents": [
        "65ba55f500a37272985d071c9bbb35256a2f7c14"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Fri Jun 30 01:55:35 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 30 11:25:34 2006 -0700"
      },
      "message": "[PATCH] zoned vm counters: conversion of nr_pagecache to per zone counter\n\nCurrently a single atomic variable is used to establish the size of the page\ncache in the whole machine.  The zoned VM counters have the same method of\nimplementation as the nr_pagecache code but also allow the determination of\nthe pagecache size per zone.\n\nRemove the special implementation for nr_pagecache and make it a zoned counter\nnamed NR_FILE_PAGES.\n\nUpdates of the page cache counters are always performed with interrupts off.\nWe can therefore use the __ variant here.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "65ba55f500a37272985d071c9bbb35256a2f7c14",
      "tree": "e7735326ef2d2dca9d00a6c5ae47e9eb03c7834f",
      "parents": [
        "2244b95a7bcf8d24196f8a3a44187ba5dfff754c"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Fri Jun 30 01:55:34 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 30 11:25:34 2006 -0700"
      },
      "message": "[PATCH] zoned vm counters: convert nr_mapped to per zone counter\n\nnr_mapped is important because it allows a determination of how many pages of\na zone are not mapped, which would allow a more efficient means of determining\nwhen we need to reclaim memory in a zone.\n\nWe take the nr_mapped field out of the page state structure and define a new\nper zone counter named NR_FILE_MAPPED (the anonymous pages will be split off\nfrom NR_MAPPED in the next patch).\n\nWe replace the use of nr_mapped in various kernel locations.  This avoids the\nlooping over all processors in try_to_free_pages(), writeback, reclaim (swap +\nzone reclaim).\n\n[akpm@osdl.org: bugfix]\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "2244b95a7bcf8d24196f8a3a44187ba5dfff754c",
      "tree": "771ef8eae45c2794fd73f870109c74d67c28888a",
      "parents": [
        "f6ac2354d791195ca40822b84d73d48a4e8b7f2b"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Fri Jun 30 01:55:33 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 30 11:25:34 2006 -0700"
      },
      "message": "[PATCH] zoned vm counters: basic ZVC (zoned vm counter) implementation\n\nPer zone counter infrastructure\n\nThe counters that we currently have for the VM are split per processor.  The\nprocessor however has not much to do with the zone these pages belong to.  We\ncannot tell f.e.  how many ZONE_DMA pages are dirty.\n\nSo we are blind to potentially inbalances in the usage of memory in various\nzones.  F.e.  in a NUMA system we cannot tell how many pages are dirty on a\nparticular node.  If we knew then we could put measures into the VM to balance\nthe use of memory between different zones and different nodes in a NUMA\nsystem.  For example it would be possible to limit the dirty pages per node so\nthat fast local memory is kept available even if a process is dirtying huge\namounts of pages.\n\nAnother example is zone reclaim.  We do not know how many unmapped pages exist\nper zone.  So we just have to try to reclaim.  If it is not working then we\npause and try again later.  It would be better if we knew when it makes sense\nto reclaim unmapped pages from a zone.  This patchset allows the determination\nof the number of unmapped pages per zone.  We can remove the zone reclaim\ninterval with the counters introduced here.\n\nFuthermore the ability to have various usage statistics available will allow\nthe development of new NUMA balancing algorithms that may be able to improve\nthe decision making in the scheduler of when to move a process to another node\nand hopefully will also enable automatic page migration through a user space\nprogram that can analyse the memory load distribution and then rebalance\nmemory use in order to increase performance.\n\nThe counter framework here implements differential counters for each processor\nin struct zone.  The differential counters are consolidated when a threshold\nis exceeded (like done in the current implementation for nr_pageache), when\nslab reaping occurs or when a consolidation function is called.\n\nConsolidation uses atomic operations and accumulates counters per zone in the\nzone structure and also globally in the vm_stat array.  VM functions can\naccess the counts by simply indexing a global or zone specific array.\n\nThe arrangement of counters in an array also simplifies processing when output\nhas to be generated for /proc/*.\n\nCounters can be updated by calling inc/dec_zone_page_state or\n_inc/dec_zone_page_state analogous to *_page_state.  The second group of\nfunctions can be called if it is known that interrupts are disabled.\n\nSpecial optimized increment and decrement functions are provided.  These can\navoid certain checks and use increment or decrement instructions that an\narchitecture may provide.\n\nWe also add a new CONFIG_DMA_IS_NORMAL that signifies that an architecture can\ndo DMA to all memory and therefore ZONE_NORMAL will not be populated.  This is\nonly currently set for IA64 SGI SN2 and currently only affects\nnode_page_state().  In the best case node_page_state can be reduced to\nretrieving a single counter for the one zone on the node.\n\n[akpm@osdl.org: cleanups]\n[akpm@osdl.org: export vm_stat[] for filesystems]\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "f6ac2354d791195ca40822b84d73d48a4e8b7f2b",
      "tree": "5f600175cf3591eac3d32bb8cebfd45d0aabf804",
      "parents": [
        "672b2714ae57af16fe7d760dc4e0918a7a6cb0fa"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Fri Jun 30 01:55:32 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 30 11:25:34 2006 -0700"
      },
      "message": "[PATCH] zoned vm counters: create vmstat.c/.h from page_alloc.c/.h\n\nNOTE: ZVC are *not* the lightweight event counters.  ZVCs are reliable whereas\nevent counters do not need to be.\n\nZone based VM statistics are necessary to be able to determine what the state\nof memory in one zone is.  In a NUMA system this can be helpful for local\nreclaim and other memory optimizations that may be able to shift VM load in\norder to get more balanced memory use.\n\nIt is also useful to know how the computing load affects the memory\nallocations on various zones.  This patchset allows the retrieval of that data\nfrom userspace.\n\nThe patchset introduces a framework for counters that is a cross between the\nexisting page_stats --which are simply global counters split per cpu-- and the\napproach of deferred incremental updates implemented for nr_pagecache.\n\nSmall per cpu 8 bit counters are added to struct zone.  If the counter exceeds\ncertain thresholds then the counters are accumulated in an array of\natomic_long in the zone and in a global array that sums up all zone values.\nThe small 8 bit counters are next to the per cpu page pointers and so they\nwill be in high in the cpu cache when pages are allocated and freed.\n\nAccess to VM counter information for a zone and for the whole machine is then\npossible by simply indexing an array (Thanks to Nick Piggin for pointing out\nthat approach).  The access to the total number of pages of various types does\nno longer require the summing up of all per cpu counters.\n\nBenefits of this patchset right now:\n\n- Ability for UP and SMP configuration to determine how memory\n  is balanced between the DMA, NORMAL and HIGHMEM zones.\n\n- loops over all processors are avoided in writeback and\n  reclaim paths. We can avoid caching the writeback information\n  because the needed information is directly accessible.\n\n- Special handling for nr_pagecache removed.\n\n- zone_reclaim_interval vanishes since VM stats can now determine\n  when it is worth to do local reclaim.\n\n- Fast inline per node page state determination.\n\n- Accurate counters in /sys/devices/system/node/node*/meminfo. Current\n  counters are counting simply which processor allocated a page somewhere\n  and guestimate based on that. So the counters were not useful to show\n  the actual distribution of page use on a specific zone.\n\n- The swap_prefetch patch requires per node statistics in order to\n  figure out when processors of a node can prefetch. This patch provides\n  some of the needed numbers.\n\n- Detailed VM counters available in more /proc and /sys status files.\n\nReferences to earlier discussions:\nV1 http://marc.theaimsgroup.com/?l\u003dlinux-kernel\u0026m\u003d113511649910826\u0026w\u003d2\nV2 http://marc.theaimsgroup.com/?l\u003dlinux-kernel\u0026m\u003d114980851924230\u0026w\u003d2\nV3 http://marc.theaimsgroup.com/?l\u003dlinux-kernel\u0026m\u003d115014697910351\u0026w\u003d2\nV4 http://marc.theaimsgroup.com/?l\u003dlinux-kernel\u0026m\u003d115024767318740\u0026w\u003d2\n\nPerformance tests with AIM7 did not show any regressions.  Seems to be a tad\nfaster even.  Tested on ia64/NUMA.  Builds fine on i386, SMP / UP.  Includes\nfixes for s390/arm/uml arch code.\n\nThis patch:\n\nMove counter code from page_alloc.c/page-flags.h to vmstat.c/h.\n\nCreate vmstat.c/vmstat.h by separating the counter code and the proc\nfunctions.\n\nMove the vm_stat_text array before zoneinfo_show.\n\n[akpm@osdl.org: s390 build fix]\n[akpm@osdl.org: HOTPLUG_CPU build fix]\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "6ab3d5624e172c553004ecc862bfeac16d9d68b7",
      "tree": "6d98881fe91fd9583c109208d5c27131b93fa248",
      "parents": [
        "e02169b682bc448ccdc819dc8639ed34a23cedd8"
      ],
      "author": {
        "name": "Jörn Engel",
        "email": "joern@wohnheim.fh-wedel.de",
        "time": "Fri Jun 30 19:25:36 2006 +0200"
      },
      "committer": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Fri Jun 30 19:25:36 2006 +0200"
      },
      "message": "Remove obsolete #include \u003clinux/config.h\u003e\n\nSigned-off-by: Jörn Engel \u003cjoern@wohnheim.fh-wedel.de\u003e\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\n"
    },
    {
      "commit": "f9b8404cf8f8456dfa83459510762b700dc00385",
      "tree": "f74b54c79ee3913d587644195d8af7ba13b6cc2a",
      "parents": [
        "6abdce7680e3e8436b3292b345d77b67d5ec9ea8"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Jun 27 02:54:49 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jun 27 17:32:46 2006 -0700"
      },
      "message": "[PATCH] pi-futex: introduce debug_check_no_locks_freed()\n\nAdd debug_check_no_locks_freed(), as a central inline to add\nbad-lock-free-debugging functionality to.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "74b85f3790aa2550c617fe14439482e13e615fa0",
      "tree": "125e9c503d483c304e111ca825358bd81e0610cd",
      "parents": [
        "65edc68c345cbe21d0b0375c3452a3ed5e322868"
      ],
      "author": {
        "name": "Chandra Seetharaman",
        "email": "sekharan@us.ibm.com",
        "time": "Tue Jun 27 02:54:09 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jun 27 17:32:41 2006 -0700"
      },
      "message": "[PATCH] cpu hotplug: make cpu_notifier related notifier blocks __cpuinit only\n\nMake notifier_blocks associated with cpu_notifier as __cpuinitdata.\n\n__cpuinitdata makes sure that the data is init time only unless\nCONFIG_HOTPLUG_CPU is defined.\n\nSigned-off-by: Chandra Seetharaman \u003csekharan@us.ibm.com\u003e\nCc: Ashok Raj \u003cashok.raj@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "9c7b216d23e820e0e148d5be01bbb5bd2d8378fe",
      "tree": "53e6c1e4870db49b4999b4053862d3f63375773f",
      "parents": [
        "6ac12dfe9c2027cd3c5ed603f11d1bb4f04906fe"
      ],
      "author": {
        "name": "Chandra Seetharaman",
        "email": "sekharan@us.ibm.com",
        "time": "Tue Jun 27 02:54:07 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jun 27 17:32:40 2006 -0700"
      },
      "message": "[PATCH] cpu hotplug: revert init patch submitted for 2.6.17\n\nIn 2.6.17, there was a problem with cpu_notifiers and XFS.  I provided a\nband-aid solution to solve that problem.  In the process, i undid all the\nchanges you both were making to ensure that these notifiers were available\nonly at init time (unless CONFIG_HOTPLUG_CPU is defined).\n\nWe deferred the real fix to 2.6.18.  Here is a set of patches that fixes the\nXFS problem cleanly and makes the cpu notifiers available only at init time\n(unless CONFIG_HOTPLUG_CPU is defined).\n\nIf CONFIG_HOTPLUG_CPU is defined then cpu notifiers are available at run\ntime.\n\nThis patch reverts the notifier_call changes made in 2.6.17\n\nSigned-off-by: Chandra Seetharaman \u003csekharan@us.ibm.com\u003e\nCc: Ashok Raj \u003cashok.raj@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "d6e05edc59ecd79e8badf440c0d295a979bdfa3e",
      "tree": "50362161f69317242ab603c51a18a818a4c93285",
      "parents": [
        "f18190bd3407554ba6df30a1927e07e6cba93e56"
      ],
      "author": {
        "name": "Andreas Mohr",
        "email": "andi@lisas.de",
        "time": "Mon Jun 26 18:35:02 2006 +0200"
      },
      "committer": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Mon Jun 26 18:35:02 2006 +0200"
      },
      "message": "spelling fixes\n\nacquired (aquired)\ncontiguous (contigious)\nsuccessful (succesful, succesfull)\nsurprise (suprise)\nwhether (weather)\nsome other misspellings\n\nSigned-off-by: Andreas Mohr \u003candi@lisas.de\u003e\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\n"
    },
    {
      "commit": "43b0bc00fdbf2f1503a57f0c2c1338438c5d2805",
      "tree": "1009ac1c764b21c50f96e2a108a2736504d9588a",
      "parents": [
        "dc851a0fd2736e8dc3e90bd990cb911a0013da67"
      ],
      "author": {
        "name": "Chris Wright",
        "email": "chrisw@sous-sol.org",
        "time": "Sun Jun 25 05:47:55 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jun 25 10:01:08 2006 -0700"
      },
      "message": "[PATCH] cpuset: remove extra cpuset_zone_allowed check in __alloc_pages\n\nThis is redundant with check in wakeup_kswapd.\n\nSigned-off-by: Chris Wright \u003cchrisw@sous-sol.org\u003e\nAcked-by: Paul Jackson \u003cpj@sgi.com\u003e\nAcked-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "8f9de51a4a98ba32f839903b7d009788bc2c295d",
      "tree": "65cde3cd75bfc1df172f53ca956cba4fa4954a4e",
      "parents": [
        "d501e62bc7796e90b0312648e23ac39490dfbf87"
      ],
      "author": {
        "name": "Kirill Korotaev",
        "email": "dev@openvz.org",
        "time": "Fri Jun 23 02:03:50 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 23 07:42:52 2006 -0700"
      },
      "message": "[PATCH] printk() should not be called under zone-\u003elock\n\nThis patch fixes printk() under zone-\u003elock in show_free_areas().  It can be\nunsafe to call printk() under this lock, since caller can try to\nallocate/free some memory and selfdeadlock on this lock.  I found\nallocations/freeing mem both in netconsole and serial console.\n\nThis issue was faced in reallity when meminfo was periodically printed for\ndebug purposes and netconsole was used.\n\nSigned-off-by: Kirill Korotaev \u003cdev@openvz.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "bd1e22b8e0a90f9a91e4c27db14ca15773659bf7",
      "tree": "8d32bdc39977af9dd3ba577b1fa34c0106b7f18e",
      "parents": [
        "e0a42726794f71336ff4b26084d453dd597471ce"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Fri Jun 23 02:03:47 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 23 07:42:52 2006 -0700"
      },
      "message": "[PATCH] initialise total_memory() earlier\n\nInitialise total_memory earlier in boot.  Because if for some reason we run\npage reclaim early in boot, we don\u0027t want total_memory to be zero when we use\nit as a divisor.\n\nAnd rename total_memory to vm_total_pages to avoid naming clashes with\narchitectures.\n\nCc: Yasunori Goto \u003cy-goto@jp.fujitsu.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Martin Bligh \u003cmbligh@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "67de648211fa041fe08a0c25241a4980bbb90698",
      "tree": "94f737e0fed7c40dc59e94f05d6851e490082068",
      "parents": [
        "6811378e7d8b9aa4fca2a1ca73d24c9d67c9cb12"
      ],
      "author": {
        "name": "Andy Whitcroft",
        "email": "apw@shadowen.org",
        "time": "Fri Jun 23 02:03:12 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 23 07:42:47 2006 -0700"
      },
      "message": "[PATCH] squash duplicate page_to_pfn and pfn_to_page\n\nWe have architectures where the size of page_to_pfn and pfn_to_page are\nsignificant enough to overall image size that they wish to push them out of\nline.  However, in the process we have grown a second copy of the\nimplementation of each of these routines for each memory model.  Share the\nimplmentation exposing it either inline or out-of-line as required.\n\nSigned-off-by: Andy Whitcroft \u003capw@shadowen.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "6811378e7d8b9aa4fca2a1ca73d24c9d67c9cb12",
      "tree": "37f2f5a2bf2e60848a571f8f43685c7406d7b238",
      "parents": [
        "cca448fe92246fb59efe55ba2e048ded0971a9af"
      ],
      "author": {
        "name": "Yasunori Goto",
        "email": "y-goto@jp.fujitsu.com",
        "time": "Fri Jun 23 02:03:11 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 23 07:42:46 2006 -0700"
      },
      "message": "[PATCH] wait_table and zonelist initializing for memory hotadd: update zonelists\n\nIn current code, zonelist is considered to be build once, no modification.\nBut MemoryHotplug can add new zone/pgdat.  It must be updated.\n\nThis patch modifies build_all_zonelists().  By this, build_all_zonelist() can\nreconfig pgdat\u0027s zonelists.\n\nTo update them safety, this patch use stop_machine_run().  Other cpus don\u0027t\ntouch among updating them by using it.\n\nIn old version (V2 of node hotadd), kernel updated them after zone\ninitialization.  But present_page of its new zone is still 0, because\nonline_page() is not called yet at this time.  Build_zonelists() checks\npresent_pages to find present zone.  It was too early.  So, I changed it after\nonline_pages().\n\nSigned-off-by: Yasunori Goto     \u003cy-goto@jp.fujitsu.com\u003e\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "cca448fe92246fb59efe55ba2e048ded0971a9af",
      "tree": "9663651686508b62a061851927f0b330200c40b1",
      "parents": [
        "718127cc3170454f4aa274fdd2f1e01574fecd66"
      ],
      "author": {
        "name": "Yasunori Goto",
        "email": "y-goto@jp.fujitsu.com",
        "time": "Fri Jun 23 02:03:10 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 23 07:42:46 2006 -0700"
      },
      "message": "[PATCH] wait_table and zonelist initializing for memory hotadd: wait_table initialization\n\nWait_table is initialized according to zone size at boot time.  But, we cannot\nknow the maixmum zone size when memory hotplug is enabled.  It can be\nchanged....  And resizing of wait_table is hard.\n\nSo kernel allocate and initialzie wait_table as its maximum size.\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Yasunori Goto \u003cy-goto@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "718127cc3170454f4aa274fdd2f1e01574fecd66",
      "tree": "8b42a48248d6508b8369718deef6b1af3ea82dbf",
      "parents": [
        "86356ab147669bd3bcb2149fd9561d1280835c24"
      ],
      "author": {
        "name": "Yasunori Goto",
        "email": "y-goto@jp.fujitsu.com",
        "time": "Fri Jun 23 02:03:10 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 23 07:42:46 2006 -0700"
      },
      "message": "[PATCH] wait_table and zonelist initializing for memory hotadd: add return code for init_current_empty_zone\n\nWhen add_zone() is called against empty zone (not populated zone), we have to\ninitialize the zone which didn\u0027t initialize at boot time.  But,\ninit_currently_empty_zone() may fail due to allocation of wait table.  So,\nthis patch is to catch its error code.\n\nChanges against wait_table is in the next patch.\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Yasunori Goto \u003cy-goto@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "86356ab147669bd3bcb2149fd9561d1280835c24",
      "tree": "bedc7113593e0f6a91aff18bb506fc3327516d81",
      "parents": [
        "02b694dea473ad3db1e2d1b14c1fef8fbd92e5e6"
      ],
      "author": {
        "name": "Yasunori Goto",
        "email": "y-goto@jp.fujitsu.com",
        "time": "Fri Jun 23 02:03:09 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 23 07:42:46 2006 -0700"
      },
      "message": "[PATCH] wait_table and zonelist initializing for memory hotadd: change to meminit for build_zonelist\n\nChange definitions of some functions and data from __init to __meminit.\n\nThese functions and data can be used after bootup by this patch to be used for\nhot-add codes.\n\nSigned-off-by: Yasunori Goto \u003cy-goto@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "02b694dea473ad3db1e2d1b14c1fef8fbd92e5e6",
      "tree": "a39451192b589486d70f4d989f9b7f19ef889db0",
      "parents": [
        "3c5a87f476bed45616e7e543dcaea4440c77bf93"
      ],
      "author": {
        "name": "Yasunori Goto",
        "email": "y-goto@jp.fujitsu.com",
        "time": "Fri Jun 23 02:03:08 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 23 07:42:46 2006 -0700"
      },
      "message": "[PATCH] wait_table and zonelist initializing for memory hotadd: change name of wait_table_size()\n\nThis is just to rename from wait_table_size() to wait_table_hash_nr_entries().\n\nSigned-off-by: Yasunori Goto \u003cy-goto@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "cb2b95e1c6b56e3d2369d3a5f4bc97f4fa180683",
      "tree": "121d3fcd539f7d62887949840307ac26aadaa9e4",
      "parents": [
        "6f0419e06a3b151ab616a31accdabef41dc2d1b0"
      ],
      "author": {
        "name": "Andy Whitcroft",
        "email": "apw@shadowen.org",
        "time": "Fri Jun 23 02:03:01 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 23 07:42:45 2006 -0700"
      },
      "message": "[PATCH] zone handle unaligned zone boundaries\n\nThe buddy allocator has a requirement that boundaries between contigious\nzones occur aligned with the the MAX_ORDER ranges.  Where they do not we\nwill incorrectly merge pages cross zone boundaries.  This can lead to pages\nfrom the wrong zone being handed out.\n\nOriginally the buddy allocator would check that buddies were in the same\nzone by referencing the zone start and end page frame numbers.  This was\nremoved as it became very expensive and the buddy allocator already made\nthe assumption that zones boundaries were aligned.\n\nIt is clear that not all configurations and architectures are honouring\nthis alignment requirement.  Therefore it seems safest to reintroduce\nsupport for non-aligned zone boundaries.  This patch introduces a new check\nwhen considering a page a buddy it compares the zone_table index for the\ntwo pages and refuses to merge the pages where they do not match.  The\nzone_table index is unique for each node/zone combination when\nFLATMEM/DISCONTIGMEM is enabled and for each section/zone combination when\nSPARSEMEM is enabled (a SPARSEMEM section is at least a MAX_ORDER size).\n\nSigned-off-by: Andy Whitcroft \u003capw@shadowen.org\u003e\nCc: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Yasunori Goto \u003cy-goto@jp.fujitsu.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e984bb43f7450312ba66fe0e67a99efa6be3b246",
      "tree": "54c86240172136fc81c773f71cd70eda54fed6f2",
      "parents": [
        "ae57a856429dd932c547530df1b234eb7e642297"
      ],
      "author": {
        "name": "Bob Picco",
        "email": "bob.picco@hp.com",
        "time": "Sat May 20 15:00:31 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun May 21 12:59:22 2006 -0700"
      },
      "message": "[PATCH] Align the node_mem_map endpoints to a MAX_ORDER boundary\n\nAndy added code to buddy allocator which does not require the zone\u0027s\nendpoints to be aligned to MAX_ORDER.  An issue is that the buddy allocator\nrequires the node_mem_map\u0027s endpoints to be MAX_ORDER aligned.  Otherwise\n__page_find_buddy could compute a buddy not in node_mem_map for partial\nMAX_ORDER regions at zone\u0027s endpoints.  page_is_buddy will detect that\nthese pages at endpoints are not PG_buddy (they were zeroed out by bootmem\nallocator and not part of zone).  Of course the negative here is we could\nwaste a little memory but the positive is eliminating all the old checks\nfor zone boundary conditions.\n\nSPARSEMEM won\u0027t encounter this issue because of MAX_ORDER size constraint\nwhen SPARSEMEM is configured.  ia64 VIRTUAL_MEM_MAP doesn\u0027t need the logic\neither because the holes and endpoints are handled differently.  This\nleaves checking alloc_remap and other arches which privately allocate for\nnode_mem_map.\n\nSigned-off-by: Bob Picco \u003cbob.picco@hp.com\u003e\nAcked-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nCc: Andy Whitcroft \u003capw@shadowen.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "bdd804f478a0cc74bf7db8e9f9d5fd379d1b31ca",
      "tree": "2b8f083b1ca698c0f9321b3714dab036d2531f29",
      "parents": [
        "593ee20766921fec643194dff829e17f30552220"
      ],
      "author": {
        "name": "Paul Jackson",
        "email": "pj@sgi.com",
        "time": "Sat May 20 15:00:09 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun May 21 12:59:18 2006 -0700"
      },
      "message": "[PATCH] Cpuset: might sleep checking zones allowed fix\n\nFix a couple of infrequently encountered \u0027sleeping function called from\ninvalid context\u0027 in the cpuset hooks in __alloc_pages.  Could sleep while\ninterrupts disabled.\n\nThe routine cpuset_zone_allowed() is called by code in mm/page_alloc.c\n__alloc_pages() to determine if a zone is allowed in the current tasks\ncpuset.  This routine can sleep, for certain GFP_KERNEL allocations, if the\nzone is on a memory node not allowed in the current cpuset, but might be\nallowed in a parent cpuset.\n\nBut we can\u0027t sleep in __alloc_pages() if in interrupt, nor if called for a\nGFP_ATOMIC request (__GFP_WAIT not set in gfp_flags).\n\nThe rule was intended to be:\n  Don\u0027t call cpuset_zone_allowed() if you can\u0027t sleep, unless you\n  pass in the __GFP_HARDWALL flag set in gfp_flag, which disables\n  the code that might scan up ancestor cpusets and sleep.\n\nThis rule was being violated in a couple of places, due to a bogus change\nmade (by myself, pj) to __alloc_pages() as part of the November 2005 effort\nto cleanup its logic, and also due to a later fix to constrain which swap\ndaemons were awoken.\n\nThe bogus change can be seen at:\n  http://linux.derkeiler.com/Mailing-Lists/Kernel/2005-11/4691.html\n  [PATCH 01/05] mm fix __alloc_pages cpuset ALLOC_* flags\n\nThis was first noticed on a tight memory system, in code that was disabling\ninterrupts and doing allocation requests with __GFP_WAIT not set, which\nresulted in __might_sleep() writing complaints to the log \"Debug: sleeping\nfunction called ...\", when the code in cpuset_zone_allowed() tried to take\nthe callback_sem cpuset semaphore.\n\nWe haven\u0027t seen a system hang on this \u0027might_sleep\u0027 yet, but we are at\ndecent risk of seeing it fairly soon, especially since the additional\ncpuset_zone_allowed() check was added, conditioning wakeup_kswapd(), in\nMarch 2006.\n\nSpecial thanks to Dave Chinner, for figuring this out, and a tip of the hat\nto Nick Piggin who warned me of this back in Nov 2005, before I was ready\nto listen.\n\nSigned-off-by: Paul Jackson \u003cpj@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "ac924c6034d9095f95ee889f7e31bbb9145da0c2",
      "tree": "2db4fc64a008ff2b81a0faf381d8c21ccc5006b2",
      "parents": [
        "5afdbd6e84c7fbdaa7cfde4cbee0d3a5f4f56da2"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Mon May 15 09:43:59 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon May 15 11:20:55 2006 -0700"
      },
      "message": "[PATCH] setup_per_zone_pages_min() overflow fix\n\nAs pointed out in http://bugzilla.kernel.org/show_bug.cgi?id\u003d6490, this\nfunction can experience overflows on 32-bit machines, causing our response to\nchanged values of min_free_kbytes to go whacky.\n\nFixing it efficiently is all too hard, so fix it with 64-bit math instead.\n\nCc: Ake Sandgren \u003cake.sandgren@hpc2n.umu.se\u003e\nCc: Martin Bligh \u003cmbligh@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "83d722f7e198b034699b1500d98729beff930efd",
      "tree": "7d790a2fd62165373ec7bacde704837288e0bec3",
      "parents": [
        "649bbaa484bcdce94f40a1b97a6a2ded0549e8a2"
      ],
      "author": {
        "name": "Chandra Seetharaman",
        "email": "sekharan@us.ibm.com",
        "time": "Mon Apr 24 19:35:21 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Apr 26 08:30:03 2006 -0700"
      },
      "message": "[PATCH] Remove __devinit and __cpuinit from notifier_call definitions\n\nFew of the notifier_chain_register() callers use __init in the definition\nof notifier_call.  It is incorrect as the function definition should be\navailable after the initializations (they do not unregister them during\ninitializations).\n\nThis patch fixes all such usages to _not_ have the notifier_call __init\nsection.\n\nSigned-off-by: Chandra Seetharaman \u003csekharan@us.ibm.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "6aa3001b239b387d98a7f945e4a51edeb59e4f2d",
      "tree": "df3901329baddd8c37a661ad595fa52821dee8ef",
      "parents": [
        "013159227b840dfd441bd2e4c8b4d77ffb3cc42e"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Tue Apr 18 22:20:52 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Apr 19 09:13:50 2006 -0700"
      },
      "message": "[PATCH] page_alloc.c: buddy handling cleanup\n\nFix up some whitespace damage.\n\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "cb45b0e966cbe747b6189c15b108901cc7d6c97c",
      "tree": "0402d4809ec175e80b083f7a713ec32c0109baad",
      "parents": [
        "e23ca00bf1b1c6c0f04702cb4d29e275ab8dc330"
      ],
      "author": {
        "name": "Hideo AOKI",
        "email": "haoki@redhat.com",
        "time": "Mon Apr 10 22:52:59 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Apr 11 06:18:32 2006 -0700"
      },
      "message": "[PATCH] overcommit: add calculate_totalreserve_pages()\n\nThese patches are an enhancement of OVERCOMMIT_GUESS algorithm in\n__vm_enough_memory().\n\n- why the kernel needed patching\n\n  When the kernel can\u0027t allocate anonymous pages in practice, currnet\n  OVERCOMMIT_GUESS could return success. This implementation might be\n  the cause of oom kill in memory pressure situation.\n\n  If the Linux runs with page reservation features like\n  /proc/sys/vm/lowmem_reserve_ratio and without swap region, I think\n  the oom kill occurs easily.\n\n- the overall design approach in the patch\n\n  When the OVERCOMMET_GUESS algorithm calculates number of free pages,\n  the reserved free pages are regarded as non-free pages.\n\n  This change helps to avoid the pitfall that the number of free pages\n  become less than the number which the kernel tries to keep free.\n\n- testing results\n\n  I tested the patches using my test kernel module.\n\n  If the patches aren\u0027t applied to the kernel, __vm_enough_memory()\n  returns success in the situation but autual page allocation is\n  failed.\n\n  On the other hand, if the patches are applied to the kernel, memory\n  allocation failure is avoided since __vm_enough_memory() returns\n  failure in the situation.\n\n  I checked that on i386 SMP 16GB memory machine. I haven\u0027t tested on\n  nommu environment currently.\n\nThis patch adds totalreserve_pages for __vm_enough_memory().\n\nCalculate_totalreserve_pages() checks maximum lowmem_reserve pages and\npages_high in each zone. Finally, the function stores the sum of each\nzone to totalreserve_pages.\n\nThe totalreserve_pages is calculated when the VM is initilized.\nAnd the variable is updated when /proc/sys/vm/lowmem_reserve_raito\nor /proc/sys/vm/min_free_kbytes are changed.\n\nSigned-off-by: Hideo Aoki \u003chaoki@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "676165a8af7167f488abdcce6851a9bc36e83254",
      "tree": "a9b2b8dc155b48ce073b5ada31f2ac0694118e69",
      "parents": [
        "c3a9d6541f84ac3ff566982d08389b87c1c36b4e"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "piggin@cyberone.com.au",
        "time": "Mon Apr 10 11:21:48 2006 +1000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Apr 10 10:16:37 2006 -0700"
      },
      "message": "[PATCH] Fix buddy list race that could lead to page lru list corruptions\n\nRohit found an obscure bug causing buddy list corruption.\n\npage_is_buddy is using a non-atomic test (PagePrivate \u0026\u0026 page_count \u003d\u003d 0)\nto determine whether or not a free page\u0027s buddy is itself free and in the\nbuddy lists.\n\nEach of the conjuncts may be true at different times due to unrelated\nconditions, so the non-atomic page_is_buddy test may find each conjunct to\nbe true even if they were not both true at the same time (ie. the page was\nnot on the buddy lists).\n\nSigned-off-by: Martin Bligh \u003cmbligh@google.com\u003e\nSigned-off-by: Rohit Seth \u003crohitseth@google.com\u003e\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "ae0f15fb91274e67d78836d38c99ec363df33073",
      "tree": "bfaa065faf772c42e1875c9e5f4b000cf4b1d241",
      "parents": [
        "3571761fe49d960bb720c2308ffb9401f0a5e161"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Mon Mar 27 01:16:01 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Mar 27 08:44:48 2006 -0800"
      },
      "message": "[PATCH] for_each_online_pgdat: remove pgdat_list\n\nBy using for_each_online_pgdat(), pgdat_list is not necessary now.  This patch\nremoves it.\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "ec936fc563715a9e2b2e363eb060655b49529325",
      "tree": "72e77aefeeda3c6ff396f080a5c6a82f25d52bf0",
      "parents": [
        "679bc9fbb508a0aac9539b2de747eb5849feb428"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Mon Mar 27 01:15:59 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Mar 27 08:44:48 2006 -0800"
      },
      "message": "[PATCH] for_each_online_pgdat: renaming for_each_pgdat\n\nReplace for_each_pgdat() with for_each_online_pgdat().\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "a0140c1d85637ee5f4ea7c78f066e3611a6a79dc",
      "tree": "7a52892e57ff7a97a3aabf920891b68ca8bf578a",
      "parents": [
        "0ecd702bcb924d5fb7f687e09986f688336ac896"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Mon Mar 27 01:15:55 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Mar 27 08:44:47 2006 -0800"
      },
      "message": "[PATCH] remove zone_mem_map\n\nThis patch removes zone_mem_map.\n\npfn_to_page uses pgdat, page_to_pfn uses zone.  page_to_pfn can use pgdat\ninstead of zone, which is only one user of zone_mem_map.  By modifing it,\nwe can remove zone_mem_map.\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nCc: Christoph Lameter \u003cchristoph@lameter.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "a117e66ed45ac0569c039ea60bd7a9a61e031858",
      "tree": "292367ab930f83c418c34d4c46f95717e5e6394e",
      "parents": [
        "b06be912a3ad68c69dba0ed6e92723140020e392"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Mon Mar 27 01:15:25 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Mar 27 08:44:44 2006 -0800"
      },
      "message": "[PATCH] unify pfn_to_page: generic functions\n\nThere are 3 memory models, FLATMEM, DISCONTIGMEM, SPARSEMEM.\nEach arch has its own page_to_pfn(), pfn_to_page() for each models.\nBut most of them can use the same arithmetic.\n\nThis patch adds asm-generic/memory_model.h, which includes generic\npage_to_pfn(), pfn_to_page() definitions for each memory model.\n\nWhen CONFIG_OUT_OF_LINE_PFN_TO_PAGE\u003dy, out-of-line functions are\nused instead of macro. This is enabled by some archs and  reduces\ntext size.\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: Andi Kleen \u003cak@muc.de\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Richard Henderson \u003crth@twiddle.net\u003e\nCc: Ivan Kokshaysky \u003cink@jurassic.park.msu.ru\u003e\nCc: Russell King \u003crmk@arm.linux.org.uk\u003e\nCc: Ian Molton \u003cspyro@f2s.com\u003e\nCc: Mikael Starvik \u003cstarvik@axis.com\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: Yoshinori Sato \u003cysato@users.sourceforge.jp\u003e\nCc: Hirokazu Takata \u003ctakata.hirokazu@renesas.com\u003e\nCc: Ralf Baechle \u003cralf@linux-mips.org\u003e\nCc: Kyle McMartin \u003ckyle@mcmartin.ca\u003e\nCc: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: Kazumoto Kojima \u003ckkojima@rr.iij4u.or.jp\u003e\nCc: Richard Curnow \u003crc@rc0.org.uk\u003e\nCc: William Lee Irwin III \u003cwli@holomorphy.com\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: Jeff Dike \u003cjdike@addtoit.com\u003e\nCc: Paolo \u0027Blaisorblade\u0027 Giarrusso \u003cblaisorblade@yahoo.it\u003e\nCc: Miles Bader \u003cuclinux-v850@lsi.nec.co.jp\u003e\nCc: Chris Zankel \u003cchris@zankel.net\u003e\nCc: \"Luck, Tony\" \u003ctony.luck@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "6e692ed37a507e18d8afe8e5faebd8c4722c5f12",
      "tree": "9178f07eb643123d20a95e4ec08477f2c85bd9ea",
      "parents": [
        "962749af67b145c57917bfbff3c303ebd7d5988c"
      ],
      "author": {
        "name": "John Hawkes",
        "email": "hawkes@sgi.com",
        "time": "Sat Mar 25 03:08:02 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Mar 25 08:22:58 2006 -0800"
      },
      "message": "[PATCH] fix alloc_large_system_hash() roundup\n\nThe \"rounded up to nearest power of 2 in size\" algorithm in\nalloc_large_system_hash is not correct.  As coded, it takes an otherwise\nacceptable power-of-2 value and doubles it.  For example, we see the error\nif we boot with thash_entries\u003d2097152 which produces a hash table with\n4194304 entries.\n\nSigned-off-by: John Hawkes \u003chawkes@sgi.com\u003e\nCc: Roland Dreier \u003crdreier@cisco.com\u003e\nCc: \"Chen, Kenneth W\" \u003ckenneth.w.chen@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "f5335c0f1bcba16907972b66b905f62402433e23",
      "tree": "9db1cf38a34b3dc9559e785d910e95d7002c91e2",
      "parents": [
        "d784124cfe9377c1a24d8efba31401f81c7c11f9"
      ],
      "author": {
        "name": "Anton Blanchard",
        "email": "anton@samba.org",
        "time": "Sat Mar 25 03:06:49 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Mar 25 08:22:50 2006 -0800"
      },
      "message": "[PATCH] quieten zone_pcp_init\n\nIn zone_pcp_init we print out all zones even if they are empty:\n\nOn node 0 totalpages: 245760\n  DMA zone: 245760 pages, LIFO batch:31\n  DMA32 zone: 0 pages, LIFO batch:0\n  Normal zone: 0 pages, LIFO batch:0\n  HighMem zone: 0 pages, LIFO batch:0\n\nTo conserve dmesg space why not print only the non zero zones.\n\nSigned-off-by: Anton Blanchard \u003canton@samba.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "0b1303fcf23678ee1785841fb0c770a35cd0833c",
      "tree": "78b90c2766f8468b39363bd4525ebaa9b192aa8f",
      "parents": [
        "95c3832272fc77ea3e31f6382f82ba17be985cc7"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@engr.sgi.com",
        "time": "Fri Mar 24 03:15:59 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Mar 24 07:33:22 2006 -0800"
      },
      "message": "[PATCH] cpusets: only wakeup kswapd for zones in the current cpuset\n\nIf we get under some memory pressure in a cpuset (we only scan zones that\nare in the cpuset for memory) then kswapd is woken up for all zones.  This\npatch only wakes up kswapd in zones that are part of the current cpuset.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nAcked-by: Paul Jackson \u003cpj@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "879336c3930ae9273ea1c45214cb8adae0ce494a",
      "tree": "24fbb8aff19f6747b6cc40cb05cbe9f4c21f85e3",
      "parents": [
        "b18e7e654d7af741d2bf34a90dc34128d0217fea"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Wed Mar 22 00:09:08 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Mar 22 07:54:06 2006 -0800"
      },
      "message": "[PATCH] drain_node_pages: interrupt latency reduction / optimization\n\n1. Only disable interrupts if there is actually something to free\n\n2. Only dirty the pcp cacheline if we actually freed something.\n\n3. Disable interrupts for each single pcp and not for cleaning\n  all the pcps in all zones of a node.\n\ndrain_node_pages is called every 2 seconds from cache_reap. This\nfix should avoid most disabling of interrupts.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "6626c5d53bc45c59798628677ba5606f02e371f3",
      "tree": "7be40e7709b1887648a649fd6b5c036638c4608b",
      "parents": [
        "17cf44064ae744f081309108fa67f0e942b10167"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Wed Mar 22 00:08:42 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Mar 22 07:54:02 2006 -0800"
      },
      "message": "[PATCH] mm: prep_zero_page() in irq is a bug\n\nprep_zero_page() uses KM_USER0 and hence may not be used from IRQ context, at\nleast for highmem pages.\n\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Christoph Lameter \u003cchristoph@lameter.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "17cf44064ae744f081309108fa67f0e942b10167",
      "tree": "9073ac7498b559f5d0d36843e305a39eecc6436b",
      "parents": [
        "7835e98b2e3c66dba79cb0ff8ebb90a2fe030c29"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Wed Mar 22 00:08:41 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Mar 22 07:54:02 2006 -0800"
      },
      "message": "[PATCH] mm: cleanup prep_ stuff\n\nMove the prep_ stuff into prep_new_page.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "7835e98b2e3c66dba79cb0ff8ebb90a2fe030c29",
      "tree": "405a96eade34845dabe2f125b6c5eb095846869d",
      "parents": [
        "70dc991d66cac40fdb07346dba2b5d862d732c34"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Wed Mar 22 00:08:40 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Mar 22 07:54:02 2006 -0800"
      },
      "message": "[PATCH] remove set_page_count() outside mm/\n\nset_page_count usage outside mm/ is limited to setting the refcount to 1.\nRemove set_page_count from outside mm/, and replace those users with\ninit_page_count() and set_page_refcounted().\n\nThis allows more debug checking, and tighter control on how code is allowed\nto play around with page-\u003e_count.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "84097518d1ecd2330f9488e4c2d09953a3340e74",
      "tree": "50981fe0584c456a1a86e6d7f611eec223b5f536",
      "parents": [
        "0f8053a509ceba4a077a50ea7b77039b5559b428"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Wed Mar 22 00:08:34 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Mar 22 07:54:01 2006 -0800"
      },
      "message": "[PATCH] mm: nommu use compound pages\n\nNow that compound page handling is properly fixed in the VM, move nommu\nover to using compound pages rather than rolling their own refcounting.\n\nnommu vm page refcounting is broken anyway, but there is no need to have\ndivergent code in the core VM now, nor when it gets fixed.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\n\n(Needs testing, please).\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "545b1ea9bfa5a8ca9af33d63144bd4f2faaea8dd",
      "tree": "deef747e0f08089a0cd14e09551efaddfad813f9",
      "parents": [
        "9d41415221214ca4820b9464dfa548e2f20e7dd5"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Wed Mar 22 00:08:07 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Mar 22 07:53:58 2006 -0800"
      },
      "message": "[PATCH] mm: cleanup bootmem\n\nThe bootmem code added to page_alloc.c duplicated some page freeing code\nthat it really doesn\u0027t need to because it is not so performance critical.\n\nWhile we\u0027re here, make prefetching work properly by actually prefetching\nthe page we\u0027re about to use before prefetching ahead to the next one (ie.\nget the most important transaction started first).  Also prefetch just a\nsingle page ahead rather than leaving a gap of 16.\n\nJack Steiner reported no problems with SGI\u0027s ia64 simulator.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "8dfcc9ba27e2ed257e5de9539f7f03e57c2c0e33",
      "tree": "aecaeb6a0b33c23f79dfcd2418e4a3881a29f2e2",
      "parents": [
        "8e7a9aae91101916b86de07fafe3272ea8dc1f10"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Wed Mar 22 00:08:05 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Mar 22 07:53:57 2006 -0800"
      },
      "message": "[PATCH] mm: split highorder pages\n\nHave an explicit mm call to split higher order pages into individual pages.\n Should help to avoid bugs and be more explicit about the code\u0027s intention.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Russell King \u003crmk@arm.linux.org.uk\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: Ralf Baechle \u003cralf@linux-mips.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: Chris Zankel \u003cchris@zankel.net\u003e\nSigned-off-by: Yoichi Yuasa \u003cyoichi_yuasa@tripeaks.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "5e9dace8d386def04219134d7160e8a778824764",
      "tree": "d74ca57577cc4872eb6bcf609e3c7f7d1a39fdf6",
      "parents": [
        "674539115cc88473f623581e1d53c0e2ecef2179"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Wed Mar 22 00:08:01 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Mar 22 07:53:57 2006 -0800"
      },
      "message": "[PATCH] mm: page_alloc less atomics\n\nMore atomic operation removal from page allocator\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "b40607fc02f8248828d52d88f91b7d68df1933b0",
      "tree": "4e29b252e6bf8d520de092edfeb9bc60413d92cb",
      "parents": [
        "68ed0040a8c9d06b73cda322a1f740749bd6e41a"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Wed Mar 22 00:07:39 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Mar 22 07:53:55 2006 -0800"
      },
      "message": "[PATCH] __get_page_state() cpumask cleanup and fix\n\n__get_page_state() has an open-coded for_each_cpu_mask() loop in it.\n\nTidy that up, then notice that the code was buggy:\n\n\twhile (cpu \u003c NR_CPUS) {\n\t\tunsigned long *in, *out, off;\n\n\t\tif (!cpu_isset(cpu, *cpumask))\n\t\t\tcontinue;\n\nan obvious infinite loop.  I guess we just never call it with a holey cpu\nmask.\n\nEven after my cpumask size-reduction work, this patch increases code size :(\n\nCc: Paul Jackson \u003cpj@sgi.com\u003e\nCc: Christoph Lameter \u003cclameter@engr.sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "8fce4d8e3b9e3cf47cc8afeb6077e22ab795d989",
      "tree": "4930be5756f7a3893717d38f443f6261f11a1f60",
      "parents": [
        "7b61fcda8a640bb87be23f9f09c1f24357b5c6e1"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@engr.sgi.com",
        "time": "Thu Mar 09 17:33:54 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Mar 09 19:47:38 2006 -0800"
      },
      "message": "[PATCH] slab: Node rotor for freeing alien caches and remote per cpu pages.\n\nThe cache reaper currently tries to free all alien caches and all remote\nper cpu pages in each pass of cache_reap.  For a machines with large number\nof nodes (such as Altix) this may lead to sporadic delays of around ~10ms.\nInterrupts are disabled while reclaiming creating unacceptable delays.\n\nThis patch changes that behavior by adding a per cpu reap_node variable.\nInstead of attempting to free all caches, we free only one alien cache and\nthe per cpu pages from one remote node.  That reduces the time spend in\ncache_reap.  However, doing so will lengthen the time it takes to\ncompletely drain all remote per cpu pagesets and all alien caches.  The\ntime needed will grow with the number of nodes in the system.  All caches\nare drained when they overflow their respective capacity.  So the drawback\nhere is only that a bit of memory may be wasted for awhile longer.\n\nDetails:\n\n1. Rename drain_remote_pages to drain_node_pages to allow the specification\n   of the node to drain of pcp pages.\n\n2. Add additional functions init_reap_node, next_reap_node for NUMA\n   that manage a per cpu reap_node counter.\n\n3. Add a reap_alien function that reaps only from the current reap_node.\n\nFor us this seems to be a critical issue.  Holdoffs of an average of ~7ms\ncause some HPC benchmarks to slow down significantly.  F.e.  NAS parallel\nslows down dramatically.  NAS parallel has a 12-16 seconds runtime w/o rotor\ncompared to 5.8 secs with the rotor patches.  It gets down to 5.05 secs with\nthe additional interrupt holdoff reductions.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "9b0f8b040acd8dfd23860754c0d09ff4f44e2cbc",
      "tree": "33c69908705c88b86f14d9e835b6dee6a9c3a31b",
      "parents": [
        "9827b781f20828e5ceb911b879f268f78fe90815"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@engr.sgi.com",
        "time": "Mon Feb 20 18:27:52 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Feb 20 20:00:09 2006 -0800"
      },
      "message": "[PATCH] Terminate process that fails on a constrained allocation\n\nSome allocations are restricted to a limited set of nodes (due to memory\npolicies or cpuset constraints).  If the page allocator is not able to find\nenough memory then that does not mean that overall system memory is low.\n\nIn particular going postal and more or less randomly shooting at processes\nis not likely going to help the situation but may just lead to suicide (the\nwhole system coming down).\n\nIt is better to signal to the process that no memory exists given the\nconstraints that the process (or the configuration of the process) has\nplaced on the allocation behavior.  The process may be killed but then the\nsysadmin or developer can investigate the situation.  The solution is\nsimilar to what we do when running out of hugepages.\n\nThis patch adds a check before we kill processes.  At that point\nperformance considerations do not matter much so we just scan the zonelist\nand reconstruct a list of nodes.  If the list of nodes does not contain all\nonline nodes then this is a constrained allocation and we should kill the\ncurrent process.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Andi Kleen \u003cak@muc.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "4cf808eb443ead42777a0230b73aec0cee7fb298",
      "tree": "2d6dac429fcfcf18c9837c8c34164eff03e46fec",
      "parents": [
        "cfe91f9ce297e23e6fbdf61c02bdd8ab9af7c8a8"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@osdl.org",
        "time": "Fri Feb 17 20:38:21 2006 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Feb 17 13:27:06 2006 -0800"
      },
      "message": "[PATCH] Handle holes in node mask in node fallback list setup\n\nChange the find_next_best_node algorithm to correctly skip\nover holes in the node online mask. Previously it would not handle\nmissing nodes correctly and cause crashes at boot.\n\n[Written by Linus, tested by AK]\n\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "d98c7a09843621f1b145ca5ae8ed03ff04085edb",
      "tree": "764b943efb177ca506fad61a63bb9e8cbf56a3a7",
      "parents": [
        "41d78ba55037468e6c86c53e3076d1a74841de39"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Tue Feb 14 13:52:59 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Feb 14 16:09:33 2006 -0800"
      },
      "message": "[PATCH] compound page: default destructor\n\nSomehow I imagined that calling a NULL destructor would free a compound page\nrather than oopsing.  No, we must supply a default destructor, __free_pages_ok\nusing the order noted by prep_compound_page.  hugetlb can still replace this\nas before with its own free_huge_page pointer.\n\nThe case that needs this is not common: rarely does put_compound_page\u0027s\nput_page_testzero bring the count down to 0.  But if get_user_pages is applied\nto some part of a compound page, without immediate release (e.g.  AIO or\nInfiniband), then it\u0027s possible for its put_page to come after the containing\nvma has been unmapped and the driver done its free_pages.\n\nThat\u0027s just the kind of case compound pages are supposed to be guarding\nagainst (but Nick points out, nor did PageReserved handle this right).\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "41d78ba55037468e6c86c53e3076d1a74841de39",
      "tree": "d970f18d18532009b17c736583429401dbd64ade",
      "parents": [
        "7277232374680595cdbc774fd246b206f56db015"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Tue Feb 14 13:52:58 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Feb 14 16:09:33 2006 -0800"
      },
      "message": "[PATCH] compound page: use page[1].lru\n\nIf a compound page has its own put_page_testzero destructor (the only current\nexample is free_huge_page), that is noted in page[1].mapping of the compound\npage.  But that\u0027s rather a poor place to keep it: functions which call\nset_page_dirty_lock after get_user_pages (e.g.  Infiniband\u0027s\n__ib_umem_release) ought to be checking first, otherwise set_page_dirty is\nliable to crash on what\u0027s not the address of a struct address_space.\n\nAnd now I\u0027m about to make that worse: it turns out that every compound page\nneeds a destructor, so we can no longer rely on hugetlb pages going their own\nspecial way, to avoid further problems of page-\u003emapping reuse.  For example,\nnot many people know that: on 50% of i386 -Os builds, the first tail page of a\ncompound page purports to be PageAnon (when its destructor has an odd\naddress), which surprises page_add_file_rmap.\n\nKeep the compound page destructor in page[1].lru.next instead.  And to free up\nthe common pairing of mapping and index, also move compound page order from\nindex to lru.prev.  Slab reuses page-\u003elru too: but if we ever need slab to use\ncompound pages, it can easily stack its use above this.\n\n(akpm: decoded version of the above: the tail pages of a compound page now\nhave -\u003emapping\u003d\u003dNULL, so there\u0027s no need for the set_page_dirty[_lock]()\ncaller to check that they\u0027re not compund pages before doing the dirty).\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "88a2a4ac6b671a4b0dd5d2d762418904c05f4104",
      "tree": "8c30052a0d7fadec37c785a42a71b28d0a9c5fcf",
      "parents": [
        "cef5076987dd545ac74f4efcf1c962be8eac34b0"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "dada1@cosmosbay.com",
        "time": "Sat Feb 04 23:27:36 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Feb 05 11:06:51 2006 -0800"
      },
      "message": "[PATCH] percpu data: only iterate over possible CPUs\n\npercpu_data blindly allocates bootmem memory to store NR_CPUS instances of\ncpudata, instead of allocating memory only for possible cpus.\n\nAs a preparation for changing that, we need to convert various 0 -\u003e NR_CPUS\nloops to use for_each_cpu().\n\n(The above only applies to users of asm-generic/percpu.h.  powerpc has gone it\nalone and is presently only allocating memory for present CPUs, so it\u0027s\ncurrently corrupting memory).\n\nSigned-off-by: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: James Bottomley \u003cJames.Bottomley@steeleye.com\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Jens Axboe \u003caxboe@suse.de\u003e\nCc: Anton Blanchard \u003canton@samba.org\u003e\nAcked-by: William Irwin \u003cwli@holomorphy.com\u003e\nCc: Andi Kleen \u003cak@muc.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "6292d9aaf3047f1abd970bc64ab6d952eda258ac",
      "tree": "2ea2e47572ee8addca7624c6d1e0823449f6f58d",
      "parents": [
        "88356e908521a84b2220c9e8850d1a356a851aa9"
      ],
      "author": {
        "name": "Ashok Raj",
        "email": "ashok.raj@intel.com",
        "time": "Wed Feb 01 03:04:44 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Feb 01 08:53:09 2006 -0800"
      },
      "message": "[PATCH] __cpuinit functions wrongly marked __meminit\n\n__meminit has overzelously been modified and crept its way into marking\ncpuup callbacks as __meminit.\n\nSigned-off-by: Ashok Raj \u003cashok.raj@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "9eeff2395e3cfd05c9b2e6074ff943a34b0c5c21",
      "tree": "20160098ec6ed8738cfecfc5f81181ad22b44e60",
      "parents": [
        "f1fd1067ece574ab56e4a70878b9a5a1ed4c3c42"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Wed Jan 18 17:42:31 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Jan 18 19:20:17 2006 -0800"
      },
      "message": "[PATCH] Zone reclaim: Reclaim logic\n\nSome bits for zone reclaim exists in 2.6.15 but they are not usable.  This\npatch fixes them up, removes unused code and makes zone reclaim usable.\n\nZone reclaim allows the reclaiming of pages from a zone if the number of\nfree pages falls below the watermarks even if other zones still have enough\npages available.  Zone reclaim is of particular importance for NUMA\nmachines.  It can be more beneficial to reclaim a page than taking the\nperformance penalties that come with allocating a page on a remote zone.\n\nZone reclaim is enabled if the maximum distance to another node is higher\nthan RECLAIM_DISTANCE, which may be defined by an arch.  By default\nRECLAIM_DISTANCE is 20.  20 is the distance to another node in the same\ncomponent (enclosure or motherboard) on IA64.  The meaning of the NUMA\ndistance information seems to vary by arch.\n\nIf zone reclaim is not successful then no further reclaim attempts will\noccur for a certain time period (ZONE_RECLAIM_INTERVAL).\n\nThis patch was discussed before. See\n\nhttp://marc.theaimsgroup.com/?l\u003dlinux-kernel\u0026m\u003d113519961504207\u0026w\u003d2\nhttp://marc.theaimsgroup.com/?l\u003dlinux-kernel\u0026m\u003d113408418232531\u0026w\u003d2\nhttp://marc.theaimsgroup.com/?l\u003dlinux-kernel\u0026m\u003d113389027420032\u0026w\u003d2\nhttp://marc.theaimsgroup.com/?l\u003dlinux-kernel\u0026m\u003d113380938612205\u0026w\u003d2\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "c09b42404d29c8a9266f8186632330dc8474bf2e",
      "tree": "26477ddbd49e6de7ef16e21d7a7440b9b9f11c57",
      "parents": [
        "44df75e629106efcada087cead6c3f33ed6bcc60"
      ],
      "author": {
        "name": "Matt Tolentino",
        "email": "metolent@cs.vt.edu",
        "time": "Tue Jan 17 07:03:44 2006 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jan 16 23:18:35 2006 -0800"
      },
      "message": "[PATCH] x86_64: add __meminit for memory hotplug\n\nAdd __meminit to the __init lineup to ensure functions default\nto __init when memory hotplug is not enabled.  Replace __devinit\nwith __meminit on functions that were changed when the memory\nhotplug code was introduced.\n\nSigned-off-by: Matt Tolentino \u003cmatthew.e.tolentino@intel.com\u003e\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "cbe8dd4af2967ee1c2d54ec9d4db35cf3ecc98d3",
      "tree": "144660e46384377201583c9aeb4723ebfcf4af11",
      "parents": [
        "1edf80d347387405ff4e8934d194d75f57a3caef"
      ],
      "author": {
        "name": "Greg Ungerer",
        "email": "gerg@snapgear.com",
        "time": "Thu Jan 12 01:05:24 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Jan 12 09:08:49 2006 -0800"
      },
      "message": "[PATCH] memmap_init_zone(): remove uneccesary page++\n\nRemove unecessary page++ from memmap_init_zone loop.\n\nSigned-off-by: Greg Ungerer \u003cgerg@uclinux.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "4eac915d02453e81a32595cd7423492c81337a26",
      "tree": "2c652730cdf2cb0015cf59a8f75506c917685091",
      "parents": [
        "7365f3d169a1eae00e713c1a4eea90e86415dcc5"
      ],
      "author": {
        "name": "Paul Jackson",
        "email": "pj@sgi.com",
        "time": "Wed Jan 11 12:17:19 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Jan 11 18:42:09 2006 -0800"
      },
      "message": "[PATCH] mm: gfp_atomic comments\n\nClarify in comments that GFP_ATOMIC means both \"don\u0027t sleep\" and \"use\nemergency pools\", hence both ALLOC_HARDER and ALLOC_HIGH.\n\nSigned-off-by: Paul Jackson \u003cpj@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "7365f3d169a1eae00e713c1a4eea90e86415dcc5",
      "tree": "2071690e80631e38a732657e5debb83b0eedc12a",
      "parents": [
        "45ed344cc7b6456856b4ae5e3d81cdb18b98f8ad"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Wed Jan 11 12:17:18 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Jan 11 18:42:08 2006 -0800"
      },
      "message": "[PATCH] Restore KERN_EMERG to each line printed by bad_page\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "a4fc7ab1d065a9dd89ed0e74439ef87d4a16e980",
      "tree": "6312597ad183ee45e8769b1bc5b0035bfa681d64",
      "parents": [
        "a8b9ee7396ccc8db3bdb4108993556acbe2d3527"
      ],
      "author": {
        "name": "David Woodhouse",
        "email": "dwmw2@infradead.org",
        "time": "Wed Jan 11 14:41:26 2006 +0000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Jan 11 08:14:16 2006 -0800"
      },
      "message": "[PATCH] fix/simplify mutex debugging code\n\nLet\u0027s switch mutex_debug_check_no_locks_freed() to take (addr, len) as\narguments instead, since all its callers were just calculating the \u0027to\u0027\naddress for themselves anyway... (and sometimes doing so badly).\n\nSigned-off-by: David Woodhouse \u003cdwmw2@infradead.org\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "de5097c2e73f826302cd8957c225b3725e0c7553",
      "tree": "3d56ab6fd891088ac55a9ef529faf4360391a22f",
      "parents": [
        "408894ee4dd4debfdedd472eb4d8414892fc90f6"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jan 09 15:59:21 2006 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@hera.kernel.org",
        "time": "Mon Jan 09 15:59:21 2006 -0800"
      },
      "message": "[PATCH] mutex subsystem, more debugging code\n\nmore mutex debugging: check for held locks during memory freeing,\ntask exit, enable sysrq printouts, etc.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Arjan van de Ven \u003carjan@infradead.org\u003e\n"
    },
    {
      "commit": "3e0d98b9f1eb757fc98efc84e74e54a08308aa73",
      "tree": "7cf1c75994f734ede7ec89373de640c4a58b237a",
      "parents": [
        "5966514db662fb24c9bb43226a80106bcffd51f8"
      ],
      "author": {
        "name": "Paul Jackson",
        "email": "pj@sgi.com",
        "time": "Sun Jan 08 01:01:49 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jan 08 20:13:42 2006 -0800"
      },
      "message": "[PATCH] cpuset: memory pressure meter\n\nProvide a simple per-cpuset metric of memory pressure, tracking the -rate-\nthat the tasks in a cpuset call try_to_free_pages(), the synchronous\n(direct) memory reclaim code.\n\nThis enables batch managers monitoring jobs running in dedicated cpusets to\nefficiently detect what level of memory pressure that job is causing.\n\nThis is useful both on tightly managed systems running a wide mix of\nsubmitted jobs, which may choose to terminate or reprioritize jobs that are\ntrying to use more memory than allowed on the nodes assigned them, and with\ntightly coupled, long running, massively parallel scientific computing jobs\nthat will dramatically fail to meet required performance goals if they\nstart to use more memory than allowed to them.\n\nThis patch just provides a very economical way for the batch manager to\nmonitor a cpuset for signs of memory pressure.  It\u0027s up to the batch\nmanager or other user code to decide what to do about it and take action.\n\n\u003d\u003d\u003e Unless this feature is enabled by writing \"1\" to the special file\n    /dev/cpuset/memory_pressure_enabled, the hook in the rebalance\n    code of __alloc_pages() for this metric reduces to simply noticing\n    that the cpuset_memory_pressure_enabled flag is zero.  So only\n    systems that enable this feature will compute the metric.\n\nWhy a per-cpuset, running average:\n\n    Because this meter is per-cpuset, rather than per-task or mm, the\n    system load imposed by a batch scheduler monitoring this metric is\n    sharply reduced on large systems, because a scan of the tasklist can be\n    avoided on each set of queries.\n\n    Because this meter is a running average, instead of an accumulating\n    counter, a batch scheduler can detect memory pressure with a single\n    read, instead of having to read and accumulate results for a period of\n    time.\n\n    Because this meter is per-cpuset rather than per-task or mm, the\n    batch scheduler can obtain the key information, memory pressure in a\n    cpuset, with a single read, rather than having to query and accumulate\n    results over all the (dynamically changing) set of tasks in the cpuset.\n\nA per-cpuset simple digital filter (requires a spinlock and 3 words of data\nper-cpuset) is kept, and updated by any task attached to that cpuset, if it\nenters the synchronous (direct) page reclaim code.\n\nA per-cpuset file provides an integer number representing the recent\n(half-life of 10 seconds) rate of direct page reclaims caused by the tasks\nin the cpuset, in units of reclaims attempted per second, times 1000.\n\nSigned-off-by: Paul Jackson \u003cpj@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "48db57f8ff10eb09ab887ccb6150b0da0c7be24e",
      "tree": "5c9fba3937bb802aa2944af189aae57b7bf7aa8b",
      "parents": [
        "23316bc86fd31c5d644a71c398ec41d9fecacec4"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "nickpiggin@yahoo.com.au",
        "time": "Sun Jan 08 01:00:42 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jan 08 20:12:40 2006 -0800"
      },
      "message": "[PATCH] mm: free_pages opt\n\nTry to streamline free_pages_bulk by ensuring callers don\u0027t pass in a\n\u0027count\u0027 that exceeds the list size.\n\nSome cleanups:\nRename __free_pages_bulk to __free_one_page.\nPut the page list manipulation from __free_pages_ok into free_one_page.\nMake __free_pages_ok static.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "23316bc86fd31c5d644a71c398ec41d9fecacec4",
      "tree": "9efc5bbd9dd7c35b6b5fea8ce8215477c2ff43dd",
      "parents": [
        "8ad4b1fb8205340dba16b63467bb23efc27264d6"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "nickpiggin@yahoo.com.au",
        "time": "Sun Jan 08 01:00:41 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jan 08 20:12:40 2006 -0800"
      },
      "message": "[PATCH] mm: cleanup zone_pcp\n\nUse zone_pcp everywhere even though NUMA code \"knows\" the internal details\nof the zone.  Stop other people trying to copy, and it looks nicer.\n\nAlso, only print the pagesets of online cpus in zoneinfo.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: \"Seth, Rohit\" \u003crohit.seth@intel.com\u003e\nCc: Christoph Lameter \u003cchristoph@lameter.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "8ad4b1fb8205340dba16b63467bb23efc27264d6",
      "tree": "9f5c237ead93976e5454c5da5d3bba350a2419c5",
      "parents": [
        "9d0243bca345d5ce25d3f4b74b7facb3a6df1232"
      ],
      "author": {
        "name": "Rohit Seth",
        "email": "rohit.seth@intel.com",
        "time": "Sun Jan 08 01:00:40 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jan 08 20:12:40 2006 -0800"
      },
      "message": "[PATCH] Make high and batch sizes of per_cpu_pagelists configurable\n\nAs recently there has been lot of traffic on the right values for batch and\nhigh water marks for per_cpu_pagelists.  This patch makes these two\nvariables configurable through /proc interface.\n\nA new tunable /proc/sys/vm/percpu_pagelist_fraction is added.  This entry\ncontrols the fraction of pages at most in each zone that are allocated for\neach per cpu page list.  The min value for this is 8.  It means that we\ndon\u0027t allow more than 1/8th of pages in each zone to be allocated in any\nsingle per_cpu_pagelist.\n\nThe batch value of each per cpu pagelist is also updated as a result.  It\nis set to pcp-\u003ehigh/4.  The upper limit of batch is (PAGE_SHIFT * 8)\n\nSigned-off-by: Rohit Seth \u003crohit.seth@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "bec6b0c89b234090681a4516e20ac5debe3e7c59",
      "tree": "168a4c123e38b08d12b6787c18c4aa032520a48b",
      "parents": [
        "b28a02de8c70d41d6b6ba8911e83ed3ccf2e13f8"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@engr.sgi.com",
        "time": "Sun Jan 08 01:00:38 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jan 08 20:12:40 2006 -0800"
      },
      "message": "[PATCH] slab: remove nested #ifdef CONFIG_NUMA\n\nFor some reason there is an #ifdef CONFIG_NUMA within another #ifdef\nCONFIG_NUMA in the page allocator.  Remove innermost #ifdef CONFIG_NUMA\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "84c2008af01132c4ca257ed9b595693c611df15d",
      "tree": "a93bb1828e5b56ba041f8227ded78c9f04960a76",
      "parents": [
        "9f5336e21893fafd232a9a02cfa7588ad153889a"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Sun Jan 08 01:00:28 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jan 08 20:12:38 2006 -0800"
      },
      "message": "[PATCH] revert \"mm: page_state fixes\"\n\nHugh says:\n\npage_alloc_cpu_notify() specifically contains code to\n\n \t\t/* Add dead cpu\u0027s page_states to our own. */\n\nwhich handles this more efficiently.\n\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "a74609fafa2e5cc31d558012abaaa55ec9ad9da4",
      "tree": "0be653692864d99da345b575dfe2083994ee1d21",
      "parents": [
        "d3cb487149bd706aa6aeb02042332a450978dc1c"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "nickpiggin@yahoo.com.au",
        "time": "Fri Jan 06 00:11:20 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jan 06 08:33:29 2006 -0800"
      },
      "message": "[PATCH] mm: page_state opt\n\nOptimise page_state manipulations by introducing interrupt unsafe accessors\nto page_state fields.  Callers must provide their own locking (either\ndisable interrupts or not update from interrupt context).\n\nSwitch over the hot callsites that can easily be moved under interrupts off\nsections.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "070f80326a215d8e6c4fd6f175e28eb446c492bc",
      "tree": "e759fa446e9ad101bc2c7f77979fc5a5514aff70",
      "parents": [
        "02a68a5ebc7dd823da7496116f42290103e1e4a9"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@engr.sgi.com",
        "time": "Fri Jan 06 00:11:19 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jan 06 08:33:28 2006 -0800"
      },
      "message": "[PATCH] build_zonelists_node(): rename args\n\nGive j and r meaningful names.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "02a68a5ebc7dd823da7496116f42290103e1e4a9",
      "tree": "7b79d20246b5c9b769e4f6172fe97e6f91fb921b",
      "parents": [
        "4be38e351c5f455f6f490f5aff29053e33ab4f99"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@engr.sgi.com",
        "time": "Fri Jan 06 00:11:18 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jan 06 08:33:28 2006 -0800"
      },
      "message": "[PATCH] Fix zone policy determination\n\nThe use k in the inner loop means that the highest zone nr is always used\nif any zone of a node is populated.  This means that the policy zone is not\ncorrectly determined on arches that do no use HIGHMEM like ia64.\n\nChange the loop to decrement k which also simplifies the BUG_ON.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "4be38e351c5f455f6f490f5aff29053e33ab4f99",
      "tree": "fd7ba3678cdb5750894f58034f47076dd38c64ae",
      "parents": [
        "1a93205bdffd9d7278d4a66081cdb48452522a58"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@engr.sgi.com",
        "time": "Fri Jan 06 00:11:17 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jan 06 08:33:28 2006 -0800"
      },
      "message": "[PATCH] mm: move determination of policy_zone into page allocator\n\nCurrently the function to build a zonelist for a BIND policy has the side\neffect to set the policy_zone.  This seems to be a bit strange.  policy\nzone seems to not be initialized elsewhere and therefore 0.  Do we police\nZONE_DMA if no bind policy has been used yet?\n\nThis patch moves the determination of the zone to apply policies to into\nthe page allocator.  We determine the zone while building the zonelist for\nnodes.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "1a93205bdffd9d7278d4a66081cdb48452522a58",
      "tree": "7f8500fe725e5e8095a8fc77539d351a0e8a4643",
      "parents": [
        "f3fe65122da05e1cd4c9140340d96ea2f95d0c49"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@engr.sgi.com",
        "time": "Fri Jan 06 00:11:16 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jan 06 08:33:28 2006 -0800"
      },
      "message": "[PATCH] mm: simplify build_zonelists_node by removing the case statement.\n\nSimplify build_zonelists_node by removing the case statement.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "f3fe65122da05e1cd4c9140340d96ea2f95d0c49",
      "tree": "65f2bcdb0a9665123b5083d3aea7dae483593cbc",
      "parents": [
        "80bfed904c690642db9d4178950735299160950b"
      ],
      "author": {
        "name": "Con Kolivas",
        "email": "kernel@kolivas.org",
        "time": "Fri Jan 06 00:11:15 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jan 06 08:33:28 2006 -0800"
      },
      "message": "[PATCH] mm: add populated_zone() helper\n\nThere are numerous places we check whether a zone is populated or not.\n\nProvide a helper function to check for populated zones and convert all\nchecks for zone-\u003epresent_pages.\n\nSigned-off-by: Con Kolivas \u003ckernel@kolivas.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "224abf92b2f439a9030f21d2926ec8047d1ffcdb",
      "tree": "e45074383aea04ef8b3b8d2cc04a3b34959f9e65",
      "parents": [
        "9328b8faae922e52073785ed6c1eaa8565648a0e"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "nickpiggin@yahoo.com.au",
        "time": "Fri Jan 06 00:11:11 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jan 06 08:33:26 2006 -0800"
      },
      "message": "[PATCH] mm: bad_page optimisation\n\nCut down size slightly by not passing bad_page the function name (it should be\nable to be determined by dump_stack()).  And cut down the number of printks in\nbad_page.\n\nAlso, cut down some branching in the destroy_compound_page path.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "9328b8faae922e52073785ed6c1eaa8565648a0e",
      "tree": "065034bc534a4997197d26acf1774725159e4e65",
      "parents": [
        "7756b9e4e321c3c83c7aa5b9532d3e7fd7ddeb4a"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "nickpiggin@yahoo.com.au",
        "time": "Fri Jan 06 00:11:10 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jan 06 08:33:26 2006 -0800"
      },
      "message": "[PATCH] mm: dma32 zone statistics\n\nAdd dma32 to zone statistics.  Also attempt to arrange struct page_state a\nbit better (visually).\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Andi Kleen \u003cak@muc.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "a226f6c899799fe2c4919daa0767ac579c88f7bd",
      "tree": "82863c401f344cae8ab518b174085a7071a0a325",
      "parents": [
        "008857c1a49ccffc31a54c3ea7e182833bd61304"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Jan 06 00:11:08 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jan 06 08:33:26 2006 -0800"
      },
      "message": "[PATCH] FRV: Clean up bootmem allocator\u0027s page freeing algorithm\n\nThe attached patch cleans up the way the bootmem allocator frees pages.\n\nA new function, __free_pages_bootmem(), is provided in mm/page_alloc.c that is\ncalled from mm/bootmem.c to turn pages over to the main allocator.  All the\nbits of code to initialise pages (clearing PG_reserved and setting the page\ncount) are moved to here.  The checks on page validity are removed, on the\nassumption that the struct page arrays will have been prepared correctly.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "085cc7d5de3cc662da7ea78296464a0d52f3f01f",
      "tree": "0fc8bc9ef25929b1bfc2bfb444eb62e6bc5468ff",
      "parents": [
        "a86b1f53166a260ced8f3c8c526945bf496f2e78"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "nickpiggin@yahoo.com.au",
        "time": "Fri Jan 06 00:11:01 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jan 06 08:33:25 2006 -0800"
      },
      "message": "[PATCH] mm: page_alloc cleanups\n\nSmall cleanups that does not change generated code with the gcc\u0027s I\u0027ve tested\nwith.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "a86b1f53166a260ced8f3c8c526945bf496f2e78",
      "tree": "5513bccce91fed08d4769fd18e0f527a84aea508",
      "parents": [
        "2d92c5c9150a2a9ca3dc25da58d5042e17a96b6a"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "nickpiggin@yahoo.com.au",
        "time": "Fri Jan 06 00:11:00 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jan 06 08:33:25 2006 -0800"
      },
      "message": "[PATCH] mm: page_state fixes\n\nread_page_state and __get_page_state only traverse online CPUs, which will\ncause results to fluctuate when CPUs are plugged in or out.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "2d92c5c9150a2a9ca3dc25da58d5042e17a96b6a",
      "tree": "7a559b29019f2391095f958d9546a4453839ec43",
      "parents": [
        "13e7444b0ec59f96d81a4e8c379d5f38fc5f2cc1"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "nickpiggin@yahoo.com.au",
        "time": "Fri Jan 06 00:10:59 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jan 06 08:33:25 2006 -0800"
      },
      "message": "[PATCH] mm: remove pcp low\n\nstruct per_cpu_pages.low is useless.  Remove it.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "13e7444b0ec59f96d81a4e8c379d5f38fc5f2cc1",
      "tree": "95420c03993981fd778047563c5af3f7dbdba74f",
      "parents": [
        "92be2e33b155ee76399f51f41fb061f850d02f08"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "nickpiggin@yahoo.com.au",
        "time": "Fri Jan 06 00:10:58 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jan 06 08:33:25 2006 -0800"
      },
      "message": "[PATCH] mm: remove bad_range\n\nbad_range is supposed to be a temporary check.  It would be a pity to throw it\nout.  Make it depend on CONFIG_DEBUG_VM instead.\n\nCONFIG_HOLES_IN_ZONE systems were relying on this to check pfn_valid in the\npage allocator.  Add that to page_is_buddy instead.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "92be2e33b155ee76399f51f41fb061f850d02f08",
      "tree": "13397157257259eff83729e0286c9a94cfb5a966",
      "parents": [
        "77a8a78834561398fb4cb1480afa7b0e80b1dd53"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "nickpiggin@yahoo.com.au",
        "time": "Fri Jan 06 00:10:57 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jan 06 08:33:25 2006 -0800"
      },
      "message": "[PATCH] mm: microopt conditions\n\nMicro optimise some conditionals where we don\u0027t need lazy evaluation.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "77a8a78834561398fb4cb1480afa7b0e80b1dd53",
      "tree": "c58179bfb6c68fb6cad547852345150be039591f",
      "parents": [
        "c54ad30c784b84d0275152d0ca80985b21471811"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "nickpiggin@yahoo.com.au",
        "time": "Fri Jan 06 00:10:57 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jan 06 08:33:25 2006 -0800"
      },
      "message": "[PATCH] mm: set_page_refs opt\n\nInline set_page_refs.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "c54ad30c784b84d0275152d0ca80985b21471811",
      "tree": "7a40d6ddbe67360a1d9c577e3a2987d140056303",
      "parents": [
        "c484d41042e6ccb88089ca41e3b3eed1bafdae21"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "nickpiggin@yahoo.com.au",
        "time": "Fri Jan 06 00:10:56 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jan 06 08:33:25 2006 -0800"
      },
      "message": "[PATCH] mm: pagealloc opt\n\nSlightly optimise some page allocation and freeing functions by taking\nadvantage of knowing whether or not interrupts are disabled.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "a94b3ab7eab4edcc9b2cb474b188f774c331adf7",
      "tree": "96636969fa4a9e0b79c98f81cbcd726c5d3834a5",
      "parents": [
        "d5afa6dcf74c0efb60ce07c63d0a727be93c67c5"
      ],
      "author": {
        "name": "Mike Kravetz",
        "email": "kravetz@us.ibm.com",
        "time": "Fri Jan 06 00:10:51 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jan 06 08:33:24 2006 -0800"
      },
      "message": "[PATCH] mm: remove arch independent NODES_SPAN_OTHER_NODES\n\nThe NODES_SPAN_OTHER_NODES config option was created so that DISCONTIGMEM\ncould handle pSeries numa layouts.  However, support for DISCONTIGMEM has\nbeen replaced by SPARSEMEM on powerpc.  As a result, this config option and\nsupporting code is no longer needed.\n\nI have already sent a patch to Paul that removes the option from powerpc\nspecific code.  This removes the arch independent piece.  Doesn\u0027t really\nmatter which is applied first.\n\nSigned-off-by: Mike Kravetz \u003ckravetz@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "47f3a867f6310d6abfa185ab12baaba7ed1d69af",
      "tree": "59e218a6d18c683bc3f3d86055d3df553a5acaed",
      "parents": [
        "a576219aca70e6700705a9836e098dbecd25fb56"
      ],
      "author": {
        "name": "Paul Jackson",
        "email": "pj@sgi.com",
        "time": "Fri Jan 06 00:10:32 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jan 06 08:33:21 2006 -0800"
      },
      "message": "[PATCH] mm: fix __alloc_pages cpuset ALLOC_* flags\n\nTwo changes to the setting of the ALLOC_CPUSET flag in\nmm/page_alloc.c:__alloc_pages()\n\n- A bug fix - the \"ignoring mins\" case should not be honoring ALLOC_CPUSET.\n  This case of all cases, since it is handling a request that will free up\n  more memory than is asked for (exiting tasks, e.g.) should be allowed to\n  escape cpuset constraints when memory is tight.\n\n- A logic change to make it simpler.  Honor cpusets even on GFP_ATOMIC\n  (!wait) requests.  With this, cpuset confinement applies to all requests\n  except ALLOC_NO_WATERMARKS, so that in a subsequent cleanup patch, I can\n  remove the ALLOC_CPUSET flag entirely.  Since I don\u0027t know any real reason\n  this logic has to be either way, I am choosing the path of the simplest\n  code.\n\nSigned-off-by: Paul Jackson \u003cpj@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "78d9955bb06493e7bd78e43dfdc17fb5f1dc59b6",
      "tree": "67254d5c6df42764f5666cd17a6c9b564353ed0a",
      "parents": [
        "538bacf8a4802d209f955726b66891b8a921dabf"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@ftp.linux.org.uk",
        "time": "Thu Dec 15 09:18:25 2005 +0000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Dec 15 10:04:30 2005 -0800"
      },
      "message": "[PATCH] missing prototype (mm/page_alloc.c)\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "0ceaacc9785fedc500e19b024d606a82a23f5372",
      "tree": "ad178c7daa6ec7eaaae4e57d5ac8e20a8e806282",
      "parents": [
        "9a40525788a1b692ee0fc780a8cdb2ac808de1b0"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "nickpiggin@yahoo.com.au",
        "time": "Sun Dec 04 13:55:25 2005 +1100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Dec 03 20:46:40 2005 -0800"
      },
      "message": "[PATCH] Fix up per-cpu page batch sizes\n\nThe code to clamp batch sizes to 2^n - 1 went missing and an extra\ncheck got added, which must have been a hunk of the \"higer order pcp\nbatch refills\" work sneaking in.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "3148890bfa4f36c9949871264e06ef4d449eeff9",
      "tree": "f8d7b2498ec83883d1434abd9042ae8e6863bdb2",
      "parents": [
        "aa877b3dc9f2a1fdffac4ea36bee97c21db11a69"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "nickpiggin@yahoo.com.au",
        "time": "Mon Nov 28 13:44:03 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Nov 28 14:42:24 2005 -0800"
      },
      "message": "[PATCH] mm: __alloc_pages cleanup fix\n\nI believe this patch is required to fix breakage in the asynch reclaim\nwatermark logic introduced by this patch:\n\nhttp://www.kernel.org/git/?p\u003dlinux/kernel/git/torvalds/linux-2.6.git;a\u003dcommitdiff;h\u003d7fb1d9fca5c6e3b06773b69165a73f3fb786b8ee\n\nJust some background of the watermark logic in case it isn\u0027t clear...\nBasically what we have is this:\n\n ---  pages_high\n   |\n   | (a)\n   |\n ---  pages_low\n   |\n   | (b)\n   |\n ---  pages_min\n   |\n   | (c)\n   |\n ---  0\n\nNow when pages_low is reached, we want to kick asynch reclaim, which gives us\nan interval of \"b\" before we must start synch reclaim, and gives kswapd an\ninterval of \"a\" before it need go back to sleep.\n\nWhen pages_min is reached, normal allocators must enter synch reclaim, but\nPF_MEMALLOC, ALLOC_HARDER, and ALLOC_HIGH (ie.  atomic allocations, recursive\nallocations, etc.) get access to varying amounts of the reserve \"c\".\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: \"Seth, Rohit\" \u003crohit.seth@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "689bcebfda16d7bace742740bfb3137fff30b529",
      "tree": "7a7c1f583ed2c4838244650d83b53557ec1a8efa",
      "parents": [
        "f57e88a8d83de8d844b57e16b84d2f762fe9f092"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Mon Nov 21 21:32:20 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Nov 22 09:13:42 2005 -0800"
      },
      "message": "[PATCH] unpaged: PG_reserved bad_page\n\nIt used to be the case that PG_reserved pages were silently never freed, but\nin 2.6.15-rc1 they may be freed with a \"Bad page state\" message.  We should\nwork through such cases as they appear, fixing the code; but for now it\u0027s\nsafer to issue the message without freeing the page, leaving PG_reserved set.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "664beed0190fae687ac51295694004902ddeb18e",
      "tree": "89a7c8d9d541fb678c567834cb758fc88b375d47",
      "parents": [
        "1cdca61bf8537043edde8ef784ce1a1351361dac"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Mon Nov 21 21:32:14 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Nov 22 09:13:42 2005 -0800"
      },
      "message": "[PATCH] unpaged: unifdefed PageCompound\n\nIt looks like snd_xxx is not the only nopage to be using PageReserved as a way\nof holding a high-order page together: which no longer works, but is masked by\nour failure to free from VM_RESERVED areas.  We cannot fix that bug without\nfirst substituting another way to hold the high-order page together, while\nfarming out the 0-order pages from within it.\n\nThat\u0027s just what PageCompound is designed for, but it\u0027s been kept under\nCONFIG_HUGETLB_PAGE.  Remove the #ifdefs: which saves some space (out- of-line\nput_page), doesn\u0027t slow down what most needs to be fast (already using\nhugetlb), and unifies the way we handle high-order pages.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "6b1de9161e973bac8c4675db608fe4f38d2689bd",
      "tree": "3ab6aaad7d22dcb7a00a339b8b49c2f5b2ecc12d",
      "parents": [
        "bb833986674ce1fc1b237b3d81459511ad2df393"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "axboe@suse.de",
        "time": "Thu Nov 17 21:35:02 2005 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Nov 17 12:43:01 2005 -0800"
      },
      "message": "[PATCH] VM: fix zone list restart in page allocatate\n\nWe must reassign z before looping through the zones kicking kswapd,\nsince it will be NULL if we hit an OOM condition and jump back to the\nbeginning again. \u0027z\u0027 is initially assigned before the restart: label. So\nmove the restart label up a little.\n\nSigned-off-by: Jens Axboe \u003caxboe@suse.de\u003e\n"
    },
    {
      "commit": "4060994c3e337b40e0f6fa8ce2cc178e021baf3d",
      "tree": "980297c1747ca89354bc879cc5d17903eacb19e2",
      "parents": [
        "0174f72f848dfe7dc7488799776303c81b181b16",
        "d3ee871e63d0a0c70413dc0aa5534b8d6cd6ec37"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Nov 14 19:56:02 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Nov 14 19:56:02 2005 -0800"
      },
      "message": "Merge x86-64 update from Andi\n"
    },
    {
      "commit": "07808b74e7dab1aa385e698795875337d72daf7d",
      "tree": "3b593c31e6e58364f4001105bfeebefa94708209",
      "parents": [
        "1dff7f3db5f045ccbfeca5bb00b0958a78501557"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "ak@suse.de",
        "time": "Sat Nov 05 17:25:53 2005 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Nov 14 19:55:14 2005 -0800"
      },
      "message": "[PATCH] x86_64: Remove obsolete ARCH_HAS_ATOMIC_UNSIGNED and page_flags_t\n\nHas been introduced for x86-64 at some point to save memory\nin struct page, but has been obsolete for some time. Just\nremove it.\n\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "b0d41693217b3bb5b837940dc7465e82a9d49476",
      "tree": "965dbdfea6644d57fd107619b2ea9e0c9ec6bdc1",
      "parents": [
        "fed644132f8ec4bf05b63f79c507c0acaa692c37"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "ak@suse.de",
        "time": "Sat Nov 05 17:25:53 2005 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Nov 14 19:55:13 2005 -0800"
      },
      "message": "[PATCH] x86_64: When cpu_up fails clean up page allocator properly\n\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    }
  ],
  "next": "a2f1b424900715ed9d1699c3bb88a434a2b42bc0"
}
