)]}'
{
  "log": [
    {
      "commit": "e199b5d1fed13f5e8f47a0ee8216f36244dad1f4",
      "tree": "32b746b1ea5f59a9cf33d14b119236c78d18b398",
      "parents": [
        "170168d0a351c045adc0bee0987e51dfc82890c0"
      ],
      "author": {
        "name": "Namhyung Kim",
        "email": "namhyung@gmail.com",
        "time": "Tue Oct 26 14:22:03 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 16:52:10 2010 -0700"
      },
      "message": "vmalloc: annotate lock context change on s_start/stop()\n\ns_start() and s_stop() grab/release vmlist_lock but were missing proper\nannotations.  Add them.\n\nSigned-off-by: Namhyung Kim \u003cnamhyung@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": "170168d0a351c045adc0bee0987e51dfc82890c0",
      "tree": "e986de7fff1dd6258038e8f205190f49d6d7698c",
      "parents": [
        "e574b5fd20027b422aa80790f710d695699b4fba"
      ],
      "author": {
        "name": "Namhyung Kim",
        "email": "namhyung@gmail.com",
        "time": "Tue Oct 26 14:22:02 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 16:52:10 2010 -0700"
      },
      "message": "vmalloc: rename temporary variable in __insert_vmap_area()\n\nRename redundant \u0027tmp\u0027 to fix following sparse warnings:\n\n mm/vmalloc.c:296:34: warning: symbol \u0027tmp\u0027 shadows an earlier one\n mm/vmalloc.c:293:24: originally declared here\n\nSigned-off-by: Namhyung Kim \u003cnamhyung@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": "e574b5fd20027b422aa80790f710d695699b4fba",
      "tree": "0aca49bb6fde5c30e74546a6cb97befa00d613ad",
      "parents": [
        "e9a81a821d7f9c5d899cc3acdeafbd884c2c48bb"
      ],
      "author": {
        "name": "Namhyung Kim",
        "email": "namhyung@gmail.com",
        "time": "Tue Oct 26 14:22:02 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 16:52:10 2010 -0700"
      },
      "message": "rmap: make anon_vma_chain_free() static\n\nMake anon_vma_chain_free() static.  It is called only in rmap.c and the\ncorresponding alloc function is already static.\n\nSigned-off-by: Namhyung Kim \u003cnamhyung@gmail.com\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e9a81a821d7f9c5d899cc3acdeafbd884c2c48bb",
      "tree": "aff8d136fbe592eb31d6f7911b0d430b766d00d8",
      "parents": [
        "ea4525b6008fb29553306ec6719f8e6930ac9499"
      ],
      "author": {
        "name": "Namhyung Kim",
        "email": "namhyung@gmail.com",
        "time": "Tue Oct 26 14:22:01 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 16:52:09 2010 -0700"
      },
      "message": "rmap: wrap page_check_address() using __cond_lock()\n\nThe page_check_address() conditionally grabs *@ptlp in case of returning\nnon-NULL.  Rename and wrap it using __cond_lock() removes following\nwarnings from sparse:\n\n mm/rmap.c:472:9: warning: context imbalance in \u0027page_mapped_in_vma\u0027 - unexpected unlock\n mm/rmap.c:524:9: warning: context imbalance in \u0027page_referenced_one\u0027 - unexpected unlock\n mm/rmap.c:706:9: warning: context imbalance in \u0027page_mkclean_one\u0027 - unexpected unlock\n mm/rmap.c:1066:9: warning: context imbalance in \u0027try_to_unmap_one\u0027 - unexpected unlock\n\nSigned-off-by: Namhyung Kim \u003cnamhyung@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": "ea4525b6008fb29553306ec6719f8e6930ac9499",
      "tree": "1d168e0a05a5f2fc962b8a6e991a21b704ad6e0b",
      "parents": [
        "1b36ba815bd91f17e31277a44dd5c6b6a5a8d97e"
      ],
      "author": {
        "name": "Namhyung Kim",
        "email": "namhyung@gmail.com",
        "time": "Tue Oct 26 14:22:01 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 16:52:09 2010 -0700"
      },
      "message": "rmap: annotate lock context change on page_[un]lock_anon_vma()\n\nThe page_lock_anon_vma() conditionally grabs RCU and anon_vma lock but\npage_unlock_anon_vma() releases them unconditionally.  This leads sparse\nto complain about context imbalance.  Annotate them.\n\nSigned-off-by: Namhyung Kim \u003cnamhyung@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": "1b36ba815bd91f17e31277a44dd5c6b6a5a8d97e",
      "tree": "9d68d66e780c619b01c5d8ddc93e19547b448142",
      "parents": [
        "e6219ec8195efd5640765e657810f262ad9d1a92"
      ],
      "author": {
        "name": "Namhyung Kim",
        "email": "namhyung@gmail.com",
        "time": "Tue Oct 26 14:22:00 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 16:52:09 2010 -0700"
      },
      "message": "mm: wrap follow_pte() using __cond_lock()\n\nThe follow_pte() conditionally grabs *@ptlp in case of returning 0.\nRename and wrap it using __cond_lock() removes following warnings:\n\n mm/memory.c:2337:9: warning: context imbalance in \u0027do_wp_page\u0027 - unexpected unlock\n mm/memory.c:3142:19: warning: context imbalance in \u0027handle_mm_fault\u0027 - different lock contexts for basic block\n\nSigned-off-by: Namhyung Kim \u003cnamhyung@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": "e6219ec8195efd5640765e657810f262ad9d1a92",
      "tree": "36c718adce5018fe87398fc7d8ebb7c1dfb14646",
      "parents": [
        "25ca1d6c02fe1c6d90d918867ef670d323725458"
      ],
      "author": {
        "name": "Namhyung Kim",
        "email": "namhyung@gmail.com",
        "time": "Tue Oct 26 14:22:00 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 16:52:09 2010 -0700"
      },
      "message": "mm: add lock release annotation on do_wp_page()\n\nThe do_wp_page() releases @ptl but was missing proper annotation.  Add it.\n This removes following warnings from sparse:\n\n mm/memory.c:2337:9: warning: context imbalance in \u0027do_wp_page\u0027 - unexpected unlock\n mm/memory.c:3142:19: warning: context imbalance in \u0027handle_mm_fault\u0027 - different lock contexts for basic block\n\nSigned-off-by: Namhyung Kim \u003cnamhyung@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": "25ca1d6c02fe1c6d90d918867ef670d323725458",
      "tree": "de1709dd1dc7e0b9e9bd91840beb02f12e56b7e0",
      "parents": [
        "e6223a3b19421e3a8df1352d21fd0d71093f44ae"
      ],
      "author": {
        "name": "Namhyung Kim",
        "email": "namhyung@gmail.com",
        "time": "Tue Oct 26 14:21:59 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 16:52:09 2010 -0700"
      },
      "message": "mm: wrap get_locked_pte() using __cond_lock()\n\nThe get_locked_pte() conditionally grabs \u0027ptl\u0027 in case of returning\nnon-NULL.  This leads sparse to complain about context imbalance.  Rename\nand wrap it using __cond_lock() to make sparse happy.\n\nSigned-off-by: Namhyung Kim \u003cnamhyung@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": "e6223a3b19421e3a8df1352d21fd0d71093f44ae",
      "tree": "becc54c4946d7226fcfbe115a864035c448d8884",
      "parents": [
        "0116651c85e671a693dd2f56e95dd651f746c973"
      ],
      "author": {
        "name": "Namhyung Kim",
        "email": "namhyung@gmail.com",
        "time": "Tue Oct 26 14:21:59 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 16:52:09 2010 -0700"
      },
      "message": "mm: add casts to/from gfp_t in gfp_to_alloc_flags()\n\nThis removes following warning from sparse:\n\n mm/page_alloc.c:1934:9: warning: restricted gfp_t degrades to integer\n\nSigned-off-by: Namhyung Kim \u003cnamhyung@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": "0116651c85e671a693dd2f56e95dd651f746c973",
      "tree": "d09f274105bc756b5fbd09dcb55302c0191e7e74",
      "parents": [
        "68da336a14e16c2de95e987f3200995b707d7038"
      ],
      "author": {
        "name": "Namhyung Kim",
        "email": "namhyung@gmail.com",
        "time": "Tue Oct 26 14:21:58 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 16:52:09 2010 -0700"
      },
      "message": "mm: remove temporary variable on generic_file_direct_write()\n\n\u0027end\u0027 shadows earlier one and is not necessary at all.  Remove it and use\n\u0027pos\u0027 instead.  This removes following sparse warnings:\n\n mm/filemap.c:2180:24: warning: symbol \u0027end\u0027 shadows an earlier one\n mm/filemap.c:2132:25: originally declared here\n\nSigned-off-by: Namhyung Kim \u003cnamhyung@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": "68da336a14e16c2de95e987f3200995b707d7038",
      "tree": "b565df1ab3a795e05c5273dd4d46ba61cbdcbae9",
      "parents": [
        "d065bd810b6deb67d4897a14bfe21f8eb526ba99"
      ],
      "author": {
        "name": "Michel Lespinasse",
        "email": "walken@google.com",
        "time": "Tue Oct 26 14:21:58 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 16:52:09 2010 -0700"
      },
      "message": "x86: access_error API cleanup\n\naccess_error() already takes error_code as an argument, so there is\nno need for an additional write flag.\n\nSigned-off-by: Michel Lespinasse \u003cwalken@google.com\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nAcked-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nCc: Ying Han \u003cyinghan@google.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nAcked-by: \"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": "d065bd810b6deb67d4897a14bfe21f8eb526ba99",
      "tree": "f58c59075732ec4ccba336278c9bdc7ff61bef94",
      "parents": [
        "b522c94da5d9cbc73f708be5e530ebc3bbd4a031"
      ],
      "author": {
        "name": "Michel Lespinasse",
        "email": "walken@google.com",
        "time": "Tue Oct 26 14:21:57 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 16:52:09 2010 -0700"
      },
      "message": "mm: retry page fault when blocking on disk transfer\n\nThis change reduces mmap_sem hold times that are caused by waiting for\ndisk transfers when accessing file mapped VMAs.\n\nIt introduces the VM_FAULT_ALLOW_RETRY flag, which indicates that the call\nsite wants mmap_sem to be released if blocking on a pending disk transfer.\nIn that case, filemap_fault() returns the VM_FAULT_RETRY status bit and\ndo_page_fault() will then re-acquire mmap_sem and retry the page fault.\n\nIt is expected that the retry will hit the same page which will now be\ncached, and thus it will complete with a low mmap_sem hold time.\n\nTests:\n\n- microbenchmark: thread A mmaps a large file and does random read accesses\n  to the mmaped area - achieves about 55 iterations/s. Thread B does\n  mmap/munmap in a loop at a separate location - achieves 55 iterations/s\n  before, 15000 iterations/s after.\n\n- We are seeing related effects in some applications in house, which show\n  significant performance regressions when running without this change.\n\n[akpm@linux-foundation.org: fix warning \u0026 crash]\nSigned-off-by: Michel Lespinasse \u003cwalken@google.com\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nAcked-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nReviewed-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nCc: Ying Han \u003cyinghan@google.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nAcked-by: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nCc: \u003clinux-arch@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b522c94da5d9cbc73f708be5e530ebc3bbd4a031",
      "tree": "d29cc4887bca05fde5b86a367f02a3ea70043e11",
      "parents": [
        "182fea8f48332de085c0ae936605cb72671db9f2"
      ],
      "author": {
        "name": "Michel Lespinasse",
        "email": "walken@google.com",
        "time": "Tue Oct 26 14:21:56 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 16:52:09 2010 -0700"
      },
      "message": "mm: filemap_fault: unique path for locking page\n\nIntroduce a single location where filemap_fault() locks the desired page.\nThere used to be two such places, depending if the initial find_get_page()\nwas successful or not.\n\nSigned-off-by: Michel Lespinasse \u003cwalken@google.com\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nAcked-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nReviewed-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nCc: Ying Han \u003cyinghan@google.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nCc: \u003clinux-arch@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "182fea8f48332de085c0ae936605cb72671db9f2",
      "tree": "6938047591e9077c416b972c176d4d1d716d95a7",
      "parents": [
        "ea05c8444e451f1cfbf78c68733e717ad7b8602b"
      ],
      "author": {
        "name": "Richard Kennedy",
        "email": "richard@rsk.demon.co.uk",
        "time": "Tue Oct 26 14:21:55 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 16:52:09 2010 -0700"
      },
      "message": "mm: remove alignment padding from anon_vma on (some) 64 bit builds\n\nReorder structure anon_vma to remove alignment padding on 64 builds when\n(CONFIG_KSM || CONFIG_MIGRATION).\nThis will shrink the size of the anon_vma structure from 40 to 32 bytes\n\u0026 allow more objects per slab in its kmem_cache.\n\nUnder slub the objects in the anon_vma kmem_cache will then be 40 bytes\nwith 102 objects per slab.  (On v2.6.36 without this patch,the size is 48\nbytes and 85 objects/slab.)\n\nSigned-off-by: Richard Kennedy \u003crichard@rsk.demon.co.uk\u003e\nReviewed-by: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ea05c8444e451f1cfbf78c68733e717ad7b8602b",
      "tree": "e1ebb0406f156e406b3bef5998084b688794923e",
      "parents": [
        "d65bfacb046f3df8aa11a9cb9b6e448f6171174d"
      ],
      "author": {
        "name": "Dima Zavin",
        "email": "dima@android.com",
        "time": "Tue Oct 26 14:21:54 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 16:52:08 2010 -0700"
      },
      "message": "mm: add a might_sleep_if() to dma_pool_alloc()\n\nBuggy drivers (e.g.  fsl_udc) could call dma_pool_alloc from atomic\ncontext with GFP_KERNEL.  In most instances, the first pool_alloc_page\ncall would succeed and the sleeping functions would never be called.  This\nallowed the buggy drivers to slip through the cracks.\n\nAdd a might_sleep_if() checking for __GFP_WAIT in flags.\n\nSigned-off-by: Dima Zavin \u003cdima@android.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d65bfacb046f3df8aa11a9cb9b6e448f6171174d",
      "tree": "56e2debcf416665b115789d4484cb4f8d6b59908",
      "parents": [
        "7a837d1bb7cb2bceb093ec639068626586a89234"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue Oct 26 14:21:54 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 16:52:08 2010 -0700"
      },
      "message": "mm: highmem documentation\n\nDocument outlining some of the highmem issues, started by me, edited by\nDavid.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nAcked-by: Chris Metcalf \u003ccmetcalf@tilera.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Russell King \u003crmk@arm.linux.org.uk\u003e\nCc: Ralf Baechle \u003cralf@linux-mips.org\u003e\nCc: David Miller \u003cdavem@davemloft.net\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7a837d1bb7cb2bceb093ec639068626586a89234",
      "tree": "ed81476c9c0af6cfbba4e36d4ac4b52cd0f1c88c",
      "parents": [
        "ece0e2b6406a995c371e0311190631ea34ad851a"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue Oct 26 14:21:53 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 16:52:08 2010 -0700"
      },
      "message": "perf, x86: Fix up kmap_atomic() type\n\nNow that the KM_type stuff is history, clean up the compiler warning.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nAcked-by: Chris Metcalf \u003ccmetcalf@tilera.com\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Russell King \u003crmk@arm.linux.org.uk\u003e\nCc: Ralf Baechle \u003cralf@linux-mips.org\u003e\nCc: David Miller \u003cdavem@davemloft.net\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ece0e2b6406a995c371e0311190631ea34ad851a",
      "tree": "726a516a91f5f7efe9dbb247ba28d019981d456e",
      "parents": [
        "3e4d3af501cccdc8a8cca41bdbe57d54ad7e7e73"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue Oct 26 14:21:52 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 16:52:08 2010 -0700"
      },
      "message": "mm: remove pte_*map_nested()\n\nSince we no longer need to provide KM_type, the whole pte_*map_nested()\nAPI is now redundant, remove it.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nAcked-by: Chris Metcalf \u003ccmetcalf@tilera.com\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Russell King \u003crmk@arm.linux.org.uk\u003e\nCc: Ralf Baechle \u003cralf@linux-mips.org\u003e\nCc: David Miller \u003cdavem@davemloft.net\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3e4d3af501cccdc8a8cca41bdbe57d54ad7e7e73",
      "tree": "2ce507f7ec7275563653e52f18606aba4f99b7f1",
      "parents": [
        "61ecdb801ef2cd28e32442383106d7837d76deac"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue Oct 26 14:21:51 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 16:52:08 2010 -0700"
      },
      "message": "mm: stack based kmap_atomic()\n\nKeep the current interface but ignore the KM_type and use a stack based\napproach.\n\nThe advantage is that we get rid of crappy code like:\n\n\t#define __KM_PTE\t\t\t\\\n\t\t(in_nmi() ? KM_NMI_PTE : \t\\\n\t\t in_irq() ? KM_IRQ_PTE :\t\\\n\t\t KM_PTE0)\n\nand in general can stop worrying about what context we\u0027re in and what kmap\nslots might be appropriate for that.\n\nThe downside is that FRV kmap_atomic() gets more expensive.\n\nFor now we use a CPP trick suggested by Andrew:\n\n  #define kmap_atomic(page, args...) __kmap_atomic(page)\n\nto avoid having to touch all kmap_atomic() users in a single patch.\n\n[ not compiled on:\n  - mn10300: the arch doesn\u0027t actually build with highmem to begin with ]\n\n[akpm@linux-foundation.org: coding-style fixes]\n[akpm@linux-foundation.org: fix up drivers/gpu/drm/i915/intel_overlay.c]\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nAcked-by: Chris Metcalf \u003ccmetcalf@tilera.com\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Russell King \u003crmk@arm.linux.org.uk\u003e\nCc: Ralf Baechle \u003cralf@linux-mips.org\u003e\nCc: David Miller \u003cdavem@davemloft.net\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Dave Airlie \u003cairlied@linux.ie\u003e\nCc: Li Zefan \u003clizf@cn.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": "61ecdb801ef2cd28e32442383106d7837d76deac",
      "tree": "3ec4f04e09cc4a9b76dafaaa0c4dfd07e825e632",
      "parents": [
        "2e30244a7cc1ff09013a1238d415b4076406388e"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue Oct 26 14:21:47 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 16:52:08 2010 -0700"
      },
      "message": "mm: strictly nested kmap_atomic()\n\nEnsure kmap_atomic() usage is strictly nested\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nReviewed-by: Rik van Riel \u003criel@redhat.com\u003e\nAcked-by: Chris Metcalf \u003ccmetcalf@tilera.com\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Russell King \u003crmk@arm.linux.org.uk\u003e\nCc: Ralf Baechle \u003cralf@linux-mips.org\u003e\nCc: David Miller \u003cdavem@davemloft.net\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2e30244a7cc1ff09013a1238d415b4076406388e",
      "tree": "f555a78df877bbbd300ba3ebce6e31b5609e965f",
      "parents": [
        "4cbec4c8b9fda9ec784086fe7f74cd32a8adda95"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Tue Oct 26 14:21:46 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 16:52:08 2010 -0700"
      },
      "message": "vmscan,tmpfs: treat used once pages on tmpfs as used once\n\nWhen a page has PG_referenced, shrink_page_list() discards it only if it\nis not dirty.  This rule works fine if the backing filesystem is a regular\none.  PG_dirty is a good signal that the page was used recently because\nthe flusher threads clean pages periodically.  In addition, page writeback\nis costlier than simple page discard.\n\nHowever, when a page is on tmpfs this heuristic doesn\u0027t work because\nflusher threads don\u0027t write back tmpfs pages.  Consequently tmpfs pages\nalways rotate around the lru twice at least and adds unnecessary lru\nchurn.  Simple tmpfs streaming io shouldn\u0027t cause large anonymous page\nswap-out.\n\nRemove this unncessary reclaim bonus of tmpfs pages.\n\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nReviewed-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nReviewed-by: Rik van Riel \u003criel@redhat.com\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": "4cbec4c8b9fda9ec784086fe7f74cd32a8adda95",
      "tree": "669c3df27982345b52d0bfca8026e3f275e64a03",
      "parents": [
        "0e093d99763eb4cea09f8ca4f1d01f34e121d10b"
      ],
      "author": {
        "name": "Wu Fengguang",
        "email": "fengguang.wu@intel.com",
        "time": "Tue Oct 26 14:21:45 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 16:52:08 2010 -0700"
      },
      "message": "writeback: remove the internal 5% low bound on dirty_ratio\n\nThe dirty_ratio was silently limited in global_dirty_limits() to \u003e\u003d 5%.\nThis is not a user expected behavior.  And it\u0027s inconsistent with\ncalc_period_shift(), which uses the plain vm_dirty_ratio value.\n\nLet\u0027s remove the internal bound.\n\nAt the same time, fix balance_dirty_pages() to work with the\ndirty_thresh\u003d0 case.  This allows applications to proceed when\ndirty+writeback pages are all cleaned.\n\nAnd \"\u003e\" fits with the name \"exceeded\" better than \"\u003e\u003d\" does.  Neil thinks\nit is an aesthetic improvement as well as a functional one :)\n\nSigned-off-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nCc: Jan Kara \u003cjack@suse.cz\u003e\nProposed-by: Con Kolivas \u003ckernel@kolivas.org\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nReviewed-by: Rik van Riel \u003criel@redhat.com\u003e\nReviewed-by: Neil Brown \u003cneilb@suse.de\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Michael Rubin \u003cmrubin@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0e093d99763eb4cea09f8ca4f1d01f34e121d10b",
      "tree": "fad38f9c3651c81db298521141a79d9468f71986",
      "parents": [
        "08fc468f4eaf6683bae5bdb94743a09d8630cb80"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mel@csn.ul.ie",
        "time": "Tue Oct 26 14:21:45 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 16:52:07 2010 -0700"
      },
      "message": "writeback: do not sleep on the congestion queue if there are no congested BDIs or if significant congestion is not being encountered in the current zone\n\nIf congestion_wait() is called with no BDI congested, the caller will\nsleep for the full timeout and this may be an unnecessary sleep.  This\npatch adds a wait_iff_congested() that checks congestion and only sleeps\nif a BDI is congested else, it calls cond_resched() to ensure the caller\nis not hogging the CPU longer than its quota but otherwise will not sleep.\n\nThis is aimed at reducing some of the major desktop stalls reported during\nIO.  For example, while kswapd is operating, it calls congestion_wait()\nbut it could just have been reclaiming clean page cache pages with no\ncongestion.  Without this patch, it would sleep for a full timeout but\nafter this patch, it\u0027ll just call schedule() if it has been on the CPU too\nlong.  Similar logic applies to direct reclaimers that are not making\nenough progress.\n\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Jens Axboe \u003caxboe@kernel.dk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "08fc468f4eaf6683bae5bdb94743a09d8630cb80",
      "tree": "a2225421eb8e01a8e9df588f5064be81059af91a",
      "parents": [
        "47185052165a4c5de0a461018238375dd982c2ec"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Tue Oct 26 14:21:44 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 16:52:07 2010 -0700"
      },
      "message": "vmscan: isolate_lru_pages(): stop neighbour search if neighbour cannot be isolated\n\nisolate_lru_pages() does not just isolate LRU tail pages, but also\nisolates neighbour pages of the eviction page.  The neighbour search does\nnot stop even if neighbours cannot be isolated which is excessive as the\nlumpy reclaim will no longer result in a successful higher order\nallocation.  This patch stops the PFN neighbour pages if an isolation\nfails and moves on to the next block.\n\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nReviewed-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nReviewed-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "47185052165a4c5de0a461018238375dd982c2ec",
      "tree": "4425005eb24efdd66d0d9d4f95a11fdad04843b1",
      "parents": [
        "7d3579e8e61937cbba268ea9b218d006b6d64221"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Tue Oct 26 14:21:43 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 16:52:07 2010 -0700"
      },
      "message": "vmscan: remove dead code in shrink_inactive_list()\n\nAfter synchrounous lumpy reclaim, the page_list is guaranteed to not have\nactive pages as page activation in shrink_page_list() disables lumpy\nreclaim.  Remove the dead code.\n\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nReviewed-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7d3579e8e61937cbba268ea9b218d006b6d64221",
      "tree": "4fa1863641343eee551681d60a823a84a2611289",
      "parents": [
        "bc57e00f5e0b2480ef222c775c49552d3a930db7"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Tue Oct 26 14:21:42 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 16:52:07 2010 -0700"
      },
      "message": "vmscan: narrow the scenarios in whcih lumpy reclaim uses synchrounous reclaim\n\nshrink_page_list() can decide to give up reclaiming a page under a\nnumber of conditions such as\n\n  1. trylock_page() failure\n  2. page is unevictable\n  3. zone reclaim and page is mapped\n  4. PageWriteback() is true\n  5. page is swapbacked and swap is full\n  6. add_to_swap() failure\n  7. page is dirty and gfpmask don\u0027t have GFP_IO, GFP_FS\n  8. page is pinned\n  9. IO queue is congested\n 10. pageout() start IO, but not finished\n\nWith lumpy reclaim, failures result in entering synchronous lumpy reclaim\nbut this can be unnecessary.  In cases (2), (3), (5), (6), (7) and (8),\nthere is no point retrying.  This patch causes lumpy reclaim to abort when\nit is known it will fail.\n\nCase (9) is more interesting. current behavior is,\n  1. start shrink_page_list(async)\n  2. found queue_congested()\n  3. skip pageout write\n  4. still start shrink_page_list(sync)\n  5. wait on a lot of pages\n  6. again, found queue_congested()\n  7. give up pageout write again\n\nSo, it\u0027s useless time wasting.  However, just skipping page reclaim is\nalso notgood as x86 allocating a huge page needs 512 pages for example.\nIt can have more dirty pages than queue congestion threshold (~\u003d128).\n\nAfter this patch, pageout() behaves as follows;\n\n - If order \u003e PAGE_ALLOC_COSTLY_ORDER\n\tIgnore queue congestion always.\n - If order \u003c\u003d PAGE_ALLOC_COSTLY_ORDER\n\tskip write page and disable lumpy reclaim.\n\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bc57e00f5e0b2480ef222c775c49552d3a930db7",
      "tree": "51aa33378602a41fb73b9b2fbee2ca04706aa9d6",
      "parents": [
        "52bb9198668968506f9d12bf35d7f5d3f094921e"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Tue Oct 26 14:21:41 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 16:52:07 2010 -0700"
      },
      "message": "vmscan: synchronous lumpy reclaim should not call congestion_wait()\n\ncongestion_wait() means \"wait until queue congestion is cleared\".\nHowever, synchronous lumpy reclaim does not need this congestion_wait() as\nshrink_page_list(PAGEOUT_IO_SYNC) uses wait_on_page_writeback() and it\nprovides the necessary waiting.\n\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nReviewed-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nReviewed-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nReviewed-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "52bb9198668968506f9d12bf35d7f5d3f094921e",
      "tree": "6e1f79c46de902c4462054803eb13115673f8c8c",
      "parents": [
        "e11da5b4fdf01d71d73c21cb92b00595b917d7fd"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mel@csn.ul.ie",
        "time": "Tue Oct 26 14:21:41 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 16:52:07 2010 -0700"
      },
      "message": "writeback: account for time spent congestion_waited\n\nThere is strong evidence to indicate a lot of time is being spent in\ncongestion_wait(), some of it unnecessarily.  This patch adds a tracepoint\nfor congestion_wait to record when congestion_wait() was called, how long\nthe timeout was for and how long it actually slept.\n\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nReviewed-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nReviewed-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e11da5b4fdf01d71d73c21cb92b00595b917d7fd",
      "tree": "30da286bac7533fba5c119396491ab05a92471fd",
      "parents": [
        "66d9a986cddbbc2ea5db013e7999c621a956cc47"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mel@csn.ul.ie",
        "time": "Tue Oct 26 14:21:40 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 16:52:07 2010 -0700"
      },
      "message": "tracing, vmscan: add trace events for LRU list shrinking\n\nThere have been numerous reports of stalls that pointed at the problem\nbeing somewhere in the VM.  There are multiple roots to the problems which\nmeans dealing with any of the root problems in isolation is tricky to\njustify on their own and they would still need integration testing.  This\npatch series puts together two different patch sets which in combination\nshould tackle some of the root causes of latency problems being reported.\n\nPatch 1 adds a tracepoint for shrink_inactive_list.  For this series, the\nmost important results is being able to calculate the scanning/reclaim\nratio as a measure of the amount of work being done by page reclaim.\n\nPatch 2 accounts for time spent in congestion_wait.\n\nPatches 3-6 were originally developed by Kosaki Motohiro but reworked for\nthis series.  It has been noted that lumpy reclaim is far too aggressive\nand trashes the system somewhat.  As SLUB uses high-order allocations, a\nlarge cost incurred by lumpy reclaim will be noticeable.  It was also\nreported during transparent hugepage support testing that lumpy reclaim\nwas trashing the system and these patches should mitigate that problem\nwithout disabling lumpy reclaim.\n\nPatch 7 adds wait_iff_congested() and replaces some callers of\ncongestion_wait().  wait_iff_congested() only sleeps if there is a BDI\nthat is currently congested.  Patch 8 notes that any BDI being congested\nis not necessarily a problem because there could be multiple BDIs of\nvarying speeds and numberous zones.  It attempts to track when a zone\nbeing reclaimed contains many pages backed by a congested BDI and if so,\nreclaimers wait on the congestion queue.\n\nI ran a number of tests with monitoring on X86, X86-64 and PPC64. Each\nmachine had 3G of RAM and the CPUs were\n\nX86:    Intel P4 2-core\nX86-64: AMD Phenom 4-core\nPPC64:  PPC970MP\n\nEach used a single disk and the onboard IO controller.  Dirty ratio was\nleft at 20.  I\u0027m just going to report for X86-64 and PPC64 in a vague\nattempt to keep this report short.  Four kernels were tested each based on\nv2.6.36-rc4\n\ntraceonly-v2r2:     Patches 1 and 2 to instrument vmscan reclaims and congestion_wait\nlowlumpy-v2r3:      Patches 1-6 to test if lumpy reclaim is better\nwaitcongest-v2r3:   Patches 1-7 to only wait on congestion\nwaitwriteback-v2r4: Patches 1-8 to detect when a zone is congested\n\nnocongest-v1r5: Patches 1-3 for testing wait_iff_congestion\nnodirect-v1r5:  Patches 1-10 to disable filesystem writeback for better IO\n\nThe tests run were as follows\n\nkernbench\n\tcompile-based benchmark. Smoke test performance\n\nsysbench\n\tOLTP read-only benchmark. Will be re-run in the future as read-write\n\nmicro-mapped-file-stream\n\tThis is a micro-benchmark from Johannes Weiner that accesses a\n\tlarge sparse-file through mmap(). It was configured to run in only\n\tsingle-CPU mode but can be indicative of how well page reclaim\n\tidentifies suitable pages.\n\nstress-highalloc\n\tTries to allocate huge pages under heavy load.\n\nkernbench, iozone and sysbench did not report any performance regression\non any machine.  sysbench did pressure the system lightly and there was\nreclaim activity but there were no difference of major interest between\nthe kernels.\n\nX86-64 micro-mapped-file-stream\n\n                                      traceonly-v2r2           lowlumpy-v2r3        waitcongest-v2r3     waitwriteback-v2r4\npgalloc_dma                       1639.00 (   0.00%)       667.00 (-145.73%)      1167.00 ( -40.45%)       578.00 (-183.56%)\npgalloc_dma32                  2842410.00 (   0.00%)   2842626.00 (   0.01%)   2843043.00 (   0.02%)   2843014.00 (   0.02%)\npgalloc_normal                       0.00 (   0.00%)         0.00 (   0.00%)         0.00 (   0.00%)         0.00 (   0.00%)\npgsteal_dma                        729.00 (   0.00%)        85.00 (-757.65%)       609.00 ( -19.70%)       125.00 (-483.20%)\npgsteal_dma32                  2338721.00 (   0.00%)   2447354.00 (   4.44%)   2429536.00 (   3.74%)   2436772.00 (   4.02%)\npgsteal_normal                       0.00 (   0.00%)         0.00 (   0.00%)         0.00 (   0.00%)         0.00 (   0.00%)\npgscan_kswapd_dma                 1469.00 (   0.00%)       532.00 (-176.13%)      1078.00 ( -36.27%)       220.00 (-567.73%)\npgscan_kswapd_dma32            4597713.00 (   0.00%)   4503597.00 (  -2.09%)   4295673.00 (  -7.03%)   3891686.00 ( -18.14%)\npgscan_kswapd_normal                 0.00 (   0.00%)         0.00 (   0.00%)         0.00 (   0.00%)         0.00 (   0.00%)\npgscan_direct_dma                   71.00 (   0.00%)       134.00 (  47.01%)       243.00 (  70.78%)       352.00 (  79.83%)\npgscan_direct_dma32             305820.00 (   0.00%)    280204.00 (  -9.14%)    600518.00 (  49.07%)    957485.00 (  68.06%)\npgscan_direct_normal                 0.00 (   0.00%)         0.00 (   0.00%)         0.00 (   0.00%)         0.00 (   0.00%)\npageoutrun                       16296.00 (   0.00%)     21254.00 (  23.33%)     18447.00 (  11.66%)     20067.00 (  18.79%)\nallocstall                         443.00 (   0.00%)       273.00 ( -62.27%)       513.00 (  13.65%)      1568.00 (  71.75%)\n\nThese are based on the raw figures taken from /proc/vmstat.  It\u0027s a rough\nmeasure of reclaim activity.  Note that allocstall counts are higher\nbecause we are entering direct reclaim more often as a result of not\nsleeping in congestion.  In itself, it\u0027s not necessarily a bad thing.\nIt\u0027s easier to get a view of what happened from the vmscan tracepoint\nreport.\n\nFTrace Reclaim Statistics: vmscan\n\n                                traceonly-v2r2   lowlumpy-v2r3 waitcongest-v2r3 waitwriteback-v2r4\nDirect reclaims                                443        273        513       1568\nDirect reclaim pages scanned                305968     280402     600825     957933\nDirect reclaim pages reclaimed               43503      19005      30327     117191\nDirect reclaim write file async I/O              0          0          0          0\nDirect reclaim write anon async I/O              0          3          4         12\nDirect reclaim write file sync I/O               0          0          0          0\nDirect reclaim write anon sync I/O               0          0          0          0\nWake kswapd requests                        187649     132338     191695     267701\nKswapd wakeups                                   3          1          4          1\nKswapd pages scanned                       4599269    4454162    4296815    3891906\nKswapd pages reclaimed                     2295947    2428434    2399818    2319706\nKswapd reclaim write file async I/O              1          0          1          1\nKswapd reclaim write anon async I/O             59        187         41        222\nKswapd reclaim write file sync I/O               0          0          0          0\nKswapd reclaim write anon sync I/O               0          0          0          0\nTime stalled direct reclaim (seconds)         4.34       2.52       6.63       2.96\nTime kswapd awake (seconds)                  11.15      10.25      11.01      10.19\n\nTotal pages scanned                        4905237   4734564   4897640   4849839\nTotal pages reclaimed                      2339450   2447439   2430145   2436897\n%age total pages scanned/reclaimed          47.69%    51.69%    49.62%    50.25%\n%age total pages scanned/written             0.00%     0.00%     0.00%     0.00%\n%age  file pages scanned/written             0.00%     0.00%     0.00%     0.00%\nPercentage Time Spent Direct Reclaim        29.23%    19.02%    38.48%    20.25%\nPercentage Time kswapd Awake                78.58%    78.85%    76.83%    79.86%\n\nWhat is interesting here for nocongest in particular is that while direct\nreclaim scans more pages, the overall number of pages scanned remains the\nsame and the ratio of pages scanned to pages reclaimed is more or less the\nsame.  In other words, while we are sleeping less, reclaim is not doing\nmore work and as direct reclaim and kswapd is awake for less time, it\nwould appear to be doing less work.\n\nFTrace Reclaim Statistics: congestion_wait\nDirect number congest     waited                87        196         64          0\nDirect time   congest     waited            4604ms     4732ms     5420ms        0ms\nDirect full   congest     waited                72        145         53          0\nDirect number conditional waited                 0          0        324       1315\nDirect time   conditional waited               0ms        0ms        0ms        0ms\nDirect full   conditional waited                 0          0          0          0\nKSwapd number congest     waited                20         10         15          7\nKSwapd time   congest     waited            1264ms      536ms      884ms      284ms\nKSwapd full   congest     waited                10          4          6          2\nKSwapd number conditional waited                 0          0          0          0\nKSwapd time   conditional waited               0ms        0ms        0ms        0ms\nKSwapd full   conditional waited                 0          0          0          0\n\nThe vanilla kernel spent 8 seconds asleep in direct reclaim and no time at\nall asleep with the patches.\n\nMMTests Statistics: duration\nUser/Sys Time Running Test (seconds)         10.51     10.73      10.6     11.66\nTotal Elapsed Time (seconds)                 14.19     13.00     14.33     12.76\n\nOverall, the tests completed faster. It is interesting to note that backing off further\nwhen a zone is congested and not just a BDI was more efficient overall.\n\nPPC64 micro-mapped-file-stream\npgalloc_dma                    3024660.00 (   0.00%)   3027185.00 (   0.08%)   3025845.00 (   0.04%)   3026281.00 (   0.05%)\npgalloc_normal                       0.00 (   0.00%)         0.00 (   0.00%)         0.00 (   0.00%)         0.00 (   0.00%)\npgsteal_dma                    2508073.00 (   0.00%)   2565351.00 (   2.23%)   2463577.00 (  -1.81%)   2532263.00 (   0.96%)\npgsteal_normal                       0.00 (   0.00%)         0.00 (   0.00%)         0.00 (   0.00%)         0.00 (   0.00%)\npgscan_kswapd_dma              4601307.00 (   0.00%)   4128076.00 ( -11.46%)   3912317.00 ( -17.61%)   3377165.00 ( -36.25%)\npgscan_kswapd_normal                 0.00 (   0.00%)         0.00 (   0.00%)         0.00 (   0.00%)         0.00 (   0.00%)\npgscan_direct_dma               629825.00 (   0.00%)    971622.00 (  35.18%)   1063938.00 (  40.80%)   1711935.00 (  63.21%)\npgscan_direct_normal                 0.00 (   0.00%)         0.00 (   0.00%)         0.00 (   0.00%)         0.00 (   0.00%)\npageoutrun                       27776.00 (   0.00%)     20458.00 ( -35.77%)     18763.00 ( -48.04%)     18157.00 ( -52.98%)\nallocstall                         977.00 (   0.00%)      2751.00 (  64.49%)      2098.00 (  53.43%)      5136.00 (  80.98%)\n\nSimilar trends to x86-64. allocstalls are up but it\u0027s not necessarily bad.\n\nFTrace Reclaim Statistics: vmscan\nDirect reclaims                                977       2709       2098       5136\nDirect reclaim pages scanned                629825     963814    1063938    1711935\nDirect reclaim pages reclaimed               75550     242538     150904     387647\nDirect reclaim write file async I/O              0          0          0          2\nDirect reclaim write anon async I/O              0         10          0          4\nDirect reclaim write file sync I/O               0          0          0          0\nDirect reclaim write anon sync I/O               0          0          0          0\nWake kswapd requests                        392119    1201712     571935     571921\nKswapd wakeups                                   3          2          3          3\nKswapd pages scanned                       4601307    4128076    3912317    3377165\nKswapd pages reclaimed                     2432523    2318797    2312673    2144616\nKswapd reclaim write file async I/O             20          1          1          1\nKswapd reclaim write anon async I/O             57        132         11        121\nKswapd reclaim write file sync I/O               0          0          0          0\nKswapd reclaim write anon sync I/O               0          0          0          0\nTime stalled direct reclaim (seconds)         6.19       7.30      13.04      10.88\nTime kswapd awake (seconds)                  21.73      26.51      25.55      23.90\n\nTotal pages scanned                        5231132   5091890   4976255   5089100\nTotal pages reclaimed                      2508073   2561335   2463577   2532263\n%age total pages scanned/reclaimed          47.95%    50.30%    49.51%    49.76%\n%age total pages scanned/written             0.00%     0.00%     0.00%     0.00%\n%age  file pages scanned/written             0.00%     0.00%     0.00%     0.00%\nPercentage Time Spent Direct Reclaim        18.89%    20.65%    32.65%    27.65%\nPercentage Time kswapd Awake                72.39%    80.68%    78.21%    77.40%\n\nAgain, a similar trend that the congestion_wait changes mean that direct\nreclaim scans more pages but the overall number of pages scanned while\nslightly reduced, are very similar.  The ratio of scanning/reclaimed\nremains roughly similar.  The downside is that kswapd and direct reclaim\nwas awake longer and for a larger percentage of the overall workload.\nIt\u0027s possible there were big differences in the amount of time spent\nreclaiming slab pages between the different kernels which is plausible\nconsidering that the micro tests runs after fsmark and sysbench.\n\nTrace Reclaim Statistics: congestion_wait\nDirect number congest     waited               845       1312        104          0\nDirect time   congest     waited           19416ms    26560ms     7544ms        0ms\nDirect full   congest     waited               745       1105         72          0\nDirect number conditional waited                 0          0       1322       2935\nDirect time   conditional waited               0ms        0ms       12ms      312ms\nDirect full   conditional waited                 0          0          0          3\nKSwapd number congest     waited                39        102         75         63\nKSwapd time   congest     waited            2484ms     6760ms     5756ms     3716ms\nKSwapd full   congest     waited                20         48         46         25\nKSwapd number conditional waited                 0          0          0          0\nKSwapd time   conditional waited               0ms        0ms        0ms        0ms\nKSwapd full   conditional waited                 0          0          0          0\n\nThe vanilla kernel spent 20 seconds asleep in direct reclaim and only\n312ms asleep with the patches.  The time kswapd spent congest waited was\nalso reduced by a large factor.\n\nMMTests Statistics: duration\nser/Sys Time Running Test (seconds)         26.58     28.05      26.9     28.47\nTotal Elapsed Time (seconds)                 30.02     32.86     32.67     30.88\n\nWith all patches applies, the completion times are very similar.\n\nX86-64 STRESS-HIGHALLOC\n                traceonly-v2r2     lowlumpy-v2r3  waitcongest-v2r3waitwriteback-v2r4\nPass 1          82.00 ( 0.00%)    84.00 ( 2.00%)    85.00 ( 3.00%)    85.00 ( 3.00%)\nPass 2          90.00 ( 0.00%)    87.00 (-3.00%)    88.00 (-2.00%)    89.00 (-1.00%)\nAt Rest         92.00 ( 0.00%)    90.00 (-2.00%)    90.00 (-2.00%)    91.00 (-1.00%)\n\nSuccess figures across the board are broadly similar.\n\n                traceonly-v2r2     lowlumpy-v2r3  waitcongest-v2r3waitwriteback-v2r4\nDirect reclaims                               1045        944        886        887\nDirect reclaim pages scanned                135091     119604     109382     101019\nDirect reclaim pages reclaimed               88599      47535      47863      46671\nDirect reclaim write file async I/O            494        283        465        280\nDirect reclaim write anon async I/O          29357      13710      16656      13462\nDirect reclaim write file sync I/O             154          2          2          3\nDirect reclaim write anon sync I/O           14594        571        509        561\nWake kswapd requests                          7491        933        872        892\nKswapd wakeups                                 814        778        731        780\nKswapd pages scanned                       7290822   15341158   11916436   13703442\nKswapd pages reclaimed                     3587336    3142496    3094392    3187151\nKswapd reclaim write file async I/O          91975      32317      28022      29628\nKswapd reclaim write anon async I/O        1992022     789307     829745     849769\nKswapd reclaim write file sync I/O               0          0          0          0\nKswapd reclaim write anon sync I/O               0          0          0          0\nTime stalled direct reclaim (seconds)      4588.93    2467.16    2495.41    2547.07\nTime kswapd awake (seconds)                2497.66    1020.16    1098.06    1176.82\n\nTotal pages scanned                        7425913  15460762  12025818  13804461\nTotal pages reclaimed                      3675935   3190031   3142255   3233822\n%age total pages scanned/reclaimed          49.50%    20.63%    26.13%    23.43%\n%age total pages scanned/written            28.66%     5.41%     7.28%     6.47%\n%age  file pages scanned/written             1.25%     0.21%     0.24%     0.22%\nPercentage Time Spent Direct Reclaim        57.33%    42.15%    42.41%    42.99%\nPercentage Time kswapd Awake                43.56%    27.87%    29.76%    31.25%\n\nScanned/reclaimed ratios again look good with big improvements in\nefficiency.  The Scanned/written ratios also look much improved.  With a\nbetter scanned/written ration, there is an expectation that IO would be\nmore efficient and indeed, the time spent in direct reclaim is much\nreduced by the full series and kswapd spends a little less time awake.\n\nOverall, indications here are that allocations were happening much faster\nand this can be seen with a graph of the latency figures as the\nallocations were taking place\nhttp://www.csn.ul.ie/~mel/postings/vmscanreduce-20101509/highalloc-interlatency-hydra-mean.ps\n\nFTrace Reclaim Statistics: congestion_wait\nDirect number congest     waited              1333        204        169          4\nDirect time   congest     waited           78896ms     8288ms     7260ms      200ms\nDirect full   congest     waited               756         92         69          2\nDirect number conditional waited                 0          0         26        186\nDirect time   conditional waited               0ms        0ms        0ms     2504ms\nDirect full   conditional waited                 0          0          0         25\nKSwapd number congest     waited                 4        395        227        282\nKSwapd time   congest     waited             384ms    25136ms    10508ms    18380ms\nKSwapd full   congest     waited                 3        232         98        176\nKSwapd number conditional waited                 0          0          0          0\nKSwapd time   conditional waited               0ms        0ms        0ms        0ms\nKSwapd full   conditional waited                 0          0          0          0\nKSwapd full   conditional waited               318          0        312          9\n\nOverall, the time spent speeping is reduced.  kswapd is still hitting\ncongestion_wait() but that is because there are callers remaining where it\nwasn\u0027t clear in advance if they should be changed to wait_iff_congested()\nor not.  Overall the sleep imes are reduced though - from 79ish seconds to\nabout 19.\n\nMMTests Statistics: duration\nUser/Sys Time Running Test (seconds)       3415.43   3386.65   3388.39    3377.5\nTotal Elapsed Time (seconds)               5733.48   3660.33   3689.41   3765.39\n\nWith the full series, the time to complete the tests are reduced by 30%\n\nPPC64 STRESS-HIGHALLOC\n                traceonly-v2r2     lowlumpy-v2r3  waitcongest-v2r3waitwriteback-v2r4\nPass 1          17.00 ( 0.00%)    34.00 (17.00%)    38.00 (21.00%)    43.00 (26.00%)\nPass 2          25.00 ( 0.00%)    37.00 (12.00%)    42.00 (17.00%)    46.00 (21.00%)\nAt Rest         49.00 ( 0.00%)    43.00 (-6.00%)    45.00 (-4.00%)    51.00 ( 2.00%)\n\nSuccess rates there are *way* up particularly considering that the 16MB\nhuge pages on PPC64 mean that it\u0027s always much harder to allocate them.\n\nFTrace Reclaim Statistics: vmscan\n              stress-highalloc  stress-highalloc  stress-highalloc  stress-highalloc\n                traceonly-v2r2     lowlumpy-v2r3  waitcongest-v2r3waitwriteback-v2r4\nDirect reclaims                                499        505        564        509\nDirect reclaim pages scanned                223478      41898      51818      45605\nDirect reclaim pages reclaimed              137730      21148      27161      23455\nDirect reclaim write file async I/O            399        136        162        136\nDirect reclaim write anon async I/O          46977       2865       4686       3998\nDirect reclaim write file sync I/O              29          0          1          3\nDirect reclaim write anon sync I/O           31023        159        237        239\nWake kswapd requests                           420        351        360        326\nKswapd wakeups                                 185        294        249        277\nKswapd pages scanned                      15703488   16392500   17821724   17598737\nKswapd pages reclaimed                     5808466    2908858    3139386    3145435\nKswapd reclaim write file async I/O         159938      18400      18717      13473\nKswapd reclaim write anon async I/O        3467554     228957     322799     234278\nKswapd reclaim write file sync I/O               0          0          0          0\nKswapd reclaim write anon sync I/O               0          0          0          0\nTime stalled direct reclaim (seconds)      9665.35    1707.81    2374.32    1871.23\nTime kswapd awake (seconds)                9401.21    1367.86    1951.75    1328.88\n\nTotal pages scanned                       15926966  16434398  17873542  17644342\nTotal pages reclaimed                      5946196   2930006   3166547   3168890\n%age total pages scanned/reclaimed          37.33%    17.83%    17.72%    17.96%\n%age total pages scanned/written            23.27%     1.52%     1.94%     1.43%\n%age  file pages scanned/written             1.01%     0.11%     0.11%     0.08%\nPercentage Time Spent Direct Reclaim        44.55%    35.10%    41.42%    36.91%\nPercentage Time kswapd Awake                86.71%    43.58%    52.67%    41.14%\n\nWhile the scanning rates are slightly up, the scanned/reclaimed and\nscanned/written figures are much improved.  The time spent in direct\nreclaim and with kswapd are massively reduced, mostly by the lowlumpy\npatches.\n\nFTrace Reclaim Statistics: congestion_wait\nDirect number congest     waited               725        303        126          3\nDirect time   congest     waited           45524ms     9180ms     5936ms      300ms\nDirect full   congest     waited               487        190         52          3\nDirect number conditional waited                 0          0        200        301\nDirect time   conditional waited               0ms        0ms        0ms     1904ms\nDirect full   conditional waited                 0          0          0         19\nKSwapd number congest     waited                 0          2         23          4\nKSwapd time   congest     waited               0ms      200ms      420ms      404ms\nKSwapd full   congest     waited                 0          2          2          4\nKSwapd number conditional waited                 0          0          0          0\nKSwapd time   conditional waited               0ms        0ms        0ms        0ms\nKSwapd full   conditional waited                 0          0          0          0\n\nNot as dramatic a story here but the time spent asleep is reduced and we\ncan still see what wait_iff_congested is going to sleep when necessary.\n\nMMTests Statistics: duration\nUser/Sys Time Running Test (seconds)      12028.09   3157.17   3357.79   3199.16\nTotal Elapsed Time (seconds)              10842.07   3138.72   3705.54   3229.85\n\nThe time to complete this test goes way down.  With the full series, we\nare allocating over twice the number of huge pages in 30% of the time and\nthere is a corresponding impact on the allocation latency graph available\nat.\n\nhttp://www.csn.ul.ie/~mel/postings/vmscanreduce-20101509/highalloc-interlatency-powyah-mean.ps\n\nThis patch:\n\nAdd a trace event for shrink_inactive_list() and updates the sample\npostprocessing script appropriately.  It can be used to determine how many\npages were reclaimed and for non-lumpy reclaim where exactly the pages\nwere reclaimed from.\n\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "66d9a986cddbbc2ea5db013e7999c621a956cc47",
      "tree": "bfe0d223e9b07c2300f445f9694525e956657d1e",
      "parents": [
        "bce54bbfde07e8b300f39dae14756c12a6ceca65"
      ],
      "author": {
        "name": "Shaohua Li",
        "email": "shaohua.li@intel.com",
        "time": "Tue Oct 26 14:21:37 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 16:52:07 2010 -0700"
      },
      "message": "vmscan: delete dead code\n\n`priority\u0027 cannot be negative here.  And the comment is obsolete.\n\nSigned-off-by: Shaohua Li \u003cshaohua.li@intel.com\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": "bce54bbfde07e8b300f39dae14756c12a6ceca65",
      "tree": "3256aeb02e34120b65a79bf4118e91969d933fca",
      "parents": [
        "79da826aee6a10902ef411bc65864bd02102fa83"
      ],
      "author": {
        "name": "Will Deacon",
        "email": "will.deacon@arm.com",
        "time": "Tue Oct 26 14:21:37 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 16:52:07 2010 -0700"
      },
      "message": "mm: fix typo in mm.h when NODE_NOT_IN_PAGE_FLAGS\n\nNODE_NOT_IN_PAGE_FLAGS is defined in mm.h when the node information is not\nstored in the page flags bitmap.\n\nUnfortunately, there\u0027s a typo in one of the checks for it.  This patch\nfixes it (s/NODE_NOT_IN_PAGEFLAGS/NODE_NOT_IN_PAGE_FLAGS/).  Since this\nhas been around for ages, I doubt it\u0027s been causing any serious problems.\n\nSigned-off-by: Will Deacon \u003cwill.deacon@arm.com\u003e\nCc: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "79da826aee6a10902ef411bc65864bd02102fa83",
      "tree": "9cc3602fc53f889d9b7394663d4fdaa94d13a213",
      "parents": [
        "2ac390370aac4aaa49cab17f328b478cbd5b3d8d"
      ],
      "author": {
        "name": "Michael Rubin",
        "email": "mrubin@google.com",
        "time": "Tue Oct 26 14:21:36 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 16:52:06 2010 -0700"
      },
      "message": "writeback: report dirty thresholds in /proc/vmstat\n\nThe kernel already exposes the user desired thresholds in /proc/sys/vm\nwith dirty_background_ratio and background_ratio.  But the kernel may\nalter the number requested without giving the user any indication that is\nthe case.\n\nKnowing the actual ratios the kernel is honoring can help app developers\nunderstand how their buffered IO will be sent to the disk.\n\n        $ grep threshold /proc/vmstat\n        nr_dirty_threshold 409111\n        nr_dirty_background_threshold 818223\n\nSigned-off-by: Michael Rubin \u003cmrubin@google.com\u003e\nCc: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nCc: Dave Chinner \u003cdavid@fromorbit.com\u003e\nCc: Jens Axboe \u003caxboe@kernel.dk\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2ac390370aac4aaa49cab17f328b478cbd5b3d8d",
      "tree": "6d57a59cbe07b73b402f965c1e788e39115ffbc3",
      "parents": [
        "ea941f0e2a8c02ae876cd73deb4e1557248f258c"
      ],
      "author": {
        "name": "Michael Rubin",
        "email": "mrubin@google.com",
        "time": "Tue Oct 26 14:21:35 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 16:52:06 2010 -0700"
      },
      "message": "writeback: add /sys/devices/system/node/\u003cnode\u003e/vmstat\n\nFor NUMA node systems it is important to have visibility in memory\ncharacteristics.  Two of the /proc/vmstat values \"nr_written\" and\n\"nr_dirtied\" are added here.\n\n\t# cat /sys/devices/system/node/node20/vmstat\n\tnr_written 0\n\tnr_dirtied 0\n\nSigned-off-by: Michael Rubin \u003cmrubin@google.com\u003e\nReviewed-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nCc: Dave Chinner \u003cdavid@fromorbit.com\u003e\nCc: Jens Axboe \u003caxboe@kernel.dk\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ea941f0e2a8c02ae876cd73deb4e1557248f258c",
      "tree": "d2006c10cce4f134dc83f7f5aaa1d0096902cc1a",
      "parents": [
        "f629d1c9bd0dbc44a6c4f9a4a67d1646c42bfc6f"
      ],
      "author": {
        "name": "Michael Rubin",
        "email": "mrubin@google.com",
        "time": "Tue Oct 26 14:21:35 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 16:52:06 2010 -0700"
      },
      "message": "writeback: add nr_dirtied and nr_written to /proc/vmstat\n\nTo help developers and applications gain visibility into writeback\nbehaviour adding two entries to vm_stat_items and /proc/vmstat.  This will\nallow us to track the \"written\" and \"dirtied\" counts.\n\n   # grep nr_dirtied /proc/vmstat\n   nr_dirtied 3747\n   # grep nr_written /proc/vmstat\n   nr_written 3618\n\nSigned-off-by: Michael Rubin \u003cmrubin@google.com\u003e\nReviewed-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nCc: Dave Chinner \u003cdavid@fromorbit.com\u003e\nCc: Jens Axboe \u003caxboe@kernel.dk\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f629d1c9bd0dbc44a6c4f9a4a67d1646c42bfc6f",
      "tree": "22ac36b494b40e17bfa68e85a094b9cc4b2f6093",
      "parents": [
        "0def08e3acc2c9c934e4671487029aed52202d42"
      ],
      "author": {
        "name": "Michael Rubin",
        "email": "mrubin@google.com",
        "time": "Tue Oct 26 14:21:33 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 16:52:06 2010 -0700"
      },
      "message": "mm: add account_page_writeback()\n\nTo help developers and applications gain visibility into writeback\nbehaviour this patch adds two counters to /proc/vmstat.\n\n  # grep nr_dirtied /proc/vmstat\n  nr_dirtied 3747\n  # grep nr_written /proc/vmstat\n  nr_written 3618\n\nThese entries allow user apps to understand writeback behaviour over time\nand learn how it is impacting their performance.  Currently there is no\nway to inspect dirty and writeback speed over time.  It\u0027s not possible for\nnr_dirty/nr_writeback.\n\nThese entries are necessary to give visibility into writeback behaviour.\nWe have /proc/diskstats which lets us understand the io in the block\nlayer.  We have blktrace for more in depth understanding.  We have\ne2fsprogs and debugsfs to give insight into the file systems behaviour,\nbut we don\u0027t offer our users the ability understand what writeback is\ndoing.  There is no way to know how active it is over the whole system, if\nit\u0027s falling behind or to quantify it\u0027s efforts.  With these values\nexported users can easily see how much data applications are sending\nthrough writeback and also at what rates writeback is processing this\ndata.  Comparing the rates of change between the two allow developers to\nsee when writeback is not able to keep up with incoming traffic and the\nrate of dirty memory being sent to the IO back end.  This allows folks to\nunderstand their io workloads and track kernel issues.  Non kernel\nengineers at Google often use these counters to solve puzzling performance\nproblems.\n\nPatch #4 adds a pernode vmstat file with nr_dirtied and nr_written\n\nPatch #5 add writeback thresholds to /proc/vmstat\n\nCurrently these values are in debugfs. But they should be promoted to\n/proc since they are useful for developers who are writing databases\nand file servers and are not debugging the kernel.\n\nThe output is as below:\n\n # grep threshold /proc/vmstat\n nr_pages_dirty_threshold 409111\n nr_pages_dirty_background_threshold 818223\n\nThis patch:\n\nThis allows code outside of the mm core to safely manipulate page\nwriteback state and not worry about the other accounting.  Not using these\nroutines means that some code will lose track of the accounting and we get\nbugs.\n\nModify nilfs2 to use interface.\n\nSigned-off-by: Michael Rubin \u003cmrubin@google.com\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nReviewed-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nCc: KONISHI Ryusuke \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\nCc: Jiro SEKIBA \u003cjir@unicus.jp\u003e\nCc: Dave Chinner \u003cdavid@fromorbit.com\u003e\nCc: Jens Axboe \u003caxboe@kernel.dk\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0def08e3acc2c9c934e4671487029aed52202d42",
      "tree": "5c1259f85b0ab08cb3e421f6104bee832a956413",
      "parents": [
        "74e3f3c3391d81a959f58a1191a560703a4415b4"
      ],
      "author": {
        "name": "Vasiliy Kulikov",
        "email": "segooon@gmail.com",
        "time": "Tue Oct 26 14:21:32 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 16:52:06 2010 -0700"
      },
      "message": "mm/mempolicy.c: check return code of check_range\n\nFunction check_range may return ERR_PTR(...). Check for it.\n\nSigned-off-by: Vasiliy Kulikov \u003csegooon@gmail.com\u003e\nAcked-by: David Rientjes \u003crientjes@google.com\u003e\nReviewed-by: Christoph Lameter \u003ccl@linux.com\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": "74e3f3c3391d81a959f58a1191a560703a4415b4",
      "tree": "b4688926ebe2c40b422bd6df0989ec09ea0f7046",
      "parents": [
        "49ac825587f33afec8841b7fab2eb4db775014e6"
      ],
      "author": {
        "name": "Minchan Kim",
        "email": "minchan.kim@gmail.com",
        "time": "Tue Oct 26 14:21:31 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 16:52:06 2010 -0700"
      },
      "message": "vmscan: prevent background aging of anon page in no swap system\n\nYing Han reported that backing aging of anon pages in no swap system\ncauses unnecessary TLB flush.\n\nWhen I sent a patch(69c8548175), I wanted this patch but Rik pointed out\nand allowed aging of anon pages to give a chance to promote from inactive\nto active LRU.\n\nIt has a two problem.\n\n1) non-swap system\n\nNever make sense to age anon pages.\n\n2) swap configured but still doesn\u0027t swapon\n\nIt doesn\u0027t make sense to age anon pages until swap-on time.  But it\u0027s\narguable.  If we have aged anon pages by swapon, VM have moved anon pages\nfrom active to inactive.  And in the time swapon by admin, the VM can\u0027t\nreclaim hot pages so we can protect hot pages swapout.\n\nBut let\u0027s think about it.  When does swap-on happen?  It depends on admin.\n we can\u0027t expect it.  Nonetheless, we have done aging of anon pages to\nprotect hot pages swapout.  It means we lost run time overhead when below\nhigh watermark but gain hot page swap-[in/out] overhead when VM decide\nswapout.  Is it true?  Let\u0027s think more detail.  We don\u0027t promote anon\npages in case of non-swap system.  So even though VM does aging of anon\npages, the pages would be in inactive LRU for a long time.  It means many\nof pages in there would mark access bit again.  So access bit hot/code\nseparation would be pointless.\n\nThis patch prevents unnecessary anon pages demotion in not-yet-swapon and\nnon-configured swap system.  Even, in non-configuared swap system\ninactive_anon_is_low can be compiled out.\n\nIt could make side effect that hot anon pages could swap out when admin\ndoes swap on.  But I think sooner or later it would be steady state.  So\nit\u0027s not a big problem.\n\nWe could lose someting but gain more thing(TLB flush and unnecessary\nfunction call to demote anon pages).\n\nSigned-off-by: Ying Han \u003cyinghan@google.com\u003e\nSigned-off-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nReviewed-by: Rik van Riel \u003criel@redhat.com\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "49ac825587f33afec8841b7fab2eb4db775014e6",
      "tree": "6364721274c451fca7fc4fcea4e6cc533e630140",
      "parents": [
        "4b20477f588055fbe87e69435d3c2344d250f0d7"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Tue Oct 26 14:21:30 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 16:52:06 2010 -0700"
      },
      "message": "memory hotplug: unify is_removable and offline detection code\n\nNow, sysfs interface of memory hotplug shows whether the section is\nremovable or not.  But it checks only migrateype of pages and doesn\u0027t\ncheck details of cluster of pages.\n\nNext, memory hotplug\u0027s set_migratetype_isolate() has the same kind of\ncheck, too.\n\nThis patch adds the function __count_unmovable_pages() and makes above 2\nchecks to use the same logic.  Then, is_removable and hotremove code uses\nthe same logic.  No changes in the hotremove logic itself.\n\nTODO: need to find a way to check RECLAMABLE. But, considering bit,\n      calling shrink_slab() against a range before starting memory hotremove\n      sounds better. If so, this patch\u0027s logic doesn\u0027t need to be changed.\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nReported-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4b20477f588055fbe87e69435d3c2344d250f0d7",
      "tree": "4e4d1ef7280ea5c09ff10489e6b9c47bc1223a73",
      "parents": [
        "cf608ac19c95804dc2df43b1f4f9e068aa9034ab"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Tue Oct 26 14:21:29 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 16:52:06 2010 -0700"
      },
      "message": "memory hotplug: fix notifier\u0027s return value check\n\nEven if notifier cannot find any pages, it doesn\u0027t mean no pages are\navailable...And, if there are no notifiers registered, this condition will\nbe always true and memory hotplug will show -EBUSY.\n\nThis is a bug but not critical.\n\nIn most case, a pageblock which will be offlined is MIGRATE_MOVABLE This\n\"notifier\" is called only when the pageblock is _not_ MIGRATE_MOVABLE.\nBut if not MIGRATE_MOVABLE, it\u0027s common case that memory hotplug will\nfail.  So, no one notice this bug.\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "cf608ac19c95804dc2df43b1f4f9e068aa9034ab",
      "tree": "a84d37df2b0bb57bd9a4b0b466726f5343fa5448",
      "parents": [
        "e4455abb50a19562dbfdc51a8424fda9b588bd6d"
      ],
      "author": {
        "name": "Minchan Kim",
        "email": "minchan.kim@gmail.com",
        "time": "Tue Oct 26 14:21:29 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 16:52:06 2010 -0700"
      },
      "message": "mm: compaction: fix COMPACTPAGEFAILED counting\n\nPresently update_nr_listpages() doesn\u0027t have a role.  That\u0027s because lists\npassed is always empty just after calling migrate_pages.  The\nmigrate_pages cleans up page list which have failed to migrate before\nreturning by aaa994b3.\n\n [PATCH] page migration: handle freeing of pages in migrate_pages()\n\n Do not leave pages on the lists passed to migrate_pages().  Seems that we will\n not need any postprocessing of pages.  This will simplify the handling of\n pages by the callers of migrate_pages().\n\nAt that time, we thought we don\u0027t need any postprocessing of pages.  But\nthe situation is changed.  The compaction need to know the number of\nfailed to migrate for COMPACTPAGEFAILED stat\n\nThis patch makes new rule for caller of migrate_pages to call\nputback_lru_pages.  So caller need to clean up the lists so it has a\nchance to postprocess the pages.  [suggested by Christoph Lameter]\n\nSigned-off-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nReviewed-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nReviewed-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nAcked-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": "e4455abb50a19562dbfdc51a8424fda9b588bd6d",
      "tree": "add38aec00027e9a115778425a41d3d075a9ced6",
      "parents": [
        "f19e77a3dc884510dba740caa6dee126b7d40156"
      ],
      "author": {
        "name": "Thadeu Lima de Souza Cascardo",
        "email": "cascardo@holoscopio.com",
        "time": "Tue Oct 26 14:21:28 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 16:52:05 2010 -0700"
      },
      "message": "mm: only build per-node scan_unevictable functions when NUMA is enabled\n\nNon-NUMA systems do never create these files anyway, since they are only\ncreated by driver subsystem when NUMA is configured.\n\n[akpm@linux-foundation.org: cleanup]\nSigned-off-by: Thadeu Lima de Souza Cascardo \u003ccascardo@holoscopio.com\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f19e77a3dc884510dba740caa6dee126b7d40156",
      "tree": "aaca7834503416d3c46b123c5282bd6dca1fe980",
      "parents": [
        "1b430beee5e388605dfb092b214ef0320f752cf6"
      ],
      "author": {
        "name": "zeal",
        "email": "zealcook@gmail.com",
        "time": "Tue Oct 26 14:21:27 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 16:52:05 2010 -0700"
      },
      "message": "include/linux/pageblock-flags.h: fix set_pageblock_flags() macro definiton\n\nThe presently-unused macro was missing one parameter.\n\nSigned-off-by: zeal \u003czealcook@gmail.com\u003e\nAcked-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1b430beee5e388605dfb092b214ef0320f752cf6",
      "tree": "c1b1ece282aab771fd1386a3fe0c6e82cb5c5bfe",
      "parents": [
        "d19d5476f4b9f91d2de92b91588bb118beba6c0d"
      ],
      "author": {
        "name": "Wu Fengguang",
        "email": "fengguang.wu@intel.com",
        "time": "Tue Oct 26 14:21:26 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 16:52:05 2010 -0700"
      },
      "message": "writeback: remove nonblocking/encountered_congestion references\n\nThis removes more dead code that was somehow missed by commit 0d99519efef\n(writeback: remove unused nonblocking and congestion checks).  There are\nno behavior change except for the removal of two entries from one of the\next4 tracing interface.\n\nThe nonblocking checks in -\u003ewritepages are no longer used because the\nflusher now prefer to block on get_request_wait() than to skip inodes on\nIO congestion.  The latter will lead to more seeky IO.\n\nThe nonblocking checks in -\u003ewritepage are no longer used because it\u0027s\nredundant with the WB_SYNC_NONE check.\n\nWe no long set -\u003enonblocking in VM page out and page migration, because\na) it\u0027s effectively redundant with WB_SYNC_NONE in current code\nb) it\u0027s old semantic of \"Don\u0027t get stuck on request queues\" is mis-behavior:\n   that would skip some dirty inodes on congestion and page out others, which\n   is unfair in terms of LRU age.\n\nInspired by Christoph Hellwig. Thanks!\n\nSigned-off-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nCc: Theodore Ts\u0027o \u003ctytso@mit.edu\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: Sage Weil \u003csage@newdream.net\u003e\nCc: Steve French \u003csfrench@samba.org\u003e\nCc: Chris Mason \u003cchris.mason@oracle.com\u003e\nCc: Jens Axboe \u003caxboe@kernel.dk\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d19d5476f4b9f91d2de92b91588bb118beba6c0d",
      "tree": "b267c225c2b7507f7e4900676649b20e56e06ba2",
      "parents": [
        "723548bff1dde9ab6bdb23f4bb92277c4da49473"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Tue Oct 26 14:21:26 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 16:52:05 2010 -0700"
      },
      "message": "oom: fix locking for oom_adj and oom_score_adj\n\nThe locking order in oom_adjust_write() and oom_score_adj_write() for\ntask-\u003ealloc_lock and task-\u003esighand-\u003esiglock is reversed, and lockdep\nnotices that irqs could encounter an ABBA scenario.\n\nThis fixes the locking order so that we always take task_lock(task) prior\nto lock_task_sighand(task).\n\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nReported-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Ying Han \u003cyinghan@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "723548bff1dde9ab6bdb23f4bb92277c4da49473",
      "tree": "7c4b97cb80003caae19a849e9ffb490be943bbf2",
      "parents": [
        "1e99bad0d9c12a4aaa60cd812c84ef152564bcf5"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Tue Oct 26 14:21:25 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 16:52:05 2010 -0700"
      },
      "message": "oom: rewrite error handling for oom_adj and oom_score_adj tunables\n\nIt\u0027s better to use proper error handling in oom_adjust_write() and\noom_score_adj_write() instead of duplicating the locking order on various\nexit paths.\n\nSuggested-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Ying Han \u003cyinghan@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1e99bad0d9c12a4aaa60cd812c84ef152564bcf5",
      "tree": "af9b070096c2ccc567247ff507eb07d3d817a1b4",
      "parents": [
        "e18641e19a9204f241f04a5ac700168dcd18de4f"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Tue Oct 26 14:21:24 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 16:52:05 2010 -0700"
      },
      "message": "oom: kill all threads sharing oom killed task\u0027s mm\n\nIt\u0027s necessary to kill all threads that share an oom killed task\u0027s mm if\nthe goal is to lead to future memory freeing.\n\nThis patch reintroduces the code removed in 8c5cd6f3 (oom: oom_kill\ndoesn\u0027t kill vfork parent (or child)) since it is obsoleted.\n\nIt\u0027s now guaranteed that any task passed to oom_kill_task() does not share\nan mm with any thread that is unkillable.  Thus, we\u0027re safe to issue a\nSIGKILL to any thread sharing the same mm.\n\nThis is especially necessary to solve an mm-\u003emmap_sem livelock issue\nwhereas an oom killed thread must acquire the lock in the exit path while\nanother thread is holding it in the page allocator while trying to\nallocate memory itself (and will preempt the oom killer since a task was\nalready killed).  Since tasks with pending fatal signals are now granted\naccess to memory reserves, the thread holding the lock may quickly\nallocate and release the lock so that the oom killed task may exit.\n\nThis mainly is for threads that are cloned with CLONE_VM but not\nCLONE_THREAD, so they are in a different thread group.  Non-NPTL threads\nexist in the wild and this change is necessary to prevent the livelock in\nsuch cases.  We care more about preventing the livelock than incurring the\nadditional tasklist in the oom killer when a task has been killed.\nSystems that are sufficiently large to not want the tasklist scan in the\noom killer in the first place already have the option of enabling\n/proc/sys/vm/oom_kill_allocating_task, which was designed specifically for\nthat purpose.\n\nThis code had existed in the oom killer for over eight years dating back\nto the 2.4 kernel.\n\n[akpm@linux-foundation.org: add nice comment]\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Ying Han \u003cyinghan@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e18641e19a9204f241f04a5ac700168dcd18de4f",
      "tree": "f1058203588bd31584d217a25fabe4f7085a1f44",
      "parents": [
        "3d5992d2ac7dc09aed8ab537cba074589f0f0a52"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Tue Oct 26 14:21:23 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 16:52:05 2010 -0700"
      },
      "message": "oom: avoid killing a task if a thread sharing its mm cannot be killed\n\nThe oom killer\u0027s goal is to kill a memory-hogging task so that it may\nexit, free its memory, and allow the current context to allocate the\nmemory that triggered it in the first place.  Thus, killing a task is\npointless if other threads sharing its mm cannot be killed because of its\n/proc/pid/oom_adj or /proc/pid/oom_score_adj value.\n\nThis patch checks whether any other thread sharing p-\u003emm has an\noom_score_adj of OOM_SCORE_ADJ_MIN.  If so, the thread cannot be killed\nand oom_badness(p) returns 0, meaning it\u0027s unkillable.\n\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Ying Han \u003cyinghan@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3d5992d2ac7dc09aed8ab537cba074589f0f0a52",
      "tree": "0fbb51026e8aa13ddd7a6516c04471ceb97bc277",
      "parents": [
        "0f4d208f1975f16f269134cee5f44c1f048581da"
      ],
      "author": {
        "name": "Ying Han",
        "email": "yinghan@google.com",
        "time": "Tue Oct 26 14:21:23 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 16:52:05 2010 -0700"
      },
      "message": "oom: add per-mm oom disable count\n\nIt\u0027s pointless to kill a task if another thread sharing its mm cannot be\nkilled to allow future memory freeing.  A subsequent patch will prevent\nkills in such cases, but first it\u0027s necessary to have a way to flag a task\nthat shares memory with an OOM_DISABLE task that doesn\u0027t incur an\nadditional tasklist scan, which would make select_bad_process() an O(n^2)\nfunction.\n\nThis patch adds an atomic counter to struct mm_struct that follows how\nmany threads attached to it have an oom_score_adj of OOM_SCORE_ADJ_MIN.\nThey cannot be killed by the kernel, so their memory cannot be freed in\noom conditions.\n\nThis only requires task_lock() on the task that we\u0027re operating on, it\ndoes not require mm-\u003emmap_sem since task_lock() pins the mm and the\noperation is atomic.\n\n[rientjes@google.com: changelog and sys_unshare() code]\n[rientjes@google.com: protect oom_disable_count with task_lock in fork]\n[rientjes@google.com: use old_mm for oom_disable_count in exec]\nSigned-off-by: Ying Han \u003cyinghan@google.com\u003e\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0f4d208f1975f16f269134cee5f44c1f048581da",
      "tree": "0a09155b2e961a7d75f7235dcc72a7fc118272ee",
      "parents": [
        "a4f7326da2bfe788b85509ec0c261e64596cdde4"
      ],
      "author": {
        "name": "Matt Mackall",
        "email": "mpm@selenic.com",
        "time": "Tue Oct 26 14:21:22 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 16:52:05 2010 -0700"
      },
      "message": "Documentation/filesystems/proc.txt: improve smaps field documentation\n\nSigned-off-by: Matt Mackall \u003cmpm@selenic.com\u003e\nCc: Nikanth Karthikesan \u003cknikanth@suse.de\u003e\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a4f7326da2bfe788b85509ec0c261e64596cdde4",
      "tree": "da9e0899ec860a36f1a6f9196be7eb59c31cb9e3",
      "parents": [
        "dbec921370ea049eccd38e34e067373fb3bd9b01"
      ],
      "author": {
        "name": "WANG Cong",
        "email": "xiyou.wangcong@gmail.com",
        "time": "Tue Oct 26 14:21:21 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 16:52:05 2010 -0700"
      },
      "message": "vmcore: it is not experimental any more\n\nWe use vmcore in our production kernel for a long time, it is pretty\nstable now.  So I don\u0027t think we need to mark it as experimental any more.\n\nSigned-off-by: WANG Cong \u003cxiyou.wangcong@gmail.com\u003e\nAcked-by: Neil Horman \u003cnhorman@tuxdriver.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "dbec921370ea049eccd38e34e067373fb3bd9b01",
      "tree": "1ef6aaa997a07bb493dabbcb9b9536cc0f7fa22e",
      "parents": [
        "8474b591faf3bb0a1e08a60d21d6baac498f15e4"
      ],
      "author": {
        "name": "Richard Weinberger",
        "email": "richard@nod.at",
        "time": "Tue Oct 26 14:21:21 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 16:52:05 2010 -0700"
      },
      "message": "um: fix IRQ flag handling naming\n\nCommit df9ee292 (\"Fix IRQ flag handling naming\") changed the IRQ flag\nhandling naming scheme and broke UML:\n\nIn file included from arch/um/include/asm/fixmap.h:5,\n                 from arch/um/include/shared/um_uaccess.h:10,\n                 from arch/um/include/asm/uaccess.h:41,\n                 from arch/um/include/asm/thread_info.h:13,\n                 from include/linux/thread_info.h:56,\n                 from include/linux/preempt.h:9,\n                 from include/linux/spinlock.h:50,\n                 from include/linux/seqlock.h:29,\n                 from include/linux/time.h:8,\n                 from include/linux/stat.h:60,\n                 from include/linux/module.h:10,\n                 from init/main.c:13:\narch/um/include/asm/system.h:11:1: warning: \"local_save_flags\" redefined\n\nThis patch brings the new scheme to UML and makes it work again.\n\nSigned-off-by: Richard Weinberger \u003crichard@nod.at\u003e\nAcked-by: David Howells \u003cdhowells@redhat.com\u003e\nCc: Jeff Dike \u003cjdike@addtoit.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8474b591faf3bb0a1e08a60d21d6baac498f15e4",
      "tree": "20ef171bed75108535151479a6f656a9fc4a51db",
      "parents": [
        "52c5171214ff3327961d0ce0db7e8d2ce55004fd"
      ],
      "author": {
        "name": "Masanori ITOH",
        "email": "itoumsn@nttdata.co.jp",
        "time": "Tue Oct 26 14:21:20 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 16:52:04 2010 -0700"
      },
      "message": "percpu: fix list_head init bug in __percpu_counter_init()\n\nWARNING: at lib/list_debug.c:26 __list_add+0x3f/0x81()\nHardware name: Express5800/B120a [N8400-085]\nlist_add corruption. next-\u003eprev should be prev (ffffffff81a7ea00), but was dead000000200200. (next\u003dffff88080b872d58).\nModules linked in: aoe ipt_MASQUERADE iptable_nat nf_nat autofs4 sunrpc bridge 8021q garp stp llc ipv6 cpufreq_ondemand acpi_cpufreq freq_table dm_round_robin dm_multipath kvm_intel kvm uinput lpfc scsi_transport_fc igb ioatdma scsi_tgt i2c_i801 i2c_core dca iTCO_wdt iTCO_vendor_support pcspkr shpchp megaraid_sas [last unloaded: aoe]\nPid: 54, comm: events/3 Tainted: G        W  2.6.34-vanilla1 #1\nCall Trace:\n[\u003cffffffff8104bd77\u003e] warn_slowpath_common+0x7c/0x94\n[\u003cffffffff8104bde6\u003e] warn_slowpath_fmt+0x41/0x43\n[\u003cffffffff8120fd2e\u003e] __list_add+0x3f/0x81\n[\u003cffffffff81212a12\u003e] __percpu_counter_init+0x59/0x6b\n[\u003cffffffff810d8499\u003e] bdi_init+0x118/0x17e\n[\u003cffffffff811f2c50\u003e] blk_alloc_queue_node+0x79/0x143\n[\u003cffffffff811f2d2b\u003e] blk_alloc_queue+0x11/0x13\n[\u003cffffffffa02a931d\u003e] aoeblk_gdalloc+0x8e/0x1c9 [aoe]\n[\u003cffffffffa02aa655\u003e] aoecmd_sleepwork+0x25/0xa8 [aoe]\n[\u003cffffffff8106186c\u003e] worker_thread+0x1a9/0x237\n[\u003cffffffffa02aa630\u003e] ? aoecmd_sleepwork+0x0/0xa8 [aoe]\n[\u003cffffffff81065827\u003e] ? autoremove_wake_function+0x0/0x39\n[\u003cffffffff810616c3\u003e] ? worker_thread+0x0/0x237\n[\u003cffffffff810653ad\u003e] kthread+0x7f/0x87\n[\u003cffffffff8100aa24\u003e] kernel_thread_helper+0x4/0x10\n[\u003cffffffff8106532e\u003e] ? kthread+0x0/0x87\n[\u003cffffffff8100aa20\u003e] ? kernel_thread_helper+0x0/0x10\n\nIt\u0027s because there is no initialization code for a list_head contained in\nthe struct backing_dev_info under CONFIG_HOTPLUG_CPU, and the bug comes up\nwhen block device drivers calling blk_alloc_queue() are used.  In case of\nme, I got them by using aoe.\n\nSigned-off-by: Masanori Itoh \u003citoumsn@nttdata.co.jp\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "52c5171214ff3327961d0ce0db7e8d2ce55004fd",
      "tree": "705e7f51b39f4e8af767cc2a8df19e9e78f15000",
      "parents": [
        "1b627d5771312c92404b66f0a0b16f66036dd2e1"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Tue Oct 26 14:21:19 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 16:52:04 2010 -0700"
      },
      "message": "kfifo: disable __kfifo_must_check_helper()\n\nThis helper is wrong: it coerces signed values into unsigned ones, so code\nsuch as\n\n\tif (kfifo_alloc(...) \u003c 0) {\n\t\terror\n\t}\n\nwill fail to detect the error.\n\nSo let\u0027s disable __kfifo_must_check_helper() for 2.6.36.\n\nCc: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nCc: Stefani Seibold \u003cstefani@seibold.net\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1b627d5771312c92404b66f0a0b16f66036dd2e1",
      "tree": "4911b7c27da0fc09f557f46a275782b9a73e6fb3",
      "parents": [
        "de5e2ddf9bb3ce7b643223b9b0718062254f302f"
      ],
      "author": {
        "name": "Richard Weinberger",
        "email": "richard@nod.at",
        "time": "Tue Oct 26 14:21:18 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 16:52:04 2010 -0700"
      },
      "message": "hostfs: fix UML crash: remove f_spare from hostfs\n\n365b1818 (\"add f_flags to struct statfs(64)\") resized f_spare within\nstruct statfs which caused a UML crash.  There is no need to copy f_spare.\n\nSigned-off-by: Richard Weinberger \u003crichard@nod.at\u003e\nReported-by: Toralf Förster \u003ctoralf.foerster@gmx.de\u003e\nTested-by: Toralf Förster \u003ctoralf.foerster@gmx.de\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Jeff Dike \u003cjdike@addtoit.com\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "de5e2ddf9bb3ce7b643223b9b0718062254f302f",
      "tree": "cf19192bfa2fb914e0b070ba0d3ea2f7669e7053",
      "parents": [
        "1f9fa5216eacf4fdf9d3e4ab57feb8b642f0e78b"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Tue Oct 26 14:21:17 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 16:52:04 2010 -0700"
      },
      "message": "ipmi: proper spinlock initialization\n\nUnloading ipmi module can trigger following error.  (if\nCONFIG_DEBUG_SPINLOCK\u003dy)\n\n[ 9633.779590] BUG: spinlock bad magic on CPU#1, rmmod/7170\n[ 9633.779606]  lock: f41f5414, .magic: 00000000, .owner:\n\u003cnone\u003e/-1, .owner_cpu: 0\n[ 9633.779626] Pid: 7170, comm: rmmod Not tainted\n2.6.36-rc7-11474-gb71eb1e-dirty #328\n[ 9633.779644] Call Trace:\n[ 9633.779657]  [\u003cc13921cc\u003e] ? printk+0x18/0x1c\n[ 9633.779672]  [\u003cc11a1f33\u003e] spin_bug+0xa3/0xf0\n[ 9633.779685]  [\u003cc11a1ffd\u003e] do_raw_spin_lock+0x7d/0x160\n[ 9633.779702]  [\u003cc1131537\u003e] ? release_sysfs_dirent+0x47/0xb0\n[ 9633.779718]  [\u003cc1131b78\u003e] ? sysfs_addrm_finish+0xa8/0xd0\n[ 9633.779734]  [\u003cc1394bac\u003e] _raw_spin_lock_irqsave+0xc/0x20\n[ 9633.779752]  [\u003cf99d93da\u003e] cleanup_one_si+0x6a/0x200 [ipmi_si]\n[ 9633.779768]  [\u003cc11305b2\u003e] ? sysfs_hash_and_remove+0x72/0x80\n[ 9633.779786]  [\u003cf99dcf26\u003e] ipmi_pnp_remove+0xd/0xf [ipmi_si]\n[ 9633.779802]  [\u003cc11f622b\u003e] pnp_device_remove+0x1b/0x40\n\nFix this by initializing spinlocks in a smi_info_alloc() helper function,\nright after memory allocation and clearing.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nAcked-by: David Miller \u003cdavem@davemloft.net\u003e\nCc: Yinghai Lu \u003cyinghai@kernel.org\u003e\nAcked-by: Corey Minyard \u003ccminyard@mvista.com\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1f9fa5216eacf4fdf9d3e4ab57feb8b642f0e78b",
      "tree": "e77844b9efe465f9265d502f91c1b0864a64b590",
      "parents": [
        "6915e04f8847bea16d0890f559694ad8eedd026c"
      ],
      "author": {
        "name": "Michael Hennerich",
        "email": "michael.hennerich@analog.com",
        "time": "Tue Oct 26 14:21:16 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 16:52:04 2010 -0700"
      },
      "message": "drivers/misc/ad525x_dpot.c: fix typo in spi write16 and write24 transfer counts\n\nThis is a bug fix.  Some SPI connected devices using 16/24 bit accesses,\npreviously failed, now work.\n\nThis typo slipped in after testing, during some restructuring.\n\nSigned-off-by: Michael Hennerich \u003cmichael.hennerich@analog.com\u003e\nCc: Mike Frysinger \u003cvapier@gentoo.org\u003e\nCc: Chris Verges \u003cchrisv@cyberswitching.com\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6915e04f8847bea16d0890f559694ad8eedd026c",
      "tree": "ec0028a3ab61e86c856782d962bea7b863f04f96",
      "parents": [
        "09358972bff5ce99de496bbba97c85d417b3c054"
      ],
      "author": {
        "name": "Richard Weinberger",
        "email": "richard@nod.at",
        "time": "Tue Oct 26 14:21:16 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 16:52:04 2010 -0700"
      },
      "message": "um: remove PAGE_SIZE alignment in linker script causing kernel segfault.\n\nThe linker script cleanup that I did in commit 5d150a97f93 (\"um: Clean up\nlinker script using standard macros.\") (2.6.32) accidentally introduced an\nALIGN(PAGE_SIZE) when converting to use INIT_TEXT_SECTION; Richard\nWeinberger reported that this causes the kernel to segfault with\nCONFIG_STATIC_LINK\u003dy.\n\nI\u0027m not certain why this extra alignment is a problem, but it seems likely\nit is because previously\n\n__init_begin \u003d _stext \u003d _text \u003d _sinittext\n\nand with the extra ALIGN(PAGE_SIZE), _sinittext becomes different from the\nrest.  So there is likely a bug here where something is assuming that\n_sinittext is the same as one of those other symbols.  But reverting the\naccidental change fixes the regression, so it seems worth committing that\nnow.\n\nSigned-off-by: Tim Abbott \u003ctabbott@ksplice.com\u003e\nReported-by: Richard Weinberger \u003crichard@nod.at\u003e\nCc: Jeff Dike \u003cjdike@addtoit.com\u003e\nTested by: Antoine Martin \u003cantoine@nagafix.co.uk\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "09358972bff5ce99de496bbba97c85d417b3c054",
      "tree": "e7007ac80fc9dd6101db5c9ca07cbc0246b597e4",
      "parents": [
        "482db6df1746c4fa7d64a2441d4cb2610249c679"
      ],
      "author": {
        "name": "Robin Holt",
        "email": "holt@sgi.com",
        "time": "Tue Oct 26 14:21:15 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 16:52:03 2010 -0700"
      },
      "message": "sgi-xp: incoming XPC channel messages can come in after the channel\u0027s partition structures have been torn down\n\nUnder some workloads, some channel messages have been observed being\ndelayed on the sending side past the point where the receiving side has\nbeen able to tear down its partition structures.\n\nThis condition is already detected in xpc_handle_activate_IRQ_uv(), but\nthat information is not given to xpc_handle_activate_mq_msg_uv().  As a\nresult, xpc_handle_activate_mq_msg_uv() assumes the structures still exist\nand references them, causing a NULL-pointer deref.\n\nSigned-off-by: Robin Holt \u003cholt@sgi.com\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "482db6df1746c4fa7d64a2441d4cb2610249c679",
      "tree": "9e18f6c3121bbceeb520c9b5f43f1e629f0f93cd",
      "parents": [
        "b7f50cfa3630b6e079929ffccfd442d65064ee1f"
      ],
      "author": {
        "name": "Richard Weinberger",
        "email": "richard@nod.at",
        "time": "Tue Oct 26 14:21:13 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 16:52:03 2010 -0700"
      },
      "message": "um: fix global timer issue when using CONFIG_NO_HZ\n\nThis fixes a issue which was introduced by fe2cc53e (\"uml: track and make\nup lost ticks\").\n\ntimeval_to_ns() returns long long and not int.  Due to that UML\u0027s timer\ndid not work properlt and caused timer freezes.\n\nSigned-off-by: Richard Weinberger \u003crichard@nod.at\u003e\nAcked-by: Pekka Enberg \u003cpenberg@kernel.org\u003e\nCc: Jeff Dike \u003cjdike@addtoit.com\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b7f50cfa3630b6e079929ffccfd442d65064ee1f",
      "tree": "b6f28ed350055bb864cbe317284eb56fca29cfc3",
      "parents": [
        "a75d377686037982cbec320bb770b19fe7be6a5d"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mel@csn.ul.ie",
        "time": "Tue Oct 26 14:21:11 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 16:52:03 2010 -0700"
      },
      "message": "mm, page-allocator: do not check the state of a non-existant buddy during free\n\nThere is a bug in commit 6dda9d55 (\"page allocator: reduce fragmentation\nin buddy allocator by adding buddies that are merging to the tail of the\nfree lists\") that means a buddy at order MAX_ORDER is checked for merging.\n A page of this order never exists so at times, an effectively random\npiece of memory is being checked.\n\nAlan Curry has reported that this is causing memory corruption in\nuserspace data on a PPC32 platform (http://lkml.org/lkml/2010/10/9/32).\nIt is not clear why this is happening.  It could be a cache coherency\nproblem where pages mapped in both user and kernel space are getting\ndifferent cache lines due to the bad read from kernel space\n(http://lkml.org/lkml/2010/10/13/179).  It could also be that there are\nsome special registers being io-remapped at the end of the memmap array\nand that a read has special meaning on them.  Compiler bugs have been\nruled out because the assembly before and after the patch looks relatively\nharmless.\n\nThis patch fixes the problem by ensuring we are not reading a possibly\ninvalid location of memory.  It\u0027s not clear why the read causes corruption\nbut one way or the other it is a buggy read.\n\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Corrado Zoccolo \u003cczoccolo@gmail.com\u003e\nReported-by: Alan Curry \u003cpacman@kosh.dhis.org\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a75d377686037982cbec320bb770b19fe7be6a5d",
      "tree": "878d06a0c4d3f6c86c4e6959e38289631729d09f",
      "parents": [
        "f8f72ad5396987e05a42cf7eff826fb2a15ff148"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Tue Oct 26 14:21:10 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 16:52:03 2010 -0700"
      },
      "message": "types.h: move misplaced comment\n\nThis comment landed in the wrong place.\n\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nCc: Arnd Bergmann \u003carnd@arndb.de\u003e\nCc: David Miller \u003cdavem@davemloft.net\u003e\nCc: Eric Paris \u003ceparis@redhat.com\u003e\nCc: Jan Engelhardt \u003cjengelh@medozas.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f8f72ad5396987e05a42cf7eff826fb2a15ff148",
      "tree": "95dde867832a7e58a535f543b0f22498ff9f2be3",
      "parents": [
        "45352bbf48e95078b4acd20774f49e72676e1e0f"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Tue Oct 26 14:21:10 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 16:52:03 2010 -0700"
      },
      "message": "mm: fix return value of scan_lru_pages in memory unplug\n\nscan_lru_pages returns pfn. So, it\u0027s type should be \"unsigned long\"\nnot \"int\".\n\nNote: I guess this has been work until now because memory hotplug tester\u0027s\n      machine has not very big memory....\n      physical address \u003c 32bit \u003c\u003c PAGE_SHIFT.\n\nReported-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "45352bbf48e95078b4acd20774f49e72676e1e0f",
      "tree": "7c7121dae3f4ecebb1c08cea5f3b3d1c6c531756",
      "parents": [
        "da62aa69c181e3bd465a5c868ece166921a81e14",
        "57894517139b283a3cf27e36b29b4b4d7c45b303"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 10:14:23 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 10:14:23 2010 -0700"
      },
      "message": "Merge git://git.infradead.org/battery-2.6\n\n* git://git.infradead.org/battery-2.6:\n  power_supply: Makefile cleanup\n  bq27x00_battery: Add missing kfree(di-\u003ebus) in bq27x00_battery_remove()\n  power_supply: Introduce maximum current property\n  power_supply: Add types for USB chargers\n  ds2782_battery: Fix units\n  power_supply: Add driver for TWL4030/TPS65950 BCI charger\n  bq20z75: Add support for more power supply properties\n  wm831x_power: Add missing kfree(wm831x_power) in wm831x_power_remove()\n  jz4740-battery: Add missing kfree(jz_battery) in jz_battery_remove()\n  ds2760_battery: Add missing kfree(di) in ds2760_battery_remove()\n  olpc_battery: Fix endian neutral breakage for s16 values\n  ds2760_battery: Fix W1 and W1_SLAVE_DS2760 dependency\n  pcf50633-charger: Add missing sysfs_remove_group()\n  power_supply: Add driver for TI BQ20Z75 gas gauge IC\n  wm831x_power: Remove duplicate chg mask\n  omap: rx51: Add support for USB chargers\n  power_supply: Add isp1704 charger detection driver\n"
    },
    {
      "commit": "da62aa69c181e3bd465a5c868ece166921a81e14",
      "tree": "5f1a3e234dd791099ba8761f79442b0ac6f664c0",
      "parents": [
        "f1ebdd60cc73ed36fd977f7e719ce70d2f5cd1c0",
        "76a7bd81130646459dfded1845e0d511488a6afa"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 10:13:48 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 10:13:48 2010 -0700"
      },
      "message": "Merge branch \u0027linux_next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/i7core\n\n* \u0027linux_next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/i7core: (34 commits)\n  i7core_edac: return -ENODEV when devices were already probed\n  i7core_edac: properly terminate pci_dev_table\n  i7core_edac: Avoid PCI refcount to reach zero on successive load/reload\n  i7core_edac: Fix refcount error at PCI devices\n  i7core_edac: it is safe to i7core_unregister_mci() when mci\u003dNULL\n  i7core_edac: Fix an oops at i7core probe\n  i7core_edac: Remove unused member channels in i7core_pvt\n  i7core_edac: Remove unused arg csrow from get_dimm_config\n  i7core_edac: Reduce args of i7core_register_mci\n  i7core_edac: Introduce i7core_unregister_mci\n  i7core_edac: Use saved pointers\n  i7core_edac: Check probe counter in i7core_remove\n  i7core_edac: Call pci_dev_put() when alloc_i7core_dev()  failed\n  i7core_edac: Fix error path of i7core_register_mci\n  i7core_edac: Fix order of lines in i7core_register_mci\n  i7core_edac: Always do get/put for all devices\n  i7core_edac: Introduce i7core_pci_ctl_create/release\n  i7core_edac: Introduce free_i7core_dev\n  i7core_edac: Introduce alloc_i7core_dev\n  i7core_edac: Reduce args of i7core_get_onedevice\n  ...\n"
    },
    {
      "commit": "f1ebdd60cc73ed36fd977f7e719ce70d2f5cd1c0",
      "tree": "225cb2ea2c0f8990f29383058a07206cfd835893",
      "parents": [
        "f99d055398d53c8f769d5153b3fdce1d2556e7ff",
        "46e387bbd82d438b9131e237e6e2cb55a825da49"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 10:13:10 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 10:13:10 2010 -0700"
      },
      "message": "Merge branch \u0027hwpoison\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ak/linux-mce-2.6\n\n* \u0027hwpoison\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ak/linux-mce-2.6: (22 commits)\n  Add _addr_lsb field to ia64 siginfo\n  Fix migration.c compilation on s390\n  HWPOISON: Remove retry loop for try_to_unmap\n  HWPOISON: Turn addr_valid from bitfield into char\n  HWPOISON: Disable DEBUG by default\n  HWPOISON: Convert pr_debugs to pr_info\n  HWPOISON: Improve comments in memory-failure.c\n  x86: HWPOISON: Report correct address granuality for huge hwpoison faults\n  Encode huge page size for VM_FAULT_HWPOISON errors\n  Fix build error with !CONFIG_MIGRATION\n  hugepage: move is_hugepage_on_freelist inside ifdef to avoid warning\n  Clean up __page_set_anon_rmap\n  HWPOISON, hugetlb: fix unpoison for hugepage\n  HWPOISON, hugetlb: soft offlining for hugepage\n  HWPOSION, hugetlb: recover from free hugepage error when !MF_COUNT_INCREASED\n  hugetlb: move refcounting in hugepage allocation inside hugetlb_lock\n  HWPOISON, hugetlb: add free check to dequeue_hwpoison_huge_page()\n  hugetlb: hugepage migration core\n  hugetlb: redefine hugepage copy functions\n  hugetlb: add allocate function for hugepage migration\n  ...\n"
    },
    {
      "commit": "f99d055398d53c8f769d5153b3fdce1d2556e7ff",
      "tree": "3f0fb0b13b70179bf2c58d6fb5bfc7641c925de7",
      "parents": [
        "2c518959f082c549d6c6dd9b5380aec40c3eb07f",
        "24cecc1be62c37231fda15054a3d4d235ada38c5"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 10:03:40 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 10:03:40 2010 -0700"
      },
      "message": "Merge branch \u0027for_linus\u0027 of git://github.com/at91linux/linux-2.6-at91\n\n* \u0027for_linus\u0027 of git://github.com/at91linux/linux-2.6-at91:\n  AT91: rtc: enable built-in RTC in Kconfig for at91sam9g45 family\n  at91/atmel-mci: inclusion of sd/mmc driver in at91sam9g45 chip and board\n  AT91: pm: make sure that r0 is 0 when dealing with cache operations\n  AT91: pm: use plain cpu_do_idle() for \"wait for interrupt\"\n  AT91: reset: extend alternate reset procedure to several chips\n  AT91: reset routine cleanup, remove not needed icache flush\n  AT91: trivial: align comment of at91sam9g20_reset with one more tab\n  AT91: Fix AT91SAM9G20 reset as per the errata in the data sheet\n  AT91: add board support for Pcontrol_G20\n"
    },
    {
      "commit": "2c518959f082c549d6c6dd9b5380aec40c3eb07f",
      "tree": "163deeedb0532e2c7df805cc052f117b32d33fe3",
      "parents": [
        "4f6876031ee105466f400661a0dd3fa66c4f0c09",
        "18016e35d448d35739f8640b51476709c07e95db"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 10:02:39 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 10:02:39 2010 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://gitorious.org/linux-omap-dss2/linux\n\n* \u0027for-linus\u0027 of git://gitorious.org/linux-omap-dss2/linux:\n  OMAP: DSS2: don\u0027t power off a panel twice\n  OMAP: DSS2: OMAPFB: Allow usage of def_vrfb only for omap2,3\n  OMAP: DSS2: OMAPFB: make VRFB depends on OMAP2,3\n  OMAP: DSS2: OMAPFB: Allow FB_OMAP2 to build without VRFB\n  arm/omap: simplify conditional\n  OMAP: DSS2: DSI: Remove extra iounmap in error path\n  OMAP: DSS2: Use dss_features framework on DSS2 code\n  OMAP: DSS2: Introduce dss_features files\n  video/omap: remove mux.h include\n  ARM: omap/fb: move get_fbmem_region() to .init.text\n  ARM: omap/fb: move omapfb_reserve_sram to .init.text\n  ARM: omap/fb: move omap_init_fb to .init.text\n  OMAP: DSS2: OMAPFB: swap front and back porches for both hsync and vsync\n  OMAP: DSS2: make filter coefficient tables human readable\n  OMAP: DSS2: Add SPI dependency to Kconfig of ACX565AKM panel\n"
    },
    {
      "commit": "4f6876031ee105466f400661a0dd3fa66c4f0c09",
      "tree": "9dd7ecb194ea3f50bdc0e6e4545faff3e9898a2c",
      "parents": [
        "4390110fef9e5c64e10c6ca19d586932242c9a8a",
        "a69a0612c4cb7b08570d1b25b542cef478a2d79a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 10:00:04 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 10:00:04 2010 -0700"
      },
      "message": "Merge branch \u0027next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/davej/cpufreq\n\n* \u0027next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/davej/cpufreq:\n  [CPUFREQ]: x86, cpufreq: Mark longrun_get_policy with __cpuinit.\n  [CPUFREQ] add sampling_down_factor tunable to improve ondemand performance\n  [CPUFREQ] arch/x86/kernel/cpu/cpufreq: Fix unsigned return type\n  [CPUFREQ] drivers/cpufreq: Adjust confusing if indentation\n"
    },
    {
      "commit": "4390110fef9e5c64e10c6ca19d586932242c9a8a",
      "tree": "f2f26fe291c8b4e424b97ac57370b33e0c006568",
      "parents": [
        "a4dd8dce14014665862ce7911b38cb2c69e366dd",
        "42d7ba3d6d56a6cbc773284896108b1e2ebcee81"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 09:55:25 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 09:55:25 2010 -0700"
      },
      "message": "Merge branch \u0027for-2.6.37\u0027 of git://linux-nfs.org/~bfields/linux\n\n* \u0027for-2.6.37\u0027 of git://linux-nfs.org/~bfields/linux: (99 commits)\n  svcrpc: svc_tcp_sendto XPT_DEAD check is redundant\n  svcrpc: no need for XPT_DEAD check in svc_xprt_enqueue\n  svcrpc: assume svc_delete_xprt() called only once\n  svcrpc: never clear XPT_BUSY on dead xprt\n  nfsd4: fix connection allocation in sequence()\n  nfsd4: only require krb5 principal for NFSv4.0 callbacks\n  nfsd4: move minorversion to client\n  nfsd4: delay session removal till free_client\n  nfsd4: separate callback change and callback probe\n  nfsd4: callback program number is per-session\n  nfsd4: track backchannel connections\n  nfsd4: confirm only on succesful create_session\n  nfsd4: make backchannel sequence number per-session\n  nfsd4: use client pointer to backchannel session\n  nfsd4: move callback setup into session init code\n  nfsd4: don\u0027t cache seq_misordered replies\n  SUNRPC: Properly initialize sock_xprt.srcaddr in all cases\n  SUNRPC: Use conventional switch statement when reclassifying sockets\n  sunrpc/xprtrdma: clean up workqueue usage\n  sunrpc: Turn list_for_each-s into the ..._entry-s\n  ...\n\nFix up trivial conflicts (two different deprecation notices added in\nseparate branches) in Documentation/feature-removal-schedule.txt\n"
    },
    {
      "commit": "a4dd8dce14014665862ce7911b38cb2c69e366dd",
      "tree": "00e79b2845d5d49abcd83cf253db83a52d482265",
      "parents": [
        "b18cae4224bde7e5a332c19bc99247b2098ea232",
        "411b5e05617593efebc06241dbc56f42150f2abe"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 09:52:09 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 09:52:09 2010 -0700"
      },
      "message": "Merge branch \u0027nfs-for-2.6.37\u0027 of git://git.linux-nfs.org/projects/trondmy/nfs-2.6\n\n* \u0027nfs-for-2.6.37\u0027 of git://git.linux-nfs.org/projects/trondmy/nfs-2.6:\n  net/sunrpc: Use static const char arrays\n  nfs4: fix channel attribute sanity-checks\n  NFSv4.1: Use more sensible names for \u0027initialize_mountpoint\u0027\n  NFSv4.1: pnfs: filelayout: add driver\u0027s LAYOUTGET and GETDEVICEINFO infrastructure\n  NFSv4.1: pnfs: add LAYOUTGET and GETDEVICEINFO infrastructure\n  NFS: client needs to maintain list of inodes with active layouts\n  NFS: create and destroy inode\u0027s layout cache\n  NFSv4.1: pnfs: filelayout: introduce minimal file layout driver\n  NFSv4.1: pnfs: full mount/umount infrastructure\n  NFS: set layout driver\n  NFS: ask for layouttypes during v4 fsinfo call\n  NFS: change stateid to be a union\n  NFSv4.1: pnfsd, pnfs: protocol level pnfs constants\n  SUNRPC: define xdr_decode_opaque_fixed\n  NFSD: remove duplicate NFS4_STATEID_SIZE\n"
    },
    {
      "commit": "24cecc1be62c37231fda15054a3d4d235ada38c5",
      "tree": "335ea997e0d65fd5178396f9560f8d9f3a356e73",
      "parents": [
        "75305d768d296a07fd02df9af3e5de326df1c72e"
      ],
      "author": {
        "name": "Nicolas Ferre",
        "email": "nicolas.ferre@atmel.com",
        "time": "Fri Oct 22 19:12:52 2010 +0200"
      },
      "committer": {
        "name": "Nicolas Ferre",
        "email": "nicolas.ferre@atmel.com",
        "time": "Tue Oct 26 11:32:49 2010 +0200"
      },
      "message": "AT91: rtc: enable built-in RTC in Kconfig for at91sam9g45 family\n\nEnable built-in RTC IP in Kconfig and modify comments and help messages.\nRTT as RTC is still available but should not be selected in common case.\n\nReported-by: Yegor Yefremov \u003cyegor_sub1@visionsystems.de\u003e\nSigned-off-by: Nicolas Ferre \u003cnicolas.ferre@atmel.com\u003e\n"
    },
    {
      "commit": "75305d768d296a07fd02df9af3e5de326df1c72e",
      "tree": "e816a4d3bcfa1f06488bdbaad1d9a5deb3fdca09",
      "parents": [
        "a2a571b74a3881963d8d09deb272d13afe5b49e3"
      ],
      "author": {
        "name": "Nicolas Ferre",
        "email": "nicolas.ferre@atmel.com",
        "time": "Fri Oct 22 18:27:48 2010 +0200"
      },
      "committer": {
        "name": "Nicolas Ferre",
        "email": "nicolas.ferre@atmel.com",
        "time": "Tue Oct 26 11:32:49 2010 +0200"
      },
      "message": "at91/atmel-mci: inclusion of sd/mmc driver in at91sam9g45 chip and board\n\nThis adds the support of atmel-mci sd/mmc driver in at91sam9g45 devices and\nboard files. This also configures the DMA controller slave interface for\nat_hdmac dmaengine driver.\n\nSigned-off-by: Nicolas Ferre \u003cnicolas.ferre@atmel.com\u003e\n"
    },
    {
      "commit": "a2a571b74a3881963d8d09deb272d13afe5b49e3",
      "tree": "491cf5ff56293287906f9cfec785345f24cd2180",
      "parents": [
        "8aeeda822fbfe7da2d4ea391a9757e9532796598"
      ],
      "author": {
        "name": "Nicolas Ferre",
        "email": "nicolas.ferre@atmel.com",
        "time": "Fri Oct 22 18:55:39 2010 +0200"
      },
      "committer": {
        "name": "Nicolas Ferre",
        "email": "nicolas.ferre@atmel.com",
        "time": "Tue Oct 26 11:32:48 2010 +0200"
      },
      "message": "AT91: pm: make sure that r0 is 0 when dealing with cache operations\n\nWhen using CP15 cache operations (c7), we make sure that Rd (r0)\nis actually 0 as ARM 926 TRM is saying.\n\nSigned-off-by: Nicolas Ferre \u003cnicolas.ferre@atmel.com\u003e\n"
    },
    {
      "commit": "8aeeda822fbfe7da2d4ea391a9757e9532796598",
      "tree": "04b001427ac194ad070c7cd6ee89c23af0f125cc",
      "parents": [
        "bb413db591d53c29292868577068fa822b84da82"
      ],
      "author": {
        "name": "Nicolas Ferre",
        "email": "nicolas.ferre@atmel.com",
        "time": "Fri Oct 22 17:53:39 2010 +0200"
      },
      "committer": {
        "name": "Nicolas Ferre",
        "email": "nicolas.ferre@atmel.com",
        "time": "Tue Oct 26 11:32:48 2010 +0200"
      },
      "message": "AT91: pm: use plain cpu_do_idle() for \"wait for interrupt\"\n\nFor power management at91_pm_enter() routine, use the cpu_do_idle() for a\nrock solid \"wait for interrupt\" implementation.\nFor AT91SAM9 ARM 926 based chips, we can exceed the cache line length as\nwe can access RAM even while in self-refresh mode.\nWe keep plain access to CP15 for at91rm9200 as this feature is not\navailable: instructions have to be in a single cache line.\n\nSigned-off-by: Nicolas Ferre \u003cnicolas.ferre@atmel.com\u003e\n"
    },
    {
      "commit": "bb413db591d53c29292868577068fa822b84da82",
      "tree": "4a60e1015dd56ec54f00a809a9f3fffa99fa38a2",
      "parents": [
        "1345562b449e95e2098cc60eb0eed6d2415cd0b0"
      ],
      "author": {
        "name": "Nicolas Ferre",
        "email": "nicolas.ferre@atmel.com",
        "time": "Thu Oct 14 19:14:00 2010 +0200"
      },
      "committer": {
        "name": "Nicolas Ferre",
        "email": "nicolas.ferre@atmel.com",
        "time": "Tue Oct 26 11:32:48 2010 +0200"
      },
      "message": "AT91: reset: extend alternate reset procedure to several chips\n\nSeveral at91sam9 chips need the alternate reset procedure to be sure to halt\nSDRAM smoothly before resetting the chip.\nThis is an extension of previous patch \"Fix AT91SAM9G20 reset\" to all chips\naffected.\n\nSigned-off-by: Nicolas Ferre \u003cnicolas.ferre@atmel.com\u003e\n"
    },
    {
      "commit": "1345562b449e95e2098cc60eb0eed6d2415cd0b0",
      "tree": "030983c78b1c1472765047f262b9533ae2060098",
      "parents": [
        "ef4d63e6f51d9669e247c47b670a83511b98eb68"
      ],
      "author": {
        "name": "Nicolas Ferre",
        "email": "nicolas.ferre@atmel.com",
        "time": "Thu Oct 14 17:19:11 2010 +0200"
      },
      "committer": {
        "name": "Nicolas Ferre",
        "email": "nicolas.ferre@atmel.com",
        "time": "Tue Oct 26 11:32:48 2010 +0200"
      },
      "message": "AT91: reset routine cleanup, remove not needed icache flush\n\nGeneralize assembler reset routine to allow use on several at91sam9 chips.\nThis patch replace double definitions of SDRAM controller registers and RSTC\nregisters with use of classical header files.\n\nFor this rework, we remove the not needed icache flush as it is already\ndone in the calling function: arm_machine_restart().\n\nRename at91sam9g20_reset.S to generalize to several chips.\n\nSigned-off-by: Nicolas Ferre \u003cnicolas.ferre@atmel.com\u003e\n"
    },
    {
      "commit": "ef4d63e6f51d9669e247c47b670a83511b98eb68",
      "tree": "35871307329b7477c87486634925c6050b28ec66",
      "parents": [
        "184c82e853704ee98e729af0f36a8539355c0e2e"
      ],
      "author": {
        "name": "Nicolas Ferre",
        "email": "nicolas.ferre@atmel.com",
        "time": "Thu Oct 14 16:51:36 2010 +0200"
      },
      "committer": {
        "name": "Nicolas Ferre",
        "email": "nicolas.ferre@atmel.com",
        "time": "Tue Oct 26 11:32:47 2010 +0200"
      },
      "message": "AT91: trivial: align comment of at91sam9g20_reset with one more tab\n\nPreparing next patch with longer names\n\nSigned-off-by: Nicolas Ferre \u003cnicolas.ferre@atmel.com\u003e\n"
    },
    {
      "commit": "184c82e853704ee98e729af0f36a8539355c0e2e",
      "tree": "927e9c1a4ab1a339b842619709fa852ae1926003",
      "parents": [
        "abf0c1bc94cb16f9eed331ea98ac151d08adf4fe"
      ],
      "author": {
        "name": "Peter Horton",
        "email": "phorton@bitbox.co.uk",
        "time": "Fri May 28 16:37:26 2010 +0100"
      },
      "committer": {
        "name": "Nicolas Ferre",
        "email": "nicolas.ferre@atmel.com",
        "time": "Tue Oct 26 11:32:47 2010 +0200"
      },
      "message": "AT91: Fix AT91SAM9G20 reset as per the errata in the data sheet\n\nIf the SDRAM is not cleanly shutdown before reset it can be left driving\nthe bus, which then stops the bootloader booting from NAND.\n\nSigned-off-by: Peter Horton \u003cphorton@bitbox.co.uk\u003e\n[nicolas.ferre@atmel.com: change file header line order]\nSigned-off-by: Nicolas Ferre \u003cnicolas.ferre@atmel.com\u003e\n"
    },
    {
      "commit": "abf0c1bc94cb16f9eed331ea98ac151d08adf4fe",
      "tree": "d61188ba86c1b2a6a9cac01c3f73654960ac1901",
      "parents": [
        "b18cae4224bde7e5a332c19bc99247b2098ea232"
      ],
      "author": {
        "name": "Peter Gsellmann",
        "email": "pgsellmann@portner-elektronik.at",
        "time": "Wed Oct 13 16:18:51 2010 +0200"
      },
      "committer": {
        "name": "Nicolas Ferre",
        "email": "nicolas.ferre@atmel.com",
        "time": "Tue Oct 26 11:32:47 2010 +0200"
      },
      "message": "AT91: add board support for Pcontrol_G20\n\nBoard is a carrier board for Stamp9G20, with additional peripherals\nfor a building automation system\n\nSigned-off-by: Peter Gsellmann \u003cpgsellmann@portner-elektronik.at\u003e\n[nicolas.ferre@atmel.com: remove machine_desc.io_pg_offst and .phys_io]\nSigned-off-by: Nicolas Ferre \u003cnicolas.ferre@atmel.com\u003e\n"
    },
    {
      "commit": "411b5e05617593efebc06241dbc56f42150f2abe",
      "tree": "f3a8ea3a580134cee82f06cf23a0e1cbdc4f3f41",
      "parents": [
        "43c2e885be25311e6289c7da52e8a03c4453ee03"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Mon Sep 13 12:48:01 2010 -0700"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Oct 25 22:19:52 2010 -0400"
      },
      "message": "net/sunrpc: Use static const char arrays\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "43c2e885be25311e6289c7da52e8a03c4453ee03",
      "tree": "68b32eda7198486a8fe720bb5ed91189a769d817",
      "parents": [
        "1c787096fce217b5fdd9806dbce96e738c9345c0"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Sat Oct 02 15:19:01 2010 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Oct 25 22:19:41 2010 -0400"
      },
      "message": "nfs4: fix channel attribute sanity-checks\n\nThe sanity checks here are incorrect; in the worst case they allow\nvalues that crash the client.\n\nThey\u0027re also over-reliant on the preprocessor.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "b18cae4224bde7e5a332c19bc99247b2098ea232",
      "tree": "2ffa750e6a043a1dcfccd71588b7d6cfdcad440a",
      "parents": [
        "4833c16dea61cb30d6f77dfec3067a08ba79b361",
        "f41649e040b1f63e809fb2adb78ed2f3c3ebbcd0"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 25 18:42:06 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 25 18:42:06 2010 -0700"
      },
      "message": "Merge branch \u0027for-next\u0027 of git://android.git.kernel.org/kernel/tegra\n\n* \u0027for-next\u0027 of git://android.git.kernel.org/kernel/tegra:\n  spi: tegra: fix error setting on timeout\n  spi: add spi_tegra driver\n  tegra: harmony: enable PCI Express\n  tegra: add PCI Express support\n  tegra: add PCI Express clocks\n  [ARM] tegra: Add APB DMA support\n  [ARM] tegra: Add cpufreq support\n  [ARM] tegra: common: Update common clock init table\n  [ARM] tegra: clock: Add dvfs support, bug fixes, and cleanups\n  [ARM] tegra: Add support for reading fuses\n  [ARM] tegra: gpio: Add suspend and wake support\n  [ARM] tegra: pinmux: add safe values, move tegra2, add suspend\n  [ARM] tegra: add suspend and mirror irqs to legacy controller\n  [ARM] tegra: Add legacy irq support\n  [ARM] tegra: update iomap\n"
    },
    {
      "commit": "4833c16dea61cb30d6f77dfec3067a08ba79b361",
      "tree": "fdf6cd3a851bca2c8c9db2e751abd5eddfcb2f66",
      "parents": [
        "e0e170bd7ded2ec16e2813d63c0faff43193fde8",
        "ad3e01a331435a06055cdaf19cc973dd138dc925"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 25 18:41:32 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 25 18:41:32 2010 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/vapier/blackfin\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/vapier/blackfin:\n  Blackfin: fix inverted anomaly 05000481 logic\n  Blackfin: drop unused irq_panic()/DEBUG_ICACHE_CHECK\n  Blackfin: ppi/spi/twi headers: add missing __BFP undef\n  Blackfin: update defconfigs\n  Blackfin: bfin_twi.h: start a common TWI header\n  netdev: bfin_mac: push settings to platform resources\n"
    },
    {
      "commit": "f41649e040b1f63e809fb2adb78ed2f3c3ebbcd0",
      "tree": "1386191824282de175fa5453907ea1a8bb08bfa4",
      "parents": [
        "0c03a1dd5bd8a37932ae1d519156172affef22fd"
      ],
      "author": {
        "name": "Erik Gilling",
        "email": "konkers@android.com",
        "time": "Wed Sep 08 18:16:45 2010 -0700"
      },
      "committer": {
        "name": "Erik Gilling",
        "email": "konkers@android.com",
        "time": "Mon Oct 25 16:57:46 2010 -0700"
      },
      "message": "spi: tegra: fix error setting on timeout\n\navoids derefencing an uninitialized pointer\n\nChange-Id: Icf528441ae481e9f6f5ddc0be32c7c217fa49701\nSigned-off-by: Erik Gilling \u003ckonkers@android.com\u003e\n"
    },
    {
      "commit": "e0e170bd7ded2ec16e2813d63c0faff43193fde8",
      "tree": "2f06008b61ef2eedf8f77d1326e286a64e426ef6",
      "parents": [
        "b20f9e5bddddb5ef0d743d6e0d409ffc8cf9fc56",
        "b843e4ec01991a386a9e0e9030703524446e03da"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 25 16:53:11 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 25 16:53:11 2010 -0700"
      },
      "message": "Merge branch \u0027next\u0027 of git://git.monstr.eu/linux-2.6-microblaze\n\n* \u0027next\u0027 of git://git.monstr.eu/linux-2.6-microblaze: (42 commits)\n  microblaze: Fix build with make 3.82\n  fbdev/xilinxfb: Microblaze driver support\n  microblaze: Support C optimized lib functions for little-endian\n  microblaze: Separate library optimized functions\n  microblaze: Support timer on AXI lite\n  microblaze: Add support for little-endian Microblaze\n  microblaze: KGDB little endian support\n  microblaze: Add PVR for endians plus detection\n  net: emaclite: Add support for little-endian platforms\n  microblaze: trivial: Add comment for AXI pvr\n  microblaze: pci-common cleanup\n  microblaze: Support early console on uart16550\n  microblaze: Do not compile early console support for uartlite if is disabled\n  microblaze: Setup early console dynamically\n  microblaze: Rename all uartlite early printk functions\n  microblaze: remove early printk uarlite console dependency from header\n  microblaze: Remove additional compatible properties\n  microblaze: Remove hardcoded asm instraction for PVR loading\n  microblaze: Use static const char * const where possible\n  microblaze: Define VMALLOC_START/END\n  ...\n"
    },
    {
      "commit": "b20f9e5bddddb5ef0d743d6e0d409ffc8cf9fc56",
      "tree": "7654b53ebb9af77b5daeab696d1d48069ae631a1",
      "parents": [
        "5260562754c0aa4b95eebb1f851eaccce7286365",
        "b11e7b3f3b56119194234085d42a633ceabd6aba"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 25 16:25:31 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 25 16:25:31 2010 -0700"
      },
      "message": "Merge branch \u0027hwmon-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/staging\n\n* \u0027hwmon-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/staging: (24 commits)\n  hwmon: lis3: Release resources in case of failure\n  hwmon: lis3: Short explanations of platform data fields\n  hwmon: lis3: Enhance lis3 selftest with IRQ line test\n  hwmon: lis3: use block read to access data registers\n  hwmon: lis3: Adjust fuzziness for 8 bit device\n  hwmon: lis3: New parameters to platform data\n  hwmon: lis3: restore axis enabled bits\n  hwmon: lis3: Power on corrections\n  hwmon: lis3: Update coordinates at polled device open\n  hwmon: lis3: Cleanup interrupt handling\n  hwmon: lis3: regulator control\n  hwmon: lis3: pm_runtime support\n  Kirkwood: add fan support for Network Space Max v2\n  hwmon: add generic GPIO fan driver\n  hwmon: (coretemp) fix reading of microcode revision (v2)\n  hwmon: ({core, pkg, via-cpu}temp) remove unnecessary CONFIG_HOTPLUG_CPU ifdefs\n  hwmon: (pkgtemp) align driver initialization style with coretemp\n  hwmon: LTC4261 Hardware monitoring driver\n  hwmon: (lis3) add axes module parameter for custom axis-mapping\n  hwmon: (hp_accel) Add HP Mini 510x family support\n  ...\n"
    },
    {
      "commit": "5260562754c0aa4b95eebb1f851eaccce7286365",
      "tree": "5702b9da6869d2769e4e88472b2c39b643187174",
      "parents": [
        "74eb94b218d087798a52c0b4f1379b635287a4b8"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Mon Oct 25 23:41:11 2010 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 25 16:24:06 2010 -0700"
      },
      "message": "MN10300: Fix the PERCPU() alignment to allow for workqueues\n\nIn the MN10300 arch, we occasionally see an assertion being tripped in\nalloc_cwqs() at the following line:\n\n        /* just in case, make sure it\u0027s actually aligned */\n  ---\u003e  BUG_ON(!IS_ALIGNED(wq-\u003ecpu_wq.v, align));\n        return wq-\u003ecpu_wq.v ? 0 : -ENOMEM;\n\nThe values are:\n\n        wa-\u003ecpu_wq.v \u003d\u003e 0x902776e0\n        align \u003d\u003e 0x100\n\nand align is calculated by the following:\n\n        const size_t align \u003d max_t(size_t, 1 \u003c\u003c WORK_STRUCT_FLAG_BITS,\n                                   __alignof__(unsigned long long));\n\nThis is because the pointer in question (wq-\u003ecpu_wq.v) loses some of its\nlower bits to control flags, and so the object it points to must be\nsufficiently aligned to avoid the need to use those bits for pointing to\nthings.\n\nCurrently, 4 control bits and 4 colour bits are used in normal\ncircumstances, plus a debugging bit if debugging is set.  This requires\nthe cpu_workqueue_struct struct to be at least 256 bytes aligned (or 512\nbytes aligned with debugging).\n\nPERCPU() alignment on MN13000, however, is only 32 bytes as set in\nvmlinux.lds.S.  So we set this to PAGE_SIZE (4096) to match most other\narches and stick a comment in alloc_cwqs() for anyone else who triggers\nthe assertion.\n\nReported-by: Akira Takeuchi \u003ctakeuchi.akr@jp.panasonic.com\u003e\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: Mark Salter \u003cmsalter@redhat.com\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "42d7ba3d6d56a6cbc773284896108b1e2ebcee81",
      "tree": "3d0d908c39ae228e4b51c3bec8d5bd5188397637",
      "parents": [
        "01dba075d571f5a8b7dcb153fdfd14e981c4cee3"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Sat Oct 23 11:55:53 2010 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Mon Oct 25 17:59:34 2010 -0400"
      },
      "message": "svcrpc: svc_tcp_sendto XPT_DEAD check is redundant\n\nThe only caller (svc_send) has already checked XPT_DEAD.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "01dba075d571f5a8b7dcb153fdfd14e981c4cee3",
      "tree": "b443dff71fd4addcd11b873f356bbd247cadaa43",
      "parents": [
        "ac9303eb74471bc2567960b47497a8bfbe1e5a03"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Sat Oct 23 11:23:46 2010 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Mon Oct 25 17:59:33 2010 -0400"
      },
      "message": "svcrpc: no need for XPT_DEAD check in svc_xprt_enqueue\n\nIf any xprt marked DEAD is also left BUSY for the rest of its life, then\nthe XPT_DEAD check here is superfluous--we\u0027ll get the same result from\nthe XPT_BUSY check just after.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "ac9303eb74471bc2567960b47497a8bfbe1e5a03",
      "tree": "17f9882d81b56d2787d0c556cfa6d76ea40a948b",
      "parents": [
        "7e4fdd0744fcb9f08854c37643bf529c5945cc36"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Sat Oct 23 11:16:10 2010 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Mon Oct 25 17:59:32 2010 -0400"
      },
      "message": "svcrpc: assume svc_delete_xprt() called only once\n\nAs long as DEAD exports are left BUSY, and svc_delete_xprt is called\nonly with BUSY held, then svc_delete_xprt() will never be called on an\nxprt that is already DEAD.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "7e4fdd0744fcb9f08854c37643bf529c5945cc36",
      "tree": "4587d216b75107bc173a66396e5ca6a4d4e1b0ce",
      "parents": [
        "a663bdd8c5d18d287f7468470816c9e0e66343c1"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Sat Oct 23 11:04:12 2010 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Mon Oct 25 17:58:40 2010 -0400"
      },
      "message": "svcrpc: never clear XPT_BUSY on dead xprt\n\nOnce an xprt has been deleted, there\u0027s no reason to allow it to be\nenqueued--at worst, that might cause the xprt to be re-added to some\nglobal list, resulting in later corruption.\n\nAlso, note this leaves us with no need for the reference-count\nmanipulation here.\n\nReviewed-by: NeilBrown \u003cneilb@suse.de\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "b11e7b3f3b56119194234085d42a633ceabd6aba",
      "tree": "ba12e182a53f74f78e8c35f05699b2a7b03f82e3",
      "parents": [
        "83af1bd81f7b7fb31a681b0c80790866f190d23a"
      ],
      "author": {
        "name": "Samu Onkalo",
        "email": "samu.p.onkalo@nokia.com",
        "time": "Fri Oct 22 07:57:34 2010 -0400"
      },
      "committer": {
        "name": "Guenter Roeck",
        "email": "guenter.roeck@ericsson.com",
        "time": "Mon Oct 25 14:44:59 2010 -0700"
      },
      "message": "hwmon: lis3: Release resources in case of failure\n\nIf lis3lv02d_init_device fails, HW resources were not released\nproperly. In case of failure call release_resources if available.\n\nSigned-off-by: Samu Onkalo \u003csamu.p.onkalo@nokia.com\u003e\nAcked-by: Eric Piel \u003ceric.piel@tremplin-utc.net\u003e\nSigned-off-by: Guenter Roeck \u003cguenter.roeck@ericsson.com\u003e\n"
    },
    {
      "commit": "ad3e01a331435a06055cdaf19cc973dd138dc925",
      "tree": "ef68c22a08f73be31fc1763d63cbcdff06128785",
      "parents": [
        "09ebdedf48994117ede1b7792fc38268bc82549b"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier@gentoo.org",
        "time": "Mon Oct 25 04:49:49 2010 -0400"
      },
      "committer": {
        "name": "Mike Frysinger",
        "email": "vapier@gentoo.org",
        "time": "Mon Oct 25 17:24:00 2010 -0400"
      },
      "message": "Blackfin: fix inverted anomaly 05000481 logic\n\nNo one uses these MMRs so we didn\u0027t notice when the anomaly handling\nlogic was inverted.\n\nReported-by: Robin Getz \u003crobin.getz@analog.com\u003e\nSigned-off-by: Mike Frysinger \u003cvapier@gentoo.org\u003e\n"
    },
    {
      "commit": "09ebdedf48994117ede1b7792fc38268bc82549b",
      "tree": "07195e652b8a15f19b253add19af1dc632bec60b",
      "parents": [
        "ff7cbc4b5c6276865a6db594c4b8459ebad457a4"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier@gentoo.org",
        "time": "Mon Oct 25 17:22:49 2010 -0400"
      },
      "committer": {
        "name": "Mike Frysinger",
        "email": "vapier@gentoo.org",
        "time": "Mon Oct 25 17:24:00 2010 -0400"
      },
      "message": "Blackfin: drop unused irq_panic()/DEBUG_ICACHE_CHECK\n\nThis code was useful during early port development when our icache code\nwasn\u0027t solid, but that ship has sailed long ago, and no code calls this\nfunction anymore (irq_panic).  So punt it.\n\nSigned-off-by: Mike Frysinger \u003cvapier@gentoo.org\u003e\n"
    },
    {
      "commit": "83af1bd81f7b7fb31a681b0c80790866f190d23a",
      "tree": "47ed7fc0c535ead5399f65a883e6d51ad4b2118d",
      "parents": [
        "029756d0b8856f52d83dee81c01dd3af786cadff"
      ],
      "author": {
        "name": "Samu Onkalo",
        "email": "samu.p.onkalo@nokia.com",
        "time": "Sat Oct 23 09:39:44 2010 -0400"
      },
      "committer": {
        "name": "Guenter Roeck",
        "email": "guenter.roeck@ericsson.com",
        "time": "Mon Oct 25 14:11:39 2010 -0700"
      },
      "message": "hwmon: lis3: Short explanations of platform data fields\n\nShort documentation at kernel doc format.\n\nSigned-off-by: Samu Onkalo \u003csamu.p.onkalo@nokia.com\u003e\nAcked-by: Jonathan Cameron \u003cjic23@cam.ac.uk\u003e\nAcked-by: Eric Piel \u003ceric.piel@tremplin-utc.net\u003e\nSigned-off-by: Guenter Roeck \u003cguenter.roeck@ericsson.com\u003e\n"
    },
    {
      "commit": "029756d0b8856f52d83dee81c01dd3af786cadff",
      "tree": "573ac19fe3461f1ffece64fd42af8573c011fa5d",
      "parents": [
        "f10a5407b58603fb3b084d7fbdbd50f47d010c82"
      ],
      "author": {
        "name": "Samu Onkalo",
        "email": "samu.p.onkalo@nokia.com",
        "time": "Fri Oct 22 07:57:32 2010 -0400"
      },
      "committer": {
        "name": "Guenter Roeck",
        "email": "guenter.roeck@ericsson.com",
        "time": "Mon Oct 25 14:11:39 2010 -0700"
      },
      "message": "hwmon: lis3: Enhance lis3 selftest with IRQ line test\n\nConfigure chip to data ready mode in selftest and count received\ninterrupts to see that interrupt line(s) are working.\n\nSigned-off-by: Samu Onkalo \u003csamu.p.onkalo@nokia.com\u003e\nAcked-by: Eric Piel \u003ceric.piel@tremplin-utc.net\u003e\nSigned-off-by: Guenter Roeck \u003cguenter.roeck@ericsson.com\u003e\n"
    },
    {
      "commit": "f10a5407b58603fb3b084d7fbdbd50f47d010c82",
      "tree": "121a730685dab830c412f7c09027b0b04917d307",
      "parents": [
        "477bc918c2323a51f577cd892ca49376f6feb5d5"
      ],
      "author": {
        "name": "Samu Onkalo",
        "email": "samu.p.onkalo@nokia.com",
        "time": "Fri Oct 22 07:57:31 2010 -0400"
      },
      "committer": {
        "name": "Guenter Roeck",
        "email": "guenter.roeck@ericsson.com",
        "time": "Mon Oct 25 14:11:39 2010 -0700"
      },
      "message": "hwmon: lis3: use block read to access data registers\n\nAdd optional blockread function to interface driver. If available\nthe chip driver uses it for data register access. For 12 bit device\nit reads 6 bytes to get 3*16bit data. For 8 bit device it reads out\n5 bytes since every second byte is dummy.\nThis optimizes bus usage and reduces number of operations and\ninterrupts needed for one data update.\n\nSigned-off-by: Samu Onkalo \u003csamu.p.onkalo@nokia.com\u003e\nAcked-by: Jonathan Cameron \u003cjic23@cam.ac.uk\u003e\nAcked-by: Eric Piel \u003ceric.piel@tremplin-utc.net\u003e\nSigned-off-by: Guenter Roeck \u003cguenter.roeck@ericsson.com\u003e\n"
    },
    {
      "commit": "477bc918c2323a51f577cd892ca49376f6feb5d5",
      "tree": "e4902eac91b80243413efd376a38b23cbbd82943",
      "parents": [
        "cc23aa1ce2631b2fe1e3fba82ee444460f5ee3b7"
      ],
      "author": {
        "name": "Samu Onkalo",
        "email": "samu.p.onkalo@nokia.com",
        "time": "Fri Oct 22 07:57:30 2010 -0400"
      },
      "committer": {
        "name": "Guenter Roeck",
        "email": "guenter.roeck@ericsson.com",
        "time": "Mon Oct 25 14:11:39 2010 -0700"
      },
      "message": "hwmon: lis3: Adjust fuzziness for 8 bit device\n\nDefault fuziness is set smaller for 8 device.\nIn 12 bit device LSB is quite close to 1 mg\n(mg \u003d 1 / 1000 of earth gravity).\nIn 8bit device LSB is about 18 mg.\nSet fuziness to 1 for 8 bit device.\n\nSigned-off-by: Samu Onkalo \u003csamu.p.onkalo@nokia.com\u003e\nAcked-by: Eric Piel \u003ceric.piel@tremplin-utc.net\u003e\nSigned-off-by: Guenter Roeck \u003cguenter.roeck@ericsson.com\u003e\n"
    },
    {
      "commit": "cc23aa1ce2631b2fe1e3fba82ee444460f5ee3b7",
      "tree": "2503b877c18bf4ae72afd76b2c2da5fd548af167",
      "parents": [
        "ed37d7f619648bf1a3ac136e80d2d0d647734eb3"
      ],
      "author": {
        "name": "Samu Onkalo",
        "email": "samu.p.onkalo@nokia.com",
        "time": "Fri Oct 22 07:57:29 2010 -0400"
      },
      "committer": {
        "name": "Guenter Roeck",
        "email": "guenter.roeck@ericsson.com",
        "time": "Mon Oct 25 14:11:38 2010 -0700"
      },
      "message": "hwmon: lis3: New parameters to platform data\n\nAdded default output data rate setting to platform data.\nIf default rate is 0, reset default value is used.\nAdded control for duration via platform data.\nAdded possibility to configure interrupts to trig on\nboth rising and falling edge. The lis3 WU unit can be\nconfigured quite many ways and with some configurations it\nis quite handy to get coordinate refresh when some\nevent trigs and when it reason goes away.\n\nSigned-off-by: Samu Onkalo \u003csamu.p.onkalo@nokia.com\u003e\nAcked-by: Jonathan Cameron \u003cjic23@cam.ac.uk\u003e\nAcked-by: Eric Piel \u003ceric.piel@tremplin-utc.net\u003e\nSigned-off-by: Guenter Roeck \u003cguenter.roeck@ericsson.com\u003e\n"
    },
    {
      "commit": "ed37d7f619648bf1a3ac136e80d2d0d647734eb3",
      "tree": "5a52e613fca43ac8e9e8c60140591b29255f121f",
      "parents": [
        "2a7fade7e03a7c773f91e2e5ff26ad6fafda5a9f"
      ],
      "author": {
        "name": "Samu Onkalo",
        "email": "samu.p.onkalo@nokia.com",
        "time": "Fri Oct 22 07:57:28 2010 -0400"
      },
      "committer": {
        "name": "Guenter Roeck",
        "email": "guenter.roeck@ericsson.com",
        "time": "Mon Oct 25 14:11:38 2010 -0700"
      },
      "message": "hwmon: lis3: restore axis enabled bits\n\nAll axis enable bits are set to 0 at module remove.\nRestore reset default value at init.\n\nSigned-off-by: Samu Onkalo \u003csamu.p.onkalo@nokia.com\u003e\nAcked-by: Eric Piel \u003ceric.piel@tremplin-utc.net\u003e\nSigned-off-by: Guenter Roeck \u003cguenter.roeck@ericsson.com\u003e\n"
    }
  ],
  "next": "2a7fade7e03a7c773f91e2e5ff26ad6fafda5a9f"
}
