)]}'
{
  "log": [
    {
      "commit": "b3b77c8caef1750ebeea1054e39e358550ea9f55",
      "tree": "9026ca0b3453226434a4ca8878832a4910b48664",
      "parents": [
        "e47103b1af5df52fa69e18b14d3012472f78817d"
      ],
      "author": {
        "name": "Joakim Tjernlund",
        "email": "Joakim.Tjernlund@transmode.se",
        "time": "Mon May 24 14:33:01 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 25 08:07:02 2010 -0700"
      },
      "message": "endian: #define __BYTE_ORDER\n\nLinux does not define __BYTE_ORDER in its endian header files which makes\nsome header files bend backwards to get at the current endian.  Lets\n#define __BYTE_ORDER in big_endian.h/litte_endian.h to make it easier for\nheader files that are used in user space too.\n\nIn userspace the convention is that\n\n  1. _both_ __LITTLE_ENDIAN and __BIG_ENDIAN are defined,\n  2. you have to test for e.g. __BYTE_ORDER \u003d\u003d __BIG_ENDIAN.\n\nSigned-off-by: Joakim Tjernlund \u003cJoakim.Tjernlund@transmode.se\u003e\nCc: Geert Uytterhoeven \u003cgeert@linux-m68k.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e47103b1af5df52fa69e18b14d3012472f78817d",
      "tree": "6652e56e361415a85ab5a7b888492e5ceef0cd94",
      "parents": [
        "1f85f87d4f81d1e5a2d502d48316a1bdc5acac0b"
      ],
      "author": {
        "name": "Jani Nikula",
        "email": "ext-jani.1.nikula@nokia.com",
        "time": "Mon May 24 14:33:00 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 25 08:07:02 2010 -0700"
      },
      "message": "err.h: add __must_check to error pointer handlers\n\nAdd __must_check to error pointer handlers to have the compiler warn about\nmistakes like:\n\n\tif (err)\n\t\tERR_PTR(err);\n\nIt found two bugs:\n\nMar 12 Nikula Jani [PATCH] enclosure: fix error path - actually return ERR_PTR() on error\nMar 12 Nikula Jani [PATCH] sunrpc: fix error path - actually return ERR_PTR() on error\n\nSigned-off-by: Jani Nikula \u003cext-jani.1.nikula@nokia.com\u003e\nCc: Phil Carmody \u003cext-phil.2.carmody@nokia.com\u003e\nCc: Alexey Dobriyan \u003cadobriyan@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": "1f85f87d4f81d1e5a2d502d48316a1bdc5acac0b",
      "tree": "ef9254e52665274ae4d0fd1381cc2ae5a48791f6",
      "parents": [
        "6cdafaae41d52e6ef9a5c5be23602ef083e4d0f9"
      ],
      "author": {
        "name": "Arjan van de Ven",
        "email": "arjan@linux.intel.com",
        "time": "Mon May 24 14:32:59 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 25 08:07:02 2010 -0700"
      },
      "message": "cpuidle: add a repeating pattern detector to the menu governor\n\nCurrently, the menu governor uses the (corrected) next timer as key item\nfor predicting the idle duration.\n\nIt turns out that there are specific cases where this breaks down: There\nare cases where we have a very repetitive pattern of idle durations, where\nthe idle period is pretty much the same, for reasons completely unrelated\nto the next timer event.  Examples of such repeating patterns are network\nloads with irq mitigation, the mouse moving but in theory also the wifi\nbeacons.\n\nThis patch adds a relatively simple detector for such repeating patterns,\nwhere the standard deviation of the last 8 idle periods is compared to a\nthreshold.\n\nWith this extra predictor in place, measurements show that the DECAY\nfactor can now be increased (the decaying average will now decay slower)\nto get an even more stable result.\n\n[arjan@infradead.org: fix bug identified by Frank]\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nCc: Corrado Zoccolo \u003cczoccolo@gmail.com\u003e\nCc: Frank Rowand \u003cfrank.rowand@am.sony.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6cdafaae41d52e6ef9a5c5be23602ef083e4d0f9",
      "tree": "49091924b0f72f2c91d31eed62b3344ad6bbeecb",
      "parents": [
        "366831615911c51596b2a9e1024a110a1d0939a1"
      ],
      "author": {
        "name": "FUJITA Tomonori",
        "email": "fujita.tomonori@lab.ntt.co.jp",
        "time": "Mon May 24 14:32:58 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 25 08:07:02 2010 -0700"
      },
      "message": "mn10300: set ARCH_KMALLOC_MINALIGN\n\nArchitectures that handle DMA-non-coherent memory need to set\nARCH_KMALLOC_MINALIGN to make sure that kmalloc\u0027ed buffer is DMA-safe: the\nbuffer doesn\u0027t share a cache with the others.\n\nSigned-off-by: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nAcked-by: David Howells \u003cdhowells@redhat.com\u003e\nCc: Koichi Yasutake \u003cyasutake.koichi@jp.panasonic.com\u003e\nAcked-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\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": "366831615911c51596b2a9e1024a110a1d0939a1",
      "tree": "acc5e0ecfb462123524bd6af03741457aa39751a",
      "parents": [
        "e9a137cb00d8b0f71c08a9e67d993f53e7713d21"
      ],
      "author": {
        "name": "Mathieu Desnoyers",
        "email": "mathieu.desnoyers@efficios.com",
        "time": "Mon May 24 14:32:56 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 25 08:07:02 2010 -0700"
      },
      "message": "mn10300: use generic atomic.h\n\nasm-generic/atomic.h has been derived from the mn10300 implementation.\nRemove the now duplicated mn10300 implementation by including the generic\nversion instead.\n\nThis adds cmpxchg_local() and cmpxchg64_local() for free to the\narchitecture, as they are implemented in asm-generic/atomic.h.\n\nSigned-off-by: Mathieu Desnoyers \u003cmathieu.desnoyers@efficios.com\u003e\nAcked-by: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: Peter Fritzsche \u003cpeter.fritzsche@gmx.de\u003e\nAcked-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nCc: Jamie Lokier \u003cjamie@shareable.org\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nCc: Keith M Wesolowski \u003cwesolows@foobazco.org\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e9a137cb00d8b0f71c08a9e67d993f53e7713d21",
      "tree": "b55b5360bedfc1fb66a6d568b80d93ae0e6597b7",
      "parents": [
        "69dcf3db03626c4f18de624e8632454ea12ff260"
      ],
      "author": {
        "name": "Greg Ungerer",
        "email": "gerg@snapgear.com",
        "time": "Mon May 24 14:32:55 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 25 08:07:02 2010 -0700"
      },
      "message": "m68knommu: fix broken use of BUAD_TABLE_SIZE in 68328serial driver\n\nCommit 8b505ca8e2600eb9e7dd2d6b2682a81717671374 (\"serial: 68328serial.c:\nremove BAUD_TABLE_SIZE macro\") misses one use of BAUD_TABLE_SIZE.  So the\nresulting 68328serial.c does not compile:\n\ndrivers/serial/68328serial.c: In function `m68328_console_setup\u0027:\ndrivers/serial/68328serial.c:1439: error: `BAUD_TABLE_SIZE\u0027 undeclared (first use in this function)\ndrivers/serial/68328serial.c:1439: error: (Each undeclared identifier is reported only once\ndrivers/serial/68328serial.c:1439: error: for each function it appears in.)\n\nFix that last use of it.\n\nSigned-off-by: Greg Ungerer \u003cgerg@uclinux.org\u003e\nCc: Thiago Farina \u003ctfransosi@gmail.com\u003e\nCc: Alan Cox \u003calan@lxorguk.ukuu.org.uk\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": "69dcf3db03626c4f18de624e8632454ea12ff260",
      "tree": "615c72af11acf7153bd60808e970e55398f19593",
      "parents": [
        "7ca8b9c0dafd1cb36289aa4c92c7beae7adcd34f"
      ],
      "author": {
        "name": "FUJITA Tomonori",
        "email": "fujita.tomonori@lab.ntt.co.jp",
        "time": "Mon May 24 14:32:54 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 25 08:07:02 2010 -0700"
      },
      "message": "frv: set ARCH_KMALLOC_MINALIGN\n\nArchitectures that handle DMA-non-coherent memory need to set\nARCH_KMALLOC_MINALIGN to make sure that kmalloc\u0027ed buffer is DMA-safe: the\nbuffer doesn\u0027t share a cache with the others.\n\nSigned-off-by: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nAcked-by: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\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": "7ca8b9c0dafd1cb36289aa4c92c7beae7adcd34f",
      "tree": "a762d0b8bbb090b423eafae7f009839592e23290",
      "parents": [
        "c6f6b596a5a73e63e5e930c414375c0c389199ab"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Mon May 24 14:32:54 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 25 08:07:02 2010 -0700"
      },
      "message": "frv: extend gdbstub to support more features of gdb\n\nExtend gdbstub to support more features of gdb remote protocol to keep\ngdb-7 and emacs gud mode happy:\n\n (*) The D command.  Detach debugger.\n\n (*) The H command.  Handle setting the target thread by ignoring it.\n\n (*) The qAttached command.  Indicate we \u0027attached\u0027 to an existing process.\n\n (*) The qC command.  Indicate that the current thread ID is 0.\n\n (*) The qOffsets command.  Indicate that no relocation has been done.\n\n (*) The qSymbol:: command.  Indicate that we\u0027re not interested in looking up\n     any symbol addresses.\n\n (*) The qSupported command.  Indicate the maximum packet size and the fact\n     that reverse step and continue aren\u0027t supported.\n\n (*) The vCont? command.  Indicate that we don\u0027t support any of its variants.\n\nAlso make it possible to trace the commands and replies without tracing\nthe individual character I/O.\n\n[akpm@linux-foundation.org: make gdbstub_handle_query() static]\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nCc: Jason Wessel \u003cjason.wessel@windriver.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c6f6b596a5a73e63e5e930c414375c0c389199ab",
      "tree": "900d4b3a6d198edc2045511b5b8d6001755bcfbf",
      "parents": [
        "4eaf3f64397c3db3c5785eee508270d62a9fabd9"
      ],
      "author": {
        "name": "Chris Metcalf",
        "email": "cmetcalf@tilera.com",
        "time": "Mon May 24 14:32:53 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 25 08:07:02 2010 -0700"
      },
      "message": "mm: make lowmem_page_address() use PFN_PHYS() for improved portability\n\nThis ensures that platforms with lowmem PAs above 32 bits work correctly\nby avoiding truncating the PA during a left shift.\n\nSigned-off-by: Chris Metcalf \u003ccmetcalf@tilera.com\u003e\nCc: Barry Song \u003c21cnbao@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": "4eaf3f64397c3db3c5785eee508270d62a9fabd9",
      "tree": "bfd986a7e974876755ea6fe0de394199c68e2e36",
      "parents": [
        "1f522509c77a5dea8dc384b735314f03908a6415"
      ],
      "author": {
        "name": "Haicheng Li",
        "email": "haicheng.li@linux.intel.com",
        "time": "Mon May 24 14:32:52 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 25 08:07:02 2010 -0700"
      },
      "message": "mem-hotplug: fix potential race while building zonelist for new populated zone\n\nAdd global mutex zonelists_mutex to fix the possible race:\n\n     CPU0                                  CPU1                    CPU2\n(1) zone-\u003epresent_pages +\u003d online_pages;\n(2)                                       build_all_zonelists();\n(3)                                                               alloc_page();\n(4)                                                               free_page();\n(5) build_all_zonelists();\n(6)   __build_all_zonelists();\n(7)     zone-\u003epageset \u003d alloc_percpu();\n\nIn step (3,4), zone-\u003epageset still points to boot_pageset, so bad\nthings may happen if 2+ nodes are in this state. Even if only 1 node\nis accessing the boot_pageset, (3) may still consume too much memory\nto fail the memory allocations in step (7).\n\nBesides, atomic operation ensures alloc_percpu() in step (7) will never fail\nsince there is a new fresh memory block added in step(6).\n\n[haicheng.li@linux.intel.com: hold zonelists_mutex when build_all_zonelists]\nSigned-off-by: Haicheng Li \u003chaicheng.li@linux.intel.com\u003e\nSigned-off-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nReviewed-by: Andi Kleen \u003candi.kleen@intel.com\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Tejun Heo \u003ctj@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": "1f522509c77a5dea8dc384b735314f03908a6415",
      "tree": "4b848527b90877a8a64c46e8e2d76723405c319d",
      "parents": [
        "319774e25fa4b7641bdc3b0a464dd84e62103347"
      ],
      "author": {
        "name": "Haicheng Li",
        "email": "haicheng.li@linux.intel.com",
        "time": "Mon May 24 14:32:51 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 25 08:07:01 2010 -0700"
      },
      "message": "mem-hotplug: avoid multiple zones sharing same boot strapping boot_pageset\n\nFor each new populated zone of hotadded node, need to update its pagesets\nwith dynamically allocated per_cpu_pageset struct for all possible CPUs:\n\n    1) Detach zone-\u003epageset from the shared boot_pageset\n       at end of __build_all_zonelists().\n\n    2) Use mutex to protect zone-\u003epageset when it\u0027s still\n       shared in onlined_pages()\n\nOtherwises, multiple zones of different nodes would share same boot strapping\nboot_pageset for same CPU, which will finally cause below kernel panic:\n\n  ------------[ cut here ]------------\n  kernel BUG at mm/page_alloc.c:1239!\n  invalid opcode: 0000 [#1] SMP\n  ...\n  Call Trace:\n   [\u003cffffffff811300c1\u003e] __alloc_pages_nodemask+0x131/0x7b0\n   [\u003cffffffff81162e67\u003e] alloc_pages_current+0x87/0xd0\n   [\u003cffffffff81128407\u003e] __page_cache_alloc+0x67/0x70\n   [\u003cffffffff811325f0\u003e] __do_page_cache_readahead+0x120/0x260\n   [\u003cffffffff81132751\u003e] ra_submit+0x21/0x30\n   [\u003cffffffff811329c6\u003e] ondemand_readahead+0x166/0x2c0\n   [\u003cffffffff81132ba0\u003e] page_cache_async_readahead+0x80/0xa0\n   [\u003cffffffff8112a0e4\u003e] generic_file_aio_read+0x364/0x670\n   [\u003cffffffff81266cfa\u003e] nfs_file_read+0xca/0x130\n   [\u003cffffffff8117b20a\u003e] do_sync_read+0xfa/0x140\n   [\u003cffffffff8117bf75\u003e] vfs_read+0xb5/0x1a0\n   [\u003cffffffff8117c151\u003e] sys_read+0x51/0x80\n   [\u003cffffffff8103c032\u003e] system_call_fastpath+0x16/0x1b\n  RIP  [\u003cffffffff8112ff13\u003e] get_page_from_freelist+0x883/0x900\n   RSP \u003cffff88000d1e78a8\u003e\n  ---[ end trace 4bda28328b9990db ]\n\n[akpm@linux-foundation.org: merge fix]\nSigned-off-by: Haicheng Li \u003chaicheng.li@linux.intel.com\u003e\nSigned-off-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nReviewed-by: Andi Kleen \u003candi.kleen@intel.com\u003e\nReviewed-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Tejun Heo \u003ctj@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": "319774e25fa4b7641bdc3b0a464dd84e62103347",
      "tree": "6865aee1b58fff5d7042fbdcb989ee7751660bcc",
      "parents": [
        "0faa56389c793cda7f967117415717bbab24fe4e"
      ],
      "author": {
        "name": "Wu Fengguang",
        "email": "fengguang.wu@intel.com",
        "time": "Mon May 24 14:32:49 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 25 08:07:01 2010 -0700"
      },
      "message": "mem-hotplug: separate setup_per_cpu_pageset() into separate functions\n\nNo behavior change here.\n\nMove some of setup_per_cpu_pageset() code into a new function\nsetup_zone_pageset() that will be useful for memory hotplug.\n\nSigned-off-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nSigned-off-by: Haicheng Li \u003chaicheng.li@linux.intel.com\u003e\nReviewed-by: Andi Kleen \u003candi.kleen@intel.com\u003e\nReviewed-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Tejun Heo \u003ctj@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": "0faa56389c793cda7f967117415717bbab24fe4e",
      "tree": "b0d5f12579a4448adff2b6e462488f3cc6d75326",
      "parents": [
        "ff3d58c22b6827039983911d3460cf0c1657f8cc"
      ],
      "author": {
        "name": "Marcelo Roberto Jimenez",
        "email": "mroberto@cpti.cetuc.puc-rio.br",
        "time": "Mon May 24 14:32:47 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 25 08:07:01 2010 -0700"
      },
      "message": "mm: fix NR_SECTION_ROOTS \u003d\u003d 0 when using using sparsemem extreme.\n\nGot this while compiling for ARM/SA1100:\n\nmm/sparse.c: In function \u0027__section_nr\u0027:\nmm/sparse.c:135: warning: \u0027root\u0027 is used uninitialized in this function\n\nThis patch follows Russell King\u0027s suggestion for a new calculation for\nNR_SECTION_ROOTS.  Thanks also to Sergei Shtylyov for pointing out the\nexistence of the macro DIV_ROUND_UP.\n\nAtsushi Nemoto observed:\n: This fix doesn\u0027t just silence the warning - it fixes a real problem.\n:\n: Without this fix, mem_section[] might have 0 size so mem_section[0]\n: will share other variable area.  For example, I got:\n:\n: c030c700 b __warned.16478\n: c030c700 B mem_section\n: c030c701 b __warned.16483\n:\n: This might cause very strange behavior.  Your patch actually fixes it.\n\nSigned-off-by: Marcelo Roberto Jimenez \u003cmroberto@cpti.cetuc.puc-rio.br\u003e\nCc: Atsushi Nemoto \u003canemo@mba.ocn.ne.jp\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: Yinghai Lu \u003cyinghai@kernel.org\u003e\nCc: Sergei Shtylyov \u003csshtylyov@mvista.com\u003e\nCc: Russell King \u003crmk@arm.linux.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ff3d58c22b6827039983911d3460cf0c1657f8cc",
      "tree": "bed2f2f98760425976a45858326de80aa5e7760b",
      "parents": [
        "fd23855e38d2a7275a786238459c070b4e9f7975"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Mon May 24 14:32:46 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 25 08:07:01 2010 -0700"
      },
      "message": "highmem: remove unneeded #ifdef CONFIG_TRACE_IRQFLAGS_SUPPORT for debug_kmap_atomic()\n\nIn f4112de6b679d84bd9b9681c7504be7bdfb7c7d5 (\"mm: introduce\ndebug_kmap_atomic\") I said that debug_kmap_atomic() needs\nCONFIG_TRACE_IRQFLAGS_SUPPORT.\n\nIt was wrong.  (I thought irqs_disabled() is only available when the\narchitecture has CONFIG_TRACE_IRQFLAGS_SUPPORT)\n\nRemove the #ifdef CONFIG_TRACE_IRQFLAGS_SUPPORT check to enable\nkmap_atomic() debugging for the architectures which do not have\nCONFIG_TRACE_IRQFLAGS_SUPPORT.\n\nReported-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Akinobu Mita \u003cakinobu.mita@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": "fd23855e38d2a7275a786238459c070b4e9f7975",
      "tree": "e390a91f70a428b2a70bb1fa95fcb53dd662908a",
      "parents": [
        "263ff5d8e82e577202d2b8393585b0e2436b7ffc"
      ],
      "author": {
        "name": "matt mooney",
        "email": "mfmooney@gmail.com",
        "time": "Mon May 24 14:32:45 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 25 08:07:01 2010 -0700"
      },
      "message": "include/linux/gfp.h: fix coding style\n\nAdd parenthesis in a define.  This doesn\u0027t change functionality.\n\ncheckpatch errors:\n1) white space fixes\n2) add spaces after comas\n\nSigned-off-by: matt mooney \u003cmfm@muteddisk.com\u003e\nCc: Dan Carpenter \u003cerror27@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": "263ff5d8e82e577202d2b8393585b0e2436b7ffc",
      "tree": "d8a1c1e7f854ae09bef85a280b365d7bb2340583",
      "parents": [
        "cf23422b9d76215316855253da491d4c9f294372"
      ],
      "author": {
        "name": "matt mooney",
        "email": "mfmooney@gmail.com",
        "time": "Mon May 24 14:32:44 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 25 08:07:00 2010 -0700"
      },
      "message": "include/linux/gfp.h: spelling fixes\n\nFix minor spelling errors in a few comments; no code changes.\n\nSigned-off-by: matt mooney \u003cmfm@muteddisk.com\u003e\nCc: Dan Carpenter \u003cerror27@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": "cf23422b9d76215316855253da491d4c9f294372",
      "tree": "5663d2519d83d830d24dffdf2571d58d3e55d3f6",
      "parents": [
        "8b25c6d2231b978ccce9c401e771932bde79aa9f"
      ],
      "author": {
        "name": "minskey guo",
        "email": "chaohong_guo@linux.intel.com",
        "time": "Mon May 24 14:32:41 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 25 08:07:00 2010 -0700"
      },
      "message": "cpu/mem hotplug: enable CPUs online before local memory online\n\nEnable users to online CPUs even if the CPUs belongs to a numa node which\ndoesn\u0027t have onlined local memory.\n\nThe zonlists(pg_data_t.node_zonelists[]) of a numa node are created either\nin system boot/init period, or at the time of local memory online.  For a\nnuma node without onlined local memory, its zonelists are not initialized\nat present.  As a result, any memory allocation operations executed by\nCPUs within this node will fail.  In fact, an out-of-memory error is\ntriggered when attempt to online CPUs before memory comes to online.\n\nThis patch tries to create zonelists for such numa nodes, so that the\nmemory allocation for this node can be fallback\u0027ed to other nodes.\n\n[akpm@linux-foundation.org: remove unneeded export]\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: minskey guo\u003cchaohong.guo@intel.com\u003e\nCc: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: Yasunori Goto \u003cy-goto@jp.fujitsu.com\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Tejun Heo \u003ctj@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": "8b25c6d2231b978ccce9c401e771932bde79aa9f",
      "tree": "13845799e14e49465de1529680df7def59dcfeb8",
      "parents": [
        "0aeb2339e54e40d0788a7017ecaeac7f5271e262"
      ],
      "author": {
        "name": "Johannes Weiner",
        "email": "hannes@cmpxchg.org",
        "time": "Mon May 24 14:32:40 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 25 08:07:00 2010 -0700"
      },
      "message": "vmscan: remove isolate_pages callback scan control\n\nFor now, we have global isolation vs.  memory control group isolation, do\nnot allow the reclaim entry function to set an arbitrary page isolation\ncallback, we do not need that flexibility.\n\nAnd since we already pass around the group descriptor for the memory\ncontrol group isolation case, just use it to decide which one of the two\nisolator functions to use.\n\nThe decisions can be merged into nearby branches, so no extra cost there.\nIn fact, we save the indirect calls.\n\nSigned-off-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0aeb2339e54e40d0788a7017ecaeac7f5271e262",
      "tree": "66889ce248257e7e24c998a22994ccef222e4622",
      "parents": [
        "142762bd8d8c46345e79f0f68d3374564306972f"
      ],
      "author": {
        "name": "Johannes Weiner",
        "email": "hannes@cmpxchg.org",
        "time": "Mon May 24 14:32:40 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 25 08:07:00 2010 -0700"
      },
      "message": "vmscan: remove all_unreclaimable scan control\n\nThis scan control is abused to communicate a return value from\nshrink_zones().  Write this idiomatically and remove the knob.\n\nSigned-off-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "142762bd8d8c46345e79f0f68d3374564306972f",
      "tree": "c33360b872883d24b068ba7b8f01466fccb9dfc9",
      "parents": [
        "58a9d3d8db06ca2ec31f64ec49ab0aeb89971b85"
      ],
      "author": {
        "name": "Johannes Weiner",
        "email": "hannes@cmpxchg.org",
        "time": "Mon May 24 14:32:39 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 25 08:07:00 2010 -0700"
      },
      "message": "mm: document follow_page()\n\nSigned-off-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Dan Carpenter \u003cerror27@gmail.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Izik Eidus \u003cieidus@redhat.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "58a9d3d8db06ca2ec31f64ec49ab0aeb89971b85",
      "tree": "70c695b6473d4d25b32a2946e053742f6c49755e",
      "parents": [
        "ec95f53aa6ed62ba68660cb19c8474ebe9025cce"
      ],
      "author": {
        "name": "Richard Kennedy",
        "email": "richard@rsk.demon.co.uk",
        "time": "Mon May 24 14:32:38 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 25 08:07:00 2010 -0700"
      },
      "message": "fs-writeback: check sync bit earlier in inode_wait_for_writeback\n\nWhen wb_writeback() hasn\u0027t written anything it will re-acquire the inode\nlock before calling inode_wait_for_writeback.\n\nThis change tests the sync bit first so that is doesn\u0027t need to drop \u0026\nre-acquire the lock if the inode became available while wb_writeback() was\nwaiting to get the lock.\n\nSigned-off-by: Richard Kennedy \u003crichard@rsk.demon.co.uk\u003e\nCc: Alexander Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nCc: 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": "ec95f53aa6ed62ba68660cb19c8474ebe9025cce",
      "tree": "953ad71c8ee0373ca76f17ee9df65358ad2fe7b7",
      "parents": [
        "5f53e76299ceebd68bdf9495e8ff80db77711236"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Mon May 24 14:32:38 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 25 08:07:00 2010 -0700"
      },
      "message": "mm: introduce free_pages_prepare()\n\nfree_hot_cold_page() and __free_pages_ok() have very similar freeing\npreparation.  Consolidate them.\n\n[akpm@linux-foundation.org: fix busted coding style]\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nAcked-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5f53e76299ceebd68bdf9495e8ff80db77711236",
      "tree": "2ecb8324a6593a49868161d85511cc14d474900a",
      "parents": [
        "bf8abe8b926f7546eb763fd2a088fe461dde6317"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Mon May 24 14:32:37 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 25 08:07:00 2010 -0700"
      },
      "message": "vmscan: page_check_references(): check low order lumpy reclaim properly\n\nIf vmscan is under lumpy reclaim mode, it have to ignore referenced bit\nfor making contenious free pages.  but current page_check_references()\ndoesn\u0027t.\n\nFix it.\n\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nReviewed-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: Rik van Riel \u003criel@redhat.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": "bf8abe8b926f7546eb763fd2a088fe461dde6317",
      "tree": "e9bba65d267d974c2c429b01dde393363789ee7f",
      "parents": [
        "76a33fc380c9a65e01eb15b3b87c05863a0d51db"
      ],
      "author": {
        "name": "Huang Shijie",
        "email": "shijie8@gmail.com",
        "time": "Mon May 24 14:32:36 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 25 08:07:00 2010 -0700"
      },
      "message": "readahead.c: fix comment\n\nFix a wrong comment over page_cache_async_readahead().\n\nSigned-off-by: Huang Shijie \u003cshijie8@gmail.com\u003e\nAcked-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": "76a33fc380c9a65e01eb15b3b87c05863a0d51db",
      "tree": "506db7a03eb41e245a859ac241ff0680097427e5",
      "parents": [
        "6ec3a12712ac67ffa4b80d16e0767ffd2431a68d"
      ],
      "author": {
        "name": "Shaohua Li",
        "email": "shaohua.li@intel.com",
        "time": "Mon May 24 14:32:36 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 25 08:07:00 2010 -0700"
      },
      "message": "vmscan: prevent get_scan_ratio() rounding errors\n\nget_scan_ratio() calculates percentage and if the percentage is \u003c 1%, it\nwill round percentage down to 0% and cause we completely ignore scanning\nanon/file pages to reclaim memory even the total anon/file pages are very\nbig.\n\nTo avoid underflow, we don\u0027t use percentage, instead we directly calculate\nhow many pages should be scaned.  In this way, we should get several\nscanned pages for \u003c 1% percent.\n\nThis has some benefits:\n\n1. increase our calculation precision\n\n2.  making our scan more smoothly.  Without this, if percent[x] is\n   underflow, shrink_zone() doesn\u0027t scan any pages and suddenly it scans\n   all pages when priority is zero.  With this, even priority isn\u0027t zero,\n   shrink_zone() gets chance to scan some pages.\n\nNote, this patch doesn\u0027t really change logics, but just increase\nprecision.  For system with a lot of memory, this might slightly changes\nbehavior.  For example, in a sequential file read workload, without the\npatch, we don\u0027t swap any anon pages.  With it, if anon memory size is\nbigger than 16G, we will see one anon page swapped.  The 16G is calculated\nas PAGE_SIZE * priority(4096) * (fp/ap).  fp/ap is assumed to be 1024\nwhich is common in this workload.  So the impact sounds not a big deal.\n\nSigned-off-by: Shaohua Li \u003cshaohua.li@intel.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nCc: 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": "6ec3a12712ac67ffa4b80d16e0767ffd2431a68d",
      "tree": "7348f7ce38efe041429a2477706181686992e801",
      "parents": [
        "4f92e2586b43a2402e116055d4edda704f911b5b"
      ],
      "author": {
        "name": "Greg Thelen",
        "email": "gthelen@google.com",
        "time": "Mon May 24 14:32:33 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 25 08:07:00 2010 -0700"
      },
      "message": "mm: consider the entire user address space during node migration\n\nUse mm-\u003etask_size instead of TASK_SIZE to ensure that the entire user\naddress space is migrated.  mm-\u003etask_size is independent of the calling\ntask context.  TASK SIZE may be dependant on the address space size of the\ncalling process.  Usage of TASK_SIZE can lead to partial address space\nmigration if the calling process was 32 bit and the migrating process was\n64 bit.\n\nHere is the test script used on 64 system with a 32 bit echo process:\n\n  mount -t cgroup none /cgroup -o cpuset\n  cd /cgroup\n\n  mkdir 0\n  echo 1 \u003e 0/cpuset.cpus\n  echo 0 \u003e 0/cpuset.mems\n  echo 1 \u003e 0/cpuset.memory_migrate\n\n  mkdir 1\n  echo 1 \u003e 1/cpuset.cpus\n  echo 1 \u003e 1/cpuset.mems\n  echo 1 \u003e 1/cpuset.memory_migrate\n\n  echo $$ \u003e 0/tasks\n  64_bit_process \u0026\n  pid\u003d$!\n\n  echo $pid \u003e 1/tasks   # This does not migrate all process pages without\n                        # this patch.  If 64 bit echo is used or this patch is\n                        # applied, then the full address space of $pid is\n                        # migrated.\n\nTo check memory migration, I watched:\n  grep MemUsed /sys/devices/system/node/node*/meminfo\n\nSigned-off-by: Greg Thelen \u003cgthelen@google.com\u003e\nAcked-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4f92e2586b43a2402e116055d4edda704f911b5b",
      "tree": "6a765ebeba951c02a7878bcea52a4769ad2e45c2",
      "parents": [
        "5e7719058079a1423ccce56148b0aaa56b2df821"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mel@csn.ul.ie",
        "time": "Mon May 24 14:32:32 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 25 08:07:00 2010 -0700"
      },
      "message": "mm: compaction: defer compaction using an exponential backoff when compaction fails\n\nThe fragmentation index may indicate that a failure is due to external\nfragmentation but after a compaction run completes, it is still possible\nfor an allocation to fail.  There are two obvious reasons as to why\n\n  o Page migration cannot move all pages so fragmentation remains\n  o A suitable page may exist but watermarks are not met\n\nIn the event of compaction followed by an allocation failure, this patch\ndefers further compaction in the zone (1 \u003c\u003c compact_defer_shift) times.\nIf the next compaction attempt also fails, compact_defer_shift is\nincreased up to a maximum of 6.  If compaction succeeds, the defer\ncounters are reset again.\n\nThe zone that is deferred is the first zone in the zonelist - i.e.  the\npreferred zone.  To defer compaction in the other zones, the information\nwould need to be stored in the zonelist or implemented similar to the\nzonelist_cache.  This would impact the fast-paths and is not justified at\nthis time.\n\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5e7719058079a1423ccce56148b0aaa56b2df821",
      "tree": "3666cb3d5540dcaa3d8e7df8c293a0ad603a181c",
      "parents": [
        "56de7263fcf3eb10c8dcdf8d59a9cec831795f3f"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mel@csn.ul.ie",
        "time": "Mon May 24 14:32:31 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 25 08:06:59 2010 -0700"
      },
      "message": "mm: compaction: add a tunable that decides when memory should be compacted and when it should be reclaimed\n\nThe kernel applies some heuristics when deciding if memory should be\ncompacted or reclaimed to satisfy a high-order allocation.  One of these\nis based on the fragmentation.  If the index is below 500, memory will not\nbe compacted.  This choice is arbitrary and not based on data.  To help\noptimise the system and set a sensible default for this value, this patch\nadds a sysctl extfrag_threshold.  The kernel will only compact memory if\nthe fragmentation index is above the extfrag_threshold.\n\n[randy.dunlap@oracle.com: Fix build errors when proc fs is not configured]\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "56de7263fcf3eb10c8dcdf8d59a9cec831795f3f",
      "tree": "164637c0b678e20adfdcec4129563d9234faf405",
      "parents": [
        "ed4a6d7f0676db50b5023cc01f6cda82a2f2a307"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mel@csn.ul.ie",
        "time": "Mon May 24 14:32:30 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 25 08:06:59 2010 -0700"
      },
      "message": "mm: compaction: direct compact when a high-order allocation fails\n\nOrdinarily when a high-order allocation fails, direct reclaim is entered\nto free pages to satisfy the allocation.  With this patch, it is\ndetermined if an allocation failed due to external fragmentation instead\nof low memory and if so, the calling process will compact until a suitable\npage is freed.  Compaction by moving pages in memory is considerably\ncheaper than paging out to disk and works where there are locked pages or\nno swap.  If compaction fails to free a page of a suitable size, then\nreclaim will still occur.\n\nDirect compaction returns as soon as possible.  As each block is\ncompacted, it is checked if a suitable page has been freed and if so, it\nreturns.\n\n[akpm@linux-foundation.org: Fix build errors]\n[aarcange@redhat.com: fix count_vm_event preempt in memory compaction direct reclaim]\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nReviewed-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ed4a6d7f0676db50b5023cc01f6cda82a2f2a307",
      "tree": "6496343ba964e105cf30f8703714471f22edc806",
      "parents": [
        "76ab0f530e4a01d4dc20cdc1d5e87753c579dc18"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mel@csn.ul.ie",
        "time": "Mon May 24 14:32:29 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 25 08:06:59 2010 -0700"
      },
      "message": "mm: compaction: add /sys trigger for per-node memory compaction\n\nAdd a per-node sysfs file called compact.  When the file is written to,\neach zone in that node is compacted.  The intention that this would be\nused by something like a job scheduler in a batch system before a job\nstarts so that the job can allocate the maximum number of hugepages\nwithout significant start-up cost.\n\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nReviewed-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nReviewed-by: Minchan Kim \u003cminchan.kim@gmail.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": "76ab0f530e4a01d4dc20cdc1d5e87753c579dc18",
      "tree": "8e1566df85e02f67876685c36d217fec4845f79f",
      "parents": [
        "748446bb6b5a9390b546af38ec899c868a9dbcf0"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mel@csn.ul.ie",
        "time": "Mon May 24 14:32:28 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 25 08:06:59 2010 -0700"
      },
      "message": "mm: compaction: add /proc trigger for memory compaction\n\nAdd a proc file /proc/sys/vm/compact_memory.  When an arbitrary value is\nwritten to the file, all zones are compacted.  The expected user of such a\ntrigger is a job scheduler that prepares the system before the target\napplication runs.\n\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nReviewed-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nReviewed-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "748446bb6b5a9390b546af38ec899c868a9dbcf0",
      "tree": "4c27d0805a5e094b39ff938ad60dd270b953a79f",
      "parents": [
        "c175a0ce7584e5b498fff8cbdb9aa7912aa9fbba"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mel@csn.ul.ie",
        "time": "Mon May 24 14:32:27 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 25 08:06:59 2010 -0700"
      },
      "message": "mm: compaction: memory compaction core\n\nThis patch is the core of a mechanism which compacts memory in a zone by\nrelocating movable pages towards the end of the zone.\n\nA single compaction run involves a migration scanner and a free scanner.\nBoth scanners operate on pageblock-sized areas in the zone.  The migration\nscanner starts at the bottom of the zone and searches for all movable\npages within each area, isolating them onto a private list called\nmigratelist.  The free scanner starts at the top of the zone and searches\nfor suitable areas and consumes the free pages within making them\navailable for the migration scanner.  The pages isolated for migration are\nthen migrated to the newly isolated free pages.\n\n[aarcange@redhat.com: Fix unsafe optimisation]\n[mel@csn.ul.ie: do not schedule work on other CPUs for compaction]\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nReviewed-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c175a0ce7584e5b498fff8cbdb9aa7912aa9fbba",
      "tree": "dd924daef4a9e0ac9729c5b61c30b8e3cc96f971",
      "parents": [
        "f1a5ab1210579e2d3ac8c0c227645823af5aafb0"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mel@csn.ul.ie",
        "time": "Mon May 24 14:32:26 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 25 08:06:59 2010 -0700"
      },
      "message": "mm: move definition for LRU isolation modes to a header\n\nCurrently, vmscan.c defines the isolation modes for __isolate_lru_page().\nMemory compaction needs access to these modes for isolating pages for\nmigration.  This patch exports them.\n\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nAcked-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f1a5ab1210579e2d3ac8c0c227645823af5aafb0",
      "tree": "c646a3d58150eab1a8280d02e6254ef6b90a6f37",
      "parents": [
        "d7a5752c0c19750312efab3a2a80d350e11fa4a2"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mel@csn.ul.ie",
        "time": "Mon May 24 14:32:26 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 25 08:06:59 2010 -0700"
      },
      "message": "mm: export fragmentation index via debugfs\n\nThe fragmentation fragmentation index, is only meaningful if an allocation\nwould fail and indicates what the failure is due to.  A value of -1 such\nas in many of the examples above states that the allocation would succeed.\n If it would fail, the value is between 0 and 1.  A value tending towards\n0 implies the allocation failed due to a lack of memory.  A value tending\ntowards 1 implies it failed due to external fragmentation.\n\nFor the most part, the huge page size will be the size of interest but not\nnecessarily so it is exported on a per-order and per-zo basis via\n/sys/kernel/debug/extfrag/extfrag_index\n\n\u003e cat /sys/kernel/debug/extfrag/extfrag_index\nNode 0, zone      DMA -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.00\nNode 0, zone   Normal -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 -1.000 0.954\n\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nReviewed-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nReviewed-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d7a5752c0c19750312efab3a2a80d350e11fa4a2",
      "tree": "f604d9ae1d7f689e3314120e2d4edac36c1b5f22",
      "parents": [
        "a8bef8ff6ea15fa4c67433cab0f5f3484574ef7c"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mel@csn.ul.ie",
        "time": "Mon May 24 14:32:25 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 25 08:06:59 2010 -0700"
      },
      "message": "mm: export unusable free space index via debugfs\n\nThe unusable free space index measures how much of the available free\nmemory cannot be used to satisfy an allocation of a given size and is a\nvalue between 0 and 1.  The higher the value, the more of free memory is\nunusable and by implication, the worse the external fragmentation is.  For\nthe most part, the huge page size will be the size of interest but not\nnecessarily so it is exported on a per-order and per-zone basis via\n/sys/kernel/debug/extfrag/unusable_index.\n\n\u003e cat /sys/kernel/debug/extfrag/unusable_index\nNode 0, zone      DMA 0.000 0.000 0.000 0.001 0.005 0.013 0.021 0.037 0.037 0.101 0.230\nNode 0, zone   Normal 0.000 0.000 0.000 0.001 0.002 0.002 0.005 0.015 0.028 0.028 0.054\n\n[akpm@linux-foundation.org: Fix allnoconfig]\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nReviewed-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nReviewed-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a8bef8ff6ea15fa4c67433cab0f5f3484574ef7c",
      "tree": "3ea9c122e02f523379d4560ee2134124d097895c",
      "parents": [
        "e9e96b39f932a065e14f5d5bab0797ae261d03b5"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mel@csn.ul.ie",
        "time": "Mon May 24 14:32:24 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 25 08:06:59 2010 -0700"
      },
      "message": "mm: migration: avoid race between shift_arg_pages() and rmap_walk() during migration by not migrating temporary stacks\n\nPage migration requires rmap to be able to find all ptes mapping a page\nat all times, otherwise the migration entry can be instantiated, but it\nis possible to leave one behind if the second rmap_walk fails to find\nthe page.  If this page is later faulted, migration_entry_to_page() will\ncall BUG because the page is locked indicating the page was migrated by\nthe migration PTE not cleaned up. For example\n\n  kernel BUG at include/linux/swapops.h:105!\n  invalid opcode: 0000 [#1] PREEMPT SMP\n  ...\n  Call Trace:\n   [\u003cffffffff810e951a\u003e] handle_mm_fault+0x3f8/0x76a\n   [\u003cffffffff8130c7a2\u003e] do_page_fault+0x44a/0x46e\n   [\u003cffffffff813099b5\u003e] page_fault+0x25/0x30\n   [\u003cffffffff8114de33\u003e] load_elf_binary+0x152a/0x192b\n   [\u003cffffffff8111329b\u003e] search_binary_handler+0x173/0x313\n   [\u003cffffffff81114896\u003e] do_execve+0x219/0x30a\n   [\u003cffffffff8100a5c6\u003e] sys_execve+0x43/0x5e\n   [\u003cffffffff8100320a\u003e] stub_execve+0x6a/0xc0\n  RIP  [\u003cffffffff811094ff\u003e] migration_entry_wait+0xc1/0x129\n\nThere is a race between shift_arg_pages and migration that triggers this\nbug.  A temporary stack is setup during exec and later moved.  If\nmigration moves a page in the temporary stack and the VMA is then removed\nbefore migration completes, the migration PTE may not be found leading to\na BUG when the stack is faulted.\n\nThis patch causes pages within the temporary stack during exec to be\nskipped by migration.  It does this by marking the VMA covering the\ntemporary stack with an otherwise impossible combination of VMA flags.\nThese flags are cleared when the temporary stack is moved to its final\nlocation.\n\n[kamezawa.hiroyu@jp.fujitsu.com: idea for having migration skip temporary stacks]\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nReviewed-by: Rik van Riel \u003criel@redhat.com\u003e\nAcked-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: Christoph Lameter \u003ccl@linux.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e9e96b39f932a065e14f5d5bab0797ae261d03b5",
      "tree": "1164a4bf40c34715944b47da035ba823f1d8b60a",
      "parents": [
        "3fe2011ff51e92500010a495df4be86745fbbda9"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mel@csn.ul.ie",
        "time": "Mon May 24 14:32:21 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 25 08:06:59 2010 -0700"
      },
      "message": "mm: allow CONFIG_MIGRATION to be set without CONFIG_NUMA or memory hot-remove\n\nCONFIG_MIGRATION currently depends on CONFIG_NUMA or on the architecture\nbeing able to hot-remove memory.  The main users of page migration such as\nsys_move_pages(), sys_migrate_pages() and cpuset process migration are\nonly beneficial on NUMA so it makes sense.\n\nAs memory compaction will operate within a zone and is useful on both NUMA\nand non-NUMA systems, this patch allows CONFIG_MIGRATION to be set if the\nuser selects CONFIG_COMPACTION as an option.\n\n[akpm@linux-foundation.org: Depend on CONFIG_HUGETLB_PAGE]\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nReviewed-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nReviewed-by: Rik van Riel \u003criel@redhat.com\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Minchan Kim \u003cminchan.kim@gmail.com\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": "3fe2011ff51e92500010a495df4be86745fbbda9",
      "tree": "f3dc07b9d41ce5ba15805c2d3b4bc0a1a7916832",
      "parents": [
        "67b9509b2c68ae38cecb83a239881cb0ddf087dc"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mel@csn.ul.ie",
        "time": "Mon May 24 14:32:20 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 25 08:06:59 2010 -0700"
      },
      "message": "mm: migration: allow the migration of PageSwapCache pages\n\nPageAnon pages that are unmapped may or may not have an anon_vma so are\nnot currently migrated.  However, a swap cache page can be migrated and\nfits this description.  This patch identifies page swap caches and allows\nthem to be migrated but ensures that no attempt to made to remap the pages\nwould would potentially try to access an already freed anon_vma.\n\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nReviewed-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "67b9509b2c68ae38cecb83a239881cb0ddf087dc",
      "tree": "a8cee4f4bec57ab44a993ce81df2a10a4980f0f8",
      "parents": [
        "7f60c214fd3a360461f3286c6908084f7f8b1950"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mel@csn.ul.ie",
        "time": "Mon May 24 14:32:19 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 25 08:06:58 2010 -0700"
      },
      "message": "mm: migration: do not try to migrate unmapped anonymous pages\n\nrmap_walk_anon() was triggering errors in memory compaction that look like\nuse-after-free errors.  The problem is that between the page being\nisolated from the LRU and rcu_read_lock() being taken, the mapcount of the\npage dropped to 0 and the anon_vma gets freed.  This can happen during\nmemory compaction if pages being migrated belong to a process that exits\nbefore migration completes.  Hence, the use-after-free race looks like\n\n 1. Page isolated for migration\n 2. Process exits\n 3. page_mapcount(page) drops to zero so anon_vma was no longer reliable\n 4. unmap_and_move() takes the rcu_lock but the anon_vma is already garbage\n 4. call try_to_unmap, looks up tha anon_vma and \"locks\" it but the lock\n    is garbage.\n\nThis patch checks the mapcount after the rcu lock is taken.  If the\nmapcount is zero, the anon_vma is assumed to be freed and no further\naction is taken.\n\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nReviewed-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7f60c214fd3a360461f3286c6908084f7f8b1950",
      "tree": "dba48cf988a22a40796187c7274f7903a288f7f4",
      "parents": [
        "3f6c82728f4e31a97c3a1b32abccb512fed0b573"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mel@csn.ul.ie",
        "time": "Mon May 24 14:32:18 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 25 08:06:58 2010 -0700"
      },
      "message": "mm: migration: share the anon_vma ref counts between KSM and page migration\n\nFor clarity of review, KSM and page migration have separate refcounts on\nthe anon_vma.  While clear, this is a waste of memory.  This patch gets\nKSM and page migration to share their toys in a spirit of harmony.\n\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nReviewed-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nReviewed-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3f6c82728f4e31a97c3a1b32abccb512fed0b573",
      "tree": "4b577e789a5daef91e40d10bc71c8134b3874ae8",
      "parents": [
        "e325c90ffc13b698fa2814102e05275b21c26bec"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mel@csn.ul.ie",
        "time": "Mon May 24 14:32:17 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 25 08:06:58 2010 -0700"
      },
      "message": "mm: migration: take a reference to the anon_vma before migrating\n\nThis patchset is a memory compaction mechanism that reduces external\nfragmentation memory by moving GFP_MOVABLE pages to a fewer number of\npageblocks.  The term \"compaction\" was chosen as there are is a number of\nmechanisms that are not mutually exclusive that can be used to defragment\nmemory.  For example, lumpy reclaim is a form of defragmentation as was\nslub \"defragmentation\" (really a form of targeted reclaim).  Hence, this\nis called \"compaction\" to distinguish it from other forms of\ndefragmentation.\n\nIn this implementation, a full compaction run involves two scanners\noperating within a zone - a migration and a free scanner.  The migration\nscanner starts at the beginning of a zone and finds all movable pages\nwithin one pageblock_nr_pages-sized area and isolates them on a\nmigratepages list.  The free scanner begins at the end of the zone and\nsearches on a per-area basis for enough free pages to migrate all the\npages on the migratepages list.  As each area is respectively migrated or\nexhausted of free pages, the scanners are advanced one area.  A compaction\nrun completes within a zone when the two scanners meet.\n\nThis method is a bit primitive but is easy to understand and greater\nsophistication would require maintenance of counters on a per-pageblock\nbasis.  This would have a big impact on allocator fast-paths to improve\ncompaction which is a poor trade-off.\n\nIt also does not try relocate virtually contiguous pages to be physically\ncontiguous.  However, assuming transparent hugepages were in use, a\nhypothetical khugepaged might reuse compaction code to isolate free pages,\nsplit them and relocate userspace pages for promotion.\n\nMemory compaction can be triggered in one of three ways.  It may be\ntriggered explicitly by writing any value to /proc/sys/vm/compact_memory\nand compacting all of memory.  It can be triggered on a per-node basis by\nwriting any value to /sys/devices/system/node/nodeN/compact where N is the\nnode ID to be compacted.  When a process fails to allocate a high-order\npage, it may compact memory in an attempt to satisfy the allocation\ninstead of entering direct reclaim.  Explicit compaction does not finish\nuntil the two scanners meet and direct compaction ends if a suitable page\nbecomes available that would meet watermarks.\n\nThe series is in 14 patches.  The first three are not \"core\" to the series\nbut are important pre-requisites.\n\nPatch 1 reference counts anon_vma for rmap_walk_anon(). Without this\n\tpatch, it\u0027s possible to use anon_vma after free if the caller is\n\tnot holding a VMA or mmap_sem for the pages in question. While\n\tthere should be no existing user that causes this problem,\n\tit\u0027s a requirement for memory compaction to be stable. The patch\n\tis at the start of the series for bisection reasons.\nPatch 2 merges the KSM and migrate counts. It could be merged with patch 1\n\tbut would be slightly harder to review.\nPatch 3 skips over unmapped anon pages during migration as there are no\n\tguarantees about the anon_vma existing. There is a window between\n\twhen a page was isolated and migration started during which anon_vma\n\tcould disappear.\nPatch 4 notes that PageSwapCache pages can still be migrated even if they\n\tare unmapped.\nPatch 5 allows CONFIG_MIGRATION to be set without CONFIG_NUMA\nPatch 6 exports a \"unusable free space index\" via debugfs. It\u0027s\n\ta measure of external fragmentation that takes the size of the\n\tallocation request into account. It can also be calculated from\n\tuserspace so can be dropped if requested\nPatch 7 exports a \"fragmentation index\" which only has meaning when an\n\tallocation request fails. It determines if an allocation failure\n\twould be due to a lack of memory or external fragmentation.\nPatch 8 moves the definition for LRU isolation modes for use by compaction\nPatch 9 is the compaction mechanism although it\u0027s unreachable at this point\nPatch 10 adds a means of compacting all of memory with a proc trgger\nPatch 11 adds a means of compacting a specific node with a sysfs trigger\nPatch 12 adds \"direct compaction\" before \"direct reclaim\" if it is\n\tdetermined there is a good chance of success.\nPatch 13 adds a sysctl that allows tuning of the threshold at which the\n\tkernel will compact or direct reclaim\nPatch 14 temporarily disables compaction if an allocation failure occurs\n\tafter compaction.\n\nTesting of compaction was in three stages.  For the test, debugging,\npreempt, the sleep watchdog and lockdep were all enabled but nothing nasty\npopped out.  min_free_kbytes was tuned as recommended by hugeadm to help\nfragmentation avoidance and high-order allocations.  It was tested on X86,\nX86-64 and PPC64.\n\nThs first test represents one of the easiest cases that can be faced for\nlumpy reclaim or memory compaction.\n\n1. Machine freshly booted and configured for hugepage usage with\n\ta) hugeadm --create-global-mounts\n\tb) hugeadm --pool-pages-max DEFAULT:8G\n\tc) hugeadm --set-recommended-min_free_kbytes\n\td) hugeadm --set-recommended-shmmax\n\n\tThe min_free_kbytes here is important. Anti-fragmentation works best\n\twhen pageblocks don\u0027t mix. hugeadm knows how to calculate a value that\n\twill significantly reduce the worst of external-fragmentation-related\n\tevents as reported by the mm_page_alloc_extfrag tracepoint.\n\n2. Load up memory\n\ta) Start updatedb\n\tb) Create in parallel a X files of pagesize*128 in size. Wait\n\t   until files are created. By parallel, I mean that 4096 instances\n\t   of dd were launched, one after the other using \u0026. The crude\n\t   objective being to mix filesystem metadata allocations with\n\t   the buffer cache.\n\tc) Delete every second file so that pageblocks are likely to\n\t   have holes\n\td) kill updatedb if it\u0027s still running\n\n\tAt this point, the system is quiet, memory is full but it\u0027s full with\n\tclean filesystem metadata and clean buffer cache that is unmapped.\n\tThis is readily migrated or discarded so you\u0027d expect lumpy reclaim\n\tto have no significant advantage over compaction but this is at\n\tthe POC stage.\n\n3. In increments, attempt to allocate 5% of memory as hugepages.\n\t   Measure how long it took, how successful it was, how many\n\t   direct reclaims took place and how how many compactions. Note\n\t   the compaction figures might not fully add up as compactions\n\t   can take place for orders other than the hugepage size\n\nX86\t\t\t\tvanilla\t\tcompaction\nFinal page count                    913                916 (attempted 1002)\npages reclaimed                   68296               9791\n\nX86-64\t\t\t\tvanilla\t\tcompaction\nFinal page count:                   901                902 (attempted 1002)\nTotal pages reclaimed:           112599              53234\n\nPPC64\t\t\t\tvanilla\t\tcompaction\nFinal page count:                    93                 94 (attempted 110)\nTotal pages reclaimed:           103216              61838\n\nThere was not a dramatic improvement in success rates but it wouldn\u0027t be\nexpected in this case either.  What was important is that fewer pages were\nreclaimed in all cases reducing the amount of IO required to satisfy a\nhuge page allocation.\n\nThe second tests were all performance related - kernbench, netperf, iozone\nand sysbench.  None showed anything too remarkable.\n\nThe last test was a high-order allocation stress test.  Many kernel\ncompiles are started to fill memory with a pressured mix of unmovable and\nmovable allocations.  During this, an attempt is made to allocate 90% of\nmemory as huge pages - one at a time with small delays between attempts to\navoid flooding the IO queue.\n\n                                             vanilla   compaction\nPercentage of request allocated X86               98           99\nPercentage of request allocated X86-64            95           98\nPercentage of request allocated PPC64             55           70\n\nThis patch:\n\nrmap_walk_anon() does not use page_lock_anon_vma() for looking up and\nlocking an anon_vma and it does not appear to have sufficient locking to\nensure the anon_vma does not disappear from under it.\n\nThis patch copies an approach used by KSM to take a reference on the\nanon_vma while pages are being migrated.  This should prevent rmap_walk()\nrunning into nasty surprises later because anon_vma has been freed.\n\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nCc: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e325c90ffc13b698fa2814102e05275b21c26bec",
      "tree": "dcb20cad204132e08476d3cb4da66f9a2e08b9fe",
      "parents": [
        "1a5cb81465b66b74bf3d6ad36e5382238de6a132"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Mon May 24 14:32:13 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 25 08:06:58 2010 -0700"
      },
      "message": "mm: default to node zonelist ordering when nodes have only lowmem\n\nThere are two types of zonelist ordering methodologies:\n\n - node order, preferring allocations on a node to stay local to and\n\n - zone order, preferring allocations come from a higher zone to avoid\n   allocating in lowmem zones even though they may not be local.\n\nThe ordering technique used by the kernel is configurable on the command\nline, but also has some logic to determine what the default should be.\n\nThis logic currently lacks knowledge of systems where a node may only have\nlowmem.  For such systems, it is necessary to use node order so that\nGFP_KERNEL allocations may be satisfied by nodes consisting of only\nlowmem.\n\nIf zone order is used, GFP_KERNEL allocations to such nodes are actually\nallocated on a node with local affinity that includes ZONE_NORMAL.\n\nThis change defaults to node zonelist ordering if any node lacks\nZONE_NORMAL.\n\nTo force zone order, append \u0027numa_zonelist_order\u003dzone\u0027 to the kernel\ncommand line.\n\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nAcked-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1a5cb81465b66b74bf3d6ad36e5382238de6a132",
      "tree": "28494edfea96752f57c88601d80819759085fade",
      "parents": [
        "e48293fd75b3aa67f43ad6e3d2ff397caa55d58b"
      ],
      "author": {
        "name": "Naoya Horiguchi",
        "email": "n-horiguchi@ah.jp.nec.com",
        "time": "Mon May 24 14:32:12 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 25 08:06:58 2010 -0700"
      },
      "message": "pagemap: add #ifdefs CONFIG_HUGETLB_PAGE on code walking hugetlb vma\n\nIf !CONFIG_HUGETLB_PAGE, pagemap_hugetlb_range() is never called.  So put\nit (and its calling function) into #ifdef block.\n\nSigned-off-by: Naoya Horiguchi \u003cn-horiguchi@ah.jp.nec.com\u003e\nAcked-by: Matt Mackall \u003cmpm@selenic.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e48293fd75b3aa67f43ad6e3d2ff397caa55d58b",
      "tree": "8f163687833fb5e1fa84f72e2e72e1ab83aca91e",
      "parents": [
        "25ef0e50cca790370ad7838e3ad74db6a6a2d829"
      ],
      "author": {
        "name": "Johannes Weiner",
        "email": "hannes@cmpxchg.org",
        "time": "Mon May 24 14:32:11 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 25 08:06:58 2010 -0700"
      },
      "message": "mincore: do nested page table walks\n\nDo page table walks with the well-known nested loops we use in several\nother places already.\n\nThis avoids doing full page table walks after every pte range and also\nallows to handle unmapped areas bigger than one pte range in one go.\n\nSigned-off-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Naoya Horiguchi \u003cn-horiguchi@ah.jp.nec.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "25ef0e50cca790370ad7838e3ad74db6a6a2d829",
      "tree": "9fef482df352beaeeb0ae1c6a176448cf795d045",
      "parents": [
        "f488401076c5570130c018e573f450a9a6c43365"
      ],
      "author": {
        "name": "Johannes Weiner",
        "email": "hannes@cmpxchg.org",
        "time": "Mon May 24 14:32:11 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 25 08:06:58 2010 -0700"
      },
      "message": "mincore: pass ranges as start,end address pairs\n\nInstead of passing a start address and a number of pages into the helper\nfunctions, convert them to use a start and an end address.\n\nSigned-off-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Naoya Horiguchi \u003cn-horiguchi@ah.jp.nec.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f488401076c5570130c018e573f450a9a6c43365",
      "tree": "0e704c52a45e44ba8cbb0dac529e9ad251d9edbd",
      "parents": [
        "6a60f1b3588aef6ddceaa14192df475d430cce45"
      ],
      "author": {
        "name": "Johannes Weiner",
        "email": "hannes@cmpxchg.org",
        "time": "Mon May 24 14:32:10 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 25 08:06:58 2010 -0700"
      },
      "message": "mincore: break do_mincore() into logical pieces\n\nSplit out functions to handle hugetlb ranges, pte ranges and unmapped\nranges, to improve readability but also to prepare the file structure for\nnested page table walks.\n\nNo semantic changes intended.\n\nSigned-off-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Naoya Horiguchi \u003cn-horiguchi@ah.jp.nec.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6a60f1b3588aef6ddceaa14192df475d430cce45",
      "tree": "4469beefed2e610eef9204b1a4d63cddc5d9aae4",
      "parents": [
        "c0ff7453bb5c7c98e0885fb94279f2571946f280"
      ],
      "author": {
        "name": "Johannes Weiner",
        "email": "hannes@cmpxchg.org",
        "time": "Mon May 24 14:32:09 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 25 08:06:58 2010 -0700"
      },
      "message": "mincore: cleanups\n\nThis fixes some minor issues that bugged me while going over the code:\n\no adjust argument order of do_mincore() to match the syscall\no simplify range length calculation\no drop superfluous shift in huge tlb calculation, address is page aligned\no drop dead nr_huge calculation\no check pte_none() before pte_present()\no comment and whitespace fixes\n\nNo semantic changes intended.\n\nSigned-off-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Naoya Horiguchi \u003cn-horiguchi@ah.jp.nec.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c0ff7453bb5c7c98e0885fb94279f2571946f280",
      "tree": "8bb2b169a5145f0496575dbd2f48bb4b1c83f819",
      "parents": [
        "708c1bbc9d0c3e57f40501794d9b0eed29d10fce"
      ],
      "author": {
        "name": "Miao Xie",
        "email": "miaox@cn.fujitsu.com",
        "time": "Mon May 24 14:32:08 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 25 08:06:57 2010 -0700"
      },
      "message": "cpuset,mm: fix no node to alloc memory when changing cpuset\u0027s mems\n\nBefore applying this patch, cpuset updates task-\u003emems_allowed and\nmempolicy by setting all new bits in the nodemask first, and clearing all\nold unallowed bits later.  But in the way, the allocator may find that\nthere is no node to alloc memory.\n\nThe reason is that cpuset rebinds the task\u0027s mempolicy, it cleans the\nnodes which the allocater can alloc pages on, for example:\n\n(mpol: mempolicy)\n\ttask1\t\t\ttask1\u0027s mpol\ttask2\n\talloc page\t\t1\n\t  alloc on node0? NO\t1\n\t\t\t\t1\t\tchange mems from 1 to 0\n\t\t\t\t1\t\trebind task1\u0027s mpol\n\t\t\t\t0-1\t\t  set new bits\n\t\t\t\t0\t  \t  clear disallowed bits\n\t  alloc on node1? NO\t0\n\t  ...\n\tcan\u0027t alloc page\n\t  goto oom\n\nThis patch fixes this problem by expanding the nodes range first(set newly\nallowed bits) and shrink it lazily(clear newly disallowed bits).  So we\nuse a variable to tell the write-side task that read-side task is reading\nnodemask, and the write-side task clears newly disallowed nodes after\nread-side task ends the current memory allocation.\n\n[akpm@linux-foundation.org: fix spello]\nSigned-off-by: Miao Xie \u003cmiaox@cn.fujitsu.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nCc: Hugh Dickins \u003chugh.dickins@tiscali.co.uk\u003e\nCc: Ravikiran Thirumalai \u003ckiran@scalex86.org\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "708c1bbc9d0c3e57f40501794d9b0eed29d10fce",
      "tree": "4b19caf68c420b32abdf05af3d413b1320f04fbe",
      "parents": [
        "971ada0f6659488c3f36aed4c6f7670ff5ce4368"
      ],
      "author": {
        "name": "Miao Xie",
        "email": "miaox@cn.fujitsu.com",
        "time": "Mon May 24 14:32:07 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 25 08:06:57 2010 -0700"
      },
      "message": "mempolicy: restructure rebinding-mempolicy functions\n\nNick Piggin reported that the allocator may see an empty nodemask when\nchanging cpuset\u0027s mems[1].  It happens only on the kernel that do not do\natomic nodemask_t stores.  (MAX_NUMNODES \u003e BITS_PER_LONG)\n\nBut I found that there is also a problem on the kernel that can do atomic\nnodemask_t stores.  The problem is that the allocator can\u0027t find a node to\nalloc page when changing cpuset\u0027s mems though there is a lot of free\nmemory.  The reason is like this:\n\n(mpol: mempolicy)\n\ttask1\t\t\ttask1\u0027s mpol\ttask2\n\talloc page\t\t1\n\t  alloc on node0? NO\t1\n\t\t\t\t1\t\tchange mems from 1 to 0\n\t\t\t\t1\t\trebind task1\u0027s mpol\n\t\t\t\t0-1\t\t  set new bits\n\t\t\t\t0\t  \t  clear disallowed bits\n\t  alloc on node1? NO\t0\n\t  ...\n\tcan\u0027t alloc page\n\t  goto oom\n\nI can use the attached program reproduce it by the following step:\n\n# mkdir /dev/cpuset\n# mount -t cpuset cpuset /dev/cpuset\n# mkdir /dev/cpuset/1\n# echo `cat /dev/cpuset/cpus` \u003e /dev/cpuset/1/cpus\n# echo `cat /dev/cpuset/mems` \u003e /dev/cpuset/1/mems\n# echo $$ \u003e /dev/cpuset/1/tasks\n# numactl --membind\u003d`cat /dev/cpuset/mems` ./cpuset_mem_hog \u003cnr_tasks\u003e \u0026\n   \u003cnr_tasks\u003e \u003d max(nr_cpus - 1, 1)\n# killall -s SIGUSR1 cpuset_mem_hog\n# ./change_mems.sh\n\nseveral hours later, oom will happen though there is a lot of free memory.\n\nThis patchset fixes this problem by expanding the nodes range first(set\nnewly allowed bits) and shrink it lazily(clear newly disallowed bits).  So\nwe use a variable to tell the write-side task that read-side task is\nreading nodemask, and the write-side task clears newly disallowed nodes\nafter read-side task ends the current memory allocation.\n\nThis patch:\n\nIn order to fix no node to alloc memory, when we want to update mempolicy\nand mems_allowed, we expand the set of nodes first (set all the newly\nnodes) and shrink the set of nodes lazily(clean disallowed nodes), But the\nmempolicy\u0027s rebind functions may breaks the expanding.\n\nSo we restructure the mempolicy\u0027s rebind functions and split the rebind\nwork to two steps, just like the update of cpuset\u0027s mems: The 1st step:\nexpand the set of the mempolicy\u0027s nodes.  The 2nd step: shrink the set of\nthe mempolicy\u0027s nodes.  It is used when there is no real lock to protect\nthe mempolicy in the read-side.  Otherwise we can do rebind work at once.\n\nIn order to implement it, we define\n\n\tenum mpol_rebind_step {\n\t\tMPOL_REBIND_ONCE,\n\t\tMPOL_REBIND_STEP1,\n\t\tMPOL_REBIND_STEP2,\n\t\tMPOL_REBIND_NSTEP,\n\t};\n\nIf the mempolicy needn\u0027t be updated by two steps, we can pass\nMPOL_REBIND_ONCE to the rebind functions.  Or we can pass\nMPOL_REBIND_STEP1 to do the first step of the rebind work and pass\nMPOL_REBIND_STEP2 to do the second step work.\n\nBesides that, it maybe long time between these two step and we have to\nrelease the lock that protects mempolicy and mems_allowed.  If we hold the\nlock once again, we must check whether the current mempolicy is under the\nrebinding (the first step has been done) or not, because the task may\nalloc a new mempolicy when we don\u0027t hold the lock.  So we defined the\nfollowing flag to identify it:\n\n#define MPOL_F_REBINDING (1 \u003c\u003c 2)\n\nThe new functions will be used in the next patch.\n\nSigned-off-by: Miao Xie \u003cmiaox@cn.fujitsu.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nCc: Hugh Dickins \u003chugh.dickins@tiscali.co.uk\u003e\nCc: Ravikiran Thirumalai \u003ckiran@scalex86.org\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "971ada0f6659488c3f36aed4c6f7670ff5ce4368",
      "tree": "41cae3f0baf63eca482e4e17c3081cc6a8a86439",
      "parents": [
        "15d77835ac48dbc2d4884376ea6a08b65b1c40ba"
      ],
      "author": {
        "name": "Lee Schermerhorn",
        "email": "lee.schermerhorn@hp.com",
        "time": "Mon May 24 14:32:05 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 25 08:06:57 2010 -0700"
      },
      "message": "mempolicy: document cpuset interaction with tmpfs mpol mount option\n\nUpdate Documentation/filesystems/tmpfs.txt to describe the interaction of\ntmpfs mount option memory policy with tasks\u0027 cpuset mems_allowed.\n\nNote: the mount(8) man page [in the util-linux-ng package] requires\nsimiliar updates.\n\nSigned-off-by: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nCc: Hugh Dickins \u003chugh.dickins@tiscali.co.uk\u003e\nCc: Ravikiran Thirumalai \u003ckiran@scalex86.org\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.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": "15d77835ac48dbc2d4884376ea6a08b65b1c40ba",
      "tree": "4bb094f030cedf8376a70a65f9271b571ba37562",
      "parents": [
        "345ace9c797030e77da8ff211b9502370b9d81ab"
      ],
      "author": {
        "name": "Lee Schermerhorn",
        "email": "lee.schermerhorn@hp.com",
        "time": "Mon May 24 14:32:04 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 25 08:06:57 2010 -0700"
      },
      "message": "mempolicy: factor mpol_shared_policy_init() return paths\n\nFactor out duplicate put/frees in mpol_shared_policy_init() to a common\nreturn path.\n\nSigned-off-by: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nCc: Hugh Dickins \u003chugh.dickins@tiscali.co.uk\u003e\nCc: Ravikiran Thirumalai \u003ckiran@scalex86.org\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.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": "345ace9c797030e77da8ff211b9502370b9d81ab",
      "tree": "5699b5b0b54412466b415ec581125e59f77d4b00",
      "parents": [
        "b4652e8429100ba5c3ddb49499faa1188c98c246"
      ],
      "author": {
        "name": "Lee Schermerhorn",
        "email": "lee.schermerhorn@hp.com",
        "time": "Mon May 24 14:32:04 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 25 08:06:57 2010 -0700"
      },
      "message": "mempolicy: rename policy_types and cleanup initialization\n\nRename \u0027policy_types[]\u0027 to \u0027policy_modes[]\u0027 to better match the array\ncontents.\n\nUse designated intializer syntax for policy_modes[].\n\nSigned-off-by: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nCc: Hugh Dickins \u003chugh.dickins@tiscali.co.uk\u003e\nCc: Ravikiran Thirumalai \u003ckiran@scalex86.org\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.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": "b4652e8429100ba5c3ddb49499faa1188c98c246",
      "tree": "55fa4fcdb8e8cf067b1474cc7068163e152f3075",
      "parents": [
        "e17f74af351cce9a1bade7b33af179497fdf95cf"
      ],
      "author": {
        "name": "Lee Schermerhorn",
        "email": "lee.schermerhorn@hp.com",
        "time": "Mon May 24 14:32:03 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 25 08:06:57 2010 -0700"
      },
      "message": "mempolicy: lose unnecessary loop variable in mpol_parse_str()\n\nWe don\u0027t really need the extra variable \u0027i\u0027 in mpol_parse_str().  The only\nuse is as the the loop variable.  Then, it\u0027s assigned to \u0027mode\u0027.  Just use\nmode, and loose the \u0027uninitialized_var()\u0027 macro.\n\nSigned-off-by: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nCc: Hugh Dickins \u003chugh.dickins@tiscali.co.uk\u003e\nCc: Ravikiran Thirumalai \u003ckiran@scalex86.org\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.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": "e17f74af351cce9a1bade7b33af179497fdf95cf",
      "tree": "99cce009bf299465a3b20594305ee209c8d85c3d",
      "parents": [
        "1980050250fa052b1c24a19f9b3d82fae14d77f8"
      ],
      "author": {
        "name": "Lee Schermerhorn",
        "email": "lee.schermerhorn@hp.com",
        "time": "Mon May 24 14:32:02 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 25 08:06:57 2010 -0700"
      },
      "message": "mempolicy: don\u0027t call mpol_set_nodemask() when no_context\n\nNo need to call mpol_set_nodemask() when we have no context for the\nmempolicy.  This can occur when we\u0027re parsing a tmpfs \u0027mpol\u0027 mount option.\n Just save the raw nodemask in the mempolicy\u0027s w.user_nodemask member for\nuse when a tmpfs/shmem file is created.  mpol_shared_policy_init() will\n\"contextualize\" the policy for the new file based on the creating task\u0027s\ncontext.\n\nSigned-off-by: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nCc: Hugh Dickins \u003chugh.dickins@tiscali.co.uk\u003e\nCc: Ravikiran Thirumalai \u003ckiran@scalex86.org\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.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": "1980050250fa052b1c24a19f9b3d82fae14d77f8",
      "tree": "96743238e6941bd7af113ebe9275f6892b374dd3",
      "parents": [
        "6eb27e1fdf5781719a3d2e90e6c89fa012135c62"
      ],
      "author": {
        "name": "Bob Liu",
        "email": "lliubbo@gmail.com",
        "time": "Mon May 24 14:32:01 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 25 08:06:57 2010 -0700"
      },
      "message": "mempolicy: remove redundant check\n\nLee\u0027s patch \"mempolicy: use MPOL_PREFERRED for system-wide default policy\"\nhas made the MPOL_DEFAULT only used in the memory policy APIs.  So, no\nneed to check in __mpol_equal also.  Also get rid of mpol_match_intent()\nand move its logic directly into __mpol_equal().\n\nSigned-off-by: Bob Liu \u003clliubbo@gmail.com\u003e\nAcked-by: David Rientjes \u003crientjes@google.com\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\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": "6eb27e1fdf5781719a3d2e90e6c89fa012135c62",
      "tree": "23be89303ad69f5728f69665dfadf2b4dc45628c",
      "parents": [
        "6d556294d5b27fb12f18be7495af45b6156a409e"
      ],
      "author": {
        "name": "Bob Liu",
        "email": "lliubbo@gmail.com",
        "time": "Mon May 24 14:32:00 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 25 08:06:57 2010 -0700"
      },
      "message": "mempolicy: remove case MPOL_INTERLEAVE from policy_zonelist()\n\nIn policy_zonelist() mode MPOL_INTERLEAVE shouldn\u0027t happen, so fall\nthrough to BUG() instead of break to return.  I also fixed the comment.\n\nSigned-off-by: Bob Liu \u003clliubbo@gmail.com\u003e\nAcked-by: David Rientjes \u003crientjes@google.com\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\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": "6d556294d5b27fb12f18be7495af45b6156a409e",
      "tree": "cb8549b4a4dc53399abc596dcac4630b0d936abf",
      "parents": [
        "e13861d822f8f443ca0c020ea8fc2dc01039cd63"
      ],
      "author": {
        "name": "Bob Liu",
        "email": "lliubbo@gmail.com",
        "time": "Mon May 24 14:31:59 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 25 08:06:57 2010 -0700"
      },
      "message": "mempolicy: remove redundant code\n\n1.  In funtion is_valid_nodemask(), varibable k will be inited to 0 in\n   the following loop, needn\u0027t init to policy_zone anymore.\n\n2. (MPOL_F_STATIC_NODES | MPOL_F_RELATIVE_NODES) has already defined\n   to MPOL_MODE_FLAGS in mempolicy.h.\n\nSigned-off-by: Bob Liu \u003clliubbo@gmail.com\u003e\nAcked-by: David Rientjes \u003crientjes@google.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\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": "e13861d822f8f443ca0c020ea8fc2dc01039cd63",
      "tree": "0e1ccaa6a2d682f7636b9d5ef5d4c73a28074988",
      "parents": [
        "4b50dc26a0a25a9d1998d206e1f7d849aa78063f"
      ],
      "author": {
        "name": "Minchan Kim",
        "email": "minchan.kim@gmail.com",
        "time": "Mon May 24 14:31:59 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 25 08:06:57 2010 -0700"
      },
      "message": "mm: remove return value of putback_lru_pages()\n\nputback_lru_page() never can fail.  So it doesn\u0027t matter count of \"the\nnumber of pages put back\".\n\nIn addition, users of this functions don\u0027t use return value.\n\nLet\u0027s remove unnecessary code.\n\nSigned-off-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nReviewed-by: Rik van Riel \u003criel@redhat.com\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.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": "4b50dc26a0a25a9d1998d206e1f7d849aa78063f",
      "tree": "892657690d555940ef854bc97aa47a45c2088bdf",
      "parents": [
        "e48e67e08c340def3d0349c2910d23c7985fb6fa"
      ],
      "author": {
        "name": "Huang Shijie",
        "email": "shijie8@gmail.com",
        "time": "Mon May 24 14:31:58 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 25 08:06:57 2010 -0700"
      },
      "message": "shmem: remove redundant code\n\nprep_new_page() will call set_page_private(page, 0) to initialise the\npage, so the code is redundant.\n\nSigned-off-by: Huang Shijie \u003cshijie8@gmail.com\u003e\nReviewed-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nAcked-by: 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": "e48e67e08c340def3d0349c2910d23c7985fb6fa",
      "tree": "8cac490109c34d694147ef55bb2ab80769e5f331",
      "parents": [
        "6dda9d55bf545013597724bf0cd79d01bd2bd944"
      ],
      "author": {
        "name": "Yinghai Lu",
        "email": "yinghai@kernel.org",
        "time": "Mon May 24 14:31:57 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 25 08:06:56 2010 -0700"
      },
      "message": "sparsemem: on no vmemmap path put mem_map on node high too\n\nWe need to put mem_map high when virtual memmap is not used.\n\nbefore this patch\nfree mem pfn range on first node:\n[    0.000000]  19 - 1f\n[    0.000000]  28 40 - 80 95\n[    0.000000]  702 740 - 1000 1000\n[    0.000000]  347c - 347e\n[    0.000000]  34e7 3500 - 3b80 3b8b\n[    0.000000]  73b8b 73bc0 - 73c00 73c00\n[    0.000000]  73ddd - 73e00\n[    0.000000]  73fdd - 74000\n[    0.000000]  741dd - 74200\n[    0.000000]  743dd - 74400\n[    0.000000]  745dd - 74600\n[    0.000000]  747dd - 74800\n[    0.000000]  749dd - 74a00\n[    0.000000]  74bdd - 74c00\n[    0.000000]  74ddd - 74e00\n[    0.000000]  74fdd - 75000\n[    0.000000]  751dd - 75200\n[    0.000000]  753dd - 75400\n[    0.000000]  755dd - 75600\n[    0.000000]  757dd - 75800\n[    0.000000]  759dd - 75a00\n[    0.000000]  79bdd 79c00 - 7d540 7d550\n[    0.000000]  7f745 - 7f750\n[    0.000000]  10000b 100040 - 2080000 2080000\nso only 79c00 - 7d540 are major free block under 4g...\n\nafter this patch, we will get\n[    0.000000]  19 - 1f\n[    0.000000]  28 40 - 80 95\n[    0.000000]  702 740 - 1000 1000\n[    0.000000]  347c - 347e\n[    0.000000]  34e7 3500 - 3600 3600\n[    0.000000]  37dd - 3800\n[    0.000000]  39dd - 3a00\n[    0.000000]  3bdd - 3c00\n[    0.000000]  3ddd - 3e00\n[    0.000000]  3fdd - 4000\n[    0.000000]  41dd - 4200\n[    0.000000]  43dd - 4400\n[    0.000000]  45dd - 4600\n[    0.000000]  47dd - 4800\n[    0.000000]  49dd - 4a00\n[    0.000000]  4bdd - 4c00\n[    0.000000]  4ddd - 4e00\n[    0.000000]  4fdd - 5000\n[    0.000000]  51dd - 5200\n[    0.000000]  53dd - 5400\n[    0.000000]  95dd 9600 - 7d540 7d550\n[    0.000000]  7f745 - 7f750\n[    0.000000]  17000b 170040 - 2080000 2080000\nwe will have 9600 - 7d540 for major free block...\n\nsparse-vmemmap path already used __alloc_bootmem_node_high()\n\nSigned-off-by: Yinghai Lu \u003cyinghai@kernel.org\u003e\nCc: Jiri Slaby \u003cjirislaby@gmail.com\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Greg Thelen \u003cgthelen@google.com\u003e\nCc: 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": "6dda9d55bf545013597724bf0cd79d01bd2bd944",
      "tree": "fd859ab0c2cc4df8b776f705151ba5163f588143",
      "parents": [
        "e9d6c157385e4efa61cb8293e425c9d8beba70d3"
      ],
      "author": {
        "name": "Corrado Zoccolo",
        "email": "czoccolo@gmail.com",
        "time": "Mon May 24 14:31:54 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 25 08:06:56 2010 -0700"
      },
      "message": "page allocator: reduce fragmentation in buddy allocator by adding buddies that are merging to the tail of the free lists\n\nIn order to reduce fragmentation, this patch classifies freed pages in two\ngroups according to their probability of being part of a high order merge.\n Pages belonging to a compound whose next-highest buddy is free are more\nlikely to be part of a high order merge in the near future, so they will\nbe added at the tail of the freelist.  The remaining pages are put at the\nfront of the freelist.\n\nIn this way, the pages that are more likely to cause a big merge are kept\nfree longer.  Consequently there is a tendency to aggregate the\nlong-living allocations on a subset of the compounds, reducing the\nfragmentation.\n\nThis heuristic was tested on three machines, x86, x86-64 and ppc64 with\n3GB of RAM in each machine.  The tests were kernbench, netperf, sysbench\nand STREAM for performance and a high-order stress test for huge page\nallocations.\n\nKernBench X86\nElapsed mean     374.77 ( 0.00%)   375.10 (-0.09%)\nUser    mean     649.53 ( 0.00%)   650.44 (-0.14%)\nSystem  mean      54.75 ( 0.00%)    54.18 ( 1.05%)\nCPU     mean     187.75 ( 0.00%)   187.25 ( 0.27%)\n\nKernBench X86-64\nElapsed mean      94.45 ( 0.00%)    94.01 ( 0.47%)\nUser    mean     323.27 ( 0.00%)   322.66 ( 0.19%)\nSystem  mean      36.71 ( 0.00%)    36.50 ( 0.57%)\nCPU     mean     380.75 ( 0.00%)   381.75 (-0.26%)\n\nKernBench PPC64\nElapsed mean     173.45 ( 0.00%)   173.74 (-0.17%)\nUser    mean     587.99 ( 0.00%)   587.95 ( 0.01%)\nSystem  mean      60.60 ( 0.00%)    60.57 ( 0.05%)\nCPU     mean     373.50 ( 0.00%)   372.75 ( 0.20%)\n\nNothing notable for kernbench.\n\nNetPerf UDP X86\n      64    42.68 ( 0.00%)     42.77 ( 0.21%)\n     128    85.62 ( 0.00%)     85.32 (-0.35%)\n     256   170.01 ( 0.00%)    168.76 (-0.74%)\n    1024   655.68 ( 0.00%)    652.33 (-0.51%)\n    2048  1262.39 ( 0.00%)   1248.61 (-1.10%)\n    3312  1958.41 ( 0.00%)   1944.61 (-0.71%)\n    4096  2345.63 ( 0.00%)   2318.83 (-1.16%)\n    8192  4132.90 ( 0.00%)   4089.50 (-1.06%)\n   16384  6770.88 ( 0.00%)   6642.05 (-1.94%)*\n\nNetPerf UDP X86-64\n      64   148.82 ( 0.00%)    154.92 ( 3.94%)\n     128   298.96 ( 0.00%)    312.95 ( 4.47%)\n     256   583.67 ( 0.00%)    626.39 ( 6.82%)\n    1024  2293.18 ( 0.00%)   2371.10 ( 3.29%)\n    2048  4274.16 ( 0.00%)   4396.83 ( 2.79%)\n    3312  6356.94 ( 0.00%)   6571.35 ( 3.26%)\n    4096  7422.68 ( 0.00%)   7635.42 ( 2.79%)*\n    8192 12114.81 ( 0.00%)* 12346.88 ( 1.88%)\n   16384 17022.28 ( 0.00%)* 17033.19 ( 0.06%)*\n             1.64%             2.73%\n\nNetPerf UDP PPC64\n      64    49.98 ( 0.00%)     50.25 ( 0.54%)\n     128    98.66 ( 0.00%)    100.95 ( 2.27%)\n     256   197.33 ( 0.00%)    191.03 (-3.30%)\n    1024   761.98 ( 0.00%)    785.07 ( 2.94%)\n    2048  1493.50 ( 0.00%)   1510.85 ( 1.15%)\n    3312  2303.95 ( 0.00%)   2271.72 (-1.42%)\n    4096  2774.56 ( 0.00%)   2773.06 (-0.05%)\n    8192  4918.31 ( 0.00%)   4793.59 (-2.60%)\n   16384  7497.98 ( 0.00%)   7749.52 ( 3.25%)\n\nThe tests are run to have confidence limits within 1%.  Results marked\nwith a * were not confident although in this case, it\u0027s only outside by\nsmall amounts.  Even with some results that were not confident, the\nnetperf UDP results were generally positive.\n\nNetPerf TCP X86\n      64   652.25 ( 0.00%)*   648.12 (-0.64%)*\n            23.80%            22.82%\n     128  1229.98 ( 0.00%)*  1220.56 (-0.77%)*\n            21.03%            18.90%\n     256  2105.88 ( 0.00%)   1872.03 (-12.49%)*\n             1.00%            16.46%\n    1024  3476.46 ( 0.00%)*  3548.28 ( 2.02%)*\n            13.37%            11.39%\n    2048  4023.44 ( 0.00%)*  4231.45 ( 4.92%)*\n             9.76%            12.48%\n    3312  4348.88 ( 0.00%)*  4396.96 ( 1.09%)*\n             6.49%             8.75%\n    4096  4726.56 ( 0.00%)*  4877.71 ( 3.10%)*\n             9.85%             8.50%\n    8192  4732.28 ( 0.00%)*  5777.77 (18.10%)*\n             9.13%            13.04%\n   16384  5543.05 ( 0.00%)*  5906.24 ( 6.15%)*\n             7.73%             8.68%\n\nNETPERF TCP X86-64\n            netperf-tcp-vanilla-netperf       netperf-tcp\n                   tcp-vanilla     pgalloc-delay\n      64  1895.87 ( 0.00%)*  1775.07 (-6.81%)*\n             5.79%             4.78%\n     128  3571.03 ( 0.00%)*  3342.20 (-6.85%)*\n             3.68%             6.06%\n     256  5097.21 ( 0.00%)*  4859.43 (-4.89%)*\n             3.02%             2.10%\n    1024  8919.10 ( 0.00%)*  8892.49 (-0.30%)*\n             5.89%             6.55%\n    2048 10255.46 ( 0.00%)* 10449.39 ( 1.86%)*\n             7.08%             7.44%\n    3312 10839.90 ( 0.00%)* 10740.15 (-0.93%)*\n             6.87%             7.33%\n    4096 10814.84 ( 0.00%)* 10766.97 (-0.44%)*\n             6.86%             8.18%\n    8192 11606.89 ( 0.00%)* 11189.28 (-3.73%)*\n             7.49%             5.55%\n   16384 12554.88 ( 0.00%)* 12361.22 (-1.57%)*\n             7.36%             6.49%\n\nNETPERF TCP PPC64\n            netperf-tcp-vanilla-netperf       netperf-tcp\n                   tcp-vanilla     pgalloc-delay\n      64   594.17 ( 0.00%)    596.04 ( 0.31%)*\n             1.00%             2.29%\n     128  1064.87 ( 0.00%)*  1074.77 ( 0.92%)*\n             1.30%             1.40%\n     256  1852.46 ( 0.00%)*  1856.95 ( 0.24%)\n             1.25%             1.00%\n    1024  3839.46 ( 0.00%)*  3813.05 (-0.69%)\n             1.02%             1.00%\n    2048  4885.04 ( 0.00%)*  4881.97 (-0.06%)*\n             1.15%             1.04%\n    3312  5506.90 ( 0.00%)   5459.72 (-0.86%)\n    4096  6449.19 ( 0.00%)   6345.46 (-1.63%)\n    8192  7501.17 ( 0.00%)   7508.79 ( 0.10%)\n   16384  9618.65 ( 0.00%)   9490.10 (-1.35%)\n\nThere was a distinct lack of confidence in the X86* figures so I included\nwhat the devation was where the results were not confident.  Many of the\nresults, whether gains or losses were within the standard deviation so no\nsolid conclusion can be reached on performance impact.  Looking at the\nfigures, only the X86-64 ones look suspicious with a few losses that were\noutside the noise.  However, the results were so unstable that without\nknowing why they vary so much, a solid conclusion cannot be reached.\n\nSYSBENCH X86\n              sysbench-vanilla     pgalloc-delay\n           1  7722.85 ( 0.00%)  7756.79 ( 0.44%)\n           2 14901.11 ( 0.00%) 13683.44 (-8.90%)\n           3 15171.71 ( 0.00%) 14888.25 (-1.90%)\n           4 14966.98 ( 0.00%) 15029.67 ( 0.42%)\n           5 14370.47 ( 0.00%) 14865.00 ( 3.33%)\n           6 14870.33 ( 0.00%) 14845.57 (-0.17%)\n           7 14429.45 ( 0.00%) 14520.85 ( 0.63%)\n           8 14354.35 ( 0.00%) 14362.31 ( 0.06%)\n\nSYSBENCH X86-64\n           1 17448.70 ( 0.00%) 17484.41 ( 0.20%)\n           2 34276.39 ( 0.00%) 34251.00 (-0.07%)\n           3 50805.25 ( 0.00%) 50854.80 ( 0.10%)\n           4 66667.10 ( 0.00%) 66174.69 (-0.74%)\n           5 66003.91 ( 0.00%) 65685.25 (-0.49%)\n           6 64981.90 ( 0.00%) 65125.60 ( 0.22%)\n           7 64933.16 ( 0.00%) 64379.23 (-0.86%)\n           8 63353.30 ( 0.00%) 63281.22 (-0.11%)\n           9 63511.84 ( 0.00%) 63570.37 ( 0.09%)\n          10 62708.27 ( 0.00%) 63166.25 ( 0.73%)\n          11 62092.81 ( 0.00%) 61787.75 (-0.49%)\n          12 61330.11 ( 0.00%) 61036.34 (-0.48%)\n          13 61438.37 ( 0.00%) 61994.47 ( 0.90%)\n          14 62304.48 ( 0.00%) 62064.90 (-0.39%)\n          15 63296.48 ( 0.00%) 62875.16 (-0.67%)\n          16 63951.76 ( 0.00%) 63769.09 (-0.29%)\n\nSYSBENCH PPC64\n                             -sysbench-pgalloc-delay-sysbench\n              sysbench-vanilla     pgalloc-delay\n           1  7645.08 ( 0.00%)  7467.43 (-2.38%)\n           2 14856.67 ( 0.00%) 14558.73 (-2.05%)\n           3 21952.31 ( 0.00%) 21683.64 (-1.24%)\n           4 27946.09 ( 0.00%) 28623.29 ( 2.37%)\n           5 28045.11 ( 0.00%) 28143.69 ( 0.35%)\n           6 27477.10 ( 0.00%) 27337.45 (-0.51%)\n           7 26489.17 ( 0.00%) 26590.06 ( 0.38%)\n           8 26642.91 ( 0.00%) 25274.33 (-5.41%)\n           9 25137.27 ( 0.00%) 24810.06 (-1.32%)\n          10 24451.99 ( 0.00%) 24275.85 (-0.73%)\n          11 23262.20 ( 0.00%) 23674.88 ( 1.74%)\n          12 24234.81 ( 0.00%) 23640.89 (-2.51%)\n          13 24577.75 ( 0.00%) 24433.50 (-0.59%)\n          14 25640.19 ( 0.00%) 25116.52 (-2.08%)\n          15 26188.84 ( 0.00%) 26181.36 (-0.03%)\n          16 26782.37 ( 0.00%) 26255.99 (-2.00%)\n\nAgain, there is little to conclude here.  While there are a few losses,\nthe results vary by +/- 8% in some cases.  They are the results of most\nconcern as there are some large losses but it\u0027s also within the variance\ntypically seen between kernel releases.\n\nThe STREAM results varied so little and are so verbose that I didn\u0027t\ninclude them here.\n\nThe final test stressed how many huge pages can be allocated.  The\nabsolute number of huge pages allocated are the same with or without the\npage.  However, the \"unusability free space index\" which is a measure of\nexternal fragmentation was slightly lower (lower is better) throughout the\nlifetime of the system.  I also measured the latency of how long it took\nto successfully allocate a huge page.  The latency was slightly lower and\non X86 and PPC64, more huge pages were allocated almost immediately from\nthe free lists.  The improvement is slight but there.\n\n[mel@csn.ul.ie: Tested, reworked for less branches]\n[czoccolo@gmail.com: fix oops by checking pfn_valid_within()]\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nReviewed-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: Corrado Zoccolo \u003cczoccolo@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": "e9d6c157385e4efa61cb8293e425c9d8beba70d3",
      "tree": "fca2452b46328c9005b8a4043a22b7b1b4d47d0c",
      "parents": [
        "1f0a738868cbfe20ae53a00b7c302c04ef7ab8fc"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Mon May 24 14:31:48 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 25 08:06:56 2010 -0700"
      },
      "message": "tmpfs: insert tmpfs cache pages to inactive list at first\n\nShaohua Li reported parallel file copy on tmpfs can lead to OOM killer.\nThis is regression of caused by commit 9ff473b9a7 (\"vmscan: evict\nstreaming IO first\").  Wow, It is 2 years old patch!\n\nCurrently, tmpfs file cache is inserted active list at first.  This means\nthat the insertion doesn\u0027t only increase numbers of pages in anon LRU, but\nit also reduces anon scanning ratio.  Therefore, vmscan will get totally\nconfused.  It scans almost only file LRU even though the system has plenty\nunused tmpfs pages.\n\nHistorically, lru_cache_add_active_anon() was used for two reasons.\n1) Intend to priotize shmem page rather than regular file cache.\n2) Intend to avoid reclaim priority inversion of used once pages.\n\nBut we\u0027ve lost both motivation because (1) Now we have separate anon and\nfile LRU list.  then, to insert active list doesn\u0027t help such priotize.\n(2) In past, one pte access bit will cause page activation.  then to\ninsert inactive list with pte access bit mean higher priority than to\ninsert active list.  Its priority inversion may lead to uninteded lru\nchun.  but it was already solved by commit 645747462 (vmscan: detect\nmapped file pages used only once).  (Thanks Hannes, you are great!)\n\nThus, now we can use lru_cache_add_anon() instead.\n\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nReported-by: Shaohua Li \u003cshaohua.li@intel.com\u003e\nReviewed-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nReviewed-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nReviewed-by: Rik van Riel \u003criel@redhat.com\u003e\nReviewed-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nAcked-by: Hugh Dickins \u003chughd@google.com\u003e\nCc: Henrique de Moraes Holschuh \u003chmh@hmh.eng.br\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": "1f0a738868cbfe20ae53a00b7c302c04ef7ab8fc",
      "tree": "50f4eb77f1facf04cb27d5f09b99e3b1a2e9e6e7",
      "parents": [
        "e520c410854bab763be24e0fce7ba89dc252efee"
      ],
      "author": {
        "name": "Jaswinder Singh Rajput",
        "email": "jaswinder@kernel.org",
        "time": "Mon May 24 14:31:46 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 25 08:06:56 2010 -0700"
      },
      "message": "xtensa: includecheck fix: vectors.S\n\nfix the following \u0027make includecheck\u0027 warnings:\n\n  arch/xtensa/kernel/vectors.S: asm/processor.h is included more than once.\n  arch/xtensa/kernel/vectors.S: asm/ptrace.h is included more than once.\n\nSigned-off-by: Jaswinder Singh Rajput \u003cjaswinderrajput@gmail.com\u003e\nCc: Chris Zankel \u003cchris@zankel.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e520c410854bab763be24e0fce7ba89dc252efee",
      "tree": "6beaa5a9c76eb007f89ba0a8424004ded46d26d1",
      "parents": [
        "498900fc9cd1adbad1ba6b55ed9d8f2f5d655ca3"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Mon May 24 14:31:46 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 25 08:06:56 2010 -0700"
      },
      "message": "xtensa: convert to asm-generic/hardirq.h\n\nAlso remove lots of unused irq_cpustat fields.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Chris Zankel \u003cchris@zankel.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "498900fc9cd1adbad1ba6b55ed9d8f2f5d655ca3",
      "tree": "f99c1a1917f7d5f51977af9459bcc63d637ee209",
      "parents": [
        "7e125f7b9cbfce4101191b8076d606c517a73066"
      ],
      "author": {
        "name": "FUJITA Tomonori",
        "email": "fujita.tomonori@lab.ntt.co.jp",
        "time": "Mon May 24 14:31:45 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 25 08:06:56 2010 -0700"
      },
      "message": "xtensa: set ARCH_KMALLOC_MINALIGN\n\nArchitectures that handle DMA-non-coherent memory need to set\nARCH_KMALLOC_MINALIGN to make sure that kmalloc\u0027ed buffer is DMA-safe: the\nbuffer doesn\u0027t share a cache with the others.\n\nSigned-off-by: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nCc: Chris Zankel \u003cchris@zankel.net\u003e\nAcked-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\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": "7e125f7b9cbfce4101191b8076d606c517a73066",
      "tree": "ded140947b146cc7177519cd23cf81912de32687",
      "parents": [
        "064e297c324fff9b62226aae5dc468ebb272433c",
        "a9ddabc52ce3757a4331d6c1e8bf4065333cc51b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon May 24 08:05:29 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon May 24 08:05:29 2010 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/ide-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/davem/ide-2.6:\n  cmd640: fix kernel oops in test_irq() method\n  pdc202xx_old: ignore \"FIFO empty\" bit in test_irq() method\n  pdc202xx_old: wire test_irq() method for PDC2026x\n  IDE: pass IRQ flags to the IDE core\n  ide: fix comment typo in ide.h\n"
    },
    {
      "commit": "064e297c324fff9b62226aae5dc468ebb272433c",
      "tree": "49d031d180a30d6e94e4cfdcc46ec966399d8856",
      "parents": [
        "f13771187b9423b824f32518319f6da85d819003",
        "db52ecc2953d932b2fc1c62e585231659edd1d98"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon May 24 08:02:58 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon May 24 08:02:58 2010 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/vapier/blackfin\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/vapier/blackfin: (30 commits)\n  Blackfin: SMP: fix continuation lines\n  Blackfin: acvilon: fix timeout usage for I2C\n  Blackfin: fix typo in BF537 IRQ comment\n  Blackfin: unify duplicate MEM_MT48LC32M8A2_75 kconfig options\n  Blackfin: set ARCH_KMALLOC_MINALIGN\n  Blackfin: use atomic kmalloc in L1 alloc so it too can be atomic\n  Blackfin: another year of changes (update copyright in boot log)\n  Blackfin: optimize strncpy a bit\n  Blackfin: isram: clean up ITEST_COMMAND macro and improve the selftests\n  Blackfin: move string functions to normal lib/ assembly\n  Blackfin: SIC: cut down on IAR MMR reads a bit\n  Blackfin: bf537-minotaur: fix build errors due to header changes\n  Blackfin: kgdb: pass up the CC register instead of a 0 stub\n  Blackfin: handle HW errors in the new \"FAULT\" printing code\n  Blackfin: show the whole accumulator in the pseudo DBG insn\n  Blackfin: support all possible registers in the pseudo instructions\n  Blackfin: add support for the DBG (debug output) pseudo insn\n  Blackfin: change the BUG opcode to an unused 16-bit opcode\n  Blackfin: allow NMI watchdog to be used w/RETN as a scratch reg\n  Blackfin: add support for the DBGA (debug assert) pseudo insn\n  ...\n"
    },
    {
      "commit": "f13771187b9423b824f32518319f6da85d819003",
      "tree": "c431cf16c286065a302d5f3fb43fc1abac7e4047",
      "parents": [
        "15953654cc312429740fd58fb37a5a3d63a54376",
        "9f37af654fda88a8dcca74c785f6c20e52758866"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon May 24 08:01:10 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon May 24 08:01:10 2010 -0700"
      },
      "message": "Merge branch \u0027bkl/ioctl\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/frederic/random-tracing\n\n* \u0027bkl/ioctl\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/frederic/random-tracing:\n  uml: Pushdown the bkl from harddog_kern ioctl\n  sunrpc: Pushdown the bkl from sunrpc cache ioctl\n  sunrpc: Pushdown the bkl from ioctl\n  autofs4: Pushdown the bkl from ioctl\n  uml: Convert to unlocked_ioctls to remove implicit BKL\n  ncpfs: BKL ioctl pushdown\n  coda: Clean-up whitespace problems in pioctl.c\n  coda: BKL ioctl pushdown\n  drivers: Push down BKL into various drivers\n  isdn: Push down BKL into ioctl functions\n  scsi: Push down BKL into ioctl functions\n  dvb: Push down BKL into ioctl functions\n  smbfs: Push down BKL into ioctl function\n  coda/psdev: Remove BKL from ioctl function\n  um/mmapper: Remove BKL usage\n  sn_hwperf: Kill BKL usage\n  hfsplus: Push down BKL into ioctl function\n"
    },
    {
      "commit": "15953654cc312429740fd58fb37a5a3d63a54376",
      "tree": "bbb6bf8d4ea943545e29ce896848182c4f206298",
      "parents": [
        "c3ed9ea4ab460080dea9449c709be9316c670c72",
        "24af3202459d9a25643009b1ab8ab5ff04d94b49"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon May 24 08:00:13 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon May 24 08:00:13 2010 -0700"
      },
      "message": "Merge git://git.infradead.org/battery-2.6\n\n* git://git.infradead.org/battery-2.6:\n  ds2760_battery: Document ABI change\n  ds2760_battery: Make charge_now and charge_full writeable\n  power_supply: Add support for writeable properties\n  power_supply: Use attribute groups\n  power_supply: Add test_power driver\n  tosa_battery: Fix build error due to direct driver_data usage\n  wm97xx_battery: Quieten sparse warning (bat_set_pdata not declared)\n  ds2782_battery: Get rid of magic numbers in driver_data\n  ds2782_battery: Add support for ds2786 battery gas gauge\n  pda_power: Add function callbacks for suspend and resume\n  wm831x_power: Use genirq\n  Driver for Zipit Z2 battery chip\n  ds2782_battery: Fix clientdata on removal\n"
    },
    {
      "commit": "c3ed9ea4ab460080dea9449c709be9316c670c72",
      "tree": "8330e32353e132b090472751161325baf4e27133",
      "parents": [
        "0fed2b5cb4c04336b26b0cbf6f9a8c07081f79a6",
        "f00e047efdf9d31c8a7dd7875b411f97cfa7d8e5"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon May 24 07:59:17 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon May 24 07:59:17 2010 -0700"
      },
      "message": "Merge branch \u0027timers-for-linus-urgent\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027timers-for-linus-urgent\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  timers: Fix slack calculation for expired timers\n  timekeeping: Fix timezone update\n"
    },
    {
      "commit": "0fed2b5cb4c04336b26b0cbf6f9a8c07081f79a6",
      "tree": "a9be0f082d3c2f53eb2d5f9de9ad900c31236b34",
      "parents": [
        "0163916f1db7f345963dad1af78b7628c759c6ee",
        "41ec7ebee14189a0424176279c227168960c28ad"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon May 24 07:58:28 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon May 24 07:58:28 2010 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6: (25 commits)\n  sh: fix up sh7785lcr_32bit_defconfig.\n  arch/sh/lib/strlen.S: Checkpatch cleanup\n  sh: fix up sh7786 dmaengine build.\n  sh: guard cookie consistency across termination in the DMA driver\n  sh: prevent the DMA driver from unloading, while in use\n  sh: fix Oops in the serial SCI driver\n  sh: allow platforms to specify SD-card supported voltages\n  mmc: let MFD\u0027s provide supported Vdd card voltages to tmio_mmc\n  sh: disable SD-card write-protection detection on kfr2r09\n  mfd: pass platform flags down to the tmio_mmc driver\n  tmio: add a platform flag to disable card write-protection detection\n  sh: Add SDHI DMA support to migor\n  sh: Add SDHI DMA support to kfr2r09\n  sh: Add SDHI DMA support to ms7724se\n  sh: Add SDHI DMA support to ecovec\n  mmc: add DMA support to tmio_mmc driver, when used on SuperH\n  sh: prepare the SDHI MFD driver to pass DMA configuration to tmio_mmc.c\n  mmc: prepare tmio_mmc for passing of DMA configuration from the MFD cell\n  sh: add DMA slave definitions to sh7724\n  sh: add DMA slaves for two SDHI controllers to sh7722\n  ...\n"
    },
    {
      "commit": "0163916f1db7f345963dad1af78b7628c759c6ee",
      "tree": "c33e3551b7825e8700db65b8b27869f6f7d45c72",
      "parents": [
        "a69eee4988752c7196677958b4ed8f4c2b28499a",
        "ddf08f4b90a413892bbb9bb2e8a57aed991cd47d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon May 24 07:57:41 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon May 24 07:57:41 2010 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.open-osd.org/linux-open-osd\n\n* \u0027for-linus\u0027 of git://git.open-osd.org/linux-open-osd:\n  exofs: confusion between kmap() and kmap_atomic() api\n  exofs: Add default address_space_operations\n"
    },
    {
      "commit": "a69eee4988752c7196677958b4ed8f4c2b28499a",
      "tree": "b676b8a05e10f5003d17091fc7085fad29910702",
      "parents": [
        "3e766fd41ddc31c47ec5b2840c6a45803d35ff40"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon May 24 07:45:43 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon May 24 07:45:43 2010 -0700"
      },
      "message": "Revert \"ath9k: Group Key fix for VAPs\"\n\nThis reverts commit 03ceedea972a82d343fa5c2528b3952fa9e615d5, since it\nbreaks resume from suspend-to-ram on Rafael\u0027s Acer Ferrari One.\nNetworkManager thinks everything is ok, but it can\u0027t connect to the AP\nto get an IP address after the resume.\n\nIn fact, it even breaks resume for non-ath9k chipsets: reverting it also\nfixes Rafael\u0027s Toshiba Protege R500 with the iwlagn driver.  As Johannes\nsays:\n\n  \"Indeed, this patch needs to be reverted. That mac80211 change is wrong\n   and completely unnecessary.\"\n\nReported-and-requested-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nCc: Daniel Yingqiang Ma \u003cyma.cool@gmail.com\u003e\nCc: John W. Linville \u003clinville@tuxdriver.com\u003e\nCc: David Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3e766fd41ddc31c47ec5b2840c6a45803d35ff40",
      "tree": "f007442f20757918aa024dda848baa7670baa580",
      "parents": [
        "4fd5ec509bd486b5dd8cac1a4d4d7e2cbdf7c546",
        "7845bc3e132605e3e8a1f37748e29281164b65f5"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon May 24 07:41:47 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon May 24 07:41:47 2010 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/hirofumi/fatfs-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/hirofumi/fatfs-2.6:\n  fat: convert to unlocked_ioctl\n  fat: Cleanup nls_unload() usage\n  fat: use pack_hex_byte() instead of custom one\n"
    },
    {
      "commit": "4fd5ec509bd486b5dd8cac1a4d4d7e2cbdf7c546",
      "tree": "a8ddfdcc4bfb702457e8eeff57fd6b5a2f4249b2",
      "parents": [
        "6e188240ebc2a132d70924942d7c8b9acb46e11a",
        "6d27e64d74e14c1cf2b4af438d7e8a77017bd654"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon May 24 07:41:13 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon May 24 07:41:13 2010 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ericvh/v9fs\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ericvh/v9fs:\n  9p: Optimize TCREATE by eliminating a redundant fid clone.\n  9p: cleanup: remove unneeded assignment\n  9p: Add mksock support\n  fs/9p: Make sure we properly instantiate dentry.\n  9p: add 9P2000.L rename operation\n  9p: add 9P2000.L statfs operation\n  9p: VFS switches for 9p2000.L: VFS switches\n  9p: VFS switches for 9p2000.L: protocol and client changes\n"
    },
    {
      "commit": "6e188240ebc2a132d70924942d7c8b9acb46e11a",
      "tree": "7628df39f9c1d60a639504faaf6b5941b2c4b4ae",
      "parents": [
        "62a11ae3405b6da2535d28e5facc2de5af4a7e62",
        "240ed68eb567d80dd6bab739341999a5ab0ad55d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon May 24 07:37:52 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon May 24 07:37:52 2010 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client: (59 commits)\n  ceph: reuse mon subscribe message instead of allocated anew\n  ceph: avoid resending queued message to monitor\n  ceph: Storage class should be before const qualifier\n  ceph: all allocation functions should get gfp_mask\n  ceph: specify max_bytes on readdir replies\n  ceph: cleanup pool op strings\n  ceph: Use kzalloc\n  ceph: use common helper for aborted dir request invalidation\n  ceph: cope with out of order (unsafe after safe) mds reply\n  ceph: save peer feature bits in connection structure\n  ceph: resync headers with userland\n  ceph: use ceph. prefix for virtual xattrs\n  ceph: throw out dirty caps metadata, data on session teardown\n  ceph: attempt mds reconnect if mds closes our session\n  ceph: clean up send_mds_reconnect interface\n  ceph: wait for mds OPEN reply to indicate reconnect success\n  ceph: only send cap releases when mds is OPEN|HUNG\n  ceph: dicard cap releases on mds restart\n  ceph: make mon client statfs handling more generic\n  ceph: drop src address(es) from message header [new protocol feature]\n  ...\n"
    },
    {
      "commit": "62a11ae3405b6da2535d28e5facc2de5af4a7e62",
      "tree": "6b68f0e74fe08c0e87488ec0653d59c653e46745",
      "parents": [
        "cedfb2db7b2d6b2c780999536aa1e2650fadee36",
        "cf9b59e9d3e008591d1f54830f570982bb307a0d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon May 24 07:37:38 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon May 24 07:37:38 2010 -0700"
      },
      "message": "Merge branch \u0027next-devicetree\u0027 of git://git.secretlab.ca/git/linux-2.6\n\n* \u0027next-devicetree\u0027 of git://git.secretlab.ca/git/linux-2.6:\n  of: change of_match_device to work with struct device\n  of: Remove duplicate fields from of_platform_driver\n  drivercore: Add of_match_table to the common device drivers\n  arch/microblaze: Move dma_mask from of_device into pdev_archdata\n  arch/powerpc: Move dma_mask from of_device into pdev_archdata\n  of: eliminate of_device-\u003enode and dev_archdata-\u003e{of,prom}_node\n  of: Always use \u0027struct device.of_node\u0027 to get device node pointer.\n  i2c/of: Allow device node to be passed via i2c_board_info\n  driver-core: Add device node pointer to struct device\n  of: protect contents of of_platform.h and of_device.h\n  of/flattree: Make unflatten_device_tree() safe to call from any arch\n  of/flattree: make of_fdt.h safe to unconditionally include.\n"
    },
    {
      "commit": "cedfb2db7b2d6b2c780999536aa1e2650fadee36",
      "tree": "d36479ce5997bd6b0d66764620d9139eda263c61",
      "parents": [
        "85f9642e3199271614210b8feebe18b7652894b6",
        "bb4f6b0cd7524ad7d56709723eaf8a7bf5a87b57"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon May 24 07:33:43 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon May 24 07:33:43 2010 -0700"
      },
      "message": "Merge branch \u0027slab-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/penberg/slab-2.6\n\n* \u0027slab-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/penberg/slab-2.6:\n  slub: Use alloc_pages_exact_node() for page allocation\n  slub: __kmalloc_node_track_caller should trace kmalloc_large_node case\n  slub: Potential stack overflow\n  crypto: Use ARCH_KMALLOC_MINALIGN for CRYPTO_MINALIGN now that it\u0027s exposed\n  mm: Move ARCH_SLAB_MINALIGN and ARCH_KMALLOC_MINALIGN to \u003clinux/slub_def.h\u003e\n  mm: Move ARCH_SLAB_MINALIGN and ARCH_KMALLOC_MINALIGN to \u003clinux/slob_def.h\u003e\n  mm: Move ARCH_SLAB_MINALIGN and ARCH_KMALLOC_MINALIGN to \u003clinux/slab_def.h\u003e\n  slab: Fix missing DEBUG_SLAB last user\n  slab: add memory hotplug support\n  slab: Fix continuation lines\n"
    },
    {
      "commit": "85f9642e3199271614210b8feebe18b7652894b6",
      "tree": "fc238154693ea3ff829482faeffad0cacdb5bae4",
      "parents": [
        "9b8f77a184fcc44349c547be944ba921fd4247b3"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Sun May 23 17:02:30 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon May 24 07:31:20 2010 -0700"
      },
      "message": "Documentation: update SubmitChecklist for O\u003dobjdir and kconfig testing\n\nAdd build testing using \u0027O\u003dbuilddir\u0027.\n\nAdd build testing with various kconfig symbols disabled, listing\ncommon ones that are known to cause build problems.\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9b8f77a184fcc44349c547be944ba921fd4247b3",
      "tree": "89446df32c4cefc56bb1445a2dd5fed6e7bf58d6",
      "parents": [
        "9f6aa5750de30b1ba35f6cb8de50c17b4fb59cab"
      ],
      "author": {
        "name": "Ben Hutchings",
        "email": "ben@decadent.org.uk",
        "time": "Sun May 23 17:02:30 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon May 24 07:31:20 2010 -0700"
      },
      "message": "fusion: fix kernel-doc notation\n\nThe function name must be followed by a space, hypen, space, and a\nshort description.\n\nSigned-off-by: Ben Hutchings \u003cben@decadent.org.uk\u003e\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nCc: Eric Moore \u003cEric.Moore@lsi.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9f6aa5750de30b1ba35f6cb8de50c17b4fb59cab",
      "tree": "ef60189f4b8fd342bd6fd043f5952b41a2779bd7",
      "parents": [
        "89bbfb6bfbd4dae1ec29d6d4b3518c031b4f190c"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Sun May 23 17:02:30 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon May 24 07:31:20 2010 -0700"
      },
      "message": "scsi_scan.c: fix/convert functions to use kernel-doc\n\nscsi_scan.c: fix incorrectly formatted kernel-doc notation\n\u0026 convert documentation of 2 functions into kernel-doc.\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "89bbfb6bfbd4dae1ec29d6d4b3518c031b4f190c",
      "tree": "7b9cc9b64d8121ce9a5edcbb1d3291735806b8b4",
      "parents": [
        "4164fcc2f9b02a7cba31215328753fe328ce0d90"
      ],
      "author": {
        "name": "Carlo Marcelo Arenas Belon",
        "email": "carenas@sajinet.com.pe",
        "time": "Sun May 23 17:02:30 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon May 24 07:30:56 2010 -0700"
      },
      "message": "Documentation/vm: use better value for MAP_HUGETLB\n\ndocumentation: slightly more correct value for MAP_HUGETLB in map_hugetlb.c\n\nstill not correct for alpha, mips, parisc or xtensa but working out of\nthe box in the most common architectures without having to deal with\ncomplicated macros or including architecture specific headers.\n\nSigned-off-by: Carlo Marcelo Arenas Belon \u003ccarenas@sajinet.com.pe\u003e\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4164fcc2f9b02a7cba31215328753fe328ce0d90",
      "tree": "185da33af9b06f5460c7fd7c96478b63848e26bb",
      "parents": [
        "e6a591e58e2c70912987f9f19d36ba967063b251"
      ],
      "author": {
        "name": "Andrea Gelmini",
        "email": "andrea.gelmini@gelma.net",
        "time": "Sun May 23 17:02:30 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon May 24 07:30:56 2010 -0700"
      },
      "message": "Documentation/timers/hpet_example: drop duplicate header files\n\nDocumentation/timers/hpet_example.c: fcntl.h is included more than once.\nDocumentation/timers/hpet_example.c: signal.h is included more than once.\n\nSigned-off-by: Andrea Gelmini \u003candrea.gelmini@gelma.net\u003e\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e6a591e58e2c70912987f9f19d36ba967063b251",
      "tree": "2b49c1d8e401df32193709e9f8d3324e37d3359f",
      "parents": [
        "ef0eba477eeb424db97a162eb3a8c887b9c619df"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Sun May 23 17:02:30 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon May 24 07:30:55 2010 -0700"
      },
      "message": "Documentation/development-process: add staging \u0026 mmotm info\n\nUpdate explanation of mmotm.\nAdd explanation of drivers/staging/.\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nAcked-by: Jonathan Corbet \u003ccorbet@lwn.net\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ef0eba477eeb424db97a162eb3a8c887b9c619df",
      "tree": "6bfb0f3b7d835406df5bb27f11b03ed00f546472",
      "parents": [
        "0af76d950e69725dec55dc9735a37f9f9116f07f"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Sun May 23 17:02:30 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon May 24 07:30:55 2010 -0700"
      },
      "message": "Documentation/development-process: add maintainers and git info\n\nAdd info on maintainers and persistent posting.\nUpdate git home page.\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nAcked-by: Jonathan Corbet \u003ccorbet@lwn.net\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0af76d950e69725dec55dc9735a37f9f9116f07f",
      "tree": "0a1cac398853ffadddb50004a507645e68abe0c0",
      "parents": [
        "f4b87dee923342505e1ddba8d34ce9de33e75050"
      ],
      "author": {
        "name": "H Hartley Sweeten",
        "email": "hsweeten@visionengravers.com",
        "time": "Sun May 23 17:02:30 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon May 24 07:30:55 2010 -0700"
      },
      "message": "docbook: make mtd nand module init static\n\nIn the example the module_init function should be static.\n\nSigned-off-by: H Hartley Sweeten \u003chsweeten@visionengravers.com\u003e\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nCc: David Woodhouse \u003cdwmw2@infradead.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f00e047efdf9d31c8a7dd7875b411f97cfa7d8e5",
      "tree": "4f6af8a7025480aa5d35e438acda9011526406ce",
      "parents": [
        "bd45b7a385c5ffd82c11a1d51880be18559e5ad9"
      ],
      "author": {
        "name": "Jeff Chua",
        "email": "jeff.chua.linux@gmail.com",
        "time": "Mon May 24 07:16:24 2010 +0800"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon May 24 12:10:23 2010 +0200"
      },
      "message": "timers: Fix slack calculation for expired timers\n\ncommit 3bbb9ec946 (timers: Introduce the concept of timer slack for\nlegacy timers) does not take the case into account when the timer is\nalready expired. This broke wireless drivers.\n\nThe solution is not to apply slack to already expired timers.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Arjan van de Ven \u003carjan@linux.intel.com\u003e\n"
    },
    {
      "commit": "bd45b7a385c5ffd82c11a1d51880be18559e5ad9",
      "tree": "d5fb7949b599a0a0aa86233d8c3118cc5b0bf9b9",
      "parents": [
        "f4b87dee923342505e1ddba8d34ce9de33e75050"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sun May 23 08:14:45 2010 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon May 24 11:50:38 2010 +0200"
      },
      "message": "timekeeping: Fix timezone update\n\ncommit 64ce4c2f (time: Clean up warp_clock()) breaks the timezone\nupdate in a very subtle way. To avoid the direct access to timekeeping\ninternals it adds the timezone delta to the current time with\ntimespec_add_safe(). This works nicely when the timezone delta is \u003e 0.\nIf timezone delta is \u003c 0 then the wrap check in timespec_add_safe()\ntriggers and timespec_add_safe() returns TIME_MAX and screws up\ntimekeeping completely. \n\nThe comment above timespec_add_safe() says:\n    It\u0027s assumed that both values are valid (\u003e\u003d 0)\n\nAdd the timezone seconds adjustment directly.\n\nReported-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nTested-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: John Stultz \u003cjohnstul@us.ibm.com\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "41ec7ebee14189a0424176279c227168960c28ad",
      "tree": "9273d7ef0e45d958818de65c2ae4b146b9a8501c",
      "parents": [
        "a5c4300389bb33ade2515c082709217f0614cf15"
      ],
      "author": {
        "name": "Paul Mundt",
        "email": "lethal@linux-sh.org",
        "time": "Mon May 24 08:33:53 2010 +0900"
      },
      "committer": {
        "name": "Paul Mundt",
        "email": "lethal@linux-sh.org",
        "time": "Mon May 24 08:33:53 2010 +0900"
      },
      "message": "sh: fix up sh7785lcr_32bit_defconfig.\n\nThe build scripts inadvertently dropped this down to 29-bit, fix it\nback up.\n\nReported-by: Raul Porcel \u003carmin76@gentoo.org\u003e\nSigned-off-by: Paul Mundt \u003clethal@linux-sh.org\u003e\n"
    },
    {
      "commit": "a5c4300389bb33ade2515c082709217f0614cf15",
      "tree": "d47fc7b9d62bd26aa2b5c35770073dcab0318730",
      "parents": [
        "ed0ad6d3a0720faa999e4bf9d4ed404cfd5eb4cc"
      ],
      "author": {
        "name": "Andrea Gelmini",
        "email": "andrea.gelmini@gelma.net",
        "time": "Sun May 23 20:02:06 2010 +0000"
      },
      "committer": {
        "name": "Paul Mundt",
        "email": "lethal@linux-sh.org",
        "time": "Mon May 24 08:11:07 2010 +0900"
      },
      "message": "arch/sh/lib/strlen.S: Checkpatch cleanup\n\narch/sh/lib/strlen.S:38: ERROR: trailing whitespace\n\nSigned-off-by: Andrea Gelmini \u003candrea.gelmini@gelma.net\u003e\nSigned-off-by: Paul Mundt \u003clethal@linux-sh.org\u003e\n"
    },
    {
      "commit": "db52ecc2953d932b2fc1c62e585231659edd1d98",
      "tree": "2862ed9c5306ed45de275d9d033c1ad170bff29d",
      "parents": [
        "efc5863eb52a04134869f5ceb5f81a6fe9b47469"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Fri Mar 26 19:27:51 2010 -0700"
      },
      "committer": {
        "name": "Mike Frysinger",
        "email": "vapier@gentoo.org",
        "time": "Sat May 22 14:19:15 2010 -0400"
      },
      "message": "Blackfin: SMP: fix continuation lines\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nSigned-off-by: Mike Frysinger \u003cvapier@gentoo.org\u003e\n"
    },
    {
      "commit": "efc5863eb52a04134869f5ceb5f81a6fe9b47469",
      "tree": "e6f057b7818a0a883ba5f0541e1796928858b3ff",
      "parents": [
        "d016a21362194826518d4ac9ca3f768d0345cd2c"
      ],
      "author": {
        "name": "Wolfram Sang",
        "email": "w.sang@pengutronix.de",
        "time": "Sun Apr 04 16:04:16 2010 +0200"
      },
      "committer": {
        "name": "Mike Frysinger",
        "email": "vapier@gentoo.org",
        "time": "Sat May 22 14:19:15 2010 -0400"
      },
      "message": "Blackfin: acvilon: fix timeout usage for I2C\n\nThe timeout value is in jiffies, so it should be using HZ, not a plain\nnumber. As \u002710000\u0027 is ambiguous, 1HZ is used as conservative default.\n\nSigned-off-by: Wolfram Sang \u003cw.sang@pengutronix.de\u003e\nCc: Valentin Yakovenkov \u003cyakovenkov@gmail.com\u003e\nSigned-off-by: Mike Frysinger \u003cvapier@gentoo.org\u003e\n"
    },
    {
      "commit": "d016a21362194826518d4ac9ca3f768d0345cd2c",
      "tree": "ba787cc297864ef259f86ef21a38685706612ccd",
      "parents": [
        "084f9ebfd0915203b603392a66be15009b348fe1"
      ],
      "author": {
        "name": "Michael Hennerich",
        "email": "michael.hennerich@analog.com",
        "time": "Fri May 21 09:36:51 2010 +0000"
      },
      "committer": {
        "name": "Mike Frysinger",
        "email": "vapier@gentoo.org",
        "time": "Sat May 22 14:19:14 2010 -0400"
      },
      "message": "Blackfin: fix typo in BF537 IRQ comment\n\nSigned-off-by: Michael Hennerich \u003cmichael.hennerich@analog.com\u003e\nSigned-off-by: Mike Frysinger \u003cvapier@gentoo.org\u003e\n"
    },
    {
      "commit": "084f9ebfd0915203b603392a66be15009b348fe1",
      "tree": "b387fec4c5d993024a8d6223ab53e51ae928dd93",
      "parents": [
        "76b99699a2bbf9efdb578f9a38a202af2ecb354b"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier@gentoo.org",
        "time": "Thu May 20 04:26:54 2010 +0000"
      },
      "committer": {
        "name": "Mike Frysinger",
        "email": "vapier@gentoo.org",
        "time": "Sat May 22 14:19:13 2010 -0400"
      },
      "message": "Blackfin: unify duplicate MEM_MT48LC32M8A2_75 kconfig options\n\nReported-by: Christoph Egger \u003csiccegge@cs.fau.de\u003e\nSigned-off-by: Mike Frysinger \u003cvapier@gentoo.org\u003e\n"
    },
    {
      "commit": "76b99699a2bbf9efdb578f9a38a202af2ecb354b",
      "tree": "ef7eba05b7b611009d2fb108e58b655550387416",
      "parents": [
        "eb5400b6131e6ebaacf809357643a22a72d5cc4c"
      ],
      "author": {
        "name": "FUJITA Tomonori",
        "email": "fujita.tomonori@lab.ntt.co.jp",
        "time": "Wed May 19 23:21:38 2010 -0400"
      },
      "committer": {
        "name": "Mike Frysinger",
        "email": "vapier@gentoo.org",
        "time": "Sat May 22 14:19:13 2010 -0400"
      },
      "message": "Blackfin: set ARCH_KMALLOC_MINALIGN\n\nArchitectures that handle DMA-non-coherent memory need to set\nARCH_KMALLOC_MINALIGN to make sure that kmalloc\u0027ed buffer is DMA-safe:\nthe buffer doesn\u0027t share a cache with the others.\n\nSigned-off-by: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nAcked-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nSigned-off-by: Mike Frysinger \u003cvapier@gentoo.org\u003e\n"
    },
    {
      "commit": "eb5400b6131e6ebaacf809357643a22a72d5cc4c",
      "tree": "5b95658962e3a30fbfdc052647ac55bb04fc03c1",
      "parents": [
        "be1577e3787536290cc17afaeb2cd58bbcc7ed6c"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier@gentoo.org",
        "time": "Tue May 11 04:43:19 2010 +0000"
      },
      "committer": {
        "name": "Mike Frysinger",
        "email": "vapier@gentoo.org",
        "time": "Sat May 22 14:19:12 2010 -0400"
      },
      "message": "Blackfin: use atomic kmalloc in L1 alloc so it too can be atomic\n\nSome drivers allocate L1 SRAM in atomic contexts, so make sure these\nfunctions also use GFP_ATOMIC to avoid BUG()\u0027s.\n\nSigned-off-by: Mike Frysinger \u003cvapier@gentoo.org\u003e\n"
    },
    {
      "commit": "be1577e3787536290cc17afaeb2cd58bbcc7ed6c",
      "tree": "5d5ced5a78b4d9e0b2830d78603b19aca223f33c",
      "parents": [
        "648eee52ccdc623e21b920d6048e93490a4860a7"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier@gentoo.org",
        "time": "Mon May 10 05:21:50 2010 +0000"
      },
      "committer": {
        "name": "Mike Frysinger",
        "email": "vapier@gentoo.org",
        "time": "Sat May 22 14:19:11 2010 -0400"
      },
      "message": "Blackfin: another year of changes (update copyright in boot log)\n\nSigned-off-by: Mike Frysinger \u003cvapier@gentoo.org\u003e\n"
    },
    {
      "commit": "648eee52ccdc623e21b920d6048e93490a4860a7",
      "tree": "1d106f156abb6c7a0169a392f4856cd63893e079",
      "parents": [
        "c70dcabc8eba18113a4735e7b1bd09f7493e38f0"
      ],
      "author": {
        "name": "Robin Getz",
        "email": "robin.getz@analog.com",
        "time": "Tue May 04 14:59:21 2010 +0000"
      },
      "committer": {
        "name": "Mike Frysinger",
        "email": "vapier@gentoo.org",
        "time": "Sat May 22 14:19:11 2010 -0400"
      },
      "message": "Blackfin: optimize strncpy a bit\n\nAdd a little strncpy optimization which can easily cut boot time by 20%.\n\nWhen the kernel is booting with initramfs, it builds up the filesystem\nfrom a cpio archive by calling strncpy_from_user() via fs/namei.c\u0027s\ndo_getname() on every file in the archive (which can be lots) with a\nlength of PATH_MAX (1024).  This causes the dest of the strncpy to be\npadded with many NUL bytes.\n\nThis optimization mostly causes these NUL bytes to be padded with a call\nto memset() which is already optimized for filling memory quickly, but\nthe hardware loop helps a little bit as well.\n\nBoot time measured with \u0027loglevel\u003d0\u0027 so UART speed doesn\u0027t get in the way.\n\nSigned-off-by: Robin Getz \u003crobin.getz@analog.com\u003e\nSigned-off-by: Mike Frysinger \u003cvapier@gentoo.org\u003e\n"
    },
    {
      "commit": "c70dcabc8eba18113a4735e7b1bd09f7493e38f0",
      "tree": "80f2ca9f649b05b2bf0de3027061664db8454748",
      "parents": [
        "479ba6035862a9c08ce4351c7fff8926fde4ede5"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier@gentoo.org",
        "time": "Tue May 04 04:14:08 2010 +0000"
      },
      "committer": {
        "name": "Mike Frysinger",
        "email": "vapier@gentoo.org",
        "time": "Sat May 22 14:19:10 2010 -0400"
      },
      "message": "Blackfin: isram: clean up ITEST_COMMAND macro and improve the selftests\n\nThe IADDR2DTEST() macro had some duplicated logic with bit 11 and some\nincorrect comments, so scrub all of that.\n\nIn order to verify these aren\u0027t a problem (and won\u0027t be in the future),\nextend the self tests to operate on as much L1 SRAM as possible.\n\nSigned-off-by: Mike Frysinger \u003cvapier@gentoo.org\u003e\n"
    },
    {
      "commit": "479ba6035862a9c08ce4351c7fff8926fde4ede5",
      "tree": "93a6419ffdfd38056f26d4362de450f79af044b3",
      "parents": [
        "80fcdb959343ab9e0ee95c11b5ea47c44a2c3004"
      ],
      "author": {
        "name": "Robin Getz",
        "email": "robin.getz@analog.com",
        "time": "Mon May 03 17:23:20 2010 +0000"
      },
      "committer": {
        "name": "Mike Frysinger",
        "email": "vapier@gentoo.org",
        "time": "Sat May 22 14:19:09 2010 -0400"
      },
      "message": "Blackfin: move string functions to normal lib/ assembly\n\nSince \u0027extern inline\u0027 doesn\u0027t work correctly in the context of the Linux\nkernel (too many overriding defines), move the string functions to normal\nlib/ assembly files (like the existing mem funcs).  This avoids the forced\ninline all over the kernel and allows us to place them constantly in L1.\n\nThis also avoids some module failures when gcc inserts calls to string\nfunctions but the kernel build system doesn\u0027t fully consult the library\narchives.\n\nSigned-off-by: Robin Getz \u003crobin.getz@analog.com\u003e\nSigned-off-by: Mike Frysinger \u003cvapier@gentoo.org\u003e\n"
    }
  ],
  "next": "80fcdb959343ab9e0ee95c11b5ea47c44a2c3004"
}
