)]}'
{
  "log": [
    {
      "commit": "35282a2de4e5e4e173ab61aa9d7015886021a821",
      "tree": "06d20ad1a132e15e4fb7447cd9b139a4921ecfc9",
      "parents": [
        "7f33d49a2ed546e01f7b1d0607661810f2421859"
      ],
      "author": {
        "name": "Brice Goglin",
        "email": "Brice.Goglin@ens-lyon.org",
        "time": "Tue Jun 16 15:32:43 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:41 2009 -0700"
      },
      "message": "migration: only migrate_prep() once per move_pages()\n\nmigrate_prep() is fairly expensive (72us on 16-core barcelona 1.9GHz).\nCommit 3140a2273009c01c27d316f35ab76a37e105fdd8 improved move_pages()\nthroughput by breaking it into chunks, but it also made migrate_prep() be\ncalled once per chunk (every 128pages or so) instead of once per\nmove_pages().\n\nThis patch reverts to calling migrate_prep() only once per chunk as we did\nbefore 2.6.29.  It is also a followup to commit\n0aedadf91a70a11c4a3e7c7d99b21e5528af8d5d (\"mm: move migrate_prep out from\nunder mmap_sem\").\n\nThis improves migration throughput on the above machine from 600MB/s to\n750MB/s.\n\nSigned-off-by: Brice Goglin \u003cBrice.Goglin@inria.fr\u003e\nAcked-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Hugh Dickins \u003chugh.dickins@tiscali.co.uk\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7f33d49a2ed546e01f7b1d0607661810f2421859",
      "tree": "8b05ac7ec2cd123efb266ecaa1bf0bd1487158f8",
      "parents": [
        "75927af8bcb940dad4fe281713d526cb520869ff"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue Jun 16 15:32:41 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:40 2009 -0700"
      },
      "message": "mm, PM/Freezer: Disable OOM killer when tasks are frozen\n\nCurrently, the following scenario appears to be possible in theory:\n\n* Tasks are frozen for hibernation or suspend.\n* Free pages are almost exhausted.\n* Certain piece of code in the suspend code path attempts to allocate\n  some memory using GFP_KERNEL and allocation order less than or\n  equal to PAGE_ALLOC_COSTLY_ORDER.\n* __alloc_pages_internal() cannot find a free page so it invokes the\n  OOM killer.\n* The OOM killer attempts to kill a task, but the task is frozen, so\n  it doesn\u0027t die immediately.\n* __alloc_pages_internal() jumps to \u0027restart\u0027, unsuccessfully tries\n  to find a free page and invokes the OOM killer.\n* No progress can be made.\n\nAlthough it is now hard to trigger during hibernation due to the memory\nshrinking carried out by the hibernation code, it is theoretically\npossible to trigger during suspend after the memory shrinking has been\nremoved from that code path.  Moreover, since memory allocations are\ngoing to be used for the hibernation memory shrinking, it will be even\nmore likely to happen during hibernation.\n\nTo prevent it from happening, introduce the oom_killer_disabled switch\nthat will cause __alloc_pages_internal() to fail in the situations in\nwhich the OOM killer would have been called and make the freezer set\nthis switch after tasks have been successfully frozen.\n\n[akpm@linux-foundation.org: be nicer to the namespace]\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nCc: Fengguang Wu \u003cfengguang.wu@gmail.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nAcked-by: Pavel Machek \u003cpavel@ucw.cz\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "75927af8bcb940dad4fe281713d526cb520869ff",
      "tree": "96b2b903ce215d3c47204b7b77724c9fa0aa6502",
      "parents": [
        "dab48dab37d2770824420d1e01730a107fade1aa"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Tue Jun 16 15:32:38 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:40 2009 -0700"
      },
      "message": "mm: madvise(): correct return code\n\nThe posix_madvise() function succeeds (and does nothing) when called with\nparameters (NULL, 0, -1); according to LSB tests, it should fail with\nEINVAL because -1 is not a valid flag.\n\nWhen called with a valid address and size, it correctly fails.\n\nSo perform an initial check for valid flags first.\n\nReported-by: Jiri Dluhos \u003cjdluhos@novell.com\u003e\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nReviewed-and-Tested-by: WANG Cong \u003cxiyou.wangcong@gmail.com\u003e\nCc: Michael Kerrisk \u003cmtk.manpages@googlemail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "dab48dab37d2770824420d1e01730a107fade1aa",
      "tree": "81e949d2521d4d8d979808feaa9c2a570337a98c",
      "parents": [
        "720b17e759a50635c429ccaa2ec3d01edb4f92d6"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Tue Jun 16 15:32:37 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:40 2009 -0700"
      },
      "message": "page-allocator: warn if __GFP_NOFAIL is used for a large allocation\n\n__GFP_NOFAIL is a bad fiction.  Allocations _can_ fail, and callers should\ndetect and suitably handle this (and not by lamely moving the infinite\nloop up to the caller level either).\n\nAttempting to use __GFP_NOFAIL for a higher-order allocation is even\nworse, so add a once-off runtime check for this to slap people around for\neven thinking about trying it.\n\nCc: David Rientjes \u003crientjes@google.com\u003e\nAcked-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "720b17e759a50635c429ccaa2ec3d01edb4f92d6",
      "tree": "8f6d86a05b328a54bd312b62e1fbc844c1dc30ba",
      "parents": [
        "3b6748e2dd69906af3835db4dc9d1c8a3ee4c68c"
      ],
      "author": {
        "name": "Magnus Damm",
        "email": "damm@igel.co.jp",
        "time": "Tue Jun 16 15:32:36 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:40 2009 -0700"
      },
      "message": "videobuf-dma-contig: zero copy USERPTR support\n\nSince videobuf-dma-contig is designed to handle physically contiguous\nmemory, this patch modifies the videobuf-dma-contig code to only accept a\nuser space pointer to physically contiguous memory.  For now only\nVM_PFNMAP vmas are supported, so forget hotplug.\n\nOn SuperH Mobile we use this with our sh_mobile_ceu_camera driver together\nwith various multimedia accelerator blocks that are exported to user space\nusing UIO.  The UIO kernel code exports physically contiguous memory to\nuser space and lets the user space application mmap() this memory and pass\na pointer using the USERPTR interface for V4L2 zero copy operation.\n\nWith this approach we support zero copy capture, hardware scaling and\nvarious forms of hardware encoding and decoding.\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: Magnus Damm \u003cdamm@igel.co.jp\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nAcked-by: Mauro Carvalho Chehab \u003cmchehab@infradead.org\u003e\nCc: Hans Verkuil \u003chverkuil@xs4all.nl\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3b6748e2dd69906af3835db4dc9d1c8a3ee4c68c",
      "tree": "5d5476844f8e29e31684ce8ccf7e163ab3182ad6",
      "parents": [
        "03668a4debf4f50de55c34b6e66dae63e1c73716"
      ],
      "author": {
        "name": "Johannes Weiner",
        "email": "hannes@cmpxchg.org",
        "time": "Tue Jun 16 15:32:35 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:40 2009 -0700"
      },
      "message": "mm: introduce follow_pfn()\n\nAnaloguous to follow_phys(), add a helper that looks up the PFN at a\nuser virtual address in an IO mapping or a raw PFN mapping.\n\nSigned-off-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nAcked-by: Magnus Damm \u003cmagnus.damm@gmail.com\u003e\nCc: Hans Verkuil \u003chverkuil@xs4all.nl\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: Hugh Dickins \u003chugh.dickins@tiscali.co.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "03668a4debf4f50de55c34b6e66dae63e1c73716",
      "tree": "d4fedb9feb056b8383b0d75e2cad5bf8ceeb8c8c",
      "parents": [
        "f8ad0f499fad5cdbcaaa2d97542b2db869b5a770"
      ],
      "author": {
        "name": "Johannes Weiner",
        "email": "hannes@cmpxchg.org",
        "time": "Tue Jun 16 15:32:34 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:40 2009 -0700"
      },
      "message": "mm: use generic follow_pte() in follow_phys()\n\nSigned-off-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nAcked-by: Magnus Damm \u003cmagnus.damm@gmail.com\u003e\nCc: Hans Verkuil \u003chverkuil@xs4all.nl\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: Hugh Dickins \u003chugh.dickins@tiscali.co.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f8ad0f499fad5cdbcaaa2d97542b2db869b5a770",
      "tree": "f1b5e91072238c2a303940bd522485484dc22105",
      "parents": [
        "e9bb35df6f813ca46f8e6273add657643c7df73f"
      ],
      "author": {
        "name": "Johannes Weiner",
        "email": "hannes@cmpxchg.org",
        "time": "Tue Jun 16 15:32:33 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:39 2009 -0700"
      },
      "message": "mm: introduce follow_pte()\n\nA generic readonly page table lookup helper to map an address space and an\naddress from it to a pte.\n\nSigned-off-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nAcked-by: Magnus Damm \u003cmagnus.damm@gmail.com\u003e\nCc: Hans Verkuil \u003chverkuil@xs4all.nl\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: Hugh Dickins \u003chugh.dickins@tiscali.co.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e9bb35df6f813ca46f8e6273add657643c7df73f",
      "tree": "64fa88ebc6cda54726522252217f279da4bd516b",
      "parents": [
        "5c87eada68fe5d29a5f67528f81b6e45124f579b"
      ],
      "author": {
        "name": "Cyrill Gorcunov",
        "email": "gorcunov@openvz.org",
        "time": "Tue Jun 16 15:32:32 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:39 2009 -0700"
      },
      "message": "mm: setup_per_zone_inactive_ratio - fix comment and make it __init\n\nThe caller of setup_per_zone_inactive_ratio is an __init function.  There\nis no need to keep the callee after it completed as well.  Also fix a\ncomment.\n\nAcked-by: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Cyrill Gorcunov \u003cgorcunov@openvz.org\u003e\nReviewed-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5c87eada68fe5d29a5f67528f81b6e45124f579b",
      "tree": "11088d75bd2132fecf70e402d4334686461aba7c",
      "parents": [
        "af166777cf451f0373b952ce6766dc1c25385686"
      ],
      "author": {
        "name": "Cyrill Gorcunov",
        "email": "gorcunov@openvz.org",
        "time": "Tue Jun 16 15:32:32 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:39 2009 -0700"
      },
      "message": "mm: setup_per_zone_inactive_ratio - do not call for int_sqrt if not needed\n\nint_sqrt() returns 0 if its argument is zero so call it if only needed.\n\nSigned-off-by: Cyrill Gorcunov \u003cgorcunov@openvz.org\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "af166777cf451f0373b952ce6766dc1c25385686",
      "tree": "2051064ffccb223e1f29b8af52ef28651eff9062",
      "parents": [
        "08d9ae7cbbd0c5c07573d072ec771e997a9a39e0"
      ],
      "author": {
        "name": "Wu Fengguang",
        "email": "fengguang.wu@intel.com",
        "time": "Tue Jun 16 15:32:31 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:39 2009 -0700"
      },
      "message": "vmscan: ZVC updates in shrink_active_list() can be done once\n\nThis effectively lifts the unit of updates to nr_inactive_* and\npgdeactivate from PAGEVEC_SIZE\u003d14 to SWAP_CLUSTER_MAX\u003d32, or\nMAX_ORDER_NR_PAGES\u003d1024 for reclaim_zone().\n\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nReviewed-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nSigned-off-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "08d9ae7cbbd0c5c07573d072ec771e997a9a39e0",
      "tree": "e669cd3eb5a84842c798af936c9e5642765b556f",
      "parents": [
        "6e08a369ee10b361ac1cdcdf4fabd420fd08beb3"
      ],
      "author": {
        "name": "Wu Fengguang",
        "email": "fengguang.wu@intel.com",
        "time": "Tue Jun 16 15:32:30 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:39 2009 -0700"
      },
      "message": "vmscan: don\u0027t export nr_saved_scan in /proc/zoneinfo\n\nThe lru-\u003enr_saved_scan\u0027s are not meaningful counters for even kernel\ndevelopers.  They typically are smaller than 32 and are always 0 for large\nlists.  So remove them from /proc/zoneinfo.\n\nHopefully this interface change won\u0027t break too many scripts.\n/proc/zoneinfo is too unstructured to be script friendly, and I wonder the\naffected scripts - if there are any - are still bleeding since the not\nlong ago commit \"vmscan: split LRU lists into anon \u0026 file sets\", which\nalso touched the \"scanned\" line :)\n\nIf we are to re-export accumulated vmscan counts in the future, they can\ngo to new lines in /proc/zoneinfo instead of the current form, or to\n/sys/devices/system/node/node0/meminfo?\n\nSigned-off-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\n\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nCc: Nick Piggin \u003cnpiggin@suse.de\u003e\nAcked-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6e08a369ee10b361ac1cdcdf4fabd420fd08beb3",
      "tree": "9dbf870cad025b64781d9051b6680a8a23927e5a",
      "parents": [
        "56e49d218890f49b0057710a4b6fef31f5ffbfec"
      ],
      "author": {
        "name": "Wu Fengguang",
        "email": "fengguang.wu@intel.com",
        "time": "Tue Jun 16 15:32:29 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:39 2009 -0700"
      },
      "message": "vmscan: cleanup the scan batching code\n\nThe vmscan batching logic is twisting.  Move it into a standalone function\nnr_scan_try_batch() and document it.  No behavior change.\n\nSigned-off-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nCc: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nAcked-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "56e49d218890f49b0057710a4b6fef31f5ffbfec",
      "tree": "a0525dd9a140352276bdfb76a3d65230c3e5121d",
      "parents": [
        "35efa5e993a7a00a50b87d2b7725c3eafc80b083"
      ],
      "author": {
        "name": "Rik van Riel",
        "email": "riel@redhat.com",
        "time": "Tue Jun 16 15:32:28 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:38 2009 -0700"
      },
      "message": "vmscan: evict use-once pages first\n\nWhen the file LRU lists are dominated by streaming IO pages, evict those\npages first, before considering evicting other pages.\n\nThis should be safe from deadlocks or performance problems\nbecause only three things can happen to an inactive file page:\n\n1) referenced twice and promoted to the active list\n2) evicted by the pageout code\n3) under IO, after which it will get evicted or promoted\n\nThe pages freed in this way can either be reused for streaming IO, or\nallocated for something else.  If the pages are used for streaming IO,\nthis pageout pattern continues.  Otherwise, we will fall back to the\nnormal pageout pattern.\n\nSigned-off-by: Rik van Riel \u003criel@redhat.com\u003e\nReported-by: Elladan \u003celladan@eskimo.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nAcked-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "35efa5e993a7a00a50b87d2b7725c3eafc80b083",
      "tree": "d46d3840f274c2c933498ab0225e8341d7695e72",
      "parents": [
        "17e895012f7fe9dc63144990da98c41bbc22d68f"
      ],
      "author": {
        "name": "Wu Fengguang",
        "email": "fengguang.wu@intel.com",
        "time": "Tue Jun 16 15:32:27 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:38 2009 -0700"
      },
      "message": "pagemap: add page-types tool\n\nAdd page-types, a handy tool for querying page flags.\n\nIt will expand some of the overloaded flags:\n\tPG_slob_free   \u003d PG_private\n\tPG_slub_frozen \u003d PG_active\n\tPG_slub_debug  \u003d PG_error\n\tPG_readahead   \u003d PG_reclaim\n\nand mask out obscure flags except in -raw mode:\n\tPG_reserved\n\tPG_mlocked\n\tPG_mappedtodisk\n\tPG_private\n\tPG_private_2\n\tPG_owner_priv_1\n\tPG_arch_1\n\tPG_uncached\n\tPG_compound* for non hugeTLB pages\n\n[akpm@linux-foundation.org: fix warning]\nSigned-off-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nCc: Matt Mackall \u003cmpm@selenic.com\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "17e895012f7fe9dc63144990da98c41bbc22d68f",
      "tree": "430c333e2d23bf2fbf057ec9a5b3685eba217d99",
      "parents": [
        "c9ba78e226057a1c2f19671383c496df187c02b5"
      ],
      "author": {
        "name": "Wu Fengguang",
        "email": "fengguang.wu@intel.com",
        "time": "Tue Jun 16 15:32:26 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:38 2009 -0700"
      },
      "message": "pagemap: document 9 more exported page flags\n\nAlso add short descriptions for all of the 20 exported page flags.\n\nSigned-off-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nCc: Matt Mackall \u003cmpm@selenic.com\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c9ba78e226057a1c2f19671383c496df187c02b5",
      "tree": "8e28df19b0304fc58bb854d812661e628b7ac612",
      "parents": [
        "177975495914efb372f7edee28ba9a0fdb754149"
      ],
      "author": {
        "name": "Wu Fengguang",
        "email": "fengguang.wu@intel.com",
        "time": "Tue Jun 16 15:32:25 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:38 2009 -0700"
      },
      "message": "pagemap: document clarifications\n\nSome bit ranges were inclusive and some not.  Fix them to be consistently\ninclusive.\n\nSigned-off-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nCc: Matt Mackall \u003cmpm@selenic.com\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "177975495914efb372f7edee28ba9a0fdb754149",
      "tree": "d26a09871ee7b250a5c96e323cc4d5245e35eeff",
      "parents": [
        "ed7ce0f1022942301776f93159c981b09382ddea"
      ],
      "author": {
        "name": "Wu Fengguang",
        "email": "fengguang.wu@intel.com",
        "time": "Tue Jun 16 15:32:24 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:38 2009 -0700"
      },
      "message": "proc: export more page flags in /proc/kpageflags\n\nExport all page flags faithfully in /proc/kpageflags.\n\n\t11. KPF_MMAP\t\t(pseudo flag) memory mapped page\n\t12. KPF_ANON\t\t(pseudo flag) memory mapped page (anonymous)\n\t13. KPF_SWAPCACHE\tpage is in swap cache\n\t14. KPF_SWAPBACKED\tpage is swap/RAM backed\n\t15. KPF_COMPOUND_HEAD\t(*)\n\t16. KPF_COMPOUND_TAIL\t(*)\n\t17. KPF_HUGE\t\thugeTLB pages\n\t18. KPF_UNEVICTABLE\tpage is in the unevictable LRU list\n\t19. KPF_HWPOISON(TBD)\thardware detected corruption\n\t20. KPF_NOPAGE\t\t(pseudo flag) no page frame at the address\n\t32-39.\t\t\tmore obscure flags for kernel developers\n\n\t(*) For compound pages, exporting _both_ head/tail info enables\n\t    users to tell where a compound page starts/ends, and its order.\n\nThe accompanying page-types tool will handle the details like decoupling\noverloaded flags and hiding obscure flags to normal users.\n\nThanks to KOSAKI and Andi for their valuable recommendations!\n\nSigned-off-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nCc: Matt Mackall \u003cmpm@selenic.com\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ed7ce0f1022942301776f93159c981b09382ddea",
      "tree": "d81e98a13f6a10e6c258aa0f2bec990da40c5ac2",
      "parents": [
        "20a0307c0396c2edb651401d2f2db193dda2f3c9"
      ],
      "author": {
        "name": "Wu Fengguang",
        "email": "fengguang.wu@intel.com",
        "time": "Tue Jun 16 15:32:23 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:36 2009 -0700"
      },
      "message": "proc: kpagecount/kpageflags code cleanup\n\nMove increments of pfn/out to bottom of the loop.\n\nSigned-off-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nAcked-by: Matt Mackall \u003cmpm@selenic.com\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "20a0307c0396c2edb651401d2f2db193dda2f3c9",
      "tree": "408fde4bf84223757f5dd150e401e8d9d9df5d36",
      "parents": [
        "a1dd268cf6306565a31a48deff8bf4f6b4b105f7"
      ],
      "author": {
        "name": "Wu Fengguang",
        "email": "fengguang.wu@intel.com",
        "time": "Tue Jun 16 15:32:22 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:36 2009 -0700"
      },
      "message": "mm: introduce PageHuge() for testing huge/gigantic pages\n\nA series of patches to enhance the /proc/pagemap interface and to add a\nuserspace executable which can be used to present the pagemap data.\n\nExport 10 more flags to end users (and more for kernel developers):\n\n        11. KPF_MMAP            (pseudo flag) memory mapped page\n        12. KPF_ANON            (pseudo flag) memory mapped page (anonymous)\n        13. KPF_SWAPCACHE       page is in swap cache\n        14. KPF_SWAPBACKED      page is swap/RAM backed\n        15. KPF_COMPOUND_HEAD   (*)\n        16. KPF_COMPOUND_TAIL   (*)\n        17. KPF_HUGE\t\thugeTLB pages\n        18. KPF_UNEVICTABLE     page is in the unevictable LRU list\n        19. KPF_HWPOISON        hardware detected corruption\n        20. KPF_NOPAGE          (pseudo flag) no page frame at the address\n\n        (*) For compound pages, exporting _both_ head/tail info enables\n            users to tell where a compound page starts/ends, and its order.\n\na simple demo of the page-types tool\n\n# ./page-types -h\npage-types [options]\n            -r|--raw                  Raw mode, for kernel developers\n            -a|--addr    addr-spec    Walk a range of pages\n            -b|--bits    bits-spec    Walk pages with specified bits\n            -l|--list                 Show page details in ranges\n            -L|--list-each            Show page details one by one\n            -N|--no-summary           Don\u0027t show summay info\n            -h|--help                 Show this usage message\naddr-spec:\n            N                         one page at offset N (unit: pages)\n            N+M                       pages range from N to N+M-1\n            N,M                       pages range from N to M-1\n            N,                        pages range from N to end\n            ,M                        pages range from 0 to M\nbits-spec:\n            bit1,bit2                 (flags \u0026 (bit1|bit2)) !\u003d 0\n            bit1,bit2\u003dbit1            (flags \u0026 (bit1|bit2)) \u003d\u003d bit1\n            bit1,~bit2                (flags \u0026 (bit1|bit2)) \u003d\u003d bit1\n            \u003dbit1,bit2                flags \u003d\u003d (bit1|bit2)\nbit-names:\n          locked              error         referenced           uptodate\n           dirty                lru             active               slab\n       writeback            reclaim              buddy               mmap\n       anonymous          swapcache         swapbacked      compound_head\n   compound_tail               huge        unevictable           hwpoison\n          nopage           reserved(r)         mlocked(r)    mappedtodisk(r)\n         private(r)       private_2(r)   owner_private(r)            arch(r)\n        uncached(r)       readahead(o)       slob_free(o)     slub_frozen(o)\n      slub_debug(o)\n                                   (r) raw mode bits  (o) overloaded bits\n\n# ./page-types\n             flags      page-count       MB  symbolic-flags                     long-symbolic-flags\n0x0000000000000000          487369     1903  _________________________________\n0x0000000000000014               5        0  __R_D____________________________  referenced,dirty\n0x0000000000000020               1        0  _____l___________________________  lru\n0x0000000000000024              34        0  __R__l___________________________  referenced,lru\n0x0000000000000028            3838       14  ___U_l___________________________  uptodate,lru\n0x0001000000000028              48        0  ___U_l_______________________I___  uptodate,lru,readahead\n0x000000000000002c            6478       25  __RU_l___________________________  referenced,uptodate,lru\n0x000100000000002c              47        0  __RU_l_______________________I___  referenced,uptodate,lru,readahead\n0x0000000000000040            8344       32  ______A__________________________  active\n0x0000000000000060               1        0  _____lA__________________________  lru,active\n0x0000000000000068             348        1  ___U_lA__________________________  uptodate,lru,active\n0x0001000000000068              12        0  ___U_lA______________________I___  uptodate,lru,active,readahead\n0x000000000000006c             988        3  __RU_lA__________________________  referenced,uptodate,lru,active\n0x000100000000006c              48        0  __RU_lA______________________I___  referenced,uptodate,lru,active,readahead\n0x0000000000004078               1        0  ___UDlA_______b__________________  uptodate,dirty,lru,active,swapbacked\n0x000000000000407c              34        0  __RUDlA_______b__________________  referenced,uptodate,dirty,lru,active,swapbacked\n0x0000000000000400             503        1  __________B______________________  buddy\n0x0000000000000804               1        0  __R________M_____________________  referenced,mmap\n0x0000000000000828            1029        4  ___U_l_____M_____________________  uptodate,lru,mmap\n0x0001000000000828              43        0  ___U_l_____M_________________I___  uptodate,lru,mmap,readahead\n0x000000000000082c             382        1  __RU_l_____M_____________________  referenced,uptodate,lru,mmap\n0x000100000000082c              12        0  __RU_l_____M_________________I___  referenced,uptodate,lru,mmap,readahead\n0x0000000000000868             192        0  ___U_lA____M_____________________  uptodate,lru,active,mmap\n0x0001000000000868              12        0  ___U_lA____M_________________I___  uptodate,lru,active,mmap,readahead\n0x000000000000086c             800        3  __RU_lA____M_____________________  referenced,uptodate,lru,active,mmap\n0x000100000000086c              31        0  __RU_lA____M_________________I___  referenced,uptodate,lru,active,mmap,readahead\n0x0000000000004878               2        0  ___UDlA____M__b__________________  uptodate,dirty,lru,active,mmap,swapbacked\n0x0000000000001000             492        1  ____________a____________________  anonymous\n0x0000000000005808               4        0  ___U_______Ma_b__________________  uptodate,mmap,anonymous,swapbacked\n0x0000000000005868            2839       11  ___U_lA____Ma_b__________________  uptodate,lru,active,mmap,anonymous,swapbacked\n0x000000000000586c              30        0  __RU_lA____Ma_b__________________  referenced,uptodate,lru,active,mmap,anonymous,swapbacked\n             total          513968     2007\n\n# ./page-types -r\n             flags      page-count       MB  symbolic-flags                     long-symbolic-flags\n0x0000000000000000          468002     1828  _________________________________\n0x0000000100000000           19102       74  _____________________r___________  reserved\n0x0000000000008000              41        0  _______________H_________________  compound_head\n0x0000000000010000             188        0  ________________T________________  compound_tail\n0x0000000000008014               1        0  __R_D__________H_________________  referenced,dirty,compound_head\n0x0000000000010014               4        0  __R_D___________T________________  referenced,dirty,compound_tail\n0x0000000000000020               1        0  _____l___________________________  lru\n0x0000000800000024              34        0  __R__l__________________P________  referenced,lru,private\n0x0000000000000028            3794       14  ___U_l___________________________  uptodate,lru\n0x0001000000000028              46        0  ___U_l_______________________I___  uptodate,lru,readahead\n0x0000000400000028              44        0  ___U_l_________________d_________  uptodate,lru,mappedtodisk\n0x0001000400000028               2        0  ___U_l_________________d_____I___  uptodate,lru,mappedtodisk,readahead\n0x000000000000002c            6434       25  __RU_l___________________________  referenced,uptodate,lru\n0x000100000000002c              47        0  __RU_l_______________________I___  referenced,uptodate,lru,readahead\n0x000000040000002c              14        0  __RU_l_________________d_________  referenced,uptodate,lru,mappedtodisk\n0x000000080000002c              30        0  __RU_l__________________P________  referenced,uptodate,lru,private\n0x0000000800000040            8124       31  ______A_________________P________  active,private\n0x0000000000000040             219        0  ______A__________________________  active\n0x0000000800000060               1        0  _____lA_________________P________  lru,active,private\n0x0000000000000068             322        1  ___U_lA__________________________  uptodate,lru,active\n0x0001000000000068              12        0  ___U_lA______________________I___  uptodate,lru,active,readahead\n0x0000000400000068              13        0  ___U_lA________________d_________  uptodate,lru,active,mappedtodisk\n0x0000000800000068              12        0  ___U_lA_________________P________  uptodate,lru,active,private\n0x000000000000006c             977        3  __RU_lA__________________________  referenced,uptodate,lru,active\n0x000100000000006c              48        0  __RU_lA______________________I___  referenced,uptodate,lru,active,readahead\n0x000000040000006c               5        0  __RU_lA________________d_________  referenced,uptodate,lru,active,mappedtodisk\n0x000000080000006c               3        0  __RU_lA_________________P________  referenced,uptodate,lru,active,private\n0x0000000c0000006c               3        0  __RU_lA________________dP________  referenced,uptodate,lru,active,mappedtodisk,private\n0x0000000c00000068               1        0  ___U_lA________________dP________  uptodate,lru,active,mappedtodisk,private\n0x0000000000004078               1        0  ___UDlA_______b__________________  uptodate,dirty,lru,active,swapbacked\n0x000000000000407c              34        0  __RUDlA_______b__________________  referenced,uptodate,dirty,lru,active,swapbacked\n0x0000000000000400             538        2  __________B______________________  buddy\n0x0000000000000804               1        0  __R________M_____________________  referenced,mmap\n0x0000000000000828            1029        4  ___U_l_____M_____________________  uptodate,lru,mmap\n0x0001000000000828              43        0  ___U_l_____M_________________I___  uptodate,lru,mmap,readahead\n0x000000000000082c             382        1  __RU_l_____M_____________________  referenced,uptodate,lru,mmap\n0x000100000000082c              12        0  __RU_l_____M_________________I___  referenced,uptodate,lru,mmap,readahead\n0x0000000000000868             192        0  ___U_lA____M_____________________  uptodate,lru,active,mmap\n0x0001000000000868              12        0  ___U_lA____M_________________I___  uptodate,lru,active,mmap,readahead\n0x000000000000086c             800        3  __RU_lA____M_____________________  referenced,uptodate,lru,active,mmap\n0x000100000000086c              31        0  __RU_lA____M_________________I___  referenced,uptodate,lru,active,mmap,readahead\n0x0000000000004878               2        0  ___UDlA____M__b__________________  uptodate,dirty,lru,active,mmap,swapbacked\n0x0000000000001000             492        1  ____________a____________________  anonymous\n0x0000000000005008               2        0  ___U________a_b__________________  uptodate,anonymous,swapbacked\n0x0000000000005808               4        0  ___U_______Ma_b__________________  uptodate,mmap,anonymous,swapbacked\n0x000000000000580c               1        0  __RU_______Ma_b__________________  referenced,uptodate,mmap,anonymous,swapbacked\n0x0000000000005868            2839       11  ___U_lA____Ma_b__________________  uptodate,lru,active,mmap,anonymous,swapbacked\n0x000000000000586c              29        0  __RU_lA____Ma_b__________________  referenced,uptodate,lru,active,mmap,anonymous,swapbacked\n             total          513968     2007\n\n# ./page-types --raw --list --no-summary --bits reserved\noffset  count   flags\n0       15      _____________________r___________\n31      4       _____________________r___________\n159     97      _____________________r___________\n4096    2067    _____________________r___________\n6752    2390    _____________________r___________\n9355    3       _____________________r___________\n9728    14526   _____________________r___________\n\nThis patch:\n\nIntroduce PageHuge(), which identifies huge/gigantic pages by their\ndedicated compound destructor functions.\n\nAlso move prep_compound_gigantic_page() to hugetlb.c and make\n__free_pages_ok() non-static.\n\nSigned-off-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nCc: Matt Mackall \u003cmpm@selenic.com\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a1dd268cf6306565a31a48deff8bf4f6b4b105f7",
      "tree": "a6d2cfb6647b22f5896813e7f39db8546e921ef2",
      "parents": [
        "72807a74c0172376bba6b5b27702c9f702b526e9"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mel@csn.ul.ie",
        "time": "Tue Jun 16 15:32:19 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:36 2009 -0700"
      },
      "message": "mm: use alloc_pages_exact() in alloc_large_system_hash() to avoid duplicated logic\n\nalloc_large_system_hash() has logic for freeing pages at the end of an\nexcessively large power-of-two buffer that is a duplicate of what is in\nalloc_pages_exact().  This patch converts alloc_large_system_hash() to use\nalloc_pages_exact().\n\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nAcked-by: Hugh Dickins \u003chugh.dickins@tiscali.co.uk\u003e\nCc: Christoph Lameter \u003ccl@linux.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "72807a74c0172376bba6b5b27702c9f702b526e9",
      "tree": "d0f4a4a835754286ec9e2b940e950b2b68a4f61b",
      "parents": [
        "092cead6175bb1b3d3078a34ba71c939d526c70b"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mel@csn.ul.ie",
        "time": "Tue Jun 16 15:32:18 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:36 2009 -0700"
      },
      "message": "page allocator: sanity check order in the page allocator slow path\n\nCallers may speculatively call different allocators in order of preference\ntrying to allocate a buffer of a given size.  The order needed to allocate\nthis may be larger than what the page allocator can normally handle.\nWhile the allocator mostly does the right thing, it should not direct\nreclaim or wakeup kswapd with a bogus order.  This patch sanity checks the\norder in the slow path and returns NULL if it is too large.\n\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nSigned-off-by: Dave Hansen \u003cdave@linux.vnet.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "092cead6175bb1b3d3078a34ba71c939d526c70b",
      "tree": "84dfeda6c7ca85b6d68710c824e1ce59db16cc3b",
      "parents": [
        "b6e68bc1baed9b6972a250aba66b8c5276cf6fb1"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Tue Jun 16 15:32:17 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:35 2009 -0700"
      },
      "message": "page allocator: move free_page_mlock() to page_alloc.c\n\nCurrently, free_page_mlock() is only called from page_alloc.c.  Thus, we\ncan move it to page_alloc.c.\n\nCc: Lee Schermerhorn \u003cLee.Schermerhorn@hp.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: Dave Hansen \u003cdave@linux.vnet.ibm.com\u003e\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b6e68bc1baed9b6972a250aba66b8c5276cf6fb1",
      "tree": "193af67b8333417347b9324e4bf9963d7cf0a872",
      "parents": [
        "62bc62a873116805774ffd37d7f86aa4faa832b1"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mel@csn.ul.ie",
        "time": "Tue Jun 16 15:32:16 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:35 2009 -0700"
      },
      "message": "page allocator: slab: use nr_online_nodes to check for a NUMA platform\n\nSLAB currently avoids checking a bitmap repeatedly by checking once and\nstoring a flag.  When the addition of nr_online_nodes as a cheaper version\nof num_online_nodes(), this check can be replaced by nr_online_nodes.\n\n(Christoph did a patch that this is lifted almost verbatim from)\n\nSigned-off-by: Christoph Lameter \u003ccl@linux.com\u003e\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nReviewed-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Dave Hansen \u003cdave@linux.vnet.ibm.com\u003e\nCc: Lee Schermerhorn \u003cLee.Schermerhorn@hp.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "62bc62a873116805774ffd37d7f86aa4faa832b1",
      "tree": "7f3f5b94b2d484a13ca27b8d3f6f54cfe126d7c0",
      "parents": [
        "974709bdb2a34db378fc84140220f363f558d0d6"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "cl@linux-foundation.org",
        "time": "Tue Jun 16 15:32:15 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:35 2009 -0700"
      },
      "message": "page allocator: use a pre-calculated value instead of num_online_nodes() in fast paths\n\nnum_online_nodes() is called in a number of places but most often by the\npage allocator when deciding whether the zonelist needs to be filtered\nbased on cpusets or the zonelist cache.  This is actually a heavy function\nand touches a number of cache lines.\n\nThis patch stores the number of online nodes at boot time and updates the\nvalue when nodes get onlined and offlined.  The value is then used in a\nnumber of important paths in place of num_online_nodes().\n\n[rientjes@google.com: do not override definition of node_set_online() with macro]\nSigned-off-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Dave Hansen \u003cdave@linux.vnet.ibm.com\u003e\nCc: Lee Schermerhorn \u003cLee.Schermerhorn@hp.com\u003e\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "974709bdb2a34db378fc84140220f363f558d0d6",
      "tree": "2b63a089cc077579e3b67efba1995c71102db2e2",
      "parents": [
        "f2260e6b1f4eba0f5b5906795117791b5c660154"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mel@csn.ul.ie",
        "time": "Tue Jun 16 15:32:14 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:35 2009 -0700"
      },
      "message": "page allocator: get the pageblock migratetype without disabling interrupts\n\nLocal interrupts are disabled when freeing pages to the PCP list.  Part of\nthat free checks what the migratetype of the pageblock the page is in but\nit checks this with interrupts disabled and interupts should never be\ndisabled longer than necessary.  This patch checks the pagetype with\ninterrupts enabled with the impact that it is possible a page is freed to\nthe wrong list when a pageblock changes type.  As that block is now\nalready considered mixed from an anti-fragmentation perspective, it\u0027s not\nof vital importance.\n\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Dave Hansen \u003cdave@linux.vnet.ibm.com\u003e\nCc: Lee Schermerhorn \u003cLee.Schermerhorn@hp.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f2260e6b1f4eba0f5b5906795117791b5c660154",
      "tree": "0faa8ce5fb0875835142e6ff3928b2ce076b4874",
      "parents": [
        "418589663d6011de9006425b6c5721e1544fb47a"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mel@csn.ul.ie",
        "time": "Tue Jun 16 15:32:13 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:35 2009 -0700"
      },
      "message": "page allocator: update NR_FREE_PAGES only as necessary\n\nWhen pages are being freed to the buddy allocator, the zone NR_FREE_PAGES\ncounter must be updated.  In the case of bulk per-cpu page freeing, it\u0027s\nupdated once per page.  This retouches cache lines more than necessary.\nUpdate the counters one per per-cpu bulk free.\n\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nReviewed-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Dave Hansen \u003cdave@linux.vnet.ibm.com\u003e\nCc: Lee Schermerhorn \u003cLee.Schermerhorn@hp.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "418589663d6011de9006425b6c5721e1544fb47a",
      "tree": "ef37fb026d3e38191d6b5c99bc95c190fa98d0fb",
      "parents": [
        "a3af9c389a7f3e675313f442fdd8c247c1cdb66b"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mel@csn.ul.ie",
        "time": "Tue Jun 16 15:32:12 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:35 2009 -0700"
      },
      "message": "page allocator: use allocation flags as an index to the zone watermark\n\nALLOC_WMARK_MIN, ALLOC_WMARK_LOW and ALLOC_WMARK_HIGH determin whether\npages_min, pages_low or pages_high is used as the zone watermark when\nallocating the pages.  Two branches in the allocator hotpath determine\nwhich watermark to use.\n\nThis patch uses the flags as an array index into a watermark array that is\nindexed with WMARK_* defines accessed via helpers.  All call sites that\nuse zone-\u003epages_* are updated to use the helpers for accessing the values\nand the array offsets for setting.\n\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nReviewed-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Dave Hansen \u003cdave@linux.vnet.ibm.com\u003e\nCc: Lee Schermerhorn \u003cLee.Schermerhorn@hp.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a3af9c389a7f3e675313f442fdd8c247c1cdb66b",
      "tree": "1ff17dc384d3bcfe82d27e3d05a35ff3b859652c",
      "parents": [
        "d395b73428d9748fb70b33477c9b2acae62f360a"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "nickpiggin@yahoo.com.au",
        "time": "Tue Jun 16 15:32:10 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:34 2009 -0700"
      },
      "message": "page allocator: do not check for compound pages during the page allocator sanity checks\n\nA number of sanity checks are made on each page allocation and free\nincluding that the page count is zero.  page_count() checks for compound\npages and checks the count of the head page if true.  However, in these\npaths, we do not care if the page is compound or not as the count of each\ntail page should also be zero.\n\nThis patch makes two changes to the use of page_count() in the free path.\nIt converts one check of page_count() to a VM_BUG_ON() as the count should\nhave been unconditionally checked earlier in the free path.  It also\navoids checking for compound pages.\n\n[mel@csn.ul.ie: Wrote changelog]\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nSigned-off-by: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nReviewed-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Dave Hansen \u003cdave@linux.vnet.ibm.com\u003e\nCc: Lee Schermerhorn \u003cLee.Schermerhorn@hp.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d395b73428d9748fb70b33477c9b2acae62f360a",
      "tree": "942bcfe36894ca8e13e6773c4713442a58a44a6d",
      "parents": [
        "da456f14d2f2d7350f2b9440af79c85a34c7eed5"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mel@csn.ul.ie",
        "time": "Tue Jun 16 15:32:09 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:34 2009 -0700"
      },
      "message": "page allocator: do not setup zonelist cache when there is only one node\n\nThere is a zonelist cache which is used to track zones that are not in the\nallowed cpuset or found to be recently full.  This is to reduce cache\nfootprint on large machines.  On smaller machines, it just incurs cost for\nno gain.  This patch only uses the zonelist cache when there are NUMA\nnodes.\n\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nReviewed-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Dave Hansen \u003cdave@linux.vnet.ibm.com\u003e\nCc: Lee Schermerhorn \u003cLee.Schermerhorn@hp.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "da456f14d2f2d7350f2b9440af79c85a34c7eed5",
      "tree": "fb857a24a561153e25e91a2ad55fa4123f8b152c",
      "parents": [
        "ed0ae21dc5fe3b9ad4cf1c7bb2bfd2ad596c481c"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mel@csn.ul.ie",
        "time": "Tue Jun 16 15:32:08 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:34 2009 -0700"
      },
      "message": "page allocator: do not disable interrupts in free_page_mlock()\n\nfree_page_mlock() tests and clears PG_mlocked using locked versions of the\nbit operations.  If set, it disables interrupts to update counters and\nthis happens on every page free even though interrupts are disabled very\nshortly afterwards a second time.  This is wasteful.\n\nThis patch splits what free_page_mlock() does.  The bit check is still\nmade.  However, the update of counters is delayed until the interrupts are\ndisabled and the non-lock version for clearing the bit is used.  One\npotential weirdness with this split is that the counters do not get\nupdated if the bad_page() check is triggered but a system showing bad\npages is getting screwed already.\n\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nReviewed-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nReviewed-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Dave Hansen \u003cdave@linux.vnet.ibm.com\u003e\nAcked-by: Lee Schermerhorn \u003cLee.Schermerhorn@hp.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ed0ae21dc5fe3b9ad4cf1c7bb2bfd2ad596c481c",
      "tree": "1ccdf36012a6a8ed22c5a78f7093bae0a259274e",
      "parents": [
        "0ac3a4099b0171ff965836182bc688bb8ca01058"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mel@csn.ul.ie",
        "time": "Tue Jun 16 15:32:07 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:34 2009 -0700"
      },
      "message": "page allocator: do not call get_pageblock_migratetype() more than necessary\n\nget_pageblock_migratetype() is potentially called twice for every page\nfree.  Once, when being freed to the pcp lists and once when being freed\nback to buddy.  When freeing from the pcp lists, it is known what the\npageblock type was at the time of free so use it rather than rechecking.\nIn low memory situations under memory pressure, this might skew\nanti-fragmentation slightly but the interference is minimal and decisions\nthat are fragmenting memory are being made anyway.\n\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nReviewed-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Dave Hansen \u003cdave@linux.vnet.ibm.com\u003e\nCc: Lee Schermerhorn \u003cLee.Schermerhorn@hp.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0ac3a4099b0171ff965836182bc688bb8ca01058",
      "tree": "d216b1adff4b9c9ef99cb5187d22b4a91bc7dca7",
      "parents": [
        "0a15c3e9f649f71464ac39e6378f1fde6f995322"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mel@csn.ul.ie",
        "time": "Tue Jun 16 15:32:06 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:34 2009 -0700"
      },
      "message": "page allocator: inline __rmqueue_fallback()\n\n__rmqueue_fallback() is in the slow path but has only one call site.\nBecause there is only one call-site, this function can then be inlined\nwithout causing text bloat.  On an x86-based config, it made no difference\nas the savings were padded out by NOP instructions.  Milage varies but\ntext will either decrease in size or remain static.\n\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Dave Hansen \u003cdave@linux.vnet.ibm.com\u003e\nCc: Lee Schermerhorn \u003cLee.Schermerhorn@hp.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0a15c3e9f649f71464ac39e6378f1fde6f995322",
      "tree": "a2a69331347a3fdfa5d2ab6be3e52e71832ae153",
      "parents": [
        "728ec980fb9fa2d65d9e05444079a53615985e7b"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mel@csn.ul.ie",
        "time": "Tue Jun 16 15:32:05 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:34 2009 -0700"
      },
      "message": "page allocator: inline buffered_rmqueue()\n\nbuffered_rmqueue() is in the fast path so inline it.  Because it only has\none call site, this function can then be inlined without causing text\nbloat.  On an x86-based config, it made no difference as the savings were\npadded out by NOP instructions.  Milage varies but text will either\ndecrease in size or remain static.\n\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Dave Hansen \u003cdave@linux.vnet.ibm.com\u003e\nCc: Lee Schermerhorn \u003cLee.Schermerhorn@hp.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "728ec980fb9fa2d65d9e05444079a53615985e7b",
      "tree": "d98dca98cd46fc28a871135cc9bd95168e4667b3",
      "parents": [
        "a56f57ff94c25d5d80def06f3ed8fe7f99147762"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mel@csn.ul.ie",
        "time": "Tue Jun 16 15:32:04 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:33 2009 -0700"
      },
      "message": "page allocator: inline __rmqueue_smallest()\n\nInline __rmqueue_smallest by altering flow very slightly so that there is\nonly one call site.  Because there is only one call-site, this function\ncan then be inlined without causing text bloat.  On an x86-based config,\nthis patch reduces text by 16 bytes.\n\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nReviewed-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Dave Hansen \u003cdave@linux.vnet.ibm.com\u003e\nCc: Lee Schermerhorn \u003cLee.Schermerhorn@hp.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a56f57ff94c25d5d80def06f3ed8fe7f99147762",
      "tree": "13cb2626a969e381cb5e3d6ba7f614b9d5ef7a42",
      "parents": [
        "341ce06f69abfafa31b9468410a13dbd60e2b237"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mel@csn.ul.ie",
        "time": "Tue Jun 16 15:32:02 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:33 2009 -0700"
      },
      "message": "page allocator: remove a branch by assuming __GFP_HIGH \u003d\u003d ALLOC_HIGH\n\nAllocations that specify __GFP_HIGH get the ALLOC_HIGH flag.  If these\nflags are equal to each other, we can eliminate a branch.\n\n[akpm@linux-foundation.org: Suggested the hack]\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nReviewed-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Dave Hansen \u003cdave@linux.vnet.ibm.com\u003e\nCc: Lee Schermerhorn \u003cLee.Schermerhorn@hp.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "341ce06f69abfafa31b9468410a13dbd60e2b237",
      "tree": "d7702157c9addb8e67e6dce883650e20b3ddcbfd",
      "parents": [
        "3dd2826698b6902aafd9441ce28ebb44735fd0d6"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue Jun 16 15:32:02 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:33 2009 -0700"
      },
      "message": "page allocator: calculate the alloc_flags for allocation only once\n\nFactor out the mapping between GFP and alloc_flags only once.  Once\nfactored out, it only needs to be calculated once but some care must be\ntaken.\n\n[neilb@suse.de says]\nAs the test:\n\n-       if (((p-\u003eflags \u0026 PF_MEMALLOC) || unlikely(test_thread_flag(TIF_MEMDIE)))\n-                       \u0026\u0026 !in_interrupt()) {\n-               if (!(gfp_mask \u0026 __GFP_NOMEMALLOC)) {\n\nhas been replaced with a slightly weaker one:\n\n+       if (alloc_flags \u0026 ALLOC_NO_WATERMARKS) {\n\nWithout care, this would allow recursion into the allocator via direct\nreclaim.  This patch ensures we do not recurse when PF_MEMALLOC is set but\nTF_MEMDIE callers are now allowed to directly reclaim where they would\nhave been prevented in the past.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nAcked-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Neil Brown \u003cneilb@suse.de\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Dave Hansen \u003cdave@linux.vnet.ibm.com\u003e\nCc: Lee Schermerhorn \u003cLee.Schermerhorn@hp.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3dd2826698b6902aafd9441ce28ebb44735fd0d6",
      "tree": "c9bda4a84a0545d4acf41123072fd018100e63f8",
      "parents": [
        "5117f45d11a9ee62d9b086f1312f3f31781ff155"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mel@csn.ul.ie",
        "time": "Tue Jun 16 15:32:00 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:33 2009 -0700"
      },
      "message": "page allocator: calculate the migratetype for allocation only once\n\nGFP mask is converted into a migratetype when deciding which pagelist to\ntake a page from.  However, it is happening multiple times per allocation,\nat least once per zone traversed.  Calculate it once.\n\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Dave Hansen \u003cdave@linux.vnet.ibm.com\u003e\nCc: Lee Schermerhorn \u003cLee.Schermerhorn@hp.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5117f45d11a9ee62d9b086f1312f3f31781ff155",
      "tree": "3f7b26f697d14d56be7278bcc4917e4f6d0c2c3d",
      "parents": [
        "49255c619fbd482d704289b5eb2795f8e3b7ff2e"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mel@csn.ul.ie",
        "time": "Tue Jun 16 15:31:59 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:33 2009 -0700"
      },
      "message": "page allocator: calculate the preferred zone for allocation only once\n\nget_page_from_freelist() can be called multiple times for an allocation.\nPart of this calculates the preferred_zone which is the first usable zone\nin the zonelist but the zone depends on the GFP flags specified at the\nbeginning of the allocation call.  This patch calculates preferred_zone\nonce.  It\u0027s safe to do this because if preferred_zone is NULL at the start\nof the call, no amount of direct reclaim or other actions will change the\nfact the allocation will fail.\n\n[akpm@linux-foundation.org: remove (void) casts]\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nReviewed-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Dave Hansen \u003cdave@linux.vnet.ibm.com\u003e\nCc: Lee Schermerhorn \u003cLee.Schermerhorn@hp.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "49255c619fbd482d704289b5eb2795f8e3b7ff2e",
      "tree": "b1f36ca46bda7767fce12bc4a70360a68f7255ab",
      "parents": [
        "11e33f6a55ed7847d9c8ffe185ef87faf7806abe"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mel@csn.ul.ie",
        "time": "Tue Jun 16 15:31:58 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:33 2009 -0700"
      },
      "message": "page allocator: move check for disabled anti-fragmentation out of fastpath\n\nOn low-memory systems, anti-fragmentation gets disabled as there is\nnothing it can do and it would just incur overhead shuffling pages between\nlists constantly.  Currently the check is made in the free page fast path\nfor every page.  This patch moves it to a slow path.  On machines with low\nmemory, there will be small amount of additional overhead as pages get\nshuffled between lists but it should quickly settle.\n\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nReviewed-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Dave Hansen \u003cdave@linux.vnet.ibm.com\u003e\nCc: Lee Schermerhorn \u003cLee.Schermerhorn@hp.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "11e33f6a55ed7847d9c8ffe185ef87faf7806abe",
      "tree": "ca70fe29e836c508cc279c619f7b856380a6f10f",
      "parents": [
        "7f82af9742a9346794ecc1515139daed480e7025"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mel@csn.ul.ie",
        "time": "Tue Jun 16 15:31:57 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:32 2009 -0700"
      },
      "message": "page allocator: break up the allocator entry point into fast and slow paths\n\nThe core of the page allocator is one giant function which allocates\nmemory on the stack and makes calculations that may not be needed for\nevery allocation.  This patch breaks up the allocator path into fast and\nslow paths for clarity.  Note the slow paths are still inlined but the\nentry is marked unlikely.  If they were not inlined, it actally increases\ntext size to generate the as there is only one call site.\n\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nReviewed-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Dave Hansen \u003cdave@linux.vnet.ibm.com\u003e\nCc: Lee Schermerhorn \u003cLee.Schermerhorn@hp.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7f82af9742a9346794ecc1515139daed480e7025",
      "tree": "4928b804c990263d1319d32fa61570fa34a25eb6",
      "parents": [
        "6484eb3e2a81807722c5f28efef94d8338b7b996"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mel@csn.ul.ie",
        "time": "Tue Jun 16 15:31:56 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:32 2009 -0700"
      },
      "message": "page allocator: check only once if the zonelist is suitable for the allocation\n\nIt is possible with __GFP_THISNODE that no zones are suitable.  This patch\nmakes sure the check is only made once.\n\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nReviewed-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nReviewed-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Dave Hansen \u003cdave@linux.vnet.ibm.com\u003e\nCc: Lee Schermerhorn \u003cLee.Schermerhorn@hp.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6484eb3e2a81807722c5f28efef94d8338b7b996",
      "tree": "10ce36f412c2ff0c7eb399af1a189f8e354f56db",
      "parents": [
        "b3c466ce512923298ae8c0121d3e9f397a3f1210"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mel@csn.ul.ie",
        "time": "Tue Jun 16 15:31:54 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:32 2009 -0700"
      },
      "message": "page allocator: do not check NUMA node ID when the caller knows the node is valid\n\nCallers of alloc_pages_node() can optionally specify -1 as a node to mean\n\"allocate from the current node\".  However, a number of the callers in\nfast paths know for a fact their node is valid.  To avoid a comparison and\nbranch, this patch adds alloc_pages_exact_node() that only checks the nid\nwith VM_BUG_ON().  Callers that know their node is valid are then\nconverted.\n\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nReviewed-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nReviewed-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nAcked-by: Paul Mundt \u003clethal@linux-sh.org\u003e\t[for the SLOB NUMA bits]\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Dave Hansen \u003cdave@linux.vnet.ibm.com\u003e\nCc: Lee Schermerhorn \u003cLee.Schermerhorn@hp.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b3c466ce512923298ae8c0121d3e9f397a3f1210",
      "tree": "ca6f360a6dbaaa0a71b9375fb57d544364532254",
      "parents": [
        "d239171e4f6efd58d7e423853056b1b6a74f1446"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mel@csn.ul.ie",
        "time": "Tue Jun 16 15:31:53 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:32 2009 -0700"
      },
      "message": "page allocator: do not sanity check order in the fast path\n\nNo user of the allocator API should be passing in an order \u003e\u003d MAX_ORDER\nbut we check for it on each and every allocation.  Delete this check and\nmake it a VM_BUG_ON check further down the call path.\n\n[akpm@linux-foundation.org: s/VM_BUG_ON/WARN_ON_ONCE/]\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nReviewed-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nReviewed-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Dave Hansen \u003cdave@linux.vnet.ibm.com\u003e\nCc: Lee Schermerhorn \u003cLee.Schermerhorn@hp.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d239171e4f6efd58d7e423853056b1b6a74f1446",
      "tree": "3b0d96abf99e5add7bfc6236f745503b540bd350",
      "parents": [
        "6c0db4664b49417d80988953e69c323721353227"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mel@csn.ul.ie",
        "time": "Tue Jun 16 15:31:52 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:32 2009 -0700"
      },
      "message": "page allocator: replace __alloc_pages_internal() with __alloc_pages_nodemask()\n\nThe start of a large patch series to clean up and optimise the page\nallocator.\n\nThe performance improvements are in a wide range depending on the exact\nmachine but the results I\u0027ve seen so fair are approximately;\n\nkernbench:\t0\tto\t 0.12% (elapsed time)\n\t\t0.49%\tto\t 3.20% (sys time)\naim9:\t\t-4%\tto\t30% (for page_test and brk_test)\ntbench:\t\t-1%\tto\t 4%\nhackbench:\t-2.5%\tto\t 3.45% (mostly within the noise though)\nnetperf-udp\t-1.34%  to\t 4.06% (varies between machines a bit)\nnetperf-tcp\t-0.44%  to\t 5.22% (varies between machines a bit)\n\nI haven\u0027t sysbench figures at hand, but previously they were within the\n-0.5% to 2% range.\n\nOn netperf, the client and server were bound to opposite number CPUs to\nmaximise the problems with cache line bouncing of the struct pages so I\nexpect different people to report different results for netperf depending\non their exact machine and how they ran the test (different machines, same\ncpus client/server, shared cache but two threads client/server, different\nsocket client/server etc).\n\nI also measured the vmlinux sizes for a single x86-based config with\nCONFIG_DEBUG_INFO enabled but not CONFIG_DEBUG_VM.  The core of the\n.config is based on the Debian Lenny kernel config so I expect it to be\nreasonably typical.\n\nThis patch:\n\n__alloc_pages_internal is the core page allocator function but essentially\nit is an alias of __alloc_pages_nodemask.  Naming a publicly available and\nexported function \"internal\" is also a big ugly.  This patch renames\n__alloc_pages_internal() to __alloc_pages_nodemask() and deletes the old\nnodemask function.\n\nWarning - This patch renames an exported symbol.  No kernel driver is\naffected by external drivers calling __alloc_pages_internal() should\nchange the call to __alloc_pages_nodemask() without any alteration of\nparameters.\n\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nReviewed-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nReviewed-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Dave Hansen \u003cdave@linux.vnet.ibm.com\u003e\nCc: Lee Schermerhorn \u003cLee.Schermerhorn@hp.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6c0db4664b49417d80988953e69c323721353227",
      "tree": "83ec1fcf3607b06c8c3cc2d39b5d10a61289cdd6",
      "parents": [
        "58568d2a8215cb6f55caf2332017d7bdff954e1c"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh.dickins@tiscali.co.uk",
        "time": "Tue Jun 16 15:31:50 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:31 2009 -0700"
      },
      "message": "mm: alloc_large_system_hash check order\n\nOn an x86_64 with 4GB ram, tcp_init()\u0027s call to alloc_large_system_hash(),\nto allocate tcp_hashinfo.ehash, is now triggering an mmotm WARN_ON_ONCE on\norder \u003e\u003d MAX_ORDER - it\u0027s hoping for order 11.  alloc_large_system_hash()\nhad better make its own check on the order.\n\nSigned-off-by: Hugh Dickins \u003chugh.dickins@tiscali.co.uk\u003e\nCc: David Miller \u003cdavem@davemloft.net\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nCc: Christoph Lameter \u003ccl@linux.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "58568d2a8215cb6f55caf2332017d7bdff954e1c",
      "tree": "ffcdee457494ac78d6550b0aeac86536ca152e7b",
      "parents": [
        "950592f7b991f267d707d372b90f508bbe72acbc"
      ],
      "author": {
        "name": "Miao Xie",
        "email": "miaox@cn.fujitsu.com",
        "time": "Tue Jun 16 15:31:49 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:31 2009 -0700"
      },
      "message": "cpuset,mm: update tasks\u0027 mems_allowed in time\n\nFix allocating page cache/slab object on the unallowed node when memory\nspread is set by updating tasks\u0027 mems_allowed after its cpuset\u0027s mems is\nchanged.\n\nIn order to update tasks\u0027 mems_allowed in time, we must modify the code of\nmemory policy.  Because the memory policy is applied in the process\u0027s\ncontext originally.  After applying this patch, one task directly\nmanipulates anothers mems_allowed, and we use alloc_lock in the\ntask_struct to protect mems_allowed and memory policy of the task.\n\nBut in the fast path, we didn\u0027t use lock to protect them, because adding a\nlock may lead to performance regression.  But if we don\u0027t add a lock,the\ntask might see no nodes when changing cpuset\u0027s mems_allowed to some\nnon-overlapping set.  In order to avoid it, we set all new allowed nodes,\nthen clear newly disallowed ones.\n\n[lee.schermerhorn@hp.com:\n  The rework of mpol_new() to extract the adjusting of the node mask to\n  apply cpuset and mpol flags \"context\" breaks set_mempolicy() and mbind()\n  with MPOL_PREFERRED and a NULL nodemask--i.e., explicit local\n  allocation.  Fix this by adding the check for MPOL_PREFERRED and empty\n  node mask to mpol_new_mpolicy().\n\n  Remove the now unneeded \u0027nodes \u003d NULL\u0027 from mpol_new().\n\n  Note that mpol_new_mempolicy() is always called with a non-NULL\n  \u0027nodes\u0027 parameter now that it has been removed from mpol_new().\n  Therefore, we don\u0027t need to test nodes for NULL before testing it for\n  \u0027empty\u0027.  However, just to be extra paranoid, add a VM_BUG_ON() to\n  verify this assumption.]\n[lee.schermerhorn@hp.com:\n\n  I don\u0027t think the function name \u0027mpol_new_mempolicy\u0027 is descriptive\n  enough to differentiate it from mpol_new().\n\n  This function applies cpuset set context, usually constraining nodes\n  to those allowed by the cpuset.  However, when the \u0027RELATIVE_NODES flag\n  is set, it also translates the nodes.  So I settled on\n  \u0027mpol_set_nodemask()\u0027, because the comment block for mpol_new() mentions\n  that we need to call this function to \"set nodes\".\n\n  Some additional minor line length, whitespace and typo cleanup.]\nSigned-off-by: Miao Xie \u003cmiaox@cn.fujitsu.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Yasunori Goto \u003cy-goto@jp.fujitsu.com\u003e\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "950592f7b991f267d707d372b90f508bbe72acbc",
      "tree": "b57ef015ff5cd54d8ab21005b466c80e9ccfa9e3",
      "parents": [
        "f3b39d47ebc51416fc3b690a32dfe030a2035e67"
      ],
      "author": {
        "name": "Miao Xie",
        "email": "miaox@cn.fujitsu.com",
        "time": "Tue Jun 16 15:31:47 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:31 2009 -0700"
      },
      "message": "cpusets: update tasks\u0027 page/slab spread flags in time\n\nFix the bug that the kernel didn\u0027t spread page cache/slab object evenly\nover all the allowed nodes when spread flags were set by updating tasks\u0027\npage/slab spread flags in time.\n\nSigned-off-by: Miao Xie \u003cmiaox@cn.fujitsu.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Yasunori Goto \u003cy-goto@jp.fujitsu.com\u003e\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f3b39d47ebc51416fc3b690a32dfe030a2035e67",
      "tree": "98873bacc74c60407ba3e93337d12351f35711e3",
      "parents": [
        "dcf975d58565880a134afb13bde511d1b873ce79"
      ],
      "author": {
        "name": "Miao Xie",
        "email": "miaox@cn.fujitsu.com",
        "time": "Tue Jun 16 15:31:46 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:31 2009 -0700"
      },
      "message": "cpusets: restructure the function cpuset_update_task_memory_state()\n\nThe kernel still allocates the page caches on old node after modifying its\ncpuset\u0027s mems when \u0027memory_spread_page\u0027 was set, or it didn\u0027t spread the\npage cache evenly over all the nodes that faulting task is allowed to usr\nafter memory_spread_page was set.  it is caused by the old mem_allowed and\nflags of the task, the current kernel doesn\u0027t updates them unless some\nfunction invokes cpuset_update_task_memory_state(), it is too late\nsometimes.We must update the mem_allowed and the flags of the tasks in\ntime.\n\nSlab has the same problem.\n\nThe following patches fix this bug by updating tasks\u0027 mem_allowed and\nspread flag after its cpuset\u0027s mems or spread flag is changed.\n\nThis patch:\n\nExtract a function from cpuset_update_task_memory_state().  It will be\nused later for update tasks\u0027 page/slab spread flags after its cpuset\u0027s\nflag is set\n\nSigned-off-by: Miao Xie \u003cmiaox@cn.fujitsu.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Yasunori Goto \u003cy-goto@jp.fujitsu.com\u003e\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "dcf975d58565880a134afb13bde511d1b873ce79",
      "tree": "c10147ca16176c4a7c7ff72788170d3ac34b9c1c",
      "parents": [
        "78dc583d3ab43115579cb5f3f7bd12e3548dd5a5"
      ],
      "author": {
        "name": "H Hartley Sweeten",
        "email": "hartleys@visionengravers.com",
        "time": "Tue Jun 16 15:31:44 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:31 2009 -0700"
      },
      "message": "mm/page-writeback.c: dirty limit type should be unsigned long\n\nget_dirty_limits() calls clip_bdi_dirty_limit() and task_dirty_limit()\nwith variable pbdi_dirty as one of the arguments.  This variable is an\nunsigned long * but both functions expect it to be a long *.  This causes\nthe following sparse warnings:\n\n  warning: incorrect type in argument 3 (different signedness)\n     expected long *pbdi_dirty\n     got unsigned long *pbdi_dirty\n  warning: incorrect type in argument 2 (different signedness)\n     expected long *pdirty\n     got unsigned long *pbdi_dirty\n\nFix the warnings by changing the long * to unsigned long * in both\nfunctions.\n\nSigned-off-by: H Hartley Sweeten \u003chsweeten@visionengravers.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "78dc583d3ab43115579cb5f3f7bd12e3548dd5a5",
      "tree": "ef8886bd9fce4bd8e4faa30bafcacd90aee54e25",
      "parents": [
        "d2bf6be8ab63aa84e6149aac934649aadf3828b1"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Tue Jun 16 15:31:40 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:31 2009 -0700"
      },
      "message": "vmscan: low order lumpy reclaim also should use PAGEOUT_IO_SYNC\n\nCommit 33c120ed2843090e2bd316de1588b8bf8b96cbde (\"more aggressively use\nlumpy reclaim\") increased how aggressive lumpy reclaim was by isolating\nboth active and inactive pages for asynchronous lumpy reclaim on\ncostly-high-order pages and for cheap-high-order when memory pressure is\nhigh.  However, if the system is under heavy pressure and there are dirty\npages, asynchronous IO may not be sufficient to reclaim a suitable page in\ntime.\n\nThis patch causes the caller to enter synchronous lumpy reclaim for\ncostly-high-order pages and for cheap-high-order pages when under memory\npressure.\n\nMinchan.kim@gmail.com said:\n\nAndy added synchronous lumpy reclaim with\nc661b078fd62abe06fd11fab4ac5e4eeafe26b6d.  At that time, lumpy reclaim is\nnot agressive.  His intension is just for high-order users.(above\nPAGE_ALLOC_COSTLY_ORDER).\n\nAfter some time, Rik added aggressive lumpy reclaim with\n33c120ed2843090e2bd316de1588b8bf8b96cbde.  His intention was to do lumpy\nreclaim when high-order users and trouble getting a small set of\ncontiguous pages.\n\nSo we also have to add synchronous pageout for small set of contiguous\npages.\n\nCc: Lee Schermerhorn \u003cLee.Schermerhorn@hp.com\u003e\nCc: Andy Whitcroft \u003capw@shadowen.org\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nReviewed-by: Minchan Kim \u003cMinchan.kim@gmail.com\u003e\nReviewed-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d2bf6be8ab63aa84e6149aac934649aadf3828b1",
      "tree": "65e7f74f1ed6fd9516f1615b0f293d2aaeede07b",
      "parents": [
        "7ffc59b4d0bdfa00e882339f85b8a969bb7021e2"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "nickpiggin@yahoo.com.au",
        "time": "Tue Jun 16 15:31:39 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:30 2009 -0700"
      },
      "message": "mm: clean up get_user_pages_fast() documentation\n\nMove more documentation for get_user_pages_fast into the new kerneldoc comment.\nAdd some comments for get_user_pages as well.\n\nAlso, move get_user_pages_fast declaration up to get_user_pages. It wasn\u0027t\nthere initially because it was once a static inline function.\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Andy Grover \u003candy.grover@oracle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7ffc59b4d0bdfa00e882339f85b8a969bb7021e2",
      "tree": "6b6d96208f08bc394c8e64efed6767b9a95e7a6d",
      "parents": [
        "61b7cbdba2f3c588a0cf3db574c562805454b09b"
      ],
      "author": {
        "name": "Wu Fengguang",
        "email": "fengguang.wu@intel.com",
        "time": "Tue Jun 16 15:31:38 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:30 2009 -0700"
      },
      "message": "readahead: enforce full sync mmap readahead size\n\nNow that we do readahead for sequential mmap reads, here is a simple\nevaluation of the impacts, and one further optimization.\n\nIt\u0027s an NFS-root debian desktop system, readahead size \u003d 60 pages.\nThe numbers are grabbed after a fresh boot into console.\n\napproach        pgmajfault      RA miss ratio   mmap IO count   avg IO size(pages)\n   A            383             31.6%           383             11\n   B            225             32.4%           390             11\n   C            224             32.6%           307             13\n\ncase A: mmap sync/async readahead disabled\ncase B: mmap sync/async readahead enabled, with enforced full async readahead size\ncase C: mmap sync/async readahead enabled, with enforced full sync/async readahead size\nor:\nA \u003d vanilla 2.6.30-rc1\nB \u003d A plus mmap readahead\nC \u003d B plus this patch\n\nThe numbers show that\n- there are good possibilities for random mmap reads to trigger readahead\n- \u0027pgmajfault\u0027 is reduced by 1/3, due to the _async_ nature of readahead\n- case C can further reduce IO count by 1/4\n- readahead miss ratios are not quite affected\n\nThe theory is\n- readahead is _good_ for clustered random reads, and can perform\n  _better_ than readaround because they could be _async_.\n- async readahead size is guaranteed to be larger than readaround\n  size, and they are _async_, hence will mostly behave better\nHowever for B\n- sync readahead size could be smaller than readaround size, hence may\n  make things worse by produce more smaller IOs\nwhich will be fixed by this patch.\n\nFinal conclusion:\n- mmap readahead reduced major faults by 1/3 and no obvious overheads;\n- mmap io can be further reduced by 1/4 with this patch.\n\nSigned-off-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "61b7cbdba2f3c588a0cf3db574c562805454b09b",
      "tree": "657756b1ab5dc5fd63b341d999d492b868f4309c",
      "parents": [
        "10be0b372cac50e2e7a477852f98bf069a97a3fa"
      ],
      "author": {
        "name": "Wu Fengguang",
        "email": "fengguang.wu@intel.com",
        "time": "Tue Jun 16 15:31:36 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:30 2009 -0700"
      },
      "message": "readahead: remove redundant test in shrink_readahead_size_eio()\n\nSigned-off-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "10be0b372cac50e2e7a477852f98bf069a97a3fa",
      "tree": "b3599c6418c5c8c143c6f5e293f8ea93351b889f",
      "parents": [
        "045a2529a3513faed2d45bd82f9013b124309d94"
      ],
      "author": {
        "name": "Wu Fengguang",
        "email": "fengguang.wu@intel.com",
        "time": "Tue Jun 16 15:31:36 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:30 2009 -0700"
      },
      "message": "readahead: introduce context readahead algorithm\n\nIntroduce page cache context based readahead algorithm.\nThis is to better support concurrent read streams in general.\n\nRATIONALE\n---------\nThe current readahead algorithm detects interleaved reads in a _passive_ way.\nGiven a sequence of interleaved streams 1,1001,2,1002,3,4,1003,5,1004,1005,6,...\nBy checking for (offset \u003d\u003d prev_offset + 1), it will discover the sequentialness\nbetween 3,4 and between 1004,1005, and start doing sequential readahead for the\nindividual streams since page 4 and page 1005.\n\nThe context readahead algorithm guarantees to discover the sequentialness no\nmatter how the streams are interleaved. For the above example, it will start\nsequential readahead since page 2 and 1002.\n\nThe trick is to poke for page @offset-1 in the page cache when it has no other\nclues on the sequentialness of request @offset: if the current requenst belongs\nto a sequential stream, that stream must have accessed page @offset-1 recently,\nand the page will still be cached now. So if page @offset-1 is there, we can\ntake request @offset as a sequential access.\n\nBENEFICIARIES\n-------------\n- strictly interleaved reads  i.e. 1,1001,2,1002,3,1003,...\n  the current readahead will take them as silly random reads;\n  the context readahead will take them as two sequential streams.\n\n- cooperative IO processes   i.e. NFS and SCST\n  They create a thread pool, farming off (sequential) IO requests to different\n  threads which will be performing interleaved IO.\n\n  It was not easy(or possible) to reliably tell from file-\u003ef_ra all those\n  cooperative processes working on the same sequential stream, since they will\n  have different file-\u003ef_ra instances. And NFSD\u0027s file-\u003ef_ra is particularly\n  unusable, since their file objects are dynamically created for each request.\n  The nfsd does have code trying to restore the f_ra bits, but not satisfactory.\n\n  The new scheme is to detect the sequential pattern via looking up the page\n  cache, which provides one single and consistent view of the pages recently\n  accessed. That makes sequential detection for cooperative processes possible.\n\nUSER REPORT\n-----------\nVladislav recommends the addition of context readahead as a result of his SCST\nbenchmarks. It leads to 6%~40% performance gains in various cases and achieves\nequal performance in others.                http://lkml.org/lkml/2009/3/19/239\n\nOVERHEADS\n---------\nIn theory, it introduces one extra page cache lookup per random read.  However\nthe below benchmark shows context readahead to be slightly faster, wondering..\n\nRandomly reading 200MB amount of data on a sparse file, repeat 20 times for\neach block size. The average throughputs are:\n\n                       \toriginal ra\tcontext ra\tgain\n 4K random reads:\t 65.561MB/s\t 65.648MB/s\t+0.1%\n16K random reads:\t124.767MB/s\t124.951MB/s\t+0.1%\n64K random reads: \t162.123MB/s\t162.278MB/s\t+0.1%\n\nCc: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nCc: Jeff Moyer \u003cjmoyer@redhat.com\u003e\nTested-by: Vladislav Bolkhovitin \u003cvst@vlnb.net\u003e\nSigned-off-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "045a2529a3513faed2d45bd82f9013b124309d94",
      "tree": "99b7743b6dab54286afe94d4d7b8113a271661b5",
      "parents": [
        "dc566127dd161b6c997466a2349ac179527ea89b"
      ],
      "author": {
        "name": "Wu Fengguang",
        "email": "fengguang.wu@intel.com",
        "time": "Tue Jun 16 15:31:33 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:30 2009 -0700"
      },
      "message": "readahead: move the random read case to bottom\n\nSplit all readahead cases, and move the random one to bottom.\n\nNo behavior changes.\n\nThis is to prepare for the introduction of context readahead, and make it\neasy for inserting accounting/tracing points for each case.\n\nSigned-off-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nCc: Vladislav Bolkhovitin \u003cvst@vlnb.net\u003e\nCc: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nCc: Jeff Moyer \u003cjmoyer@redhat.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Ying Han \u003cyinghan@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "dc566127dd161b6c997466a2349ac179527ea89b",
      "tree": "2973018dd4a89f0b20eaa0838eb654b6eff06f68",
      "parents": [
        "d30a11004e3411909f2448546f036a011978062e"
      ],
      "author": {
        "name": "Wu Fengguang",
        "email": "fengguang.wu@intel.com",
        "time": "Tue Jun 16 15:31:32 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:30 2009 -0700"
      },
      "message": "radix-tree: add radix_tree_prev_hole()\n\nThe counterpart of radix_tree_next_hole(). To be used by context readahead.\n\nSigned-off-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nCc: Vladislav Bolkhovitin \u003cvst@vlnb.net\u003e\nCc: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nCc: Jeff Moyer \u003cjmoyer@redhat.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Ying Han \u003cyinghan@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d30a11004e3411909f2448546f036a011978062e",
      "tree": "c1980adb410d9fabd2c2eb8af9f0ed8ee4b656da",
      "parents": [
        "2fad6f5deee5556f511eab58da78737a23ddb35d"
      ],
      "author": {
        "name": "Wu Fengguang",
        "email": "fengguang.wu@intel.com",
        "time": "Tue Jun 16 15:31:30 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:29 2009 -0700"
      },
      "message": "readahead: record mmap read-around states in file_ra_state\n\nMmap read-around now shares the same code style and data structure with\nreadahead code.\n\nThis also removes do_page_cache_readahead().  Its last user, mmap\nread-around, has been changed to call ra_submit().\n\nThe no-readahead-if-congested logic is dumped by the way.  Users will be\npretty sensitive about the slow loading of executables.  So it\u0027s\nunfavorable to disabled mmap read-around on a congested queue.\n\n[akpm@linux-foundation.org: coding-style fixes]\nCc: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Fengguang Wu \u003cwfg@mail.ustc.edu.cn\u003e\nCc: Ying Han \u003cyinghan@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2fad6f5deee5556f511eab58da78737a23ddb35d",
      "tree": "eca8262062c4fda63cb3bd34f9478f3fbfd7f518",
      "parents": [
        "70ac23cfa31f68289d4b720c6162b3929ab4de36"
      ],
      "author": {
        "name": "Wu Fengguang",
        "email": "fengguang.wu@intel.com",
        "time": "Tue Jun 16 15:31:29 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:29 2009 -0700"
      },
      "message": "readahead: enforce full readahead size on async mmap readahead\n\nWe need this in one particular case and two more general ones.\n\nNow we do async readahead for sequential mmap reads, and do it with the\nhelp of PG_readahead.  For normal reads, PG_readahead is the sufficient\ncondition to do a sequential readahead.  But unfortunately, for mmap\nreads, there is a tiny nuisance:\n\n[11736.998347] readahead-init0(process: sh/23926, file: sda1/w3m, offset\u003d0:4503599627370495, ra\u003d0+4-3) \u003d 4\n[11737.014985] readahead-around(process: w3m/23926, file: sda1/w3m, offset\u003d0:0, ra\u003d290+32-0) \u003d 17\n[11737.019488] readahead-around(process: w3m/23926, file: sda1/w3m, offset\u003d0:0, ra\u003d118+32-0) \u003d 32\n[11737.024921] readahead-interleaved(process: w3m/23926, file: sda1/w3m, offset\u003d0:2, ra\u003d4+6-6) \u003d 6\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                 ~~~~~~~~~~~~~\n\nAn unfavorably small readahead.  The original dumb read-around size could\nbe more efficient.\n\nThat happened because ld-linux.so does a read(832) in L1 before mmap(),\nwhich triggers a 4-page readahead, with the second page tagged\nPG_readahead.\n\nL0: open(\"/lib/libc.so.6\", O_RDONLY)        \u003d 3\nL1: read(3, \"\\177ELF\\2\\1\\1\\0\\0\\0\\0\\0\\0\\0\\0\\0\\3\\0\u003e\\0\\1\\0\\0\\0\\340\\342\"..., 832) \u003d 832\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\nL2: fstat(3, {st_mode\u003dS_IFREG|0755, st_size\u003d1420624, ...}) \u003d 0\nL3: mmap(NULL, 3527256, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) \u003d 0x7fac6e51d000\nL4: mprotect(0x7fac6e671000, 2097152, PROT_NONE) \u003d 0\nL5: mmap(0x7fac6e871000, 20480, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x154000) \u003d 0x7fac6e871000\nL6: mmap(0x7fac6e876000, 16984, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) \u003d 0x7fac6e876000\nL7: close(3)                                \u003d 0\n\nIn general, the PG_readahead flag will also be hit in cases\n\n- sequential reads\n\n- clustered random reads\n\nA full readahead size is desirable in both cases.\n\nCc: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nCc: Ying Han \u003cyinghan@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "70ac23cfa31f68289d4b720c6162b3929ab4de36",
      "tree": "d610e506a9247a22ba54c379d8abb58958ada6da",
      "parents": [
        "ef00e08e26dd5d84271ef706262506b82195e752"
      ],
      "author": {
        "name": "Wu Fengguang",
        "email": "fengguang.wu@intel.com",
        "time": "Tue Jun 16 15:31:28 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:29 2009 -0700"
      },
      "message": "readahead: sequential mmap readahead\n\nAuto-detect sequential mmap reads and do readahead for them.\n\nThe sequential mmap readahead will be triggered when\n- sync readahead: it\u0027s a major fault and (prev_offset \u003d\u003d offset-1);\n- async readahead: minor fault on PG_readahead page with valid readahead state.\n\nThe benefits of doing readahead instead of read-around:\n- less I/O wait thanks to async readahead\n- double real I/O size and no more cache hits\n\nThe single stream case is improved a little.\nFor 100,000 sequential mmap reads:\n\n                                    user       system    cpu        total\n(1-1)  plain -mm, 128KB readaround: 3.224      2.554     48.40%     11.838\n(1-2)  plain -mm, 256KB readaround: 3.170      2.392     46.20%     11.976\n(2)  patched -mm, 128KB readahead:  3.117      2.448     47.33%     11.607\n\nThe patched (2) has smallest total time, since it has no cache hit overheads\nand less I/O block time(thanks to async readahead). Here the I/O size\nmakes no much difference, since there\u0027s only one single stream.\n\nNote that (1-1)\u0027s real I/O size is 64KB and (1-2)\u0027s real I/O size is 128KB,\nsince the half of the read-around pages will be readahead cache hits.\n\nThis is going to make _real_ differences for _concurrent_ IO streams.\n\nCc: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nCc: Ying Han \u003cyinghan@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ef00e08e26dd5d84271ef706262506b82195e752",
      "tree": "5f6cf72cf9bf0574ecfbd73f4ee5378d89298dd7",
      "parents": [
        "51daa88ebd8e0d437289f589af29d4b39379ea76"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 15:31:25 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:29 2009 -0700"
      },
      "message": "readahead: clean up and simplify the code for filemap page fault readahead\n\nThis shouldn\u0027t really change behavior all that much, but the single rather\ncomplex function with read-ahead inside a loop etc is broken up into more\nmanageable pieces.\n\nThe behaviour is also less subtle, with the read-ahead being done up-front\nrather than inside some subtle loop and thus avoiding the now unnecessary\nextra state variables (ie \"did_readaround\" is gone).\n\nFengguang: the code split in fact fixed a bug reported by Pavel Levshin:\nthe PGMAJFAULT accounting used to be bypassed when MADV_RANDOM is set, in\nwhich case the original code will directly jump to no_cached_page reading.\n\nCc: Pavel Levshin \u003clpk@581.spb.su\u003e\nCc: \u003cwli@movementarian.org\u003e\nCc: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "51daa88ebd8e0d437289f589af29d4b39379ea76",
      "tree": "cbf2990a12ee4285d4e906c2c5614689922b8ab1",
      "parents": [
        "160334a0cfa8e578b718f81038026326845d07d7"
      ],
      "author": {
        "name": "Wu Fengguang",
        "email": "fengguang.wu@intel.com",
        "time": "Tue Jun 16 15:31:24 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:29 2009 -0700"
      },
      "message": "readahead: remove sync/async readahead call dependency\n\nThe readahead call scheme is error-prone in that it expects the call sites\nto check for async readahead after doing a sync one.  I.e.\n\n\t\t\tif (!page)\n\t\t\t\tpage_cache_sync_readahead();\n\t\t\tpage \u003d find_get_page();\n\t\t\tif (page \u0026\u0026 PageReadahead(page))\n\t\t\t\tpage_cache_async_readahead();\n\nThis is because PG_readahead could be set by a sync readahead for the\n_current_ newly faulted in page, and the readahead code simply expects one\nmore callback on the same page to start the async readahead.  If the\ncaller fails to do so, it will miss the PG_readahead bits and never able\nto start an async readahead.\n\nEliminate this insane constraint by piggy-backing the async part into the\ncurrent readahead window.\n\nNow if an async readahead should be started immediately after a sync one,\nthe readahead logic itself will do it.  So the following code becomes\nvalid: (the \u0027else\u0027 in particular)\n\n\t\t\tif (!page)\n\t\t\t\tpage_cache_sync_readahead();\n\t\t\telse if (PageReadahead(page))\n\t\t\t\tpage_cache_async_readahead();\n\nCc: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nCc: Ying Han \u003cyinghan@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "160334a0cfa8e578b718f81038026326845d07d7",
      "tree": "3c5b524faf23cdde4da1a3f2112de0c645206dba",
      "parents": [
        "caca7cb748571a5b39943a9b3e7081feef055e5e"
      ],
      "author": {
        "name": "Wu Fengguang",
        "email": "fengguang.wu@intel.com",
        "time": "Tue Jun 16 15:31:23 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:29 2009 -0700"
      },
      "message": "readahead: increase interleaved readahead size\n\nMake sure interleaved readahead size is larger than request size.  This\nalso makes the readahead window grow up more quickly.\n\nReported-by: Xu Chenfeng \u003cxcf@ustc.edu.cn\u003e\nSigned-off-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nCc: Ying Han \u003cyinghan@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "caca7cb748571a5b39943a9b3e7081feef055e5e",
      "tree": "8f115031584d8ebc14280079fed8183ef1f032ac",
      "parents": [
        "fc31d16add13773265cc53d59f2e7594cb3c0a14"
      ],
      "author": {
        "name": "Wu Fengguang",
        "email": "fengguang.wu@intel.com",
        "time": "Tue Jun 16 15:31:21 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:28 2009 -0700"
      },
      "message": "readahead: remove one unnecessary radix tree lookup\n\n(hit_readahead_marker !\u003d 0) means the page at @offset is present, so we\ncan search for non-present page starting from @offset+1.\n\nReported-by: Xu Chenfeng \u003cxcf@ustc.edu.cn\u003e\nSigned-off-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nCc: Ying Han \u003cyinghan@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "fc31d16add13773265cc53d59f2e7594cb3c0a14",
      "tree": "fe67988da0a8b7bd08cdf3da95c852373638e06b",
      "parents": [
        "f7e839dd36fd940b0202cfb7d39b2a1b2dc59b1b"
      ],
      "author": {
        "name": "Wu Fengguang",
        "email": "fengguang.wu@intel.com",
        "time": "Tue Jun 16 15:31:21 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:28 2009 -0700"
      },
      "message": "readahead: apply max_sane_readahead() limit in ondemand_readahead()\n\nJust in case someone aggressively sets a huge readahead size.\n\nCc: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nCc: Ying Han \u003cyinghan@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f7e839dd36fd940b0202cfb7d39b2a1b2dc59b1b",
      "tree": "5c99332a62aa8135bd58485e7f3c22634ecdc90c",
      "parents": [
        "1ebf26a9b338534def47f307c6c8694b6dfc0a79"
      ],
      "author": {
        "name": "Wu Fengguang",
        "email": "fengguang.wu@intel.com",
        "time": "Tue Jun 16 15:31:20 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:28 2009 -0700"
      },
      "message": "readahead: move max_sane_readahead() calls into force_page_cache_readahead()\n\nImpact: code simplification.\n\nCc: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nCc: Ying Han \u003cyinghan@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1ebf26a9b338534def47f307c6c8694b6dfc0a79",
      "tree": "26829a8cc727388c0da8eea6de38d7ba0eda2a47",
      "parents": [
        "bb1f17b0372de93758653ca3454bc0df18dc2e5c"
      ],
      "author": {
        "name": "Wu Fengguang",
        "email": "fengguang.wu@intel.com",
        "time": "Tue Jun 16 15:31:19 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:28 2009 -0700"
      },
      "message": "readahead: make mmap_miss an unsigned int\n\nThis makes the performance impact of possible mmap_miss wrap around to be\ntemporary and tolerable: i.e.  MMAP_LOTSAMISS\u003d100 extra readarounds.\n\nOtherwise if ever mmap_miss wraps around to negative, it takes INT_MAX\ncache misses to bring it back to normal state.  During the time mmap\nreadaround will be _enabled_ for whatever wild random workload.  That\u0027s\nalmost permanent performance impact.\n\nSigned-off-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nCc: Ying Han \u003cyinghan@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bb1f17b0372de93758653ca3454bc0df18dc2e5c",
      "tree": "29ef82933cc98b99d29c6c7004c045af22799d70",
      "parents": [
        "3b0fde0fac19c180317eb0601b3504083f4b9bf5"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Tue Jun 16 15:31:18 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:28 2009 -0700"
      },
      "message": "mm: consolidate init_mm definition\n\n* create mm/init-mm.c, move init_mm there\n* remove INIT_MM, initialize init_mm with C99 initializer\n* unexport init_mm on all arches:\n\n  init_mm is already unexported on x86.\n\n  One strange place is some OMAP driver (drivers/video/omap/) which\n  won\u0027t build modular, but it\u0027s already wants get_vm_area() export.\n  Somebody should look there.\n\n[akpm@linux-foundation.org: add missing #includes]\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: Mike Frysinger \u003cvapier.adi@gmail.com\u003e\nCc: Americo Wang \u003cxiyou.wangcong@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3b0fde0fac19c180317eb0601b3504083f4b9bf5",
      "tree": "5458ec10f3c6759ec64c6fa27e12e692a575d07a",
      "parents": [
        "021415468c889979117b1a07b96f7e36de33e995"
      ],
      "author": {
        "name": "Yinghai Lu",
        "email": "yinghai@kernel.org",
        "time": "Tue Jun 16 15:31:16 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:28 2009 -0700"
      },
      "message": "firmware_map: fix hang with x86/32bit\n\nAddresses http://bugzilla.kernel.org/show_bug.cgi?id\u003d13484\n\nPeer reported:\n| The bug is introduced from kernel 2.6.27, if E820 table reserve the memory\n| above 4G in 32bit OS(BIOS-e820: 00000000fff80000 - 0000000120000000\n| (reserved)), system will report Int 6 error and hang up. The bug is caused by\n| the following code in drivers/firmware/memmap.c, the resource_size_t is 32bit\n| variable in 32bit OS, the BUG_ON() will be invoked to result in the Int 6\n| error. I try the latest 32bit Ubuntu and Fedora distributions, all hit this\n| bug.\n|\u003d\u003d\u003d\u003d\u003d\u003d\n|static int firmware_map_add_entry(resource_size_t start, resource_size_t end,\n|                  const char *type,\n|                  struct firmware_map_entry *entry)\n\nand it only happen with CONFIG_PHYS_ADDR_T_64BIT is not set.\n\nit turns out we need to pass u64 instead of resource_size_t for that.\n\n[akpm@linux-foundation.org: add comment]\nReported-and-tested-by: Peer Chen \u003cpchen@nvidia.com\u003e\nSigned-off-by: Yinghai Lu \u003cyinghai@kernel.org\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nAcked-by: H. Peter Anvin \u003chpa@zytor.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "021415468c889979117b1a07b96f7e36de33e995",
      "tree": "e480ae34231f8ff5a5b85ee67c82d2861751a88f",
      "parents": [
        "08604bd9935dc98fb62ef61d5b7baa7ccc10f8c2"
      ],
      "author": {
        "name": "Roel Kluin",
        "email": "roel.kluin@gmail.com",
        "time": "Tue Jun 16 15:31:15 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:27 2009 -0700"
      },
      "message": "spi: takes size of a pointer to determine the size of the pointed-to type\n\nDo not take the size of a pointer to determine the size of the pointed-to\ntype.\n\nSigned-off-by: Roel Kluin \u003croel.kluin@gmail.com\u003e\nAcked-by: Anton Vorontsov \u003cavorontsov@ru.mvista.com\u003e\nCc: David Brownell \u003cdavid-b@pacbell.net\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Kumar Gala \u003cgalak@gate.crashing.org\u003e\nAcked-by: Grant Likely \u003cgrant.likely@secretlab.ca\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "08604bd9935dc98fb62ef61d5b7baa7ccc10f8c2",
      "tree": "2d0d451d78024bfbb4961a9ba94902abdc5f17e4",
      "parents": [
        "03347e2592078a90df818670fddf97a33eec70fb"
      ],
      "author": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Tue Jun 16 15:31:12 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:27 2009 -0700"
      },
      "message": "time: move PIT_TICK_RATE to linux/timex.h\n\nPIT_TICK_RATE is currently defined in four architectures, but in three\ndifferent places.  While linux/timex.h is not the perfect place for it, it\nis still a reasonable replacement for those drivers that traditionally use\nasm/timex.h to get CLOCK_TICK_RATE and expect it to be the PIT frequency.\n\nNote that for Alpha, the actual value changed from 1193182UL to 1193180UL.\n This is unlikely to make a difference, and probably can only improve\naccuracy.  There was a discussion on the correct value of CLOCK_TICK_RATE\na few years ago, after which every existing instance was getting changed\nto 1193182.  According to the specification, it should be\n1193181.818181...\n\nSigned-off-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nCc: Richard Henderson \u003crth@twiddle.net\u003e\nCc: Ivan Kokshaysky \u003cink@jurassic.park.msu.ru\u003e\nCc: Ralf Baechle \u003cralf@linux-mips.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nCc: Len Brown \u003clenb@kernel.org\u003e\nCc: john stultz \u003cjohnstul@us.ibm.com\u003e\nCc: Dmitry Torokhov \u003cdtor@mail.ru\u003e\nCc: Takashi Iwai \u003ctiwai@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "03347e2592078a90df818670fddf97a33eec70fb",
      "tree": "fde73020d4bcf7fff0fe083619789bd999f2b24b",
      "parents": [
        "19035e5b5d1e3127b4925d86f6a77964f91f2c3c",
        "1dcd775eb302f897865bbab8779ae4165c13cd7e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jun 15 10:38:06 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jun 15 10:38:06 2009 -0700"
      },
      "message": "Merge branch \u0027release\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6\n\n* \u0027release\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6:\n  [IA64] fix compile error in arch/ia64/mm/extable.c\n"
    },
    {
      "commit": "19035e5b5d1e3127b4925d86f6a77964f91f2c3c",
      "tree": "c9e7e9073970176a5b0970da715cb6430c3c9069",
      "parents": [
        "f9db6e095115f9411b9647bdb9d81fe11f3d8b54",
        "eea08f32adb3f97553d49a4f79a119833036000a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jun 15 10:06:19 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jun 15 10:06:19 2009 -0700"
      },
      "message": "Merge branch \u0027timers-for-linus-migration\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027timers-for-linus-migration\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  timers: Logic to move non pinned timers\n  timers: /proc/sys sysctl hook to enable timer migration\n  timers: Identifying the existing pinned timers\n  timers: Framework for identifying pinned timers\n  timers: allow deferrable timers for intervals tv2-tv5 to be deferred\n\nFix up conflicts in kernel/sched.c and kernel/timer.c manually\n"
    },
    {
      "commit": "f9db6e095115f9411b9647bdb9d81fe11f3d8b54",
      "tree": "243cdffd9c49dffb909d17ec24614d93f527cc8b",
      "parents": [
        "3f27c0d2a469673e0f1efc8004b6f42428aa5b94",
        "c81fc2c331b8514ad112054cd2d87e6ec132286b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jun 15 09:58:50 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jun 15 09:58:50 2009 -0700"
      },
      "message": "Merge branch \u0027timers-for-linus-clockevents\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027timers-for-linus-clockevents\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  clockevent: export register_device and delta2ns\n  clockevents: tick_broadcast_device can become static\n"
    },
    {
      "commit": "3f27c0d2a469673e0f1efc8004b6f42428aa5b94",
      "tree": "548c975cabdcafcac92992d24410ae0a8334dff5",
      "parents": [
        "9aaa630503f20461bee65ebc4fd87ba8d7a2bd2c",
        "cd6d95d8449b7c9f415f26041e9ae173d387b6bd"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jun 15 09:58:33 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jun 15 09:58:33 2009 -0700"
      },
      "message": "Merge branch \u0027timers-for-linus-clocksource\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027timers-for-linus-clocksource\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  clocksource: prevent selection of low resolution clocksourse also for nohz\u003don\n  clocksource: sanity check sysfs clocksource changes\n"
    },
    {
      "commit": "9aaa630503f20461bee65ebc4fd87ba8d7a2bd2c",
      "tree": "476a4894364733bc71d28904259ceae859eff448",
      "parents": [
        "2ed0e21b30b53d3a94e204196e523e6c8f732b56",
        "e13cf6e04ebc231653e03ebde4799dc55bf62849"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jun 15 09:43:24 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jun 15 09:43:24 2009 -0700"
      },
      "message": "Merge branch \u0027timers-for-linus-ntp\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027timers-for-linus-ntp\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  ntp: fix comment typos\n  ntp: adjust SHIFT_PLL to improve NTP convergence\n"
    },
    {
      "commit": "2ed0e21b30b53d3a94e204196e523e6c8f732b56",
      "tree": "de2635426477d86338a9469ce09ba0626052288f",
      "parents": [
        "0fa213310cd8fa7a51071cdcf130e26fa56e9549",
        "9cbc1cb8cd46ce1f7645b9de249b2ce8460129bb"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jun 15 09:40:05 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jun 15 09:40:05 2009 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6: (1244 commits)\n  pkt_sched: Rename PSCHED_US2NS and PSCHED_NS2US\n  ipv4: Fix fib_trie rebalancing\n  Bluetooth: Fix issue with uninitialized nsh.type in DTL-1 driver\n  Bluetooth: Fix Kconfig issue with RFKILL integration\n  PIM-SM: namespace changes\n  ipv4: update ARPD help text\n  net: use a deferred timer in rt_check_expire\n  ieee802154: fix kconfig bool/tristate muckup\n  bonding: initialization rework\n  bonding: use is_zero_ether_addr\n  bonding: network device names are case sensative\n  bonding: elminate bad refcount code\n  bonding: fix style issues\n  bonding: fix destructor\n  bonding: remove bonding read/write semaphore\n  bonding: initialize before registration\n  bonding: bond_create always called with default parameters\n  x_tables: Convert printk to pr_err\n  netfilter: conntrack: optional reliable conntrack event delivery\n  list_nulls: add hlist_nulls_add_head and hlist_nulls_del\n  ...\n"
    },
    {
      "commit": "0fa213310cd8fa7a51071cdcf130e26fa56e9549",
      "tree": "2a7e5cc33c8938ec82604a99c3797a3132fd91ec",
      "parents": [
        "d3bf80bff13597004b5724ee4549cd68eb0badf0",
        "bc47ab0241c7c86da4f5e5f82fbca7d45387c18d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jun 15 09:32:52 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jun 15 09:32:52 2009 -0700"
      },
      "message": "Merge branch \u0027merge\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc\n\n* \u0027merge\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc: (103 commits)\n  powerpc: Fix bug in move of altivec code to vector.S\n  powerpc: Add support for swiotlb on 32-bit\n  powerpc/spufs: Remove unused error path\n  powerpc: Fix warning when printing a resource_size_t\n  powerpc/xmon: Remove unused variable in xmon.c\n  powerpc/pseries: Fix warnings when printing resource_size_t\n  powerpc: Shield code specific to 64-bit server processors\n  powerpc: Separate PACA fields for server CPUs\n  powerpc: Split exception handling out of head_64.S\n  powerpc: Introduce CONFIG_PPC_BOOK3S\n  powerpc: Move VMX and VSX asm code to vector.S\n  powerpc: Set init_bootmem_done on NUMA platforms as well\n  powerpc/mm: Fix a AB-\u003eBA deadlock scenario with nohash MMU context lock\n  powerpc/mm: Fix some SMP issues with MMU context handling\n  powerpc: Add PTRACE_SINGLEBLOCK support\n  fbdev: Add PLB support and cleanup DCR in xilinxfb driver.\n  powerpc/virtex: Add ml510 reference design device tree\n  powerpc/virtex: Add Xilinx ML510 reference design support\n  powerpc/virtex: refactor intc driver and add support for i8259 cascading\n  powerpc/virtex: Add support for Xilinx PCI host bridge\n  ...\n"
    },
    {
      "commit": "d3bf80bff13597004b5724ee4549cd68eb0badf0",
      "tree": "67f0a50e3135acd63348882d8ef836b498450f5f",
      "parents": [
        "9c7cb99a8202452d3e0440a5505c5c6d262771d9",
        "c8f1e5025ca2fa8e6e037451f3d271e66745a19b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jun 15 09:27:37 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jun 15 09:27:37 2009 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/lrg/voltage-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/lrg/voltage-2.6:\n  regulator/max1586: fix V3 gain calculation integer overflow\n  regulator/max1586: support increased V3 voltage range\n  regulator: lp3971 - fix driver link error when built-in.\n  LP3971 PMIC regulator driver (updated and combined version)\n  regulator: remove driver_data direct access of struct device\n  regulator: Set MODULE_ALIAS for regulator drivers\n  regulator: Support list_voltage for fixed voltage regulator\n  regulator: Move regulator drivers to subsys_initcall()\n  regulator: build fix for powerpc - renamed show_state\n  regulator: add userspace-consumer driver\n  Maxim 1586 regulator driver\n"
    },
    {
      "commit": "1dcd775eb302f897865bbab8779ae4165c13cd7e",
      "tree": "467bdd707c0a371469a6b331f48fe6aebce7b1f2",
      "parents": [
        "45e3e1935e2857c54783291107d33323b3ef33c8"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Sat Jun 13 14:50:15 2009 +0930"
      },
      "committer": {
        "name": "Tony Luck",
        "email": "tony.luck@intel.com",
        "time": "Mon Jun 15 09:17:50 2009 -0700"
      },
      "message": "[IA64] fix compile error in arch/ia64/mm/extable.c\n\nad6561dffa17f17bb68d7207d422c26c381c4313 (\"module: trim exception table on init\nfree.\") put a bogus trim_init_extable() function into ia64 which didn\u0027t compile.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Tony Luck \u003ctony.luck@intel.com\u003e\n"
    },
    {
      "commit": "9c7cb99a8202452d3e0440a5505c5c6d262771d9",
      "tree": "56d2fe83150f7bea3446b28bfa3094066c5f26b5",
      "parents": [
        "0a8eba9b7f7aa3ad0305627c99ad4d6deedd871d",
        "c3a7abf06ce719a51139e62a034590be99abbc2c"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jun 15 09:13:49 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jun 15 09:13:49 2009 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ryusuke/nilfs2\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ryusuke/nilfs2: (22 commits)\n  nilfs2: support contiguous lookup of blocks\n  nilfs2: add sync_page method to page caches of meta data\n  nilfs2: use device\u0027s backing_dev_info for btree node caches\n  nilfs2: return EBUSY against delete request on snapshot\n  nilfs2: modify list of unsupported features in caveats\n  nilfs2: enable sync_page method\n  nilfs2: set bio unplug flag for the last bio in segment\n  nilfs2: allow future expansion of metadata read out via get info ioctl\n  NILFS2: Pagecache usage optimization on NILFS2\n  nilfs2: remove nilfs_btree_operations from btree mapping\n  nilfs2: remove nilfs_direct_operations from direct mapping\n  nilfs2: remove bmap pointer operations\n  nilfs2: remove useless b_low and b_high fields from nilfs_bmap struct\n  nilfs2: remove pointless NULL check of bpop_commit_alloc_ptr function\n  nilfs2: move get block functions in bmap.c into btree codes\n  nilfs2: remove nilfs_bmap_delete_block\n  nilfs2: remove nilfs_bmap_put_block\n  nilfs2: remove header file for segment list operations\n  nilfs2: eliminate removal list of segments\n  nilfs2: add sufile function that can modify multiple segment usages\n  ...\n"
    },
    {
      "commit": "c8f1e5025ca2fa8e6e037451f3d271e66745a19b",
      "tree": "22d0cc384cee47f639163daa15a1d6dff91da1b4",
      "parents": [
        "b110a8fb242bc34e4b7686252899ce0fca956e2c"
      ],
      "author": {
        "name": "Philipp Zabel",
        "email": "philipp.zabel@gmail.com",
        "time": "Thu May 28 21:00:03 2009 +0200"
      },
      "committer": {
        "name": "Liam Girdwood",
        "email": "lrg@slimlogic.co.uk",
        "time": "Mon Jun 15 11:18:27 2009 +0100"
      },
      "message": "regulator/max1586: fix V3 gain calculation integer overflow\n\nOn Thu, May 28, 2009 at 10:59 AM, Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e wrote:\n\u003e On Thu, May 28, 2009 at 07:15:16AM +0200, Philipp Zabel wrote:\n\u003e\u003e The V3 regulator can be configured with an external resistor\n\u003e\u003e connected to the feedback pin (R24 in the data sheet) to\n\u003e\u003e increase the voltage range.\n\u003e\u003e\n\u003e\u003e For example, hx4700 has R24 \u003d 3.32 kOhm to achieve a maximum\n\u003e\u003e V3 voltage of 1.55 V which is needed for 624 MHz CPU frequency.\n\u003e\u003e\n\u003e\u003e Signed-off-by: Philipp Zabel \u003cphilipp.zabel@gmail.com\u003e\n\u003e\n\u003e Looks good.\n\u003e\n\u003e Acked-by: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\n\nThanks, but it turns out I hit a 32 bit integer overflow in\nthe gain calculation. I\u0027d like to mend that with the following\npatch. Now max_uV could be increased up to 4.294 V, enough to\ncharge LiPo cells.\n\nSigned-off-by: Philipp Zabel \u003cphilipp.zabel@gmail.com\u003e\nAcked-by: Robert Jarzmik \u003crobert.jarzmik@free.fr\u003e\nSigned-off-by: Liam Girdwood \u003clrg@slimlogic.co.uk\u003e\n"
    },
    {
      "commit": "b110a8fb242bc34e4b7686252899ce0fca956e2c",
      "tree": "45a07fe5d288d269ddcdad7786bae1efe063cb6d",
      "parents": [
        "6113c3a5a63b8f0d5613b2a71cd1f5335a37b89a"
      ],
      "author": {
        "name": "Philipp Zabel",
        "email": "philipp.zabel@gmail.com",
        "time": "Thu May 28 07:15:16 2009 +0200"
      },
      "committer": {
        "name": "Liam Girdwood",
        "email": "lrg@slimlogic.co.uk",
        "time": "Mon Jun 15 11:18:26 2009 +0100"
      },
      "message": "regulator/max1586: support increased V3 voltage range\n\nThe V3 regulator can be configured with an external resistor\nconnected to the feedback pin (R24 in the data sheet) to\nincrease the voltage range.\n\nFor example, hx4700 has R24 \u003d 3.32 kOhm to achieve a maximum\nV3 voltage of 1.55 V which is needed for 624 MHz CPU frequency.\n\nSigned-off-by: Philipp Zabel \u003cphilipp.zabel@gmail.com\u003e\nAcked-by: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\nAcked-by: Robert Jarzmik \u003crobert.jarzmik@free.fr\u003e\nSigned-off-by: Liam Girdwood \u003clrg@slimlogic.co.uk\u003e\n"
    },
    {
      "commit": "6113c3a5a63b8f0d5613b2a71cd1f5335a37b89a",
      "tree": "26c97857e0e73ba8c0471834f713d007c6505866",
      "parents": [
        "0cbdf7bce5b98807b946d1a96956f30dcae24a50"
      ],
      "author": {
        "name": "Liam Girdwood",
        "email": "lrg@slimlogic.co.uk",
        "time": "Tue May 19 11:44:37 2009 +0100"
      },
      "committer": {
        "name": "Liam Girdwood",
        "email": "lrg@slimlogic.co.uk",
        "time": "Mon Jun 15 11:18:26 2009 +0100"
      },
      "message": "regulator: lp3971 - fix driver link error when built-in.\n\nlp3971_i2c_remove\u0027 referenced in section `.data\u0027 of drivers/built-in.o:\ndefined in discarded section `.devexit.text\u0027 of drivers/built-in.o\n\nSigned-off-by: Liam Girdwood \u003clrg@slimlogic.co.uk\u003e\n"
    },
    {
      "commit": "0cbdf7bce5b98807b946d1a96956f30dcae24a50",
      "tree": "a13822c57cf0b2e7cce0ad5f01399e51d6a80534",
      "parents": [
        "1909e2f658ee6ec5bcca62a5599f5653857cfe18"
      ],
      "author": {
        "name": "Marek Szyprowski",
        "email": "m.szyprowski@samsung.com",
        "time": "Tue May 19 07:33:55 2009 +0200"
      },
      "committer": {
        "name": "Liam Girdwood",
        "email": "lrg@slimlogic.co.uk",
        "time": "Mon Jun 15 11:18:26 2009 +0100"
      },
      "message": "LP3971 PMIC regulator driver (updated and combined version)\n\nThis patch adds regulator drivers for National Semiconductors LP3971 PMIC.\nThis LP3971 PMIC controller has 3 DC/DC voltage converters and 5 low\ndrop-out (LDO) regulators. LP3971 PMIC controller uses I2C interface.\n\nReviewed-by: Kyungmin Park \u003ckyungmin.park@samsung.com\u003e\nSigned-off-by: Marek Szyprowski \u003cm.szyprowski@samsung.com\u003e\nAcked-by: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\nSigned-off-by: Liam Girdwood \u003clrg@slimlogic.co.uk\u003e\n"
    },
    {
      "commit": "1909e2f658ee6ec5bcca62a5599f5653857cfe18",
      "tree": "23295fb6f05b1a0e6cddee529fd471d81b5f9d71",
      "parents": [
        "38c53c89139e6140b895b419b18c586e8593a6e8"
      ],
      "author": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu Apr 30 15:21:37 2009 -0700"
      },
      "committer": {
        "name": "Liam Girdwood",
        "email": "lrg@slimlogic.co.uk",
        "time": "Mon Jun 15 11:18:25 2009 +0100"
      },
      "message": "regulator: remove driver_data direct access of struct device\n\nIn the near future, the driver core is going to not allow direct access\nto the driver_data pointer in struct device.  Instead, the functions\ndev_get_drvdata() and dev_set_drvdata() should be used.  These functions\nhave been around since the beginning, so are backwards compatible with\nall older kernel versions.\n\nCc: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\nCc: Liam Girdwood \u003clrg@slimlogic.co.uk\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\nAcked-by: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\nSigned-off-by: Liam Girdwood \u003clrg@slimlogic.co.uk\u003e\n"
    },
    {
      "commit": "38c53c89139e6140b895b419b18c586e8593a6e8",
      "tree": "c206ed7e3e994aca822b5e9b0591d8e17e4040f3",
      "parents": [
        "9035cefc2d4b67591cbc2e4e8fbc8d73901ca9eb"
      ],
      "author": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Tue Apr 28 11:13:55 2009 +0100"
      },
      "committer": {
        "name": "Liam Girdwood",
        "email": "lrg@slimlogic.co.uk",
        "time": "Mon Jun 15 11:18:24 2009 +0100"
      },
      "message": "regulator: Set MODULE_ALIAS for regulator drivers\n\nSeveral of the regulator drivers didn\u0027t have MODULE_ALIAS so couldn\u0027t be\nauto loaded. Add the MODULE_ALIAS in case they do get built as modules.\n\nSigned-off-by: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\nSigned-off-by: Liam Girdwood \u003clrg@slimlogic.co.uk\u003e\n"
    },
    {
      "commit": "9035cefc2d4b67591cbc2e4e8fbc8d73901ca9eb",
      "tree": "5c834ee490688ae5254a8d62cc4ea878b60b2b67",
      "parents": [
        "5a1b22beeff30d870bf2169a37e343e06cb5db3a"
      ],
      "author": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Tue Apr 28 11:13:54 2009 +0100"
      },
      "committer": {
        "name": "Liam Girdwood",
        "email": "lrg@slimlogic.co.uk",
        "time": "Mon Jun 15 11:18:24 2009 +0100"
      },
      "message": "regulator: Support list_voltage for fixed voltage regulator\n\nSigned-off-by: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\nSigned-off-by: Liam Girdwood \u003clrg@slimlogic.co.uk\u003e\n"
    },
    {
      "commit": "5a1b22beeff30d870bf2169a37e343e06cb5db3a",
      "tree": "eed4c8e52e3eb727dd3860ba9a25b6ebb5422d79",
      "parents": [
        "7c314991d7d7ad4edf96e8322bcb30e8452957b7"
      ],
      "author": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Mon Apr 27 18:21:18 2009 +0100"
      },
      "committer": {
        "name": "Liam Girdwood",
        "email": "lrg@slimlogic.co.uk",
        "time": "Mon Jun 15 11:18:23 2009 +0100"
      },
      "message": "regulator: Move regulator drivers to subsys_initcall()\n\nRegulators need to be available early in init in order to allow them\nto be available for consumers when requested. This is generally done\nby registering them at subsys_initcall() time but not all regulator\ndrivers have done that. Convert these drivers to do so in order to\nmimimise future support.\n\nSigned-off-by: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\nAcked-by: Mike Rapoport \u003cmike@compulab.co.il\u003e\nSigned-off-by: Liam Girdwood \u003clrg@slimlogic.co.uk\u003e\n"
    },
    {
      "commit": "7c314991d7d7ad4edf96e8322bcb30e8452957b7",
      "tree": "e6ff0860de3f408f9f5ce960cf314e95cb05ae74",
      "parents": [
        "1d98cccf7f8b944ba4ea56d14bbb7c2eeee59bfe"
      ],
      "author": {
        "name": "Liam Girdwood",
        "email": "lrg@slimlogic.co.uk",
        "time": "Tue Apr 28 12:01:16 2009 +0100"
      },
      "committer": {
        "name": "Liam Girdwood",
        "email": "lrg@slimlogic.co.uk",
        "time": "Mon Jun 15 11:18:23 2009 +0100"
      },
      "message": "regulator: build fix for powerpc - renamed show_state\n\nThis patch fixes the follwing build failure on powerpc:-\n\n\u003e Today\u0027s linux-next build (powerpc allyesconfig) failed like this:\n\u003e\n\u003e drivers/regulator/userspace-consumer.c:43: error: conflicting types\n\u003e for \u0027show_state\u0027\n\u003e include/linux/sched.h:273: note: previous definition of \u0027show_state\u0027\n\u003e was here\n\u003e\n\u003e Caused by commit 5defa2bce704ca4151cfe24e4297aa7797cafd22 (\"regulator:\n\u003e add userspace-consumer driver\") which I have reverted for today.\n\nSigned-off-by: Liam Girdwood \u003clrg@slimlogic.co.uk\u003e\n"
    },
    {
      "commit": "1d98cccf7f8b944ba4ea56d14bbb7c2eeee59bfe",
      "tree": "079c8db0e879dbddcec7658dee610ade43d86c67",
      "parents": [
        "55f4fa4e33e90c6b25b4c8ed038392a73b654fef"
      ],
      "author": {
        "name": "Mike Rapoport",
        "email": "mike@compulab.co.il",
        "time": "Sun Apr 26 16:49:39 2009 +0300"
      },
      "committer": {
        "name": "Liam Girdwood",
        "email": "lrg@slimlogic.co.uk",
        "time": "Mon Jun 15 11:18:22 2009 +0100"
      },
      "message": "regulator: add userspace-consumer driver\n\nThe userspace-consumer driver allows control of voltage and current\nregulator state from userspace. This is required for fine-grained\npower management of devices that are completely controller by userspace\napplications, e.g. a GPS transciever connected to a serial port.\n\nSigned-off-by: Mike Rapoport \u003cmike@compulab.co.il\u003e\nAcked-by: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\nSigned-off-by: Liam Girdwood \u003clrg@slimlogic.co.uk\u003e\n"
    },
    {
      "commit": "55f4fa4e33e90c6b25b4c8ed038392a73b654fef",
      "tree": "59e9c50090ca6f2bc5ed1a743c0521560c77fcfa",
      "parents": [
        "45e3e1935e2857c54783291107d33323b3ef33c8"
      ],
      "author": {
        "name": "Robert Jarzmik",
        "email": "robert.jarzmik@free.fr",
        "time": "Thu Apr 23 20:10:43 2009 +0200"
      },
      "committer": {
        "name": "Liam Girdwood",
        "email": "lrg@slimlogic.co.uk",
        "time": "Mon Jun 15 11:18:22 2009 +0100"
      },
      "message": "Maxim 1586 regulator driver\n\nThe Maxim 1586 regulator is a voltage regulator with 2\nvoltage outputs, specially suitable for Marvell PXA\nchips. One output is in the range of required VCC_CORE by\nthe PXA27x chips, the other in the VCC_USIM required as well\nby PXA27x chips.\n\nThe chip is controlled through the I2C bus.\n\nSigned-off-by: Robert Jarzmik \u003crobert.jarzmik@free.fr\u003e\nAcked-by: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\nSigned-off-by: Liam Girdwood \u003clrg@slimlogic.co.uk\u003e\n"
    },
    {
      "commit": "9cbc1cb8cd46ce1f7645b9de249b2ce8460129bb",
      "tree": "8d104ec2a459346b99413b0b77421ca7b9936c1a",
      "parents": [
        "ca44d6e60f9de26281fda203f58b570e1748c015",
        "45e3e1935e2857c54783291107d33323b3ef33c8"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jun 15 03:02:23 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jun 15 03:02:23 2009 -0700"
      },
      "message": "Merge branch \u0027master\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/torvalds/linux-2.6\n\nConflicts:\n\tDocumentation/feature-removal-schedule.txt\n\tdrivers/scsi/fcoe/fcoe.c\n\tnet/core/drop_monitor.c\n\tnet/core/net-traces.c\n"
    },
    {
      "commit": "ca44d6e60f9de26281fda203f58b570e1748c015",
      "tree": "9620f3f91836f608a084acb78d1a178135cfd3b0",
      "parents": [
        "e0f7cb8c8cc6cccce28d2ce39ad8c60d23c3799f"
      ],
      "author": {
        "name": "Jarek Poplawski",
        "email": "jarkao2@gmail.com",
        "time": "Mon Jun 15 02:31:47 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jun 15 02:31:47 2009 -0700"
      },
      "message": "pkt_sched: Rename PSCHED_US2NS and PSCHED_NS2US\n\nLet\u0027s use TICKS instead of US, so PSCHED_TICKS2NS and PSCHED_NS2TICKS\n(like in PSCHED_TICKS_PER_SEC already) to avoid misleading.\n\nSigned-off-by: Jarek Poplawski \u003cjarkao2@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "e0f7cb8c8cc6cccce28d2ce39ad8c60d23c3799f",
      "tree": "204963b92fd4cdd8a73cd133ef36360c0d47014f",
      "parents": [
        "3c4bdc4bd4af791a72147b6ebc29553808f53cea"
      ],
      "author": {
        "name": "Jarek Poplawski",
        "email": "jarkao2@gmail.com",
        "time": "Mon Jun 15 02:31:29 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jun 15 02:31:29 2009 -0700"
      },
      "message": "ipv4: Fix fib_trie rebalancing\n\nWhile doing trie_rebalance(): resize(), inflate(), halve() RCU free\ntnodes before updating their parents. It depends on RCU delaying the\nreal destruction, but if RCU readers start after call_rcu() and before\nparent update they could access freed memory.\n\nIt is currently prevented with preempt_disable() on the update side,\nbut it\u0027s not safe, except maybe classic RCU, plus it conflicts with\nmemory allocations with GFP_KERNEL flag used from these functions.\n\nThis patch explicitly delays freeing of tnodes by adding them to the\nlist, which is flushed after the update is finished.\n\nReported-by: Yan Zheng \u003czheng.yan@oracle.com\u003e\nSigned-off-by: Jarek Poplawski \u003cjarkao2@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "0a8eba9b7f7aa3ad0305627c99ad4d6deedd871d",
      "tree": "c714028520de3facd053e33abc280dbd214df8fd",
      "parents": [
        "45e3e1935e2857c54783291107d33323b3ef33c8"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier@gentoo.org",
        "time": "Sun Jun 14 22:56:48 2009 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jun 14 17:58:25 2009 -0700"
      },
      "message": "ramfs: ignore unknown mount options\n\nOn systems where CONFIG_SHMEM is disabled, mounting tmpfs filesystems can\nfail when tmpfs options are used.  This is because tmpfs creates a small\nwrapper around ramfs which rejects unknown options, and ramfs itself only\nsupports a tiny subset of what tmpfs supports.  This makes it pretty hard\nto use the same userspace systems across different configuration systems.\nAs such, ramfs should ignore the tmpfs options when tmpfs is merely a\nwrapper around ramfs.\n\nThis used to work before commit c3b1b1cbf0 as previously, ramfs would\nignore all options.  But now, we get:\nramfs: bad mount option: size\u003d10M\nmount: mounting mdev on /dev failed: Invalid argument\n\nAnother option might be to restore the previous behavior, where ramfs\nsimply ignored all unknown mount options ... which is what Hugh prefers.\n\nSigned-off-by: Mike Frysinger \u003cvapier@gentoo.org\u003e\nSigned-off-by: Hugh Dickins \u003chugh.dickins@tiscali.co.uk\u003e\nAcked-by: Matt Mackall \u003cmpm@selenic.com\u003e\nAcked-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nCc: stable@kernel.org\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "45e3e1935e2857c54783291107d33323b3ef33c8",
      "tree": "26a6e3228b52d0f96f6e56e5879ca898fe909592",
      "parents": [
        "cf5046323ea254be72535648a9d090b18b8510f3",
        "3f8d9ced7746f3f329ccca0bb3f3c7a2c15c47bb"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jun 14 14:12:18 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jun 14 14:12:18 2009 -0700"
      },
      "message": "Merge branch \u0027master\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/sam/kbuild-next\n\n* \u0027master\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/sam/kbuild-next: (53 commits)\n  .gitignore: ignore *.lzma files\n  kbuild: add generic --set-str option to scripts/config\n  kbuild: simplify argument loop in scripts/config\n  kbuild: handle non-existing options in scripts/config\n  kallsyms: generalize text region handling\n  kallsyms: support kernel symbols in Blackfin on-chip memory\n  documentation: make version fix\n  kbuild: fix a compile warning\n  gitignore: Add GNU GLOBAL files to top .gitignore\n  kbuild: fix delay in setlocalversion on readonly source\n  README: fix misleading pointer to the defconf directory\n  vmlinux.lds.h update\n  kernel-doc: cleanup perl script\n  Improve vmlinux.lds.h support for arch specific linker scripts\n  kbuild: fix headers_exports with boolean expression\n  kbuild/headers_check: refine extern check\n  kbuild: fix \"Argument list too long\" error for \"make headers_check\",\n  ignore *.patch files\n  Remove bashisms from scripts\n  menu: fix embedded menu presentation\n  ...\n"
    },
    {
      "commit": "3f8d9ced7746f3f329ccca0bb3f3c7a2c15c47bb",
      "tree": "e161de8a087fa5a42abbea7be6b712f7b8afc56c",
      "parents": [
        "1f990cf94559e0a7363d56aade1d5dc6c515b60b"
      ],
      "author": {
        "name": "Arne Janbu",
        "email": "arnej@ampheus.de",
        "time": "Wed Jun 10 18:25:10 2009 +0200"
      },
      "committer": {
        "name": "Sam Ravnborg",
        "email": "sam@ravnborg.org",
        "time": "Sun Jun 14 22:53:56 2009 +0200"
      },
      "message": ".gitignore: ignore *.lzma files\n\nSigned-off-by: Sam Ravnborg \u003csam@ravnborg.org\u003e\n"
    },
    {
      "commit": "cf5046323ea254be72535648a9d090b18b8510f3",
      "tree": "d44894722bd965b2f28a54c4dc4157f22b618c34",
      "parents": [
        "ae937debe178b4327fd67d604ee83a20f22aa0de",
        "8d34ff34016959d464fd5582ea6a8226fe57ab0e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jun 14 13:53:22 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jun 14 13:53:22 2009 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband:\n  mlx4_core: Don\u0027t double-free IRQs when falling back from MSI-X to INTx\n  IB/mthca: Don\u0027t double-free IRQs when falling back from MSI-X to INTx\n  IB/mlx4: Add strong ordering to local inval and fast reg work requests\n  IB/ehca: Remove superfluous bitmasks from QP control block\n  RDMA/cxgb3: Limit fast register size based on T3 limitations\n  RDMA/cxgb3: Report correct port state and MTU\n  mlx4_core: Add module parameter for number of MTTs per segment\n  IB/mthca: Add module parameter for number of MTTs per segment\n  RDMA/nes: Fix off-by-one bugs in reset_adapter_ne020() and init_serdes()\n  infiniband: Remove void casts\n  IB/ehca: Increment version number\n  IB/ehca: Remove unnecessary memory operations for userspace queue pairs\n  IB/ehca: Fall back to vmalloc() for big allocations\n  IB/ehca: Replace vmalloc() with kmalloc() for queue allocation\n"
    },
    {
      "commit": "ae937debe178b4327fd67d604ee83a20f22aa0de",
      "tree": "d337179b207aa5be5e47330199319dd6f421b3b7",
      "parents": [
        "9cf46a35d25debfc314dd6f090b8075bd0b7f74c",
        "0419bb466f5059e40e141b1e3ab258a862ae11f0"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jun 14 13:52:53 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jun 14 13:52:53 2009 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/jaswinder/headers-check-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/jaswinder/headers-check-2.6:\n  headers_check fix: mn10300, setup.h\n  headers_check fix: mn10300, ptrace.h\n"
    }
  ],
  "next": "9cf46a35d25debfc314dd6f090b8075bd0b7f74c"
}
