)]}'
{
  "log": [
    {
      "commit": "d2ebd0f6b89567eb93ead4e2ca0cbe03021f344b",
      "tree": "1f8fc3f7702a8b4d362f5537e135e96f86043f8d",
      "parents": [
        "64212ec569bfdd094f7a23d9b09862209a983559"
      ],
      "author": {
        "name": "Alex,Shi",
        "email": "alex.shi@intel.com",
        "time": "Mon Oct 31 17:08:39 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 31 17:30:48 2011 -0700"
      },
      "message": "kswapd: avoid unnecessary rebalance after an unsuccessful balancing\n\nIn commit 215ddd66 (\"mm: vmscan: only read new_classzone_idx from pgdat\nwhen reclaiming successfully\") , Mel Gorman said kswapd is better to sleep\nafter a unsuccessful balancing if there is tighter reclaim request pending\nin the balancing.  But in the following scenario, kswapd do something that\nis not matched our expectation.  The patch fixes this issue.\n\n1, Read pgdat request A (classzone_idx, order \u003d 3)\n2, balance_pgdat()\n3, During pgdat, a new pgdat request B (classzone_idx, order \u003d 5) is placed\n4, balance_pgdat() returns but failed since returned order \u003d 0\n5, pgdat of request A assigned to balance_pgdat(), and do balancing again.\n   While the expectation behavior of kswapd should try to sleep.\n\nSigned-off-by: Alex Shi \u003calex.shi@intel.com\u003e\nReviewed-by: Tim Chen \u003ctim.c.chen@linux.intel.com\u003e\nAcked-by: Mel Gorman \u003cmgorman@suse.de\u003e\nTested-by: Pádraig Brady \u003cP@draigBrady.com\u003e\nCc: Rik van Riel \u003criel@redhat.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": "64212ec569bfdd094f7a23d9b09862209a983559",
      "tree": "af9a80c08795e602c5a6401fa3599562c2b6be48",
      "parents": [
        "3ee9a4f086716d792219c021e8509f91165a4128"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Mon Oct 31 17:08:38 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 31 17:30:48 2011 -0700"
      },
      "message": "debug-pagealloc: add support for highmem pages\n\nThis adds support for highmem pages poisoning and verification to the\ndebug-pagealloc feature for no-architecture support.\n\n[akpm@linux-foundation.org: remove unneeded preempt_disable/enable]\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": "3ee9a4f086716d792219c021e8509f91165a4128",
      "tree": "f85162b8e024624f07909eaba4e85b89df924ebb",
      "parents": [
        "06d5e032adcbc7d50c606a1396f00e2474e4213e"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Mon Oct 31 17:08:35 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 31 17:30:48 2011 -0700"
      },
      "message": "mm: neaten warn_alloc_failed\n\nAdd __attribute__((format (printf...) to the function to validate format\nand arguments.  Use vsprintf extension %pV to avoid any possible message\ninterleaving.  Coalesce format string.  Convert printks/pr_warning to\npr_warn.\n\n[akpm@linux-foundation.org: use the __printf() macro]\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "06d5e032adcbc7d50c606a1396f00e2474e4213e",
      "tree": "c9c0134ecc8d26f43749b2108325cd8e1bcaadfd",
      "parents": [
        "37a1c49a91ad55f917a399ef2174b5ebda4283f9"
      ],
      "author": {
        "name": "Sonic Zhang",
        "email": "sonic.zhang@analog.com",
        "time": "Mon Oct 31 17:08:31 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 31 17:30:48 2011 -0700"
      },
      "message": "include/asm-generic/page.h: calculate virt_to_page and page_to_virt via predefined macro\n\nOn NOMMU architectures, if physical memory doesn\u0027t start from 0,\nARCH_PFN_OFFSET is defined to generate page index in mem_map array.\nBecause virtual address is equal to physical address, PAGE_OFFSET is\nalways 0.  virt_to_page and page_to_virt should not index page by\nPAGE_OFFSET directly.\n\nSigned-off-by: Sonic Zhang \u003csonic.zhang@analog.com\u003e\nCc: Greg Ungerer \u003cgerg@snapgear.com\u003e\nCc: Geert Uytterhoeven \u003cgeert@linux-m68k.org\u003e\nCc: David Howells \u003cdhowells@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": "37a1c49a91ad55f917a399ef2174b5ebda4283f9",
      "tree": "d272ab0f51016181493c6792f0cf229a87da9ae3",
      "parents": [
        "7b6efc2bc4f19952b25ebf9b236e5ac43cd386c2"
      ],
      "author": {
        "name": "Andrea Arcangeli",
        "email": "aarcange@redhat.com",
        "time": "Mon Oct 31 17:08:30 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 31 17:30:48 2011 -0700"
      },
      "message": "thp: mremap support and TLB optimization\n\nThis adds THP support to mremap (decreases the number of split_huge_page()\ncalls).\n\nHere are also some benchmarks with a proggy like this:\n\n\u003d\u003d\u003d\n#define _GNU_SOURCE\n#include \u003csys/mman.h\u003e\n#include \u003cstdlib.h\u003e\n#include \u003cstdio.h\u003e\n#include \u003cstring.h\u003e\n#include \u003csys/time.h\u003e\n\n#define SIZE (5UL*1024*1024*1024)\n\nint main()\n{\n        static struct timeval oldstamp, newstamp;\n\tlong diffsec;\n\tchar *p, *p2, *p3, *p4;\n\tif (posix_memalign((void **)\u0026p, 2*1024*1024, SIZE))\n\t\tperror(\"memalign\"), exit(1);\n\tif (posix_memalign((void **)\u0026p2, 2*1024*1024, SIZE))\n\t\tperror(\"memalign\"), exit(1);\n\tif (posix_memalign((void **)\u0026p3, 2*1024*1024, 4096))\n\t\tperror(\"memalign\"), exit(1);\n\n\tmemset(p, 0xff, SIZE);\n\tmemset(p2, 0xff, SIZE);\n\tmemset(p3, 0x77, 4096);\n\tgettimeofday(\u0026oldstamp, NULL);\n\tp4 \u003d mremap(p, SIZE, SIZE, MREMAP_FIXED|MREMAP_MAYMOVE, p3);\n\tgettimeofday(\u0026newstamp, NULL);\n\tdiffsec \u003d newstamp.tv_sec - oldstamp.tv_sec;\n\tdiffsec \u003d newstamp.tv_usec - oldstamp.tv_usec + 1000000 * diffsec;\n\tprintf(\"usec %ld\\n\", diffsec);\n\tif (p \u003d\u003d MAP_FAILED || p4 !\u003d p3)\n\t//if (p \u003d\u003d MAP_FAILED)\n\t\tperror(\"mremap\"), exit(1);\n\tif (memcmp(p4, p2, SIZE))\n\t\tprintf(\"mremap bug\\n\"), exit(1);\n\tprintf(\"ok\\n\");\n\n\treturn 0;\n}\n\u003d\u003d\u003d\n\nTHP on\n\n Performance counter stats for \u0027./largepage13\u0027 (3 runs):\n\n          69195836 dTLB-loads                 ( +-   3.546% )  (scaled from 50.30%)\n             60708 dTLB-load-misses           ( +-  11.776% )  (scaled from 52.62%)\n         676266476 dTLB-stores                ( +-   5.654% )  (scaled from 69.54%)\n             29856 dTLB-store-misses          ( +-   4.081% )  (scaled from 89.22%)\n        1055848782 iTLB-loads                 ( +-   4.526% )  (scaled from 80.18%)\n              8689 iTLB-load-misses           ( +-   2.987% )  (scaled from 58.20%)\n\n        7.314454164  seconds time elapsed   ( +-   0.023% )\n\nTHP off\n\n Performance counter stats for \u0027./largepage13\u0027 (3 runs):\n\n        1967379311 dTLB-loads                 ( +-   0.506% )  (scaled from 60.59%)\n           9238687 dTLB-load-misses           ( +-  22.547% )  (scaled from 61.87%)\n        2014239444 dTLB-stores                ( +-   0.692% )  (scaled from 60.40%)\n           3312335 dTLB-store-misses          ( +-   7.304% )  (scaled from 67.60%)\n        6764372065 iTLB-loads                 ( +-   0.925% )  (scaled from 79.00%)\n              8202 iTLB-load-misses           ( +-   0.475% )  (scaled from 70.55%)\n\n        9.693655243  seconds time elapsed   ( +-   0.069% )\n\ngrep thp /proc/vmstat\nthp_fault_alloc 35849\nthp_fault_fallback 0\nthp_collapse_alloc 3\nthp_collapse_alloc_failed 0\nthp_split 0\n\nthp_split 0 confirms no thp split despite plenty of hugepages allocated.\n\nThe measurement of only the mremap time (so excluding the 3 long\nmemset and final long 10GB memory accessing memcmp):\n\nTHP on\n\nusec 14824\nusec 14862\nusec 14859\n\nTHP off\n\nusec 256416\nusec 255981\nusec 255847\n\nWith an older kernel without the mremap optimizations (the below patch\noptimizes the non THP version too).\n\nTHP on\n\nusec 392107\nusec 390237\nusec 404124\n\nTHP off\n\nusec 444294\nusec 445237\nusec 445820\n\nI guess with a threaded program that sends more IPI on large SMP it\u0027d\ncreate an even larger difference.\n\nAll debug options are off except DEBUG_VM to avoid skewing the\nresults.\n\nThe only problem for native 2M mremap like it happens above both the\nsource and destination address must be 2M aligned or the hugepmd can\u0027t be\nmoved without a split but that is an hardware limitation.\n\n[akpm@linux-foundation.org: coding-style nitpicking]\nSigned-off-by: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nAcked-by: Johannes Weiner \u003cjweiner@redhat.com\u003e\nAcked-by: Mel Gorman \u003cmgorman@suse.de\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nCc: Hugh Dickins \u003chughd@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": "7b6efc2bc4f19952b25ebf9b236e5ac43cd386c2",
      "tree": "bae674bd95329a498a5f2cc5d9c23bf5a4a54305",
      "parents": [
        "ebed48460be5abd86d9a24fa7c66378e58109f30"
      ],
      "author": {
        "name": "Andrea Arcangeli",
        "email": "aarcange@redhat.com",
        "time": "Mon Oct 31 17:08:26 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 31 17:30:48 2011 -0700"
      },
      "message": "mremap: avoid sending one IPI per page\n\nThis replaces ptep_clear_flush() with ptep_get_and_clear() and a single\nflush_tlb_range() at the end of the loop, to avoid sending one IPI for\neach page.\n\nThe mmu_notifier_invalidate_range_start/end section is enlarged\naccordingly but this is not going to fundamentally change things.  It was\nmore by accident that the region under mremap was for the most part still\navailable for secondary MMUs: the primary MMU was never allowed to\nreliably access that region for the duration of the mremap (modulo\ntrapping SIGSEGV on the old address range which sounds unpractical and\nflakey).  If users wants secondary MMUs not to lose access to a large\nregion under mremap they should reduce the mremap size accordingly in\nuserland and run multiple calls.  Overall this will run faster so it\u0027s\nactually going to reduce the time the region is under mremap for the\nprimary MMU which should provide a net benefit to apps.\n\nFor KVM this is a noop because the guest physical memory is never\nmremapped, there\u0027s just no point it ever moving it while guest runs.  One\ntarget of this optimization is JVM GC (so unrelated to the mmu notifier\nlogic).\n\nSigned-off-by: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nAcked-by: Johannes Weiner \u003cjweiner@redhat.com\u003e\nAcked-by: Mel Gorman \u003cmgorman@suse.de\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nCc: Hugh Dickins \u003chughd@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": "ebed48460be5abd86d9a24fa7c66378e58109f30",
      "tree": "721d935953c58ac014e3d00ea1092ab480ea3356",
      "parents": [
        "6661672053aee709d93f5dbd7887c789364c11d4"
      ],
      "author": {
        "name": "Andrea Arcangeli",
        "email": "aarcange@redhat.com",
        "time": "Mon Oct 31 17:08:22 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 31 17:30:47 2011 -0700"
      },
      "message": "mremap: check for overflow using deltas\n\nUsing \"- 1\" relies on the old_end to be page aligned and PAGE_SIZE \u003e 1,\nthose are reasonable requirements but the check remains obscure and it\nlooks more like an off by one error than an overflow check.  This I feel\nwill improve readability.\n\nSigned-off-by: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nAcked-by: Johannes Weiner \u003cjweiner@redhat.com\u003e\nAcked-by: Mel Gorman \u003cmgorman@suse.de\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nCc: Hugh Dickins \u003chughd@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": "6661672053aee709d93f5dbd7887c789364c11d4",
      "tree": "9d11bdb001d4e08cb03f8fffb1e499a9204408d1",
      "parents": [
        "0a93ebef698b08ed04af0d7d913bab8aedfdc253"
      ],
      "author": {
        "name": "Sam Ravnborg",
        "email": "sam@ravnborg.org",
        "time": "Mon Oct 31 17:08:20 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 31 17:30:47 2011 -0700"
      },
      "message": "memblock: add NO_BOOTMEM config symbol\n\nWith the NO_BOOTMEM symbol added architectures may now use the following\nsyntax to tell that they do not need bootmem:\n\n\tselect NO_BOOTMEM\n\nThis is much more convinient than adding a new kconfig symbol which was\notherwise required.\n\nAdding this symbol does not conflict with the architctures that already\ndefine their own symbol.\n\nSigned-off-by: Sam Ravnborg \u003csam@ravnborg.org\u003e\nCc: Yinghai Lu \u003cyinghai@kernel.org\u003e\nAcked-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0a93ebef698b08ed04af0d7d913bab8aedfdc253",
      "tree": "dcdb4bba9355647dd060d9150422537ad126442a",
      "parents": [
        "f5252e009d5b87071a919221e4f6624184005368"
      ],
      "author": {
        "name": "Sam Ravnborg",
        "email": "sam@ravnborg.org",
        "time": "Mon Oct 31 17:08:16 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 31 17:30:47 2011 -0700"
      },
      "message": "memblock: add memblock_start_of_DRAM()\n\nSPARC32 require access to the start address.  Add a new helper\nmemblock_start_of_DRAM() to give access to the address of the first\nmemblock - which contains the lowest address.\n\nThe awkward name was chosen to match the already present\nmemblock_end_of_DRAM().\n\nSigned-off-by: Sam Ravnborg \u003csam@ravnborg.org\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: Yinghai Lu \u003cyinghai@kernel.org\u003e\nAcked-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f5252e009d5b87071a919221e4f6624184005368",
      "tree": "4be380e99c468dcb10597c445eb6b801897eafea",
      "parents": [
        "8c5fb8eadde41f67c61a7ac2d3246dab87bf7020"
      ],
      "author": {
        "name": "Mitsuo Hayasaka",
        "email": "mitsuo.hayasaka.hu@hitachi.com",
        "time": "Mon Oct 31 17:08:13 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 31 17:30:47 2011 -0700"
      },
      "message": "mm: avoid null pointer access in vm_struct via /proc/vmallocinfo\n\nThe /proc/vmallocinfo shows information about vmalloc allocations in\nvmlist that is a linklist of vm_struct.  It, however, may access pages\nfield of vm_struct where a page was not allocated.  This results in a null\npointer access and leads to a kernel panic.\n\nWhy this happens: In __vmalloc_node_range() called from vmalloc(), newly\nallocated vm_struct is added to vmlist at __get_vm_area_node() and then,\nsome fields of vm_struct such as nr_pages and pages are set at\n__vmalloc_area_node().  In other words, it is added to vmlist before it is\nfully initialized.  At the same time, when the /proc/vmallocinfo is read,\nit accesses the pages field of vm_struct according to the nr_pages field\nat show_numa_info().  Thus, a null pointer access happens.\n\nThe patch adds the newly allocated vm_struct to the vmlist *after* it is\nfully initialized.  So, it can avoid accessing the pages field with\nunallocated page when show_numa_info() is called.\n\nSigned-off-by: Mitsuo Hayasaka \u003cmitsuo.hayasaka.hu@hitachi.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Namhyung Kim \u003cnamhyung@gmail.com\u003e\nCc: \"Paul E. McKenney\" \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: Jeremy Fitzhardinge \u003cjeremy.fitzhardinge@citrix.com\u003e\nCc: \u003cstable@kernel.org\u003e\nCc: \u003cstable@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8c5fb8eadde41f67c61a7ac2d3246dab87bf7020",
      "tree": "77d333e6e5f939c43ee57f16f499764e3ddb815a",
      "parents": [
        "798248206b59acc6e1238c778281419c041891a7"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Mon Oct 31 17:08:10 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 31 17:30:47 2011 -0700"
      },
      "message": "mm/debug-pagealloc.c: use memchr_inv\n\nUse newly introduced memchr_inv() for page verification.\n\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": "798248206b59acc6e1238c778281419c041891a7",
      "tree": "ff8564431367b442b18bca4a0a9732e5799e2391",
      "parents": [
        "77311139f364d7f71fc9ba88f59fd90e60205007"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Mon Oct 31 17:08:07 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 31 17:30:47 2011 -0700"
      },
      "message": "lib/string.c: introduce memchr_inv()\n\nmemchr_inv() is mainly used to check whether the whole buffer is filled\nwith just a specified byte.\n\nThe function name and prototype are stolen from logfs and the\nimplementation is from SLUB.\n\nSigned-off-by: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nAcked-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nAcked-by: Pekka Enberg \u003cpenberg@kernel.org\u003e\nCc: Matt Mackall \u003cmpm@selenic.com\u003e\nAcked-by: Joern Engel \u003cjoern@logfs.org\u003e\nCc: Marcin Slusarz \u003cmarcin.slusarz@gmail.com\u003e\nCc: Eric Dumazet \u003ceric.dumazet@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": "77311139f364d7f71fc9ba88f59fd90e60205007",
      "tree": "5cde11d67e431781893bb0375dcae665750ed6dc",
      "parents": [
        "16fb951237c2b0b28037b992ee44e7ee401c30d1"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Mon Oct 31 17:08:05 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 31 17:30:47 2011 -0700"
      },
      "message": "mm/debug-pagealloc.c: use plain __ratelimit() instead of printk_ratelimit()\n\nprintk_ratelimit() should not be used, because it shares ratelimiting\nstate with all other unrelated printk_ratelimit() callsites.\n\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": "16fb951237c2b0b28037b992ee44e7ee401c30d1",
      "tree": "756ba52239d304d8f45deb102f17960f0a8517ec",
      "parents": [
        "49ea7eb65e7c5060807fb9312b1ad4c3eab82e2c"
      ],
      "author": {
        "name": "Shaohua Li",
        "email": "shaohua.li@intel.com",
        "time": "Mon Oct 31 17:08:02 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 31 17:30:47 2011 -0700"
      },
      "message": "vmscan: count pages into balanced for zone with good watermark\n\nIt\u0027s possible a zone watermark is ok when entering the balance_pgdat()\nloop, while the zone is within the requested classzone_idx.  Count pages\nfrom this zone into `balanced\u0027.  In this way, we can skip shrinking zones\ntoo much for high order allocation.\n\nSigned-off-by: Shaohua Li \u003cshaohua.li@intel.com\u003e\nAcked-by: Mel Gorman \u003cmgorman@suse.de\u003e\nReviewed-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "49ea7eb65e7c5060807fb9312b1ad4c3eab82e2c",
      "tree": "88eaa206cdcac1190817820a0eb56bca2585f9ea",
      "parents": [
        "92df3a723f84cdf8133560bbff950a7a99e92bc9"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mgorman@suse.de",
        "time": "Mon Oct 31 17:07:59 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 31 17:30:47 2011 -0700"
      },
      "message": "mm: vmscan: immediately reclaim end-of-LRU dirty pages when writeback completes\n\nWhen direct reclaim encounters a dirty page, it gets recycled around the\nLRU for another cycle.  This patch marks the page PageReclaim similar to\ndeactivate_page() so that the page gets reclaimed almost immediately after\nthe page gets cleaned.  This is to avoid reclaiming clean pages that are\nyounger than a dirty page encountered at the end of the LRU that might\nhave been something like a use-once page.\n\nSigned-off-by: Mel Gorman \u003cmgorman@suse.de\u003e\nAcked-by: Johannes Weiner \u003cjweiner@redhat.com\u003e\nCc: Dave Chinner \u003cdavid@fromorbit.com\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nCc: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nCc: Jan Kara \u003cjack@suse.cz\u003e\nCc: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Alex Elder \u003caelder@sgi.com\u003e\nCc: Theodore Ts\u0027o \u003ctytso@mit.edu\u003e\nCc: Chris Mason \u003cchris.mason@oracle.com\u003e\nCc: Dave Hansen \u003cdave@linux.vnet.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "92df3a723f84cdf8133560bbff950a7a99e92bc9",
      "tree": "503efc278236d877508da66ea7ec7cbb81203d64",
      "parents": [
        "f84f6e2b0868f198f97a32ba503d6f9f319a249a"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mgorman@suse.de",
        "time": "Mon Oct 31 17:07:56 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 31 17:30:46 2011 -0700"
      },
      "message": "mm: vmscan: throttle reclaim if encountering too many dirty pages under writeback\n\nWorkloads that are allocating frequently and writing files place a large\nnumber of dirty pages on the LRU.  With use-once logic, it is possible for\nthem to reach the end of the LRU quickly requiring the reclaimer to scan\nmore to find clean pages.  Ordinarily, processes that are dirtying memory\nwill get throttled by dirty balancing but this is a global heuristic and\ndoes not take into account that LRUs are maintained on a per-zone basis.\nThis can lead to a situation whereby reclaim is scanning heavily, skipping\nover a large number of pages under writeback and recycling them around the\nLRU consuming CPU.\n\nThis patch checks how many of the number of pages isolated from the LRU\nwere dirty and under writeback.  If a percentage of them under writeback,\nthe process will be throttled if a backing device or the zone is\ncongested.  Note that this applies whether it is anonymous or file-backed\npages that are under writeback meaning that swapping is potentially\nthrottled.  This is intentional due to the fact if the swap device is\ncongested, scanning more pages and dispatching more IO is not going to\nhelp matters.\n\nThe percentage that must be in writeback depends on the priority.  At\ndefault priority, all of them must be dirty.  At DEF_PRIORITY-1, 50% of\nthem must be, DEF_PRIORITY-2, 25% etc.  i.e.  as pressure increases the\ngreater the likelihood the process will get throttled to allow the flusher\nthreads to make some progress.\n\nSigned-off-by: Mel Gorman \u003cmgorman@suse.de\u003e\nReviewed-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nAcked-by: Johannes Weiner \u003cjweiner@redhat.com\u003e\nCc: Dave Chinner \u003cdavid@fromorbit.com\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nCc: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nCc: Jan Kara \u003cjack@suse.cz\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Alex Elder \u003caelder@sgi.com\u003e\nCc: Theodore Ts\u0027o \u003ctytso@mit.edu\u003e\nCc: Chris Mason \u003cchris.mason@oracle.com\u003e\nCc: Dave Hansen \u003cdave@linux.vnet.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f84f6e2b0868f198f97a32ba503d6f9f319a249a",
      "tree": "2103afe0304afd0045dca4b92dfd35922cfc289b",
      "parents": [
        "966dbde2c208e07bab7a45a7855e1e693eabe661"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mgorman@suse.de",
        "time": "Mon Oct 31 17:07:51 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 31 17:30:46 2011 -0700"
      },
      "message": "mm: vmscan: do not writeback filesystem pages in kswapd except in high priority\n\nIt is preferable that no dirty pages are dispatched for cleaning from the\npage reclaim path.  At normal priorities, this patch prevents kswapd\nwriting pages.\n\nHowever, page reclaim does have a requirement that pages be freed in a\nparticular zone.  If it is failing to make sufficient progress (reclaiming\n\u003c SWAP_CLUSTER_MAX at any priority priority), the priority is raised to\nscan more pages.  A priority of DEF_PRIORITY - 3 is considered to be the\npoint where kswapd is getting into trouble reclaiming pages.  If this\npriority is reached, kswapd will dispatch pages for writing.\n\nSigned-off-by: Mel Gorman \u003cmgorman@suse.de\u003e\nReviewed-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: Dave Chinner \u003cdavid@fromorbit.com\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nCc: Johannes Weiner \u003cjweiner@redhat.com\u003e\nCc: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nCc: Jan Kara \u003cjack@suse.cz\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Alex Elder \u003caelder@sgi.com\u003e\nCc: Theodore Ts\u0027o \u003ctytso@mit.edu\u003e\nCc: Chris Mason \u003cchris.mason@oracle.com\u003e\nCc: Dave Hansen \u003cdave@linux.vnet.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "966dbde2c208e07bab7a45a7855e1e693eabe661",
      "tree": "4d1687ad52be80141d90a5bc3c5c6de64d9bad24",
      "parents": [
        "94054fa3fca1fd78db02cb3d68d5627120f0a1d4"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mgorman@suse.de",
        "time": "Mon Oct 31 17:07:48 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 31 17:30:46 2011 -0700"
      },
      "message": "ext4: warn if direct reclaim tries to writeback pages\n\nDirect reclaim should never writeback pages.  Warn if an attempt is made.\n\nSigned-off-by: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Dave Chinner \u003cdavid@fromorbit.com\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nCc: Johannes Weiner \u003cjweiner@redhat.com\u003e\nCc: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nCc: Jan Kara \u003cjack@suse.cz\u003e\nCc: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Alex Elder \u003caelder@sgi.com\u003e\nCc: Theodore Ts\u0027o \u003ctytso@mit.edu\u003e\nCc: Chris Mason \u003cchris.mason@oracle.com\u003e\nCc: Dave Hansen \u003cdave@linux.vnet.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "94054fa3fca1fd78db02cb3d68d5627120f0a1d4",
      "tree": "6ba391fcbad8500610706da5fbc03ffe9cecfd55",
      "parents": [
        "a18bba061c789f5815c3efc3c80e6ac269911964"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mgorman@suse.de",
        "time": "Mon Oct 31 17:07:45 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 31 17:30:46 2011 -0700"
      },
      "message": "xfs: warn if direct reclaim tries to writeback pages\n\nDirect reclaim should never writeback pages.  For now, handle the\nsituation and warn about it.  Ultimately, this will be a BUG_ON.\n\nSigned-off-by: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Dave Chinner \u003cdavid@fromorbit.com\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nCc: Johannes Weiner \u003cjweiner@redhat.com\u003e\nCc: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nCc: Jan Kara \u003cjack@suse.cz\u003e\nCc: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Alex Elder \u003caelder@sgi.com\u003e\nCc: Theodore Ts\u0027o \u003ctytso@mit.edu\u003e\nCc: Chris Mason \u003cchris.mason@oracle.com\u003e\nCc: Dave Hansen \u003cdave@linux.vnet.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a18bba061c789f5815c3efc3c80e6ac269911964",
      "tree": "bec0234fb338f8e06b6e39df2cfa09acf2a968a3",
      "parents": [
        "ee72886d8ed5d9de3fa0ed3b99a7ca7702576a96"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mgorman@suse.de",
        "time": "Mon Oct 31 17:07:42 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 31 17:30:46 2011 -0700"
      },
      "message": "mm: vmscan: remove dead code related to lumpy reclaim waiting on pages under writeback\n\nLumpy reclaim worked with two passes - the first which queued pages for IO\nand the second which waited on writeback.  As direct reclaim can no longer\nwrite pages there is some dead code.  This patch removes it but direct\nreclaim will continue to wait on pages under writeback while in\nsynchronous reclaim mode.\n\nSigned-off-by: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Dave Chinner \u003cdavid@fromorbit.com\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nCc: Johannes Weiner \u003cjweiner@redhat.com\u003e\nCc: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nCc: Jan Kara \u003cjack@suse.cz\u003e\nCc: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Alex Elder \u003caelder@sgi.com\u003e\nCc: Theodore Ts\u0027o \u003ctytso@mit.edu\u003e\nCc: Chris Mason \u003cchris.mason@oracle.com\u003e\nCc: Dave Hansen \u003cdave@linux.vnet.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ee72886d8ed5d9de3fa0ed3b99a7ca7702576a96",
      "tree": "d9596005d3ea38541c5dfe1c2a0b7d5a4d73488f",
      "parents": [
        "e10d59f2c3decaf22cc5d3de7040eba202bc2df3"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mel@csn.ul.ie",
        "time": "Mon Oct 31 17:07:38 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 31 17:30:46 2011 -0700"
      },
      "message": "mm: vmscan: do not writeback filesystem pages in direct reclaim\n\nTesting from the XFS folk revealed that there is still too much I/O from\nthe end of the LRU in kswapd.  Previously it was considered acceptable by\nVM people for a small number of pages to be written back from reclaim with\ntesting generally showing about 0.3% of pages reclaimed were written back\n(higher if memory was low).  That writing back a small number of pages is\nok has been heavily disputed for quite some time and Dave Chinner\nexplained it well;\n\n\tIt doesn\u0027t have to be a very high number to be a problem. IO\n\tis orders of magnitude slower than the CPU time it takes to\n\tflush a page, so the cost of making a bad flush decision is\n\tvery high. And single page writeback from the LRU is almost\n\talways a bad flush decision.\n\nTo complicate matters, filesystems respond very differently to requests\nfrom reclaim according to Christoph Hellwig;\n\n\txfs tries to write it back if the requester is kswapd\n\text4 ignores the request if it\u0027s a delayed allocation\n\tbtrfs ignores the request\n\nAs a result, each filesystem has different performance characteristics\nwhen under memory pressure and there are many pages being dirtied.  In\nsome cases, the request is ignored entirely so the VM cannot depend on the\nIO being dispatched.\n\nThe objective of this series is to reduce writing of filesystem-backed\npages from reclaim, play nicely with writeback that is already in progress\nand throttle reclaim appropriately when writeback pages are encountered.\nThe assumption is that the flushers will always write pages faster than if\nreclaim issues the IO.\n\nA secondary goal is to avoid the problem whereby direct reclaim splices\ntwo potentially deep call stacks together.\n\nThere is a potential new problem as reclaim has less control over how long\nbefore a page in a particularly zone or container is cleaned and direct\nreclaimers depend on kswapd or flusher threads to do the necessary work.\nHowever, as filesystems sometimes ignore direct reclaim requests already,\nit is not expected to be a serious issue.\n\nPatch 1 disables writeback of filesystem pages from direct reclaim\n\tentirely. Anonymous pages are still written.\n\nPatch 2 removes dead code in lumpy reclaim as it is no longer able\n\tto synchronously write pages. This hurts lumpy reclaim but\n\tthere is an expectation that compaction is used for hugepage\n\tallocations these days and lumpy reclaim\u0027s days are numbered.\n\nPatches 3-4 add warnings to XFS and ext4 if called from\n\tdirect reclaim. With patch 1, this \"never happens\" and is\n\tintended to catch regressions in this logic in the future.\n\nPatch 5 disables writeback of filesystem pages from kswapd unless\n\tthe priority is raised to the point where kswapd is considered\n\tto be in trouble.\n\nPatch 6 throttles reclaimers if too many dirty pages are being\n\tencountered and the zones or backing devices are congested.\n\nPatch 7 invalidates dirty pages found at the end of the LRU so they\n\tare reclaimed quickly after being written back rather than\n\twaiting for a reclaimer to find them\n\nI consider this series to be orthogonal to the writeback work but it is\nworth noting that the writeback work affects the viability of patch 8 in\nparticular.\n\nI tested this on ext4 and xfs using fs_mark, a simple writeback test based\non dd and a micro benchmark that does a streaming write to a large mapping\n(exercises use-once LRU logic) followed by streaming writes to a mix of\nanonymous and file-backed mappings.  The command line for fs_mark when\nbotted with 512M looked something like\n\n./fs_mark -d  /tmp/fsmark-2676  -D  100  -N  150  -n  150  -L  25  -t  1  -S0  -s  10485760\n\nThe number of files was adjusted depending on the amount of available\nmemory so that the files created was about 3xRAM.  For multiple threads,\nthe -d switch is specified multiple times.\n\nThe test machine is x86-64 with an older generation of AMD processor with\n4 cores.  The underlying storage was 4 disks configured as RAID-0 as this\nwas the best configuration of storage I had available.  Swap is on a\nseparate disk.  Dirty ratio was tuned to 40% instead of the default of\n20%.\n\nTesting was run with and without monitors to both verify that the patches\nwere operating as expected and that any performance gain was real and not\ndue to interference from monitors.\n\nHere is a summary of results based on testing XFS.\n\n512M1P-xfs           Files/s  mean                 32.69 ( 0.00%)     34.44 ( 5.08%)\n512M1P-xfs           Elapsed Time fsmark                    51.41     48.29\n512M1P-xfs           Elapsed Time simple-wb                114.09    108.61\n512M1P-xfs           Elapsed Time mmap-strm                113.46    109.34\n512M1P-xfs           Kswapd efficiency fsmark                 62%       63%\n512M1P-xfs           Kswapd efficiency simple-wb              56%       61%\n512M1P-xfs           Kswapd efficiency mmap-strm              44%       42%\n512M-xfs             Files/s  mean                 30.78 ( 0.00%)     35.94 (14.36%)\n512M-xfs             Elapsed Time fsmark                    56.08     48.90\n512M-xfs             Elapsed Time simple-wb                112.22     98.13\n512M-xfs             Elapsed Time mmap-strm                219.15    196.67\n512M-xfs             Kswapd efficiency fsmark                 54%       56%\n512M-xfs             Kswapd efficiency simple-wb              54%       55%\n512M-xfs             Kswapd efficiency mmap-strm              45%       44%\n512M-4X-xfs          Files/s  mean                 30.31 ( 0.00%)     33.33 ( 9.06%)\n512M-4X-xfs          Elapsed Time fsmark                    63.26     55.88\n512M-4X-xfs          Elapsed Time simple-wb                100.90     90.25\n512M-4X-xfs          Elapsed Time mmap-strm                261.73    255.38\n512M-4X-xfs          Kswapd efficiency fsmark                 49%       50%\n512M-4X-xfs          Kswapd efficiency simple-wb              54%       56%\n512M-4X-xfs          Kswapd efficiency mmap-strm              37%       36%\n512M-16X-xfs         Files/s  mean                 60.89 ( 0.00%)     65.22 ( 6.64%)\n512M-16X-xfs         Elapsed Time fsmark                    67.47     58.25\n512M-16X-xfs         Elapsed Time simple-wb                103.22     90.89\n512M-16X-xfs         Elapsed Time mmap-strm                237.09    198.82\n512M-16X-xfs         Kswapd efficiency fsmark                 45%       46%\n512M-16X-xfs         Kswapd efficiency simple-wb              53%       55%\n512M-16X-xfs         Kswapd efficiency mmap-strm              33%       33%\n\nUp until 512-4X, the FSmark improvements were statistically significant.\nFor the 4X and 16X tests the results were within standard deviations but\njust barely.  The time to completion for all tests is improved which is an\nimportant result.  In general, kswapd efficiency is not affected by\nskipping dirty pages.\n\n1024M1P-xfs          Files/s  mean                 39.09 ( 0.00%)     41.15 ( 5.01%)\n1024M1P-xfs          Elapsed Time fsmark                    84.14     80.41\n1024M1P-xfs          Elapsed Time simple-wb                210.77    184.78\n1024M1P-xfs          Elapsed Time mmap-strm                162.00    160.34\n1024M1P-xfs          Kswapd efficiency fsmark                 69%       75%\n1024M1P-xfs          Kswapd efficiency simple-wb              71%       77%\n1024M1P-xfs          Kswapd efficiency mmap-strm              43%       44%\n1024M-xfs            Files/s  mean                 35.45 ( 0.00%)     37.00 ( 4.19%)\n1024M-xfs            Elapsed Time fsmark                    94.59     91.00\n1024M-xfs            Elapsed Time simple-wb                229.84    195.08\n1024M-xfs            Elapsed Time mmap-strm                405.38    440.29\n1024M-xfs            Kswapd efficiency fsmark                 79%       71%\n1024M-xfs            Kswapd efficiency simple-wb              74%       74%\n1024M-xfs            Kswapd efficiency mmap-strm              39%       42%\n1024M-4X-xfs         Files/s  mean                 32.63 ( 0.00%)     35.05 ( 6.90%)\n1024M-4X-xfs         Elapsed Time fsmark                   103.33     97.74\n1024M-4X-xfs         Elapsed Time simple-wb                204.48    178.57\n1024M-4X-xfs         Elapsed Time mmap-strm                528.38    511.88\n1024M-4X-xfs         Kswapd efficiency fsmark                 81%       70%\n1024M-4X-xfs         Kswapd efficiency simple-wb              73%       72%\n1024M-4X-xfs         Kswapd efficiency mmap-strm              39%       38%\n1024M-16X-xfs        Files/s  mean                 42.65 ( 0.00%)     42.97 ( 0.74%)\n1024M-16X-xfs        Elapsed Time fsmark                   103.11     99.11\n1024M-16X-xfs        Elapsed Time simple-wb                200.83    178.24\n1024M-16X-xfs        Elapsed Time mmap-strm                397.35    459.82\n1024M-16X-xfs        Kswapd efficiency fsmark                 84%       69%\n1024M-16X-xfs        Kswapd efficiency simple-wb              74%       73%\n1024M-16X-xfs        Kswapd efficiency mmap-strm              39%       40%\n\nAll FSMark tests up to 16X had statistically significant improvements.\nFor the most part, tests are completing faster with the exception of the\nstreaming writes to a mixture of anonymous and file-backed mappings which\nwere slower in two cases\n\nIn the cases where the mmap-strm tests were slower, there was more\nswapping due to dirty pages being skipped.  The number of additional pages\nswapped is almost identical to the fewer number of pages written from\nreclaim.  In other words, roughly the same number of pages were reclaimed\nbut swapping was slower.  As the test is a bit unrealistic and stresses\nmemory heavily, the small shift is acceptable.\n\n4608M1P-xfs          Files/s  mean                 29.75 ( 0.00%)     30.96 ( 3.91%)\n4608M1P-xfs          Elapsed Time fsmark                   512.01    492.15\n4608M1P-xfs          Elapsed Time simple-wb                618.18    566.24\n4608M1P-xfs          Elapsed Time mmap-strm                488.05    465.07\n4608M1P-xfs          Kswapd efficiency fsmark                 93%       86%\n4608M1P-xfs          Kswapd efficiency simple-wb              88%       84%\n4608M1P-xfs          Kswapd efficiency mmap-strm              46%       45%\n4608M-xfs            Files/s  mean                 27.60 ( 0.00%)     28.85 ( 4.33%)\n4608M-xfs            Elapsed Time fsmark                   555.96    532.34\n4608M-xfs            Elapsed Time simple-wb                659.72    571.85\n4608M-xfs            Elapsed Time mmap-strm               1082.57   1146.38\n4608M-xfs            Kswapd efficiency fsmark                 89%       91%\n4608M-xfs            Kswapd efficiency simple-wb              88%       82%\n4608M-xfs            Kswapd efficiency mmap-strm              48%       46%\n4608M-4X-xfs         Files/s  mean                 26.00 ( 0.00%)     27.47 ( 5.35%)\n4608M-4X-xfs         Elapsed Time fsmark                   592.91    564.00\n4608M-4X-xfs         Elapsed Time simple-wb                616.65    575.07\n4608M-4X-xfs         Elapsed Time mmap-strm               1773.02   1631.53\n4608M-4X-xfs         Kswapd efficiency fsmark                 90%       94%\n4608M-4X-xfs         Kswapd efficiency simple-wb              87%       82%\n4608M-4X-xfs         Kswapd efficiency mmap-strm              43%       43%\n4608M-16X-xfs        Files/s  mean                 26.07 ( 0.00%)     26.42 ( 1.32%)\n4608M-16X-xfs        Elapsed Time fsmark                   602.69    585.78\n4608M-16X-xfs        Elapsed Time simple-wb                606.60    573.81\n4608M-16X-xfs        Elapsed Time mmap-strm               1549.75   1441.86\n4608M-16X-xfs        Kswapd efficiency fsmark                 98%       98%\n4608M-16X-xfs        Kswapd efficiency simple-wb              88%       82%\n4608M-16X-xfs        Kswapd efficiency mmap-strm              44%       42%\n\nUnlike the other tests, the fsmark results are not statistically\nsignificant but the min and max times are both improved and for the most\npart, tests completed faster.\n\nThere are other indications that this is an improvement as well.  For\nexample, in the vast majority of cases, there were fewer pages scanned by\ndirect reclaim implying in many cases that stalls due to direct reclaim\nare reduced.  KSwapd is scanning more due to skipping dirty pages which is\nunfortunate but the CPU usage is still acceptable\n\nIn an earlier set of tests, I used blktrace and in almost all cases\nthroughput throughout the entire test was higher.  However, I ended up\ndiscarding those results as recording blktrace data was too heavy for my\nliking.\n\nOn a laptop, I plugged in a USB stick and ran a similar tests of tests\nusing it as backing storage.  A desktop environment was running and for\nthe entire duration of the tests, firefox and gnome terminal were\nlaunching and exiting to vaguely simulate a user.\n\n1024M-xfs            Files/s  mean               0.41 ( 0.00%)        0.44 ( 6.82%)\n1024M-xfs            Elapsed Time fsmark               2053.52   1641.03\n1024M-xfs            Elapsed Time simple-wb            1229.53    768.05\n1024M-xfs            Elapsed Time mmap-strm            4126.44   4597.03\n1024M-xfs            Kswapd efficiency fsmark              84%       85%\n1024M-xfs            Kswapd efficiency simple-wb           92%       81%\n1024M-xfs            Kswapd efficiency mmap-strm           60%       51%\n1024M-xfs            Avg wait ms fsmark                5404.53     4473.87\n1024M-xfs            Avg wait ms simple-wb             2541.35     1453.54\n1024M-xfs            Avg wait ms mmap-strm             3400.25     3852.53\n\nThe mmap-strm results were hurt because firefox launching had a tendency\nto push the test out of memory.  On the postive side, firefox launched\nmarginally faster with the patches applied.  Time to completion for many\ntests was faster but more importantly - the \"Avg wait\" time as measured by\niostat was far lower implying the system would be more responsive.  It was\nalso the case that \"Avg wait ms\" on the root filesystem was lower.  I\ntested it manually and while the system felt slightly more responsive\nwhile copying data to a USB stick, it was marginal enough that it could be\nmy imagination.\n\nThis patch: do not writeback filesystem pages in direct reclaim.\n\nWhen kswapd is failing to keep zones above the min watermark, a process\nwill enter direct reclaim in the same manner kswapd does.  If a dirty page\nis encountered during the scan, this page is written to backing storage\nusing mapping-\u003ewritepage.\n\nThis causes two problems.  First, it can result in very deep call stacks,\nparticularly if the target storage or filesystem are complex.  Some\nfilesystems ignore write requests from direct reclaim as a result.  The\nsecond is that a single-page flush is inefficient in terms of IO.  While\nthere is an expectation that the elevator will merge requests, this does\nnot always happen.  Quoting Christoph Hellwig;\n\n\tThe elevator has a relatively small window it can operate on,\n\tand can never fix up a bad large scale writeback pattern.\n\nThis patch prevents direct reclaim writing back filesystem pages by\nchecking if current is kswapd.  Anonymous pages are still written to swap\nas there is not the equivalent of a flusher thread for anonymous pages.\nIf the dirty pages cannot be written back, they are placed back on the LRU\nlists.  There is now a direct dependency on dirty page balancing to\nprevent too many pages in the system being dirtied which would prevent\nreclaim making forward progress.\n\nSigned-off-by: Mel Gorman \u003cmgorman@suse.de\u003e\nReviewed-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: Dave Chinner \u003cdavid@fromorbit.com\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nCc: Johannes Weiner \u003cjweiner@redhat.com\u003e\nCc: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nCc: Jan Kara \u003cjack@suse.cz\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Alex Elder \u003caelder@sgi.com\u003e\nCc: Theodore Ts\u0027o \u003ctytso@mit.edu\u003e\nCc: Chris Mason \u003cchris.mason@oracle.com\u003e\nCc: Dave Hansen \u003cdave@linux.vnet.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e10d59f2c3decaf22cc5d3de7040eba202bc2df3",
      "tree": "68a25b573ddd1701d6a50f22b26287eca8e5c1ea",
      "parents": [
        "bc3e53f682d93df677dbd5006a404722b3adfe18"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "cl@linux.com",
        "time": "Mon Oct 31 17:07:34 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 31 17:30:46 2011 -0700"
      },
      "message": "mm: add comments to explain mm_struct fields\n\nAdd comments to explain the page statistics field in the mm_struct.\n\n[akpm@linux-foundation.org: add missing ;]\nSigned-off-by: Christoph Lameter \u003ccl@linux.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bc3e53f682d93df677dbd5006a404722b3adfe18",
      "tree": "f386c29f13626e2b7d98d5a52525a78a9b59e447",
      "parents": [
        "f11c0ca501af89fc07b0d9f17531ba3b68a4ef39"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "cl@linux.com",
        "time": "Mon Oct 31 17:07:30 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 31 17:30:46 2011 -0700"
      },
      "message": "mm: distinguish between mlocked and pinned pages\n\nSome kernel components pin user space memory (infiniband and perf) (by\nincreasing the page count) and account that memory as \"mlocked\".\n\nThe difference between mlocking and pinning is:\n\nA. mlocked pages are marked with PG_mlocked and are exempt from\n   swapping. Page migration may move them around though.\n   They are kept on a special LRU list.\n\nB. Pinned pages cannot be moved because something needs to\n   directly access physical memory. They may not be on any\n   LRU list.\n\nI recently saw an mlockalled process where mm-\u003elocked_vm became\nbigger than the virtual size of the process (!) because some\nmemory was accounted for twice:\n\nOnce when the page was mlocked and once when the Infiniband\nlayer increased the refcount because it needt to pin the RDMA\nmemory.\n\nThis patch introduces a separate counter for pinned pages and\naccounts them seperately.\n\nSigned-off-by: Christoph Lameter \u003ccl@linux.com\u003e\nCc: Mike Marciniszyn \u003cinfinipath@qlogic.com\u003e\nCc: Roland Dreier \u003croland@kernel.org\u003e\nCc: Sean Hefty \u003csean.hefty@intel.com\u003e\nCc: Hugh Dickins \u003chughd@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": "f11c0ca501af89fc07b0d9f17531ba3b68a4ef39",
      "tree": "c66a24b4ca2778b940c01a2af78eca6abc0b3421",
      "parents": [
        "4f31888c104687078f8d88c2f11eca1080c88464"
      ],
      "author": {
        "name": "Johannes Weiner",
        "email": "jweiner@redhat.com",
        "time": "Mon Oct 31 17:07:27 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 31 17:30:46 2011 -0700"
      },
      "message": "mm: vmscan: drop nr_force_scan[] from get_scan_count\n\nThe nr_force_scan[] tuple holds the effective scan numbers for anon and\nfile pages in case the situation called for a forced scan and the\nregularly calculated scan numbers turned out zero.\n\nHowever, the effective scan number can always be assumed to be\nSWAP_CLUSTER_MAX right before the division into anon and file.  The\nnumerators and denominator are properly set up for all cases, be it force\nscan for just file, just anon, or both, to do the right thing.\n\nSigned-off-by: Johannes Weiner \u003cjweiner@redhat.com\u003e\nReviewed-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nReviewed-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Ying Han \u003cyinghan@google.com\u003e\nCc: Balbir Singh \u003cbsingharora@gmail.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\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": "4f31888c104687078f8d88c2f11eca1080c88464",
      "tree": "453bcfffe1955f6087156916eb102af1575206ee",
      "parents": [
        "f5fc870da2f8798edb5481cd2137a3b2d5bd1b19"
      ],
      "author": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Mon Oct 31 17:07:24 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 31 17:30:45 2011 -0700"
      },
      "message": "mm: output a list of loaded modules when we hit bad_page()\n\nWhen we get a bad_page bug report, it\u0027s useful to see what modules the\nuser had loaded.\n\nSigned-off-by: Dave Jones \u003cdavej@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": "f5fc870da2f8798edb5481cd2137a3b2d5bd1b19",
      "tree": "569a0066ce59a34cbd9bc6a3f3d15ba6d1cde4ef",
      "parents": [
        "43362a4977e37db46f86f7e6ab935f0006956632"
      ],
      "author": {
        "name": "Robert P. J. Day",
        "email": "rpjday@crashcourse.ca",
        "time": "Mon Oct 31 17:07:21 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 31 17:30:45 2011 -0700"
      },
      "message": "tmpfs: add \"tmpfs\" to the Kconfig prompt to make it obvious.\n\nAdd the leading word \"tmpfs\" to the Kconfig string to make it blindingly\nobvious that this selection refers to tmpfs.\n\nSigned-off-by: Robert P. J. Day \u003crpjday@crashcourse.ca\u003e\nAcked-by: Hugh Dickins \u003chughd@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": "43362a4977e37db46f86f7e6ab935f0006956632",
      "tree": "5ab7070237ebd3f40d7fcfc0066586422da8310a",
      "parents": [
        "c9f01245b6a7d77d17deaa71af10f6aca14fa24e"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Mon Oct 31 17:07:18 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 31 17:30:45 2011 -0700"
      },
      "message": "oom: fix race while temporarily setting current\u0027s oom_score_adj\n\ntest_set_oom_score_adj() was introduced in 72788c385604 (\"oom: replace\nPF_OOM_ORIGIN with toggling oom_score_adj\") to temporarily elevate\ncurrent\u0027s oom_score_adj for ksm and swapoff without requiring an\nadditional per-process flag.\n\nUsing that function to both set oom_score_adj to OOM_SCORE_ADJ_MAX and\nthen reinstate the previous value is racy since it\u0027s possible that\nuserspace can set the value to something else itself before the old value\nis reinstated.  That results in userspace setting current\u0027s oom_score_adj\nto a different value and then the kernel immediately setting it back to\nits previous value without notification.\n\nTo fix this, a new compare_swap_oom_score_adj() function is introduced\nwith the same semantics as the compare and swap CAS instruction, or\nCMPXCHG on x86.  It is used to reinstate the previous value of\noom_score_adj if and only if the present value is the same as the old\nvalue.\n\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Ying Han \u003cyinghan@google.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": "c9f01245b6a7d77d17deaa71af10f6aca14fa24e",
      "tree": "13ffde591a5bcefba39cb6393f09b27f1ebc1a30",
      "parents": [
        "7b0d44fa49b1dcfdcf4897f12ddd12ddeab1a9d7"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Mon Oct 31 17:07:15 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 31 17:30:45 2011 -0700"
      },
      "message": "oom: remove oom_disable_count\n\nThis removes mm-\u003eoom_disable_count entirely since it\u0027s unnecessary and\ncurrently buggy.  The counter was intended to be per-process but it\u0027s\ncurrently decremented in the exit path for each thread that exits, causing\nit to underflow.\n\nThe count was originally intended to prevent oom killing threads that\nshare memory with threads that cannot be killed since it doesn\u0027t lead to\nfuture memory freeing.  The counter could be fixed to represent all\nthreads sharing the same mm, but it\u0027s better to remove the count since:\n\n - it is possible that the OOM_DISABLE thread sharing memory with the\n   victim is waiting on that thread to exit and will actually cause\n   future memory freeing, and\n\n - there is no guarantee that a thread is disabled from oom killing just\n   because another thread sharing its mm is oom disabled.\n\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nReported-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nReviewed-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Ying Han \u003cyinghan@google.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": "7b0d44fa49b1dcfdcf4897f12ddd12ddeab1a9d7",
      "tree": "c840608f5266e4ba783f4c4405efe89b69ae5754",
      "parents": [
        "f660daac474c6f7c2d710100e29b3276a6f4db0a"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Mon Oct 31 17:07:11 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 31 17:30:45 2011 -0700"
      },
      "message": "oom: avoid killing kthreads if they assume the oom killed thread\u0027s mm\n\nAfter selecting a task to kill, the oom killer iterates all processes and\nkills all other threads that share the same mm_struct in different thread\ngroups.  It would not otherwise be helpful to kill a thread if its memory\nwould not be subsequently freed.\n\nA kernel thread, however, may assume a user thread\u0027s mm by using\nuse_mm().  This is only temporary and should not result in sending a\nSIGKILL to that kthread.\n\nThis patch ensures that only user threads and not kthreads are sent a\nSIGKILL if they share the same mm_struct as the oom killed task.\n\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nReviewed-by: Michal Hocko \u003cmhocko@suse.cz\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": "f660daac474c6f7c2d710100e29b3276a6f4db0a",
      "tree": "ad142e254a7b804cb158f2c64e9e6a77e8e4388c",
      "parents": [
        "d08c429b06d21bd2add88aea2cd1996f1b9b3bda"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Mon Oct 31 17:07:07 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 31 17:30:45 2011 -0700"
      },
      "message": "oom: thaw threads if oom killed thread is frozen before deferring\n\nIf a thread has been oom killed and is frozen, thaw it before returning to\nthe page allocator.  Otherwise, it can stay frozen indefinitely and no\nmemory will be freed.\n\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nReported-by: Konstantin Khlebnikov \u003ckhlebnikov@openvz.org\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: \"Rafael J. Wysocki\" \u003crjw@sisk.pl\u003e\nAcked-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d08c429b06d21bd2add88aea2cd1996f1b9b3bda",
      "tree": "7a7f0002e4747ebc70978dcda565a09a943dc992",
      "parents": [
        "3da367c3e5fca71d4e778fa565d9b098d5518f4a"
      ],
      "author": {
        "name": "Johannes Weiner",
        "email": "jweiner@redhat.com",
        "time": "Mon Oct 31 17:07:05 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 31 17:30:45 2011 -0700"
      },
      "message": "mm/page-writeback.c: document bdi_min_ratio\n\nLooks like someone got distracted after adding the comment characters.\n\nSigned-off-by: Johannes Weiner \u003cjweiner@redhat.com\u003e\nAcked-by: Peter Zijlstra \u003cpeterz@infradead.org\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": "3da367c3e5fca71d4e778fa565d9b098d5518f4a",
      "tree": "915dff1989bdffaed157b56f724631b5d8f2d328",
      "parents": [
        "3fa36acbced23c563345de3179dfe1775f15be5e"
      ],
      "author": {
        "name": "Shaohua Li",
        "email": "shaohua.li@intel.com",
        "time": "Mon Oct 31 17:07:03 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 31 17:30:45 2011 -0700"
      },
      "message": "vmscan: add block plug for page reclaim\n\nper-task block plug can reduce block queue lock contention and increase\nrequest merge.  Currently page reclaim doesn\u0027t support it.  I originally\nthought page reclaim doesn\u0027t need it, because kswapd thread count is\nlimited and file cache write is done at flusher mostly.\n\nWhen I test a workload with heavy swap in a 4-node machine, each CPU is\ndoing direct page reclaim and swap.  This causes block queue lock\ncontention.  In my test, without below patch, the CPU utilization is about\n2% ~ 7%.  With the patch, the CPU utilization is about 1% ~ 3%.  Disk\nthroughput isn\u0027t changed.  This should improve normal kswapd write and\nfile cache write too (increase request merge for example), but might not\nbe so obvious as I explain above.\n\nSigned-off-by: Shaohua Li \u003cshaohua.li@intel.com\u003e\nCc: Jens Axboe \u003caxboe@kernel.dk\u003e\nCc: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3fa36acbced23c563345de3179dfe1775f15be5e",
      "tree": "83ad10f4dda426ee3708bc67c9fc88b6c1c8cc34",
      "parents": [
        "0dabec93de633a87adfbbe1d800a4c56cd19d73b"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hughd@google.com",
        "time": "Mon Oct 31 17:07:02 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 31 17:30:45 2011 -0700"
      },
      "message": "radix_tree: clean away saw_unset_tag leftovers\n\nradix_tree_tag_get()\u0027s BUG (when it sees a tag after saw_unset_tag) was\nunsafe and removed in 2.6.34, but the pointless saw_unset_tag left behind.\n\nRemove it now, and return 0 as soon as we see unset tag - we already rely\nupon the root tag to be correct, returning 0 immediately if it\u0027s not set.\n\nSigned-off-by: Hugh Dickins \u003chughd@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": "0dabec93de633a87adfbbe1d800a4c56cd19d73b",
      "tree": "51850bc562f8f95d284dbd7baeecfaefd573fccf",
      "parents": [
        "f80c0673610e36ae29d63e3297175e22f70dde5f"
      ],
      "author": {
        "name": "Minchan Kim",
        "email": "minchan.kim@gmail.com",
        "time": "Mon Oct 31 17:06:57 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 31 17:30:45 2011 -0700"
      },
      "message": "mm: migration: clean up unmap_and_move()\n\nunmap_and_move() is one a big messy function.  Clean it up.\n\nSigned-off-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Michal Hocko \u003cmhocko@suse.cz\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": "f80c0673610e36ae29d63e3297175e22f70dde5f",
      "tree": "0a6aab3b637fa75961224e9261eb544156672c34",
      "parents": [
        "39deaf8585152f1a35c1676d3d7dc6ae0fb65967"
      ],
      "author": {
        "name": "Minchan Kim",
        "email": "minchan.kim@gmail.com",
        "time": "Mon Oct 31 17:06:55 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 31 17:30:44 2011 -0700"
      },
      "message": "mm: zone_reclaim: make isolate_lru_page() filter-aware\n\nIn __zone_reclaim case, we don\u0027t want to shrink mapped page.  Nonetheless,\nwe have isolated mapped page and re-add it into LRU\u0027s head.  It\u0027s\nunnecessary CPU overhead and makes LRU churning.\n\nOf course, when we isolate the page, the page might be mapped but when we\ntry to migrate the page, the page would be not mapped.  So it could be\nmigrated.  But race is rare and although it happens, it\u0027s no big deal.\n\nSigned-off-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nAcked-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nReviewed-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Rik van Riel \u003criel@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": "39deaf8585152f1a35c1676d3d7dc6ae0fb65967",
      "tree": "a7509ea61c2f1028ed7ef961aa1abd16d50905f9",
      "parents": [
        "4356f21d09283dc6d39a6f7287a65ddab61e2808"
      ],
      "author": {
        "name": "Minchan Kim",
        "email": "minchan.kim@gmail.com",
        "time": "Mon Oct 31 17:06:51 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 31 17:30:44 2011 -0700"
      },
      "message": "mm: compaction: make isolate_lru_page() filter-aware\n\nIn async mode, compaction doesn\u0027t migrate dirty or writeback pages.  So,\nit\u0027s meaningless to pick the page and re-add it to lru list.\n\nOf course, when we isolate the page in compaction, the page might be dirty\nor writeback but when we try to migrate the page, the page would be not\ndirty, writeback.  So it could be migrated.  But it\u0027s very unlikely as\nisolate and migration cycle is much faster than writeout.\n\nSo, this patch helps cpu overhead and prevent unnecessary LRU churning.\n\nSigned-off-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nAcked-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nAcked-by: Mel Gorman \u003cmgorman@suse.de\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nReviewed-by: Michal Hocko \u003cmhocko@suse.cz\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": "4356f21d09283dc6d39a6f7287a65ddab61e2808",
      "tree": "34822a1662ea83291455834556a4fb5bf98ecd72",
      "parents": [
        "b9e84ac1536d35aee03b2601f19694949f0bd506"
      ],
      "author": {
        "name": "Minchan Kim",
        "email": "minchan.kim@gmail.com",
        "time": "Mon Oct 31 17:06:47 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 31 17:30:44 2011 -0700"
      },
      "message": "mm: change isolate mode from #define to bitwise type\n\nChange ISOLATE_XXX macro with bitwise isolate_mode_t type.  Normally,\nmacro isn\u0027t recommended as it\u0027s type-unsafe and making debugging harder as\nsymbol cannot be passed throught to the debugger.\n\nQuote from Johannes\n\" Hmm, it would probably be cleaner to fully convert the isolation mode\ninto independent flags.  INACTIVE, ACTIVE, BOTH is currently a\ntri-state among flags, which is a bit ugly.\"\n\nThis patch moves isolate mode from swap.h to mmzone.h by memcontrol.h\n\nSigned-off-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Michal Hocko \u003cmhocko@suse.cz\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": "b9e84ac1536d35aee03b2601f19694949f0bd506",
      "tree": "822eb1802818954248efc5cf67dc9a8a0ace5908",
      "parents": [
        "fcf634098c00dd9cd247447368495f0b79be12d1"
      ],
      "author": {
        "name": "Minchan Kim",
        "email": "minchan.kim@gmail.com",
        "time": "Mon Oct 31 17:06:44 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 31 17:30:44 2011 -0700"
      },
      "message": "mm: compaction: trivial clean up in acct_isolated()\n\nacct_isolated of compaction uses page_lru_base_type which returns only\nbase type of LRU list so it never returns LRU_ACTIVE_ANON or\nLRU_ACTIVE_FILE.  In addtion, cc-\u003enr_[anon|file] is used in only\nacct_isolated so it doesn\u0027t have fields in conpact_control.\n\nThis patch removes fields from compact_control and makes clear function of\nacct_issolated which counts the number of anon|file pages isolated.\n\nSigned-off-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nAcked-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nAcked-by: Mel Gorman \u003cmgorman@suse.de\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nReviewed-by: Michal Hocko \u003cmhocko@suse.cz\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": "fcf634098c00dd9cd247447368495f0b79be12d1",
      "tree": "77fc98cd461bd52ba3b14e833d54a115ffbbd7bc",
      "parents": [
        "32ea845d5bafc37b7406bea1aee3005407cb0900"
      ],
      "author": {
        "name": "Christopher Yeoh",
        "email": "cyeoh@au1.ibm.com",
        "time": "Mon Oct 31 17:06:39 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 31 17:30:44 2011 -0700"
      },
      "message": "Cross Memory Attach\n\nThe basic idea behind cross memory attach is to allow MPI programs doing\nintra-node communication to do a single copy of the message rather than a\ndouble copy of the message via shared memory.\n\nThe following patch attempts to achieve this by allowing a destination\nprocess, given an address and size from a source process, to copy memory\ndirectly from the source process into its own address space via a system\ncall.  There is also a symmetrical ability to copy from the current\nprocess\u0027s address space into a destination process\u0027s address space.\n\n- Use of /proc/pid/mem has been considered, but there are issues with\n  using it:\n  - Does not allow for specifying iovecs for both src and dest, assuming\n    preadv or pwritev was implemented either the area read from or\n  written to would need to be contiguous.\n  - Currently mem_read allows only processes who are currently\n  ptrace\u0027ing the target and are still able to ptrace the target to read\n  from the target. This check could possibly be moved to the open call,\n  but its not clear exactly what race this restriction is stopping\n  (reason  appears to have been lost)\n  - Having to send the fd of /proc/self/mem via SCM_RIGHTS on unix\n  domain socket is a bit ugly from a userspace point of view,\n  especially when you may have hundreds if not (eventually) thousands\n  of processes  that all need to do this with each other\n  - Doesn\u0027t allow for some future use of the interface we would like to\n  consider adding in the future (see below)\n  - Interestingly reading from /proc/pid/mem currently actually\n  involves two copies! (But this could be fixed pretty easily)\n\nAs mentioned previously use of vmsplice instead was considered, but has\nproblems.  Since you need the reader and writer working co-operatively if\nthe pipe is not drained then you block.  Which requires some wrapping to\ndo non blocking on the send side or polling on the receive.  In all to all\ncommunication it requires ordering otherwise you can deadlock.  And in the\nexample of many MPI tasks writing to one MPI task vmsplice serialises the\ncopying.\n\nThere are some cases of MPI collectives where even a single copy interface\ndoes not get us the performance gain we could.  For example in an\nMPI_Reduce rather than copy the data from the source we would like to\ninstead use it directly in a mathops (say the reduce is doing a sum) as\nthis would save us doing a copy.  We don\u0027t need to keep a copy of the data\nfrom the source.  I haven\u0027t implemented this, but I think this interface\ncould in the future do all this through the use of the flags - eg could\nspecify the math operation and type and the kernel rather than just\ncopying the data would apply the specified operation between the source\nand destination and store it in the destination.\n\nAlthough we don\u0027t have a \"second user\" of the interface (though I\u0027ve had\nsome nibbles from people who may be interested in using it for intra\nprocess messaging which is not MPI).  This interface is something which\nhardware vendors are already doing for their custom drivers to implement\nfast local communication.  And so in addition to this being useful for\nOpenMPI it would mean the driver maintainers don\u0027t have to fix things up\nwhen the mm changes.\n\nThere was some discussion about how much faster a true zero copy would\ngo. Here\u0027s a link back to the email with some testing I did on that:\n\nhttp://marc.info/?l\u003dlinux-mm\u0026m\u003d130105930902915\u0026w\u003d2\n\nThere is a basic man page for the proposed interface here:\n\nhttp://ozlabs.org/~cyeoh/cma/process_vm_readv.txt\n\nThis has been implemented for x86 and powerpc, other architecture should\nmainly (I think) just need to add syscall numbers for the process_vm_readv\nand process_vm_writev. There are 32 bit compatibility versions for\n64-bit kernels.\n\nFor arch maintainers there are some simple tests to be able to quickly\nverify that the syscalls are working correctly here:\n\nhttp://ozlabs.org/~cyeoh/cma/cma-test-20110718.tgz\n\nSigned-off-by: Chris Yeoh \u003cyeohc@au1.ibm.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Arnd Bergmann \u003carnd@arndb.de\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: James Morris \u003cjmorris@namei.org\u003e\nCc: \u003clinux-man@vger.kernel.org\u003e\nCc: \u003clinux-arch@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "32ea845d5bafc37b7406bea1aee3005407cb0900",
      "tree": "54cfdc8a8fce66a7371b3616fc18b4c676a6fbdd",
      "parents": [
        "fc360bd9cdcf875639a77f07fafec26699c546f3"
      ],
      "author": {
        "name": "Wanlong Gao",
        "email": "gaowanlong@cn.fujitsu.com",
        "time": "Mon Oct 31 17:06:35 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 31 17:30:44 2011 -0700"
      },
      "message": "ipc/mqueue.c: fix wrong use of schedule_hrtimeout_range_clock()\n\nFix the wrong use of schedule_hrtimeout_range_clock() in wq_sleep(),\nalthough it is harmless for the syscall mq_timed* now.  It was introduced\nby 9ca7d8e (\"mqueue: Convert message queue timeout to use hrtimers\").\n\nSigned-off-by: Wanlong Gao \u003cgaowanlong@cn.fujitsu.com\u003e\nCc: Carsten Emde \u003cC.Emde@osadl.org\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Manfred Spraul \u003cmanfred@colorfullife.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "fc360bd9cdcf875639a77f07fafec26699c546f3",
      "tree": "eb4ee71bafa392d48b3fb630bd4a9baa48104332",
      "parents": [
        "6eea69dd8befeabd3d0f217400f54b157dd91fe9"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Mon Oct 31 17:06:32 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 31 17:30:44 2011 -0700"
      },
      "message": "/proc/self/numa_maps: restore \"huge\" tag for hugetlb vmas\n\nThe display of the \"huge\" tag was accidentally removed in 29ea2f698 (\"mm:\nuse walk_page_range() instead of custom page table walking code\").\n\nReported-by: Stephen Hemminger \u003cshemminger@vyatta.com\u003e\nTested-by: Stephen Hemminger \u003cshemminger@vyatta.com\u003e\nReviewed-by: Stephen Wilson \u003cwilsons@start.ca\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nAcked-by: David Rientjes \u003crientjes@google.com\u003e\nCc: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: \u003cstable@kernel.org\u003e\nCc: \u003cstable@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6eea69dd8befeabd3d0f217400f54b157dd91fe9",
      "tree": "c46d983c78874bf993a14dd87022b4b526be1ab6",
      "parents": [
        "07a723097cd31e9c2def69ac4d42834a16f79219"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Mon Oct 31 17:06:29 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 31 17:30:44 2011 -0700"
      },
      "message": "include/linux/dmar.h: forward-declare struct acpi_dmar_header\n\nx86_64 allnoconfig:\n\nIn file included from arch/x86/kernel/pci-dma.c:3:\ninclude/linux/dmar.h:248: warning: \u0027struct acpi_dmar_header\u0027 declared inside parameter list\ninclude/linux/dmar.h:248: warning: its scope is only this definition or declaration, which is probably not what you want\n\nCc: Suresh Siddha \u003csuresh.b.siddha@intel.com\u003e\nCc: Ingo Molnar \u003cmingo@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": "07a723097cd31e9c2def69ac4d42834a16f79219",
      "tree": "122c4c9e567dfe453fa4a948a648f0f26e381556",
      "parents": [
        "1a4ceab195e66bce9c1638fdded6d92988100ba4"
      ],
      "author": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Mon Oct 31 17:06:28 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 31 17:30:44 2011 -0700"
      },
      "message": "dma-mapping: fix sync_single_range_* DMA debugging\n\nCommit 5fd75a7850b5 (dma-mapping: remove unnecessary sync_single_range_*\nin dma_map_ops) unified not only the dma_map_ops but also the\ncorresponding debug_dma_sync_* calls.  This led to spurious WARN()ings\nlike the following because the DMA debug code was no longer able to detect\nthe DMA buffer base address without the separate offset parameter:\n\nWARNING: at lib/dma-debug.c:911 check_sync+0xce/0x446()\nfirewire_ohci 0000:04:00.0: DMA-API: device driver tries to sync DMA memory it has not allocated [device address\u003d0x00000000cedaa400] [size\u003d1024 bytes]\nCall Trace: ...\n [\u003cffffffff811326a5\u003e] check_sync+0xce/0x446\n [\u003cffffffff81132ad9\u003e] debug_dma_sync_single_for_device+0x39/0x3b\n [\u003cffffffffa01d6e6a\u003e] ohci_queue_iso+0x4f3/0x77d [firewire_ohci]\n ...\n\nTo fix this, unshare the sync_single_* and sync_single_range_*\nimplementations so that we are able to call the correct debug_dma_sync_*\nfunctions.\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e\nCc: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nCc: Konrad Rzeszutek Wilk \u003ckonrad.wilk@oracle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1a4ceab195e66bce9c1638fdded6d92988100ba4",
      "tree": "3ec17bd66fb3ac1429131e373cc8d99550d5451a",
      "parents": [
        "83f89ca755c9f783b8229d968c4e9d2c660ca427",
        "6a32e4f9dd9219261f8856f817e6655114cfec2f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 31 15:22:44 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 31 15:22:44 2011 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (27 commits)\n  vlan: allow nested vlan_do_receive()\n  ipv6: fix route lookup in addrconf_prefix_rcv()\n  bonding: eliminate bond_close race conditions\n  qlcnic: fix beacon and LED test.\n  qlcnic: Updated License file\n  qlcnic: updated reset sequence\n  qlcnic: reset loopback mode if promiscous mode setting fails.\n  qlcnic: skip IDC ack check in fw reset path.\n  i825xx: Fix incorrect dependency for BVME6000_NET\n  ipv6: fix route error binding peer in func icmp6_dst_alloc\n  ipv6: fix error propagation in ip6_ufo_append_data()\n  stmmac: update normal descriptor structure (v2)\n  stmmac: fix NULL pointer dereference in capabilities fixup (v2)\n  stmmac: fix a bug while checking the HW cap reg (v2)\n  be2net: Changing MAC Address of a VF was broken.\n  be2net: Refactored be_cmds.c file.\n  bnx2x: update driver version to 1.70.30-0\n  bnx2x: use FW 7.0.29.0\n  bnx2x: Enable changing speed when port type is PORT_DA\n  bnx2x: Fix 54618se LED behavior\n  ...\n"
    },
    {
      "commit": "83f89ca755c9f783b8229d968c4e9d2c660ca427",
      "tree": "4d29f733c93b232f3a6642a1ea1f78c980ae0a87",
      "parents": [
        "571109f5369efbd3f7d09b4e331c1aa4de3e411a",
        "2e8ecdc008a16b9a6c4b9628bb64d0d1c05f9f92"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 31 15:22:16 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 31 15:22:16 2011 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc:\n  sparc64: Fix masking and shifting in VIS fpcmp emulation.\n  sparc32: Correct the return value of memcpy.\n  sparc32: Remove uses of %g7 in memcpy implementation.\n  sparc32: Remove non-kernel code from memcpy implementation.\n"
    },
    {
      "commit": "571109f5369efbd3f7d09b4e331c1aa4de3e411a",
      "tree": "747abcc3cae63c3e8fa279bf9b2e4b1929342769",
      "parents": [
        "839d8810747bbf39e0a5a7f223b67bffa7945f8d",
        "7fcc7c8acf0fba44d19a713207af7e58267c1179"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 31 15:21:29 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 31 15:21:29 2011 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://neil.brown.name/md\n\n* \u0027for-linus\u0027 of git://neil.brown.name/md:\n  md/raid10:  Fix bug when activating a hot-spare.\n"
    },
    {
      "commit": "2e8ecdc008a16b9a6c4b9628bb64d0d1c05f9f92",
      "tree": "dda40d127f783e204e149bdbfe42000ce474a5d4",
      "parents": [
        "a52312b88c8103e965979a79a07f6b34af82ca4b"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Oct 31 01:05:49 2011 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Oct 31 01:05:49 2011 -0700"
      },
      "message": "sparc64: Fix masking and shifting in VIS fpcmp emulation.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "7fcc7c8acf0fba44d19a713207af7e58267c1179",
      "tree": "ce4b03fa3dfc07fb19b4d6c3653ba41ec1f926db",
      "parents": [
        "d890fa2b0586b6177b119643ff66932127d58afa"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Oct 31 12:59:44 2011 +1100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Oct 31 12:59:44 2011 +1100"
      },
      "message": "md/raid10:  Fix bug when activating a hot-spare.\n\nThis is a fairly serious bug in RAID10.\n\nWhen a RAID10 array is degraded and a hot-spare is activated, the\nspare does not take up the empty slot, but rather replaces the first\nworking device.\nThis is likely to make the array non-functional.   It would normally\nbe possible to recover the data, but that would need care and is not\nguaranteed.\n\nThis bug was introduced in commit\n   2bb77736ae5dca0a189829fbb7379d43364a9dac\nwhich first appeared in 3.1.\n\nCc: stable@kernel.org\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "839d8810747bbf39e0a5a7f223b67bffa7945f8d",
      "tree": "c16583342b871107f6805c21da4b1a96cfaa7aac",
      "parents": [
        "0cfdc724390fb9370f27bb9a133eadf69114dd21",
        "06a67848c6681a73e621e47c056490d51a07289f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Oct 30 15:54:59 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Oct 30 15:54:59 2011 -0700"
      },
      "message": "Merge branch \u0027i2c-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jdelvare/staging\n\n* \u0027i2c-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jdelvare/staging:\n  i2c: Functions for byte-swapped smbus_write/read_word_data\n  i2c-algo-pca: Return standard fault codes\n  i2c-algo-bit: Return standard fault codes\n  i2c-algo-bit: Be verbose on bus testing failure\n  i2c-algo-bit: Let user test buses without failing\n  i2c/scx200_acb: Fix section mismatch warning in scx200_pci_drv\n  i2c: I2C_ELEKTOR should depend on HAS_IOPORT\n"
    },
    {
      "commit": "0cfdc724390fb9370f27bb9a133eadf69114dd21",
      "tree": "2abfb0112c46c837c6b42007eadfc389293b7710",
      "parents": [
        "b48aeab65e9fc4b0c9757c5fbc1d722544eb8786",
        "1abb4ba596a91a839f82e0c9c837b777d574e83d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Oct 30 15:46:19 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Oct 30 15:46:19 2011 -0700"
      },
      "message": "Merge branch \u0027next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu\n\n* \u0027next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu: (33 commits)\n  iommu/core: Remove global iommu_ops and register_iommu\n  iommu/msm: Use bus_set_iommu instead of register_iommu\n  iommu/omap: Use bus_set_iommu instead of register_iommu\n  iommu/vt-d: Use bus_set_iommu instead of register_iommu\n  iommu/amd: Use bus_set_iommu instead of register_iommu\n  iommu/core: Use bus-\u003eiommu_ops in the iommu-api\n  iommu/core: Convert iommu_found to iommu_present\n  iommu/core: Add bus_type parameter to iommu_domain_alloc\n  Driver core: Add iommu_ops to bus_type\n  iommu/core: Define iommu_ops and register_iommu only with CONFIG_IOMMU_API\n  iommu/amd: Fix wrong shift direction\n  iommu/omap: always provide iommu debug code\n  iommu/core: let drivers know if an iommu fault handler isn\u0027t installed\n  iommu/core: export iommu_set_fault_handler()\n  iommu/omap: Fix build error with !IOMMU_SUPPORT\n  iommu/omap: Migrate to the generic fault report mechanism\n  iommu/core: Add fault reporting mechanism\n  iommu/core: Use PAGE_SIZE instead of hard-coded value\n  iommu/core: use the existing IS_ALIGNED macro\n  iommu/msm: -\u003eunmap() should return order of unmapped page\n  ...\n\nFixup trivial conflicts in drivers/iommu/Makefile: \"move omap iommu to\ndedicated iommu folder\" vs \"Rename the DMAR and INTR_REMAP config\noptions\" just happened to touch lines next to each other.\n"
    },
    {
      "commit": "b48aeab65e9fc4b0c9757c5fbc1d722544eb8786",
      "tree": "0bfce428f067ca9cf06d971ba8795ad69ca610e2",
      "parents": [
        "1bc87b00556e8f7ba30a1010471951c5b8f71114",
        "1f6189ed18cbd99d90bffdbc76c3adc54418b2fd"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Oct 30 15:43:32 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Oct 30 15:43:32 2011 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/bp/bp\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/bp/bp:\n  amd64_edac: Cleanup return type of amd64_determine_edac_cap()\n  amd64_edac: Add a fix for Erratum 505\n  EDAC, MCE, AMD: Simplify NB MCE decoder interface\n  EDAC, MCE, AMD: Drop local coreid reporting\n  EDAC, MCE, AMD: Print valid addr when reporting an error\n  EDAC, MCE, AMD: Print CPU number when reporting the error\n"
    },
    {
      "commit": "1bc87b00556e8f7ba30a1010471951c5b8f71114",
      "tree": "e73c2d187e2dff0df97ed82e32b45e362b923117",
      "parents": [
        "acff987d94cbdb4049f3706bed1f1792f8ef6837",
        "f1c1da2bde712812a3e0f9a7a7ebe7a916a4b5f4"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Oct 30 15:36:45 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Oct 30 15:36:45 2011 -0700"
      },
      "message": "Merge branch \u0027kvm-updates/3.2\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/avi/kvm\n\n* \u0027kvm-updates/3.2\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/avi/kvm: (75 commits)\n  KVM: SVM: Keep intercepting task switching with NPT enabled\n  KVM: s390: implement sigp external call\n  KVM: s390: fix register setting\n  KVM: s390: fix return value of kvm_arch_init_vm\n  KVM: s390: check cpu_id prior to using it\n  KVM: emulate lapic tsc deadline timer for guest\n  x86: TSC deadline definitions\n  KVM: Fix simultaneous NMIs\n  KVM: x86 emulator: convert push %sreg/pop %sreg to direct decode\n  KVM: x86 emulator: switch lds/les/lss/lfs/lgs to direct decode\n  KVM: x86 emulator: streamline decode of segment registers\n  KVM: x86 emulator: simplify OpMem64 decode\n  KVM: x86 emulator: switch src decode to decode_operand()\n  KVM: x86 emulator: qualify OpReg inhibit_byte_regs hack\n  KVM: x86 emulator: switch OpImmUByte decode to decode_imm()\n  KVM: x86 emulator: free up some flag bits near src, dst\n  KVM: x86 emulator: switch src2 to generic decode_operand()\n  KVM: x86 emulator: expand decode flags to 64 bits\n  KVM: x86 emulator: split dst decode to a generic decode_operand()\n  KVM: x86 emulator: move memop, memopp into emulation context\n  ...\n"
    },
    {
      "commit": "acff987d94cbdb4049f3706bed1f1792f8ef6837",
      "tree": "36bded977aab5d80cf9aeb5467f83dd554a25d01",
      "parents": [
        "ce949717b559709423c1ef716a9db16d1dcadaed",
        "b57287ba497b63a0d87a058631bbddfed9392e9f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Oct 30 15:30:01 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Oct 30 15:30:01 2011 -0700"
      },
      "message": "Merge branch \u0027fbdev-next\u0027 of git://github.com/schandinat/linux-2.6\n\n* \u0027fbdev-next\u0027 of git://github.com/schandinat/linux-2.6: (270 commits)\n  video: platinumfb: Add __devexit_p at necessary place\n  drivers/video: fsl-diu-fb: merge diu_pool into fsl_diu_data\n  drivers/video: fsl-diu-fb: merge diu_hw into fsl_diu_data\n  drivers/video: fsl-diu-fb: only DIU modes 0 and 1 are supported\n  drivers/video: fsl-diu-fb: remove unused panel operating mode support\n  drivers/video: fsl-diu-fb: use an enum for the AOI index\n  drivers/video: fsl-diu-fb: add several new video modes\n  drivers/video: fsl-diu-fb: remove broken screen blanking support\n  drivers/video: fsl-diu-fb: move some definitions out of the header file\n  drivers/video: fsl-diu-fb: fix some ioctls\n  video: da8xx-fb: Increased resolution configuration of revised LCDC IP\n  OMAPDSS: picodlp: add missing #include \u003clinux/module.h\u003e\n  fb: fix au1100fb bitrot.\n  mx3fb: fix NULL pointer dereference in screen blanking.\n  video: irq: Remove IRQF_DISABLED\n  smscufx: change edid data to u8 instead of char\n  OMAPDSS: DISPC: zorder support for DSS overlays\n  OMAPDSS: DISPC: VIDEO3 pipeline support\n  OMAPDSS/OMAP_VOUT: Fix incorrect OMAP3-alpha compatibility setting\n  video/omap: fix build dependencies\n  ...\n\nFix up conflicts in:\n - drivers/staging/xgifb/XGI_main_26.c\n\tChanges to XGIfb_pan_var()\n - drivers/video/omap/{lcd_apollon.c,lcd_ldp.c,lcd_overo.c}\n\tRemoved (or in the case of apollon.c, merged into the generic\n\tDSS panel in drivers/video/omap2/displays/panel-generic-dpi.c)\n"
    },
    {
      "commit": "06a67848c6681a73e621e47c056490d51a07289f",
      "tree": "df6e3df869b7b1a1f40f09b9b3a6f8b8a2ad12d6",
      "parents": [
        "4403988afc0a92b8faf59b46f51d25fafaf0e63d"
      ],
      "author": {
        "name": "Jonathan Cameron",
        "email": "jic23@cam.ac.uk",
        "time": "Sun Oct 30 13:47:25 2011 +0100"
      },
      "committer": {
        "name": "Jean Delvare",
        "email": "khali@endymion.delvare",
        "time": "Sun Oct 30 13:47:25 2011 +0100"
      },
      "message": "i2c: Functions for byte-swapped smbus_write/read_word_data\n\nReimplemented at least 17 times discounting error mangling cases\nwhere it could be used.\n\nSigned-off-by: Jonathan Cameron \u003cjic23@cam.ac.uk\u003e\nSigned-off-by: Jean Delvare \u003ckhali@linux-fr.org\u003e\n"
    },
    {
      "commit": "4403988afc0a92b8faf59b46f51d25fafaf0e63d",
      "tree": "0d3ddd323a5dcbb35e84014b3f33a4380c577dc2",
      "parents": [
        "abc01b2718ee1d26e83c4c62c4b79806b3240ac7"
      ],
      "author": {
        "name": "Jean Delvare",
        "email": "khali@linux-fr.org",
        "time": "Sun Oct 30 13:47:25 2011 +0100"
      },
      "committer": {
        "name": "Jean Delvare",
        "email": "khali@endymion.delvare",
        "time": "Sun Oct 30 13:47:25 2011 +0100"
      },
      "message": "i2c-algo-pca: Return standard fault codes\n\nAdjust i2c-algo-pca to return fault codes compliant with\nDocumentation/i2c/fault-codes, rather than the undocumented and\nvague -EREMOTEIO.\n\nSigned-off-by: Jean Delvare \u003ckhali@linux-fr.org\u003e\nCc: Wolfram Sang \u003cw.sang@pengutronix.de\u003e\n"
    },
    {
      "commit": "abc01b2718ee1d26e83c4c62c4b79806b3240ac7",
      "tree": "f337e7b0a31e189fe23f1d4754cf3947a4d708cf",
      "parents": [
        "f6beb67d8e77454200acc3755344944bd946cded"
      ],
      "author": {
        "name": "Jean Delvare",
        "email": "khali@linux-fr.org",
        "time": "Sun Oct 30 13:47:25 2011 +0100"
      },
      "committer": {
        "name": "Jean Delvare",
        "email": "khali@endymion.delvare",
        "time": "Sun Oct 30 13:47:25 2011 +0100"
      },
      "message": "i2c-algo-bit: Return standard fault codes\n\nAdjust i2c-algo-bit to return fault codes compliant with\nDocumentation/i2c/fault-codes, rather than the undocumented and\nvague -EREMOTEIO.\n\nSigned-off-by: Jean Delvare \u003ckhali@linux-fr.org\u003e\n"
    },
    {
      "commit": "f6beb67d8e77454200acc3755344944bd946cded",
      "tree": "c62f448caba0faf186bd3076970c19ffef39de1a",
      "parents": [
        "1bddab7f7d5b61f17b0bbd669f60818d553620be"
      ],
      "author": {
        "name": "Jean Delvare",
        "email": "jdelvare@suse.de",
        "time": "Sun Oct 30 13:47:25 2011 +0100"
      },
      "committer": {
        "name": "Jean Delvare",
        "email": "khali@endymion.delvare",
        "time": "Sun Oct 30 13:47:25 2011 +0100"
      },
      "message": "i2c-algo-bit: Be verbose on bus testing failure\n\nIf bus testing fails due to the bus being seen as busy, it might be\nhelpful for developers to know which line is unexpectedly low.\n\nSigned-off-by: Jean Delvare \u003cjdelvare@suse.de\u003e\nReviewed-by: Alex Deucher \u003calexdeucher@gmail.com\u003e\n"
    },
    {
      "commit": "1bddab7f7d5b61f17b0bbd669f60818d553620be",
      "tree": "fe2fe08e2027471e7c457bf0bf168e741d64ef7b",
      "parents": [
        "6fcf84a2c0d5f51a457555d76e037cf3cc85bc7a"
      ],
      "author": {
        "name": "Jean Delvare",
        "email": "jdelvare@suse.de",
        "time": "Sun Oct 30 13:47:25 2011 +0100"
      },
      "committer": {
        "name": "Jean Delvare",
        "email": "khali@endymion.delvare",
        "time": "Sun Oct 30 13:47:25 2011 +0100"
      },
      "message": "i2c-algo-bit: Let user test buses without failing\n\nAlways failing to register I2C buses when the line testing fails is a\nlittle harsh. While such a failure is definitely a bug in the driver\nthat exposes the affected I2C bus, things may still work fine if the\nmissing initialization steps are done later, before the I2C bus is\nused. So it seems a better debugging tool to just report the test\nfailure by default. I introduce bit_test\u003d2 if anyone really misses the\noriginal behavior of bit_test\u003d1.\n\nSigned-off-by: Jean Delvare \u003cjdelvare@suse.de\u003e\nReviewed-by: Alex Deucher \u003calexdeucher@gmail.com\u003e\n"
    },
    {
      "commit": "6fcf84a2c0d5f51a457555d76e037cf3cc85bc7a",
      "tree": "f4f6c8cbda2282cc61cc0f50ab3bf190814bb9ec",
      "parents": [
        "9519282a02e74f0bf780eb371a3160824c23965a"
      ],
      "author": {
        "name": "Harvey Yang",
        "email": "harvey.huawei.yang@gmail.com",
        "time": "Sun Oct 30 13:47:25 2011 +0100"
      },
      "committer": {
        "name": "Jean Delvare",
        "email": "khali@endymion.delvare",
        "time": "Sun Oct 30 13:47:25 2011 +0100"
      },
      "message": "i2c/scx200_acb: Fix section mismatch warning in scx200_pci_drv\n\nWARNING: drivers/i2c/busses/built-in.o(.data+0x47c8): Section mismatch in reference from the variable scx200_pci_drv to the function .devinit.text:scx200_probe()\nThe variable scx200_pci_drv references\nthe function __devinit scx200_probe()\nIf the reference is valid then annotate the\nvariable with __init* or __refdata (see linux/init.h) or name the variable:\n*driver, *_template, *_timer, *_sht, *_ops, *_probe, *_probe_one, *_console\n\nSigned-off-by: Harvey Yang \u003charvey.huawei.yang@gmail.com\u003e\nSigned-off-by: Jean Delvare \u003ckhali@linux-fr.org\u003e\n"
    },
    {
      "commit": "9519282a02e74f0bf780eb371a3160824c23965a",
      "tree": "31e0e4975688fb3d790a8ed48477e2b0609eaefc",
      "parents": [
        "ce949717b559709423c1ef716a9db16d1dcadaed"
      ],
      "author": {
        "name": "Geert Uytterhoeven",
        "email": "geert@linux-m68k.org",
        "time": "Sun Oct 30 13:47:24 2011 +0100"
      },
      "committer": {
        "name": "Jean Delvare",
        "email": "khali@endymion.delvare",
        "time": "Sun Oct 30 13:47:24 2011 +0100"
      },
      "message": "i2c: I2C_ELEKTOR should depend on HAS_IOPORT\n\nOn m68k, I get:\n\ndrivers/i2c/busses/i2c-elektor.c: In function ‘pcf_isa_init’:\ndrivers/i2c/busses/i2c-elektor.c:153: error: implicit declaration of function ‘ioport_map’\ndrivers/i2c/busses/i2c-elektor.c:153: warning: assignment makes pointer from integer without a cast\ndrivers/i2c/busses/i2c-elektor.c: In function ‘elektor_probe’:\ndrivers/i2c/busses/i2c-elektor.c:287: error: implicit declaration of function ‘ioport_unmap’\n\nSince commit 82ed223c264def2b15ee4bec2e8c3048092ceb5f (\"iomap: make IOPORT/PCI\nmapping functions conditional\"), ioport_map() is only available on platforms\nthat set HAS_IOPORT.\n\nSigned-off-by: Geert Uytterhoeven \u003cgeert@linux-m68k.org\u003e\nSigned-off-by: Jean Delvare \u003ckhali@linux-fr.org\u003e\n"
    },
    {
      "commit": "f1c1da2bde712812a3e0f9a7a7ebe7a916a4b5f4",
      "tree": "db3715f38fd012cece847d0f0918cbc12eb2123f",
      "parents": [
        "7697e71f72b45a1bd0abe70918c383100fcc8514"
      ],
      "author": {
        "name": "Jan Kiszka",
        "email": "jan.kiszka@siemens.com",
        "time": "Tue Oct 18 18:23:11 2011 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Sun Oct 30 12:24:10 2011 +0200"
      },
      "message": "KVM: SVM: Keep intercepting task switching with NPT enabled\n\nAMD processors apparently have a bug in the hardware task switching\nsupport when NPT is enabled. If the task switch triggers a NPF, we can\nget wrong EXITINTINFO along with that fault. On resume, spurious\nexceptions may then be injected into the guest.\n\nWe were able to reproduce this bug when our guest triggered #SS and the\nhandler were supposed to run over a separate task with not yet touched\nstack pages.\n\nWork around the issue by continuing to emulate task switches even in\nNPT mode.\n\nSigned-off-by: Jan Kiszka \u003cjan.kiszka@siemens.com\u003e\nSigned-off-by: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\n"
    },
    {
      "commit": "7697e71f72b45a1bd0abe70918c383100fcc8514",
      "tree": "afad6ff9dcd00a031de31b9cd34d2ae09484586a",
      "parents": [
        "7eef87dc99e419b1cc051e4417c37e4744d7b661"
      ],
      "author": {
        "name": "Christian Ehrhardt",
        "email": "ehrhardt@linux.vnet.ibm.com",
        "time": "Tue Oct 18 12:27:15 2011 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Sun Oct 30 12:24:05 2011 +0200"
      },
      "message": "KVM: s390: implement sigp external call\n\nImplement sigp external call, which might be required for guests that\nissue an external call instead of an emergency signal for IPI.\n\nThis fixes an issue with \"KVM: unknown SIGP: 0x02\" when booting\nsuch an SMP guest.\n\nSigned-off-by: Christian Ehrhardt \u003cehrhardt@linux.vnet.ibm.com\u003e\nSigned-off-by: Christian Borntraeger \u003cborntraeger@de.ibm.com\u003e\nSigned-off-by: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\n"
    },
    {
      "commit": "7eef87dc99e419b1cc051e4417c37e4744d7b661",
      "tree": "70a611c3a92fb663c5da4ffae115e06c28e71b70",
      "parents": [
        "b290411a1321dd937dce4aaa812e5d8fae8a14a5"
      ],
      "author": {
        "name": "Carsten Otte",
        "email": "cotte@de.ibm.com",
        "time": "Tue Oct 18 12:27:14 2011 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Sun Oct 30 12:24:00 2011 +0200"
      },
      "message": "KVM: s390: fix register setting\n\nKVM common code does vcpu_load prior to calling our arch ioctls and\nvcpu_put after we\u0027re done here. Via the kvm_arch_vcpu_load/put\ncallbacks we do load the fpu and access register state into the\nprocessor, which saves us moving the state on every SIE exit the\nkernel handles. However this breaks register setting from userspace,\nbecause of the following sequence:\n1a. vcpu load stores userspace register content\n1b. vcpu load loads guest register content\n2.  kvm_arch_vcpu_ioctl_set_fpu/sregs updates saved guest register content\n3a. vcpu put stores the guest registers and overwrites the new content\n3b. vcpu put loads the userspace register set again\n\nThis patch loads the new guest register state into the cpu, so that the correct\n(new) set of guest registers will be stored in step 3a.\n\nSigned-off-by: Carsten Otte \u003ccotte@de.ibm.com\u003e\nSigned-off-by: Christian Borntraeger \u003cborntraeger@de.ibm.com\u003e\nSigned-off-by: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\n"
    },
    {
      "commit": "b290411a1321dd937dce4aaa812e5d8fae8a14a5",
      "tree": "00fd0ae4b160736f5fc9055ecc7822d4361cf7f1",
      "parents": [
        "4d47555a80495657161a7e71ec3014ff2021e450"
      ],
      "author": {
        "name": "Carsten Otte",
        "email": "cotte@de.ibm.com",
        "time": "Tue Oct 18 12:27:13 2011 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Sun Oct 30 12:23:55 2011 +0200"
      },
      "message": "KVM: s390: fix return value of kvm_arch_init_vm\n\nThis patch fixes the return value of kvm_arch_init_vm in case a memory\nallocation goes wrong.\n\nSigned-off-by: Carsten Otte \u003ccotte@de.ibm.com\u003e\nSigned-off-by: Christian Borntraeger \u003cborntraeger@de.ibm.com\u003e\nSigned-off-by: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\n"
    },
    {
      "commit": "4d47555a80495657161a7e71ec3014ff2021e450",
      "tree": "f5e12258ee93dc20c230e7dc60620c6d0194142e",
      "parents": [
        "a3e06bbe8445f57eb949e6474c5a9b30f24d2057"
      ],
      "author": {
        "name": "Carsten Otte",
        "email": "cotte@de.ibm.com",
        "time": "Tue Oct 18 12:27:12 2011 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Sun Oct 30 12:20:55 2011 +0200"
      },
      "message": "KVM: s390: check cpu_id prior to using it\n\nWe use the cpu id provided by userspace as array index here. Thus we\nclearly need to check it first. Ooops.\n\nCC: \u003cstable@vger.kernel.org\u003e\nSigned-off-by: Carsten Otte \u003ccotte@de.ibm.com\u003e\nSigned-off-by: Christian Borntraeger \u003cborntraeger@de.ibm.com\u003e\nSigned-off-by: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\n"
    },
    {
      "commit": "6a32e4f9dd9219261f8856f817e6655114cfec2f",
      "tree": "964061ded76a2e5c9e2aa9122a3a88956db109c1",
      "parents": [
        "14ef37b6d00eb5d06704e45989ba4c21e7be7673"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Sat Oct 29 06:13:39 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Oct 30 04:43:30 2011 -0400"
      },
      "message": "vlan: allow nested vlan_do_receive()\n\ncommit 2425717b27eb (net: allow vlan traffic to be received under bond)\nbroke ARP processing on vlan on top of bonding.\n\n       +-------+\neth0 --| bond0 |---bond0.103\neth1 --|       |\n       +-------+\n\n52870.115435: skb_gro_reset_offset \u003c-napi_gro_receive\n52870.115435: dev_gro_receive \u003c-napi_gro_receive\n52870.115435: napi_skb_finish \u003c-napi_gro_receive\n52870.115435: netif_receive_skb \u003c-napi_skb_finish\n52870.115435: get_rps_cpu \u003c-netif_receive_skb\n52870.115435: __netif_receive_skb \u003c-netif_receive_skb\n52870.115436: vlan_do_receive \u003c-__netif_receive_skb\n52870.115436: bond_handle_frame \u003c-__netif_receive_skb\n52870.115436: vlan_do_receive \u003c-__netif_receive_skb\n52870.115436: arp_rcv \u003c-__netif_receive_skb\n52870.115436: kfree_skb \u003c-arp_rcv\n\nPacket is dropped in arp_rcv() because its pkt_type was set to\nPACKET_OTHERHOST in the first vlan_do_receive() call, since no eth0.103\nexists.\n\nWe really need to change pkt_type only if no more rx_handler is about to\nbe called for the packet.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nReviewed-by: Jiri Pirko \u003cjpirko@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "14ef37b6d00eb5d06704e45989ba4c21e7be7673",
      "tree": "800422d2aa85e190bc6e07e305574d71bf25db24",
      "parents": [
        "e6d265e8504ab4a3368b8645d318b344ee88b280"
      ],
      "author": {
        "name": "Andreas Hofmeister",
        "email": "andi@collax.com",
        "time": "Wed Oct 26 03:24:29 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Oct 30 04:12:36 2011 -0400"
      },
      "message": "ipv6: fix route lookup in addrconf_prefix_rcv()\n\nThe route lookup to find a previously auto-configured route for a prefixes used\nto use rt6_lookup(), with the prefix from the RA used as an address. However,\nthat kind of lookup ignores routing tables, the prefix length and route flags,\nso when there were other matching routes, even in different tables and/or with\na different prefix length, the wrong route would be manipulated.\n\nNow, a new function \"addrconf_get_prefix_route()\" is used for the route lookup,\nwhich searches in RT6_TABLE_PREFIX and takes the prefix-length and route flags\ninto account.\n\nSigned-off-by: Andreas Hofmeister \u003candi@collax.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "e6d265e8504ab4a3368b8645d318b344ee88b280",
      "tree": "6fd2bc16819bae491e56be2658fc3298b7efa92c",
      "parents": [
        "10ee0faed92c8af4baebd633372136a6608a41ea"
      ],
      "author": {
        "name": "Jay Vosburgh",
        "email": "fubar@us.ibm.com",
        "time": "Fri Oct 28 15:42:50 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Oct 30 03:13:14 2011 -0400"
      },
      "message": "bonding: eliminate bond_close race conditions\n\nThis patch resolves two sets of race conditions.\n\n\tMitsuo Hayasaka \u003cmitsuo.hayasaka.hu@hitachi.com\u003e reported the\nfirst, as follows:\n\nThe bond_close() calls cancel_delayed_work() to cancel delayed works.\nIt, however, cannot cancel works that were already queued in workqueue.\nThe bond_open() initializes work-\u003edata, and proccess_one_work() refers\nget_work_cwq(work)-\u003ewq-\u003eflags. The get_work_cwq() returns NULL when\nwork-\u003edata has been initialized. Thus, a panic occurs.\n\n\tHe included a patch that converted the cancel_delayed_work calls\nin bond_close to flush_delayed_work_sync, which eliminated the above\nproblem.\n\n\tHis patch is incorporated, at least in principle, into this\npatch.  In this patch, we use cancel_delayed_work_sync in place of\nflush_delayed_work_sync, and also convert bond_uninit in addition to\nbond_close.\n\n\tThis conversion to _sync, however, opens new races between\nbond_close and three periodically executing workqueue functions:\nbond_mii_monitor, bond_alb_monitor and bond_activebackup_arp_mon.\n\n\tThe race occurs because bond_close and bond_uninit are always\ncalled with RTNL held, and these workqueue functions may acquire RTNL to\nperform failover-related activities.  If bond_close or bond_uninit is\nwaiting in cancel_delayed_work_sync, deadlock occurs.\n\n\tThese deadlocks are resolved by having the workqueue functions\nacquire RTNL conditionally.  If the rtnl_trylock() fails, the functions\nreschedule and return immediately.  For the cases that are attempting to\nperform link failover, a delay of 1 is used; for the other cases, the\nnormal interval is used (as those activities are not as time critical).\n\n\tAdditionally, the bond_mii_monitor function now stores the delay\nin a variable (mimicing the structure of activebackup_arp_mon).\n\n\tLastly, all of the above renders the kill_timers sentinel moot,\nand therefore it has been removed.\n\nTested-by: Mitsuo Hayasaka \u003cmitsuo.hayasaka.hu@hitachi.com\u003e\nSigned-off-by: Jay Vosburgh \u003cfubar@us.ibm.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "10ee0faed92c8af4baebd633372136a6608a41ea",
      "tree": "bd9390dfecf81ec40c2cdb12f97d4c7e7224132e",
      "parents": [
        "445b62dfd934394807c12aee06d3f20cf70c93b4"
      ],
      "author": {
        "name": "Sucheta Chakraborty",
        "email": "sucheta.chakraborty@qlogic.com",
        "time": "Fri Oct 28 12:57:15 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Oct 30 03:09:41 2011 -0400"
      },
      "message": "qlcnic: fix beacon and LED test.\n\no Updated version number to 5.0.25\n\no Do not hold onto RESETTING_BIT for entire duration of LED/ beacon test.\n  Instead, just checking for RESETTING_BIT not set before sending config_led\n  command down to card.\n\no Take rtnl_lock instead of RESETTING_BIT for beacon test while sending\n  config_led command down to make sure interface cannot be brought up/ down.\n\no Allocate and free resources if interface is down before\n  sending the config_led command. This is to make sure config_led\n  command sending doesn\u0027t fail.\n\no Clear QLCNIC_LED_ENABLE bit if beacon/ LED test fails to start.\n\nSigned-off-by: Sucheta Chakraborty \u003csucheta.chakraborty@qlogic.com\u003e\nSigned-off-by: Anirban Chakraborty \u003canirban.chakraborty@qlogic.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "445b62dfd934394807c12aee06d3f20cf70c93b4",
      "tree": "eb69d8607efcb3aaecae8996f747d20f6c0f9d1a",
      "parents": [
        "68233c583ab4549b739f12135bdab108336d5204"
      ],
      "author": {
        "name": "Sritej Velaga",
        "email": "sritej.velaga@qlogic.com",
        "time": "Fri Oct 28 12:57:14 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Oct 30 03:09:40 2011 -0400"
      },
      "message": "qlcnic: Updated License file\n\nUpdated qlcnic\u0027s license file.\n\nSigned-off-by: Sritej Velaga \u003csritej.velaga@qlogic.com\u003e\nSigned-off-by: Anirban Chakraborty \u003canirban.chakraborty@qlogic.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "68233c583ab4549b739f12135bdab108336d5204",
      "tree": "e638b99db915d9c039afa3baf2cfb1960fdfc774",
      "parents": [
        "ad567b8f1d1e39bdf622866a910f1d52d2be3a0a"
      ],
      "author": {
        "name": "Sony Chacko",
        "email": "sony.chacko@qlogic.com",
        "time": "Fri Oct 28 12:57:13 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Oct 30 03:09:40 2011 -0400"
      },
      "message": "qlcnic: updated reset sequence\n\nSigned-off-by: Sony Chacko \u003csony.chacko@qlogic.com\u003e\nSigned-off-by: Anirban Chakraborty \u003canirban.chakraborty@qlogic.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "ad567b8f1d1e39bdf622866a910f1d52d2be3a0a",
      "tree": "81da3fda4ec9e9215412697555e5939d0f384ebc",
      "parents": [
        "16e3cf73befecd882399d6ec7b12e8fb2c7abf73"
      ],
      "author": {
        "name": "Sucheta Chakraborty",
        "email": "sucheta.chakraborty@qlogic.com",
        "time": "Fri Oct 28 12:57:12 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Oct 30 03:09:40 2011 -0400"
      },
      "message": "qlcnic: reset loopback mode if promiscous mode setting fails.\n\nIf promiscous mode setting fails, reset loopback mode setting in firmware.\n\nSigned-off-by: Sucheta Chakraborty \u003csucheta.chakraborty@qlogic.com\u003e\nSigned-off-by: Anirban Chakraborty \u003canirban.chakraborty@qlogic.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "16e3cf73befecd882399d6ec7b12e8fb2c7abf73",
      "tree": "2e455a015cbdd7c439101e16eb1cdebdc49a9094",
      "parents": [
        "9eeebb5bc8d984298cba9d12690923cdc09ab173"
      ],
      "author": {
        "name": "Sritej Velaga",
        "email": "sritej.velaga@qlogic.com",
        "time": "Fri Oct 28 12:57:11 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Oct 30 03:09:39 2011 -0400"
      },
      "message": "qlcnic: skip IDC ack check in fw reset path.\n\nIn fw reset path, we should consider any change in device state as an\nack from the other driver. When that happens, we don\u0027t have to wait for\nan explicit ack.\n\nSigned-off-by: Sritej Velaga \u003csritej.velaga@qlogic.com\u003e\nSigned-off-by: Anirban Chakraborty \u003canirban.chakraborty@qlogic.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "9eeebb5bc8d984298cba9d12690923cdc09ab173",
      "tree": "2917993c44af42e335533b1018b35c17b3747132",
      "parents": [
        "3ddb709af32bacaf78d124420404d1ac19be99b8",
        "93840ac40bb0d0f177ef8af74e64671be67e8c37"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Oct 30 03:05:07 2011 -0400"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Oct 30 03:05:07 2011 -0400"
      },
      "message": "Merge branch \u0027batman-adv/maint\u0027 of git://git.open-mesh.org/linux-merge\n"
    },
    {
      "commit": "ce949717b559709423c1ef716a9db16d1dcadaed",
      "tree": "003c5c064cd6104c8bff431e3431314bd614d7e0",
      "parents": [
        "249842477c589ea29ff161ace9c8666d96e9883a",
        "0acf00014bcfd71090c3b0d43c98e970108064e4"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Oct 29 07:52:16 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Oct 29 07:52:16 2011 -0700"
      },
      "message": "Merge git://github.com/rustyrussell/linux\n\n* git://github.com/rustyrussell/linux:\n  lguest: move process freezing before pending signals check\n  lguest: don\u0027t allow KVM-detection cpuid.\n  lguest: Allow running under paravirt-enabled KVM.\n"
    },
    {
      "commit": "249842477c589ea29ff161ace9c8666d96e9883a",
      "tree": "5b041a3a703fe9c5040835b27c4a727009a242db",
      "parents": [
        "18c0635363364ca2fc2d1cbd65bbf918daf89d1a",
        "81397a625d063403d80a25bba00fa1cb6d7e04f5"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Oct 29 07:29:40 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Oct 29 07:29:40 2011 -0700"
      },
      "message": "Merge branch \u0027devicetree/merge\u0027 of git://git.secretlab.ca/git/linux-2.6\n\n* \u0027devicetree/merge\u0027 of git://git.secretlab.ca/git/linux-2.6:\n  ARM: mark empty gpio.h files empty\n  gpio: Fix ARM versatile-express build failure\n  of: include errno.h\n"
    },
    {
      "commit": "18c0635363364ca2fc2d1cbd65bbf918daf89d1a",
      "tree": "6fd1975977b4ab190b77952ee8e263f66e3dc5f7",
      "parents": [
        "41684f67af75b04152a1714e1a5375dfb00ee3da",
        "940ab88962bc1aff3273a8356d64577a6e386736"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Oct 29 07:28:36 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Oct 29 07:28:36 2011 -0700"
      },
      "message": "Merge branch \u0027spi/next\u0027 of git://git.secretlab.ca/git/linux-2.6\n\n* \u0027spi/next\u0027 of git://git.secretlab.ca/git/linux-2.6:\n  drivercore: Add helper macro for platform_driver boilerplate\n  spi: irq: Remove IRQF_DISABLED\n  OMAP: SPI: Fix the trying to free nonexistent resource error\n  spi/spi-ep93xx: add module.h include\n  spi/tegra: fix compilation error in spi-tegra.c\n  spi: spi-dw: fix all sparse warnings\n  spi/spi-pl022: Call pl022_dma_remove(pl022) only if enable_dma is true\n  spi/spi-pl022: calculate_effective_freq() must set rate \u003c\u003d requested rate\n  spi/spi-pl022: Don\u0027t allocate more sg than required.\n  spi/spi-pl022: Use GFP_ATOMIC for allocation from tasklet\n  spi/spi-pl022: Resolve formatting issues\n"
    },
    {
      "commit": "41684f67af75b04152a1714e1a5375dfb00ee3da",
      "tree": "3b0f51dd8103a4fd40ebb6cefeece7579e348cde",
      "parents": [
        "ec7ae517537ae5c7b0b2cd7f562dfa3e7a05b954",
        "d92ef29a6fa971d9e314e412cd9c09757906411a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Oct 29 07:27:45 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Oct 29 07:27:45 2011 -0700"
      },
      "message": "Merge branch \u0027gpio/next\u0027 of git://git.secretlab.ca/git/linux-2.6\n\n* \u0027gpio/next\u0027 of git://git.secretlab.ca/git/linux-2.6:\n  h8300: Move gpio.h to gpio-internal.h\n  gpio: pl061: add DT binding support\n  gpio: fix build error in include/asm-generic/gpio.h\n  gpiolib: Ensure struct gpio is always defined\n  irq: Add EXPORT_SYMBOL_GPL to function of irq generic-chip\n  gpio-ml-ioh: Use NUMA_NO_NODE not GFP_KERNEL\n  gpio-pch: Use NUMA_NO_NODE not GFP_KERNEL\n  gpio: langwell: ensure alternate function is cleared\n  gpio-pch: Support interrupt function\n  gpio-pch: Save register value in suspend()\n  gpio-pch: modify gpio_nums and mask\n  gpio-pch: support ML7223 IOH n-Bus\n  gpio-pch: add spinlock in suspend/resume processing\n  gpio-pch: Delete invalid \"restore\" code in suspend()\n  gpio-ml-ioh: Fix suspend/resume issue\n  gpio-ml-ioh: Support interrupt function\n  gpio-ml-ioh: Delete unnecessary code\n  gpio/mxc: add chained_irq_enter/exit() to mx3_gpio_irq_handler()\n  gpio/nomadik: use genirq core to track enablement\n  gpio/nomadik: disable clocks when unused\n"
    },
    {
      "commit": "81397a625d063403d80a25bba00fa1cb6d7e04f5",
      "tree": "35175b626457ba008da464cf5d02a9c10c0cf17c",
      "parents": [
        "041af835b343d5f0d0615e20881f5974c9b1e566"
      ],
      "author": {
        "name": "Linus Walleij",
        "email": "linus.walleij@linaro.org",
        "time": "Fri Oct 28 22:19:02 2011 +0200"
      },
      "committer": {
        "name": "Grant Likely",
        "email": "grant.likely@secretlab.ca",
        "time": "Sat Oct 29 13:05:46 2011 +0200"
      },
      "message": "ARM: mark empty gpio.h files empty\n\nIt is generally a better idea to make intentionally empty files\ncontain the human-readable /* empty */ comment, also it makes\nthe files play nice with \"make distclean\".\n\nReported-by: Jeff Garzik \u003cjeff@garzik.org\u003e\nSigned-off-by: Linus Walleij \u003clinus.walleij@linaro.org\u003e\nAcked-by: Jeff Garzik \u003cjeff@garzik.org\u003e\nSigned-off-by: Grant Likely \u003cgrant.likely@secretlab.ca\u003e\n"
    },
    {
      "commit": "041af835b343d5f0d0615e20881f5974c9b1e566",
      "tree": "7385bab75c8bfba8dbff4a46529a4fad5ed2727d",
      "parents": [
        "e51130c0f5e5ca2f5b669ca6759e0ae1aa197b63"
      ],
      "author": {
        "name": "Grant Likely",
        "email": "grant.likely@secretlab.ca",
        "time": "Sat Oct 29 12:39:36 2011 +0200"
      },
      "committer": {
        "name": "Grant Likely",
        "email": "grant.likely@secretlab.ca",
        "time": "Sat Oct 29 12:50:45 2011 +0200"
      },
      "message": "gpio: Fix ARM versatile-express build failure\n\nA missing mach/gpio.h prevents building gpiolib on versatile express.\n\n  CC      drivers/gpio/gpiolib.o\nIn file included from /.../linux/include/linux/gpio.h:18:0,\n                 from /.../linux/drivers/gpio/gpiolib.c:10:\n/.../linux/arch/arm/include/asm/gpio.h:5:23: fatal error: mach/gpio.h: No such file or directory\ncompilation terminated.\nmake[3]: *** [drivers/gpio/gpiolib.o] Error 1\nmake[2]: *** [drivers/gpio] Error 2\nmake[1]: *** [drivers] Error 2\nmake: *** [sub-make] Error 2\n\nSigned-off-by: Grant Likely \u003cgrant.likely@secretlab.ca\u003e\n"
    },
    {
      "commit": "e51130c0f5e5ca2f5b669ca6759e0ae1aa197b63",
      "tree": "f2160b4248909def62b33c24f1d1c1863781a9ce",
      "parents": [
        "ec7ae517537ae5c7b0b2cd7f562dfa3e7a05b954"
      ],
      "author": {
        "name": "Kalle Valo",
        "email": "kvalo@qca.qualcomm.com",
        "time": "Thu Oct 06 15:40:44 2011 +0300"
      },
      "committer": {
        "name": "Grant Likely",
        "email": "grant.likely@secretlab.ca",
        "time": "Sat Oct 29 12:49:40 2011 +0200"
      },
      "message": "of: include errno.h\n\nWhen compiling ath6kl for beagleboard (omap2plus_defconfig plus\nCONFIG_ATH6KL, CONFIG_OF disable) with current linux-next compilation\nfails:\n\ninclude/linux/of.h:269: error: \u0027ENOSYS\u0027 undeclared (first use in this function)\ninclude/linux/of.h:276: error: \u0027ENOSYS\u0027 undeclared (first use in this function)\ninclude/linux/of.h:289: error: \u0027ENOSYS\u0027 undeclared (first use in this function)\n\nFix this by including errno.h from of.h.\n\nSigned-off-by: Kalle Valo \u003ckvalo@qca.qualcomm.com\u003e\nAcked-by: Geert Uytterhoeven \u003cgeert@linux-m68k.org\u003e\nSigned-off-by: Grant Likely \u003cgrant.likely@secretlab.ca\u003e\n"
    },
    {
      "commit": "ec7ae517537ae5c7b0b2cd7f562dfa3e7a05b954",
      "tree": "e6b0c64a51a7c0aa0efd09d4f7a80872e3b1657a",
      "parents": [
        "97d2eb13a019ec09cc1a7ea2d3705c0b117b3c0d",
        "590134fa78fbdbe5fea78c7ae0b2c3364bc9572f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 28 16:44:18 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 28 16:44:18 2011 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6: (204 commits)\n  [SCSI] qla4xxx: export address/port of connection (fix udev disk names)\n  [SCSI] ipr: Fix BUG on adapter dump timeout\n  [SCSI] megaraid_sas: Fix instance access in megasas_reset_timer\n  [SCSI] hpsa: change confusing message to be more clear\n  [SCSI] iscsi class: fix vlan configuration\n  [SCSI] qla4xxx: fix data alignment and use nl helpers\n  [SCSI] iscsi class: fix link local mispelling\n  [SCSI] iscsi class: Replace iscsi_get_next_target_id with IDA\n  [SCSI] aacraid: use lower snprintf() limit\n  [SCSI] lpfc 8.3.27: Change driver version to 8.3.27\n  [SCSI] lpfc 8.3.27: T10 additions for SLI4\n  [SCSI] lpfc 8.3.27: Fix queue allocation failure recovery\n  [SCSI] lpfc 8.3.27: Change algorithm for getting physical port name\n  [SCSI] lpfc 8.3.27: Changed worst case mailbox timeout\n  [SCSI] lpfc 8.3.27: Miscellanous logic and interface fixes\n  [SCSI] megaraid_sas: Changelog and version update\n  [SCSI] megaraid_sas: Add driver workaround for PERC5/1068 kdump kernel panic\n  [SCSI] megaraid_sas: Add multiple MSI-X vector/multiple reply queue support\n  [SCSI] megaraid_sas: Add support for MegaRAID 9360/9380 12GB/s controllers\n  [SCSI] megaraid_sas: Clear FUSION_IN_RESET before enabling interrupts\n  ...\n"
    },
    {
      "commit": "97d2eb13a019ec09cc1a7ea2d3705c0b117b3c0d",
      "tree": "86f6382941f8cfc41647d33d87bec7bc1407c18c",
      "parents": [
        "68d99b2c8efcb6ed3807a55569300c53b5f88be5",
        "339573406737461cfb17bebabf7ba536a302d841"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 28 16:42:18 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 28 16:42:18 2011 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://ceph.newdream.net/git/ceph-client\n\n* \u0027for-linus\u0027 of git://ceph.newdream.net/git/ceph-client:\n  libceph: fix double-free of page vector\n  ceph: fix 32-bit ino numbers\n  libceph: force resend of osd requests if we skip an osdmap\n  ceph: use kernel DNS resolver\n  ceph: fix ceph_monc_init memory leak\n  ceph: let the set_layout ioctl set single traits\n  Revert \"ceph: don\u0027t truncate dirty pages in invalidate work thread\"\n  ceph: replace leading spaces with tabs\n  libceph: warn on msg allocation failures\n  libceph: don\u0027t complain on msgpool alloc failures\n  libceph: always preallocate mon connection\n  libceph: create messenger with client\n  ceph: document ioctls\n  ceph: implement (optional) max read size\n  ceph: rename rsize -\u003e rasize\n  ceph: make readpages fully async\n"
    },
    {
      "commit": "68d99b2c8efcb6ed3807a55569300c53b5f88be5",
      "tree": "f189c8f2132d3668a2f0e503f5c3f8695b26a1c8",
      "parents": [
        "0e59e7e7feb5a12938fbf9135147eeda3238c6c4",
        "8128c9f21509f9a8b6da94ac432d845dda458406"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 28 14:25:01 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 28 14:25:01 2011 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (549 commits)\n  ALSA: hda - Fix ADC input-amp handling for Cx20549 codec\n  ALSA: hda - Keep EAPD turned on for old Conexant chips\n  ALSA: hda/realtek - Fix missing volume controls with ALC260\n  ASoC: wm8940: Properly set codec-\u003edapm.bias_level\n  ALSA: hda - Fix pin-config for ASUS W90V\n  ALSA: hda - Fix surround/CLFE headphone and speaker pins order\n  ALSA: hda - Fix typo\n  ALSA: Update the sound git tree URL\n  ALSA: HDA: Add new revision for ALC662\n  ASoC: max98095: Convert codec-\u003ehw_write to snd_soc_write\n  ASoC: keep pointer to resource so it can be freed\n  ASoC: sgtl5000: Fix wrong mask in some snd_soc_update_bits calls\n  ASoC: wm8996: Fix wrong mask for setting WM8996_AIF_CLOCKING_2\n  ASoC: da7210: Add support for line out and DAC\n  ASoC: da7210: Add support for DAPM\n  ALSA: hda/realtek - Fix DAC assignments of multiple speakers\n  ASoC: Use SGTL5000_LINREG_VDDD_MASK instead of hardcoded mask value\n  ASoC: Set sgtl5000-\u003eldo in ldo_regulator_register\n  ASoC: wm8996: Use SND_SOC_DAPM_AIF_OUT for AIF2 Capture\n  ASoC: wm8994: Use SND_SOC_DAPM_AIF_OUT for AIF3 Capture\n  ...\n"
    },
    {
      "commit": "0e59e7e7feb5a12938fbf9135147eeda3238c6c4",
      "tree": "dbe994369ca9cad6893f0fd710f75791bc84b816",
      "parents": [
        "46b51ea2099fa2082342e52b8284aa828429b80b",
        "a513a99a7cebfb452839cc09c9c0586f72d96414"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 28 14:20:44 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 28 14:20:44 2011 -0700"
      },
      "message": "Merge branch \u0027next-rebase\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci\n\n* \u0027next-rebase\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci:\n  PCI: Clean-up MPS debug output\n  pci: Clamp pcie_set_readrq() when using \"performance\" settings\n  PCI: enable MPS \"performance\" setting to properly handle bridge MPS\n  PCI: Workaround for Intel MPS errata\n  PCI: Add support for PASID capability\n  PCI: Add implementation for PRI capability\n  PCI: Export ATS functions to modules\n  PCI: Move ATS implementation into own file\n  PCI / PM: Remove unnecessary error variable from acpi_dev_run_wake()\n  PCI hotplug: acpiphp: Prevent deadlock on PCI-to-PCI bridge remove\n  PCI / PM: Extend PME polling to all PCI devices\n  PCI quirk: mmc: Always check for lower base frequency quirk for Ricoh 1180:e823\n  PCI: Make pci_setup_bridge() non-static for use by arch code\n  x86: constify PCI raw ops structures\n  PCI: Add quirk for known incorrect MPSS\n  PCI: Add Solarflare vendor ID and SFC4000 device IDs\n"
    },
    {
      "commit": "46b51ea2099fa2082342e52b8284aa828429b80b",
      "tree": "0a0d7bfe1aff036c86a2e7beacbd91398008bfb6",
      "parents": [
        "1fdb24e969110fafea36d3b393bea438f702c87f",
        "a6029e1f75bb484c1f5bc68b6a8572e4024795bc"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 28 14:16:11 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 28 14:16:11 2011 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/cjb/mmc\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/cjb/mmc: (83 commits)\n  mmc: fix compile error when CONFIG_BLOCK is not enabled\n  mmc: core: Cleanup eMMC4.5 conditionals\n  mmc: omap_hsmmc: if multiblock reads are broken, disable them\n  mmc: core: add workaround for controllers with broken multiblock reads\n  mmc: core: Prevent too long response times for suspend\n  mmc: recognise SDIO cards with SDIO_CCCR_REV 3.00\n  mmc: sd: Handle SD3.0 cards not supporting UHS-I bus speed mode\n  mmc: core: support HPI send command\n  mmc: core: Add cache control for eMMC4.5 device\n  mmc: core: Modify the timeout value for writing power class\n  mmc: core: new discard feature support at eMMC v4.5\n  mmc: core: mmc sanitize feature support for v4.5\n  mmc: dw_mmc: modify DATA register offset\n  mmc: sdhci-pci: add flag for devices that can support runtime PM\n  mmc: omap_hsmmc: ensure pbias configuration is always done\n  mmc: core: Add Power Off Notify Feature eMMC 4.5\n  mmc: sdhci-s3c: fix potential NULL dereference\n  mmc: replace printk with appropriate display macro\n  mmc: core: Add default timeout value for CMD6\n  mmc: sdhci-pci: add runtime pm support\n  ...\n"
    },
    {
      "commit": "3ddb709af32bacaf78d124420404d1ac19be99b8",
      "tree": "60f603094ddb3ab6f63c561800b138ae965a5955",
      "parents": [
        "7011687f0f2f12cc348f6a693fafe63d89167eac"
      ],
      "author": {
        "name": "Geert Uytterhoeven",
        "email": "geert@linux-m68k.org",
        "time": "Fri Oct 28 10:53:32 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Oct 28 17:06:56 2011 -0400"
      },
      "message": "i825xx: Fix incorrect dependency for BVME6000_NET\n\nSigned-off-by: Geert Uytterhoeven \u003cgeert@linux-m68k.org\u003e\nAcked-by: Jeff Kirsher \u003cjeffrey.t.kirsher@intel.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "7011687f0f2f12cc348f6a693fafe63d89167eac",
      "tree": "c5e546044c5ff88b4abafc28df19e8b7ba951a7e",
      "parents": [
        "504744e4edc24f6f16eed44a59b39bffcc0c1391"
      ],
      "author": {
        "name": "Gao feng",
        "email": "omarapazanadi@gmail.com",
        "time": "Fri Oct 28 02:46:57 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Oct 28 16:36:07 2011 -0400"
      },
      "message": "ipv6: fix route error binding peer in func icmp6_dst_alloc\n\nin func icmp6_dst_alloc,dst_metric_set call ipv6_cow_metrics to set metric.\nipv6_cow_metrics may will call rt6_bind_peer to set rt6_info-\u003ert6i_peer.\nSo,we should move ipv6_addr_copy before dst_metric_set to make sure rt6_bind_peer success.\n\nSigned-off-by: Gao feng \u003cgaofeng@cn.fujitsu.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "1fdb24e969110fafea36d3b393bea438f702c87f",
      "tree": "47a1dfef8a259e7922285315f8a02d31b4efe2f1",
      "parents": [
        "f362f98e7c445643d27c610bb7a86b79727b592e",
        "531a6a941745e1e045dd2a6bd09e1dc01247a5f3"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 28 12:02:27 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 28 12:02:27 2011 -0700"
      },
      "message": "Merge branch \u0027devel-stable\u0027 of http://ftp.arm.linux.org.uk/pub/linux/arm/kernel/git-cur/linux-2.6-arm\n\n* \u0027devel-stable\u0027 of http://ftp.arm.linux.org.uk/pub/linux/arm/kernel/git-cur/linux-2.6-arm: (178 commits)\n  ARM: 7139/1: fix compilation with CONFIG_ARM_ATAG_DTB_COMPAT and large TEXT_OFFSET\n  ARM: gic, local timers: use the request_percpu_irq() interface\n  ARM: gic: consolidate PPI handling\n  ARM: switch from NO_MACH_MEMORY_H to NEED_MACH_MEMORY_H\n  ARM: mach-s5p64x0: remove mach/memory.h\n  ARM: mach-s3c64xx: remove mach/memory.h\n  ARM: plat-mxc: remove mach/memory.h\n  ARM: mach-prima2: remove mach/memory.h\n  ARM: mach-zynq: remove mach/memory.h\n  ARM: mach-bcmring: remove mach/memory.h\n  ARM: mach-davinci: remove mach/memory.h\n  ARM: mach-pxa: remove mach/memory.h\n  ARM: mach-ixp4xx: remove mach/memory.h\n  ARM: mach-h720x: remove mach/memory.h\n  ARM: mach-vt8500: remove mach/memory.h\n  ARM: mach-s5pc100: remove mach/memory.h\n  ARM: mach-tegra: remove mach/memory.h\n  ARM: plat-tcc: remove mach/memory.h\n  ARM: mach-mmp: remove mach/memory.h\n  ARM: mach-cns3xxx: remove mach/memory.h\n  ...\n\nFix up mostly pretty trivial conflicts in:\n - arch/arm/Kconfig\n - arch/arm/include/asm/localtimer.h\n - arch/arm/kernel/Makefile\n - arch/arm/mach-shmobile/board-ap4evb.c\n - arch/arm/mach-u300/core.c\n - arch/arm/mm/dma-mapping.c\n - arch/arm/mm/proc-v7.S\n - arch/arm/plat-omap/Kconfig\nlargely due to some CONFIG option renaming (ie CONFIG_PM_SLEEP -\u003e\nCONFIG_ARM_CPU_SUSPEND for the arm-specific suspend code etc) and\naddition of NEED_MACH_MEMORY_H next to HAVE_IDE.\n"
    },
    {
      "commit": "f362f98e7c445643d27c610bb7a86b79727b592e",
      "tree": "399d9ebccdfbdfe9690ab1403a001d6f08e54b41",
      "parents": [
        "f793f2961170c0b49c1650e69e7825484159ce62",
        "f3c7691e8d30d88899b514675c7c86d19057b5fd"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 28 10:49:34 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 28 10:49:34 2011 -0700"
      },
      "message": "Merge branch \u0027for-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/hch/vfs-queue\n\n* \u0027for-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/hch/vfs-queue: (21 commits)\n  leases: fix write-open/read-lease race\n  nfs: drop unnecessary locking in llseek\n  ext4: replace cut\u0027n\u0027pasted llseek code with generic_file_llseek_size\n  vfs: add generic_file_llseek_size\n  vfs: do (nearly) lockless generic_file_llseek\n  direct-io: merge direct_io_walker into __blockdev_direct_IO\n  direct-io: inline the complete submission path\n  direct-io: separate map_bh from dio\n  direct-io: use a slab cache for struct dio\n  direct-io: rearrange fields in dio/dio_submit to avoid holes\n  direct-io: fix a wrong comment\n  direct-io: separate fields only used in the submission path from struct dio\n  vfs: fix spinning prevention in prune_icache_sb\n  vfs: add a comment to inode_permission()\n  vfs: pass all mask flags check_acl and posix_acl_permission\n  vfs: add hex format for MAY_* flag values\n  vfs: indicate that the permission functions take all the MAY_* flags\n  compat: sync compat_stats with statfs.\n  vfs: add \"device\" tag to /proc/self/mountstats\n  cleanup: vfs: small comment fix for block_invalidatepage\n  ...\n\nFix up trivial conflict in fs/gfs2/file.c (llseek changes)\n"
    },
    {
      "commit": "f793f2961170c0b49c1650e69e7825484159ce62",
      "tree": "06d27973f9db1080c1460f32155ce2baf610c3d4",
      "parents": [
        "dabcbb1bae0f55378060b285062b20f6ec648c6a",
        "b99b98dc2673a123a73068f16720232d7be7e669"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 28 10:44:50 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 28 10:44:50 2011 -0700"
      },
      "message": "Merge http://sucs.org/~rohan/git/gfs2-3.0-nmw\n\n* http://sucs.org/~rohan/git/gfs2-3.0-nmw: (24 commits)\n  GFS2: Move readahead of metadata during deallocation into its own function\n  GFS2: Remove two unused variables\n  GFS2: Misc fixes\n  GFS2: rewrite fallocate code to write blocks directly\n  GFS2: speed up delete/unlink performance for large files\n  GFS2: Fix off-by-one in gfs2_blk2rgrpd\n  GFS2: Clean up -\u003epage_mkwrite\n  GFS2: Correctly set goal block after allocation\n  GFS2: Fix AIL flush issue during fsync\n  GFS2: Use cached rgrp in gfs2_rlist_add()\n  GFS2: Call do_strip() directly from recursive_scan()\n  GFS2: Remove obsolete assert\n  GFS2: Cache the most recently used resource group in the inode\n  GFS2: Make resource groups \"append only\" during life of fs\n  GFS2: Use rbtree for resource groups and clean up bitmap buffer ref count scheme\n  GFS2: Fix lseek after SEEK_DATA, SEEK_HOLE have been added\n  GFS2: Clean up gfs2_create\n  GFS2: Use -\u003edirty_inode()\n  GFS2: Fix bug trap and journaled data fsync\n  GFS2: Fix inode allocation error path\n  ...\n"
    },
    {
      "commit": "dabcbb1bae0f55378060b285062b20f6ec648c6a",
      "tree": "027cdd35ce43cce95a78afab22e1e809b436b636",
      "parents": [
        "5619a693965b291315685bdfe01a0246ebd7e41e",
        "e0c8ea1a69410ef44043646938a6a4175f5307e4"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 28 10:43:32 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 28 10:43:32 2011 -0700"
      },
      "message": "Merge branch \u00273.2-without-smb2\u0027 of git://git.samba.org/sfrench/cifs-2.6\n\n* \u00273.2-without-smb2\u0027 of git://git.samba.org/sfrench/cifs-2.6: (52 commits)\n  Fix build break when freezer not configured\n  Add definition for share encryption\n  CIFS: Make cifs_push_locks send as many locks at once as possible\n  CIFS: Send as many mandatory unlock ranges at once as possible\n  CIFS: Implement caching mechanism for posix brlocks\n  CIFS: Implement caching mechanism for mandatory brlocks\n  CIFS: Fix DFS handling in cifs_get_file_info\n  CIFS: Fix error handling in cifs_readv_complete\n  [CIFS] Fixup trivial checkpatch warning\n  [CIFS] Show nostrictsync and noperm mount options in /proc/mounts\n  cifs, freezer: add wait_event_freezekillable and have cifs use it\n  cifs: allow cifs_max_pending to be readable under /sys/module/cifs/parameters\n  cifs: tune bdi.ra_pages in accordance with the rsize\n  cifs: allow for larger rsize\u003d options and change defaults\n  cifs: convert cifs_readpages to use async reads\n  cifs: add cifs_async_readv\n  cifs: fix protocol definition for READ_RSP\n  cifs: add a callback function to receive the rest of the frame\n  cifs: break out 3rd receive phase into separate function\n  cifs: find mid earlier in receive codepath\n  ...\n"
    },
    {
      "commit": "5619a693965b291315685bdfe01a0246ebd7e41e",
      "tree": "80a9869814d601a3d5fb439d6c6e4d6c7d6865e4",
      "parents": [
        "37be944a0270402f9cda291a930b0286f6dc92f5",
        "9e4c109ac822395e0aae650e4e3c9e4903f6602f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 28 10:31:42 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 28 10:31:42 2011 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://oss.sgi.com/xfs/xfs\n\n* \u0027for-linus\u0027 of git://oss.sgi.com/xfs/xfs: (69 commits)\n  xfs: add AIL pushing tracepoints\n  xfs: put in missed fix for merge problem\n  xfs: do not flush data workqueues in xfs_flush_buftarg\n  xfs: remove XFS_bflush\n  xfs: remove xfs_buf_target_name\n  xfs: use xfs_ioerror_alert in xfs_buf_iodone_callbacks\n  xfs: clean up xfs_ioerror_alert\n  xfs: clean up buffer allocation\n  xfs: remove buffers from the delwri list in xfs_buf_stale\n  xfs: remove XFS_BUF_STALE and XFS_BUF_SUPER_STALE\n  xfs: remove XFS_BUF_SET_VTYPE and XFS_BUF_SET_VTYPE_REF\n  xfs: remove XFS_BUF_FINISH_IOWAIT\n  xfs: remove xfs_get_buftarg_list\n  xfs: fix buffer flushing during unmount\n  xfs: optimize fsync on directories\n  xfs: reduce the number of log forces from tail pushing\n  xfs: Don\u0027t allocate new buffers on every call to _xfs_buf_find\n  xfs: simplify xfs_trans_ijoin* again\n  xfs: unlock the inode before log force in xfs_change_file_space\n  xfs: unlock the inode before log force in xfs_fs_nfs_commit_metadata\n  ...\n"
    },
    {
      "commit": "f3c7691e8d30d88899b514675c7c86d19057b5fd",
      "tree": "0065bcc05b19a99d8785ce523f992a48fe573e79",
      "parents": [
        "79835a710d6ff811659c8de46f89c7577c3b8cc6"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Wed Sep 21 10:58:13 2011 -0400"
      },
      "committer": {
        "name": "root",
        "email": "root@serles.lst.de",
        "time": "Fri Oct 28 14:59:00 2011 +0200"
      },
      "message": "leases: fix write-open/read-lease race\n\nIn setlease, we use i_writecount to decide whether we can give out a\nread lease.\n\nIn open, we break leases before incrementing i_writecount.\n\nThere is therefore a window between the break lease and the i_writecount\nincrement when setlease could add a new read lease.\n\nThis would leave us with a simultaneous write open and read lease, which\nshouldn\u0027t happen.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "79835a710d6ff811659c8de46f89c7577c3b8cc6",
      "tree": "0c0c3ab2fc4bfb506bc32e7afc18cad31e4086b9",
      "parents": [
        "4cce0e28b932c11454f75d1c1fae674600c23fbf"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "ak@linux.intel.com",
        "time": "Thu Sep 15 16:06:52 2011 -0700"
      },
      "committer": {
        "name": "root",
        "email": "root@serles.lst.de",
        "time": "Fri Oct 28 14:59:00 2011 +0200"
      },
      "message": "nfs: drop unnecessary locking in llseek\n\nThis makes NFS follow the standard generic_file_llseek locking scheme.\n\nCc: Trond.Myklebust@netapp.com\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "4cce0e28b932c11454f75d1c1fae674600c23fbf",
      "tree": "3c1a0772eb6e681ebde32c7a9bab2cefb87eaf69",
      "parents": [
        "5760495a872d63a182962680a13c2af29235237c"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "ak@linux.intel.com",
        "time": "Thu Sep 15 16:06:51 2011 -0700"
      },
      "committer": {
        "name": "root",
        "email": "root@serles.lst.de",
        "time": "Fri Oct 28 14:58:59 2011 +0200"
      },
      "message": "ext4: replace cut\u0027n\u0027pasted llseek code with generic_file_llseek_size\n\nThis gives ext4 the benefits of unlocked llseek.\n\nCc: tytso@mit.edu\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "5760495a872d63a182962680a13c2af29235237c",
      "tree": "ab7ac2b0ec66006efbc27c318c89474a63d6e4d1",
      "parents": [
        "ef3d0fd27e90f67e35da516dafc1482c82939a60"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "ak@linux.intel.com",
        "time": "Thu Sep 15 16:06:50 2011 -0700"
      },
      "committer": {
        "name": "root",
        "email": "root@serles.lst.de",
        "time": "Fri Oct 28 14:58:59 2011 +0200"
      },
      "message": "vfs: add generic_file_llseek_size\n\nAdd a generic_file_llseek variant to the VFS that allows passing in\nthe maximum file size of the file system, instead of always\nusing maxbytes from the superblock.\n\nThis can be used to eliminate some cut\u0027n\u0027paste seek code in ext4.\n\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "ef3d0fd27e90f67e35da516dafc1482c82939a60",
      "tree": "dea852eab2a52782867becffb11bce2577ed2b91",
      "parents": [
        "847cc6371ba820763773e993000410d6d8d23515"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "ak@linux.intel.com",
        "time": "Thu Sep 15 16:06:48 2011 -0700"
      },
      "committer": {
        "name": "root",
        "email": "root@serles.lst.de",
        "time": "Fri Oct 28 14:58:58 2011 +0200"
      },
      "message": "vfs: do (nearly) lockless generic_file_llseek\n\nThe i_mutex lock use of generic _file_llseek hurts.  Independent processes\naccessing the same file synchronize over a single lock, even though\nthey have no need for synchronization at all.\n\nUnder high utilization this can cause llseek to scale very poorly on larger\nsystems.\n\nThis patch does some rethinking of the llseek locking model:\n\nFirst the 64bit f_pos is not necessarily atomic without locks\non 32bit systems. This can already cause races with read() today.\nThis was discussed on linux-kernel in the past and deemed acceptable.\nThe patch does not change that.\n\nLet\u0027s look at the different seek variants:\n\nSEEK_SET: Doesn\u0027t really need any locking.\nIf there\u0027s a race one writer wins, the other loses.\n\nFor 32bit the non atomic update races against read()\nstay the same. Without a lock they can also happen\nagainst write() now.  The read() race was deemed\nacceptable in past discussions, and I think if it\u0027s\nok for read it\u0027s ok for write too.\n\n\u003d\u003e Don\u0027t need a lock.\n\nSEEK_END: This behaves like SEEK_SET plus it reads\nthe maximum size too. Reading the maximum size would have the\n32bit atomic problem. But luckily we already have a way to read\nthe maximum size without locking (i_size_read), so we\ncan just use that instead.\n\nWithout i_mutex there is no synchronization with write() anymore,\nhowever since the write() update is atomic on 64bit it just behaves\nlike another racy SEEK_SET.  On non atomic 32bit it\u0027s the same\nas SEEK_SET.\n\n\u003d\u003e Don\u0027t need a lock, but need to use i_size_read()\n\nSEEK_CUR: This has a read-modify-write race window\non the same file. One could argue that any application\ndoing unsynchronized seeks on the same file is already broken.\nBut for the sake of not adding a regression here I\u0027m\nusing the file-\u003ef_lock to synchronize this. Using this\nlock is much better than the inode mutex because it doesn\u0027t\nsynchronize between processes.\n\n\u003d\u003e So still need a lock, but can use a f_lock.\n\nThis patch implements this new scheme in generic_file_llseek.\nI dropped generic_file_llseek_unlocked and changed all callers.\n\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "847cc6371ba820763773e993000410d6d8d23515",
      "tree": "ffc36e702c82fc3d9c371a72e9b0663e5ec16f80",
      "parents": [
        "ba253fbf6d3502c54e1ac8792e7ac8290a1f5b8d"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "ak@linux.intel.com",
        "time": "Mon Aug 01 21:38:09 2011 -0700"
      },
      "committer": {
        "name": "root",
        "email": "root@serles.lst.de",
        "time": "Fri Oct 28 14:58:58 2011 +0200"
      },
      "message": "direct-io: merge direct_io_walker into __blockdev_direct_IO\n\nThis doesn\u0027t change anything for the compiler, but hch thought it would\nmake the code clearer.\n\nI moved the reference counting into its own little inline.\n\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\nAcked-by: Jeff Moyer \u003cjmoyer@redhat.com\u003e\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "ba253fbf6d3502c54e1ac8792e7ac8290a1f5b8d",
      "tree": "08bfd191e714b53ed44ec185f890cc5113e6dafd",
      "parents": [
        "18772641dbe2c89c6122c603f81f6a9574aee556"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "ak@linux.intel.com",
        "time": "Mon Aug 01 21:38:08 2011 -0700"
      },
      "committer": {
        "name": "root",
        "email": "root@serles.lst.de",
        "time": "Fri Oct 28 14:58:58 2011 +0200"
      },
      "message": "direct-io: inline the complete submission path\n\nAdd inlines to all the submission path functions. While this increases\ncode size it also gives gcc a lot of optimization opportunities\nin this critical hotpath.\n\nIn particular -- together with some other changes -- this\nallows gcc to get rid of the unnecessary clearing of\nsdio at the beginning and optimize the messy parameter passing.\nAny non inlining of a function which takes a sdio parameter\nwould break this optimization because they cannot be done if the\naddress of a structure is taken.\n\nNote that benefits are only seen with CONFIG_OPTIMIZE_INLINING\nand CONFIG_CC_OPTIMIZE_FOR_SIZE both set to off.\n\nThis gives about 2.2% improvement on a large database benchmark\nwith a high IOPS rate.\n\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    }
  ],
  "next": "18772641dbe2c89c6122c603f81f6a9574aee556"
}
