)]}'
{
  "log": [
    {
      "commit": "80cdc6dae76ea67d2b21bdca8df17ef47251eb8b",
      "tree": "b776fd2d32f4262526de9f4ed907c1b9406bce91",
      "parents": [
        "3e50594e8e72932ad4cfcb0b3cbdf58fc3bce416"
      ],
      "author": {
        "name": "Mandeep Singh Baines",
        "email": "msb@chromium.org",
        "time": "Tue Mar 22 16:33:54 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:10 2011 -0700"
      },
      "message": "fs: use appropriate printk priority levels\n\nprintk()s without a priority level default to KERN_WARNING.  To reduce\nnoise at KERN_WARNING, this patch set the priority level appriopriately\nfor unleveled printks()s.  This should be useful to folks that look at\ndmesg warnings closely.\n\nSigned-off-by: Mandeep Singh Baines \u003cmsb@chromium.org\u003e\nCc: Jens Axboe \u003caxboe@kernel.dk\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3e50594e8e72932ad4cfcb0b3cbdf58fc3bce416",
      "tree": "c33044290a9161e73ac5eded5d10a27c47bbfd5f",
      "parents": [
        "8a06dc4d52458e4a909b652ee9fe8f82d2cd87a2"
      ],
      "author": {
        "name": "FUJITA Tomonori",
        "email": "fujita.tomonori@lab.ntt.co.jp",
        "time": "Tue Mar 22 16:33:50 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:09 2011 -0700"
      },
      "message": "add the common dma_addr_t typedef to include/linux/types.h\n\nAll architectures can use the common dma_addr_t typedef now. We can\nremove the arch specific dma_addr_t.\n\nSigned-off-by: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nAcked-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nCc: Ivan Kokshaysky \u003cink@jurassic.park.msu.ru\u003e\nCc: Richard Henderson \u003crth@twiddle.net\u003e\nCc: Matt Turner \u003cmattst88@gmail.com\u003e\nCc: \"Luck, Tony\" \u003ctony.luck@intel.com\u003e\nCc: Ralf Baechle \u003cralf@linux-mips.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Chris Metcalf \u003ccmetcalf@tilera.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8a06dc4d52458e4a909b652ee9fe8f82d2cd87a2",
      "tree": "94cb701af633cc4ff7522a0f0eb559cd56afd537",
      "parents": [
        "13e165baf6ada9f427c319bd41a1c7a9c7b4f0a6"
      ],
      "author": {
        "name": "Richard Weinberger",
        "email": "richard@nod.at",
        "time": "Tue Mar 22 16:33:48 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:09 2011 -0700"
      },
      "message": "um: remove file pointer from ioctl\n\nCommit 6caa76b (\"tty: now phase out the ioctl file pointer for good\")\nremoved the ioctl file pointer.  User Mode Linux\u0027s line driver uses this\nioctl and needs a signature update too.\n\nSigned-off-by: Richard Weinberger \u003crichard@nod.at\u003e\nCc: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nCc: Greg KH \u003cgreg@kroah.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": "13e165baf6ada9f427c319bd41a1c7a9c7b4f0a6",
      "tree": "8ff1d630ca686f6f1ad6c2a5931f731a2d1140c7",
      "parents": [
        "3dd7ae8ec0ef399bfea347f297d2a95504d35571"
      ],
      "author": {
        "name": "Paul Pluzhnikov",
        "email": "ppluzhnikov@google.com",
        "time": "Tue Mar 22 16:33:46 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:09 2011 -0700"
      },
      "message": "uml: kernels on {i386,x86_64} produce bad coredumps\n\nOne of our users reported that when a user-level program SIGSEGVs under\nUML kernel, the resulting core dump is not very usable.\n\nI have reproduced that with the latest kernel:\n\n  make ARCH\u003dum defconfig; make ARCH\u003dum\n\nRun the resulting kernel, then \"inside\" run this program:\n\n#include \u003cpthread.h\u003e\n\nvoid *fn(void *p)\n{\n abort();\n}\n\nint main()\n{\n pthread_t tid;\n pthread_create(\u0026tid, 0, fn, 0);\n pthread_join(tid, 0);\n return 0;\n}\n\nAnalyze the coredump with GDB. Here is what you\u0027ll see:\n\nsudo gdb -q -ex \u0027set solib-absolute-prefix ../root_fs\u0027 -ex \u0027file ../root_fs/var/tmp/mt-abort\u0027 -ex \u0027core ../root_fs/var/tmp/core.762\u0027\nReading symbols from /usr/local/google/root_fs/var/tmp/mt-abort...done.\n[New Thread 763]\n[New Thread 762]\nCore was generated by `./mt-abort\u0027.\nProgram terminated with signal 6, Aborted.\n#0  0x0000000040255250 in raise () from ../root_fs/lib64/libc.so.6\n(gdb) info thread\n  2 Thread 762  0x0000000000000000 in ?? ()\n* 1 Thread 763  0x0000000040255250 in raise () from ../root_fs/lib64/libc.so.6\n\nNote that thread#2 looks funny.\n\n(gdb) thread 2\n[Switching to thread 2 (Thread 762)]#0  0x0000000000000000 in ?? ()\n(gdb) info reg\nrax            0x0      0\nrbx            0x0      0\nrcx            0x0      0\nrdx            0x0      0\nrsi            0x0      0\nrdi            0x0      0\nrbp            0x0      0x0\nrsp            0x0      0x0\nr8             0x0      0\nr9             0x0      0\nr10            0x0      0\nr11            0x0      0\nr12            0x0      0\nr13            0x0      0\nr14            0x0      0\nr15            0x0      0\nrip            0x0      0\neflags         0x0      [ ]\ncs             0x0      0\nss             0x0      0\nds             0x0      0\nes             0x0      0\nfs             0x0      0\ngs             0x0      0\n\nExamining the core shows that NT_PRSTATUS notes for all threads other than\nthe one that crashed are zeroed out.\n\nI believe this is happening because neither ELF_CORE_COPY_TASK_REGS nor\ntask_pt_regs are defined under ARCH\u003dum, and so elf_core_copy_task_regs()\nbecomes a no-op.\n\nAttached patch fixes this for SUBARCH\u003d{x86_64,i386}.\n\nSigned-off-by: Paul Pluzhnikov \u003cppluzhnikov@google.com\u003e\nCc: Jeff Dike \u003cjdike@addtoit.com\u003e\nAcked-by: WANG Cong \u003cxiyou.wangcong@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3dd7ae8ec0ef399bfea347f297d2a95504d35571",
      "tree": "6e049499c7502e55d45fbbf2ed83075ed2fbc481",
      "parents": [
        "bee4c36a5cf5c9f63ce1d7372aa62045fbd16d47"
      ],
      "author": {
        "name": "Shaohua Li",
        "email": "shaohua.li@intel.com",
        "time": "Tue Mar 22 16:33:45 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:09 2011 -0700"
      },
      "message": "mm: simplify code of swap.c\n\nClean up code and remove duplicate code. Next patch will use\npagevec_lru_move_fn introduced here too.\n\nSigned-off-by: Shaohua Li \u003cshaohua.li@intel.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Hiroyuki Kamezawa \u003ckamezawa.hiroyuki@gmail.com\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nReviewed-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bee4c36a5cf5c9f63ce1d7372aa62045fbd16d47",
      "tree": "d2c95aab9b12874d6675d529c3f8dd5cd2a35e10",
      "parents": [
        "8f7a66051b7523108c5aefb08c6a637e54aedc47"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hughd@google.com",
        "time": "Tue Mar 22 16:33:43 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:09 2011 -0700"
      },
      "message": "shmem: let shared anonymous be nonlinear again\n\nUp to 2.6.22, you could use remap_file_pages(2) on a tmpfs file or a\nshared mapping of /dev/zero or a shared anonymous mapping.  In 2.6.23 we\ndisabled it by default, but set VM_CAN_NONLINEAR to enable it on safe\nmappings.  We made sure to set it in shmem_mmap() for tmpfs files, but\nmissed it in shmem_zero_setup() for the others.  Fix that at last.\n\nReported-by: Kenny Simpson \u003ctheonetruekenny@yahoo.com\u003e\nSigned-off-by: Hugh Dickins \u003chughd@google.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": "8f7a66051b7523108c5aefb08c6a637e54aedc47",
      "tree": "212611c9ac7c4d9f0918e431043b3fc3f9fd43b6",
      "parents": [
        "84be48d84a53044e13aa8816aab201ab5480815d"
      ],
      "author": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Tue Mar 22 16:33:43 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:09 2011 -0700"
      },
      "message": "mm/memblock: properly handle overlaps and fix error path\n\nCurrently memblock_reserve() or memblock_free() don\u0027t handle overlaps of\nany kind.  There is some special casing for coalescing exactly adjacent\nregions but that\u0027s about it.\n\nThis is annoying because typically memblock_reserve() is used to mark\nregions passed by the firmware as reserved and we all know how much we can\ntrust our firmwares...\n\nAlso, with the current code, if we do something it doesn\u0027t handle right\nsuch as trying to memblock_reserve() a large range spanning multiple\nexisting smaller reserved regions for example, or doing overlapping\nreservations, it can silently corrupt the internal region array, causing\nodd errors much later on, such as allocations returning reserved regions\netc...\n\nThis patch rewrites the underlying functions that add or remove a region\nto the arrays.  The new code is a lot more robust as it fully handles\noverlapping regions.  It\u0027s also, imho, simpler than the previous\nimplementation.\n\nIn addition, while doing so, I found a bug where if we fail to double the\narray while adding a region, we would remove the last region of the array\nrather than the region we just allocated.  This fixes it too.\n\nSigned-off-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nAcked-by: Yinghai Lu \u003cyinghai@kernel.org\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "84be48d84a53044e13aa8816aab201ab5480815d",
      "tree": "5b4208fee6bb357112e764e5f778adc8529d1b1b",
      "parents": [
        "a42931bf9c02fbf3628a27a2a5c55d2b83e4ff20"
      ],
      "author": {
        "name": "Kirill A. Shutemov",
        "email": "kirill@shutemov.name",
        "time": "Tue Mar 22 16:33:41 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:09 2011 -0700"
      },
      "message": "mm/page_alloc.c: use list_move() instead of list_del()/list_add() combination\n\nSigned-off-by: Kirill A. Shutemov \u003ckirill@shutemov.name\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nReviewed-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": "a42931bf9c02fbf3628a27a2a5c55d2b83e4ff20",
      "tree": "be75612386f472db6d70e7ecc105ee2246a4810a",
      "parents": [
        "cf15b07cf448e19dcb31a19f0cbaf898b08ce975"
      ],
      "author": {
        "name": "Namhyung Kim",
        "email": "namhyung@gmail.com",
        "time": "Tue Mar 22 16:33:41 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:09 2011 -0700"
      },
      "message": "vmalloc: remove confusing comment on vwrite()\n\nKM_USER1 is never used for vwrite() path so the caller doesn\u0027t need to\nguarantee it is not used.  Only the caller should guarantee is KM_USER0\nand it is commented already.\n\nSigned-off-by: Namhyung Kim \u003cnamhyung@gmail.com\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "cf15b07cf448e19dcb31a19f0cbaf898b08ce975",
      "tree": "78c377875ae4ee60181a205b6f01c4b52c49e03d",
      "parents": [
        "24b8ff7c27d9e975540656e377de44a2a181a01f"
      ],
      "author": {
        "name": "Jun\u0027ichi Nomura",
        "email": "j-nomura@ce.jp.nec.com",
        "time": "Tue Mar 22 16:33:40 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:09 2011 -0700"
      },
      "message": "writeback: make mapping-\u003ewriteback_index to point to the last written page\n\nFor range-cyclic writeback (e.g.  kupdate), the writeback code sets a\ncontinuation point of the next writeback to mapping-\u003ewriteback_index which\nis set the page after the last written page.  This happens so that we\nevenly write the whole file even if pages in it get continuously\nredirtied.\n\nHowever, in some cases, sequential writer is writing in the middle of the\npage and it just redirties the last written page by continuing from that.\nFor example with an application which uses a file as a big ring buffer we\nsee:\n\n[1st writeback session]\n       ...\n       flush-8:0-2743  4571: block_bio_queue: 8,0 W 94898514 + 8\n       flush-8:0-2743  4571: block_bio_queue: 8,0 W 94898522 + 8\n       flush-8:0-2743  4571: block_bio_queue: 8,0 W 94898530 + 8\n       flush-8:0-2743  4571: block_bio_queue: 8,0 W 94898538 + 8\n       flush-8:0-2743  4571: block_bio_queue: 8,0 W 94898546 + 8\n     kworker/0:1-11    4571: block_rq_issue: 8,0 W 0 () 94898514 + 40\n\u003e\u003e     flush-8:0-2743  4571: block_bio_queue: 8,0 W 94898554 + 8\n\u003e\u003e     flush-8:0-2743  4571: block_rq_issue: 8,0 W 0 () 94898554 + 8\n\n[2nd writeback session after 35sec]\n       flush-8:0-2743  4606: block_bio_queue: 8,0 W 94898562 + 8\n       flush-8:0-2743  4606: block_bio_queue: 8,0 W 94898570 + 8\n       flush-8:0-2743  4606: block_bio_queue: 8,0 W 94898578 + 8\n       ...\n     kworker/0:1-11    4606: block_rq_issue: 8,0 W 0 () 94898562 + 640\n     kworker/0:1-11    4606: block_rq_issue: 8,0 W 0 () 94899202 + 72\n       ...\n       flush-8:0-2743  4606: block_bio_queue: 8,0 W 94899962 + 8\n       flush-8:0-2743  4606: block_bio_queue: 8,0 W 94899970 + 8\n       flush-8:0-2743  4606: block_bio_queue: 8,0 W 94899978 + 8\n       flush-8:0-2743  4606: block_bio_queue: 8,0 W 94899986 + 8\n       flush-8:0-2743  4606: block_bio_queue: 8,0 W 94899994 + 8\n     kworker/0:1-11    4606: block_rq_issue: 8,0 W 0 () 94899962 + 40\n\u003e\u003e     flush-8:0-2743  4606: block_bio_queue: 8,0 W 94898554 + 8\n\u003e\u003e     flush-8:0-2743  4606: block_rq_issue: 8,0 W 0 () 94898554 + 8\n\nSo we seeked back to 94898554 after we wrote all the pages at the end of\nthe file.\n\nThis extra seek seems unnecessary.  If we continue writeback from the last\nwritten page, we can avoid it and do not cause harm to other cases.  The\noriginal intent of even writeout over the whole file is preserved and if\nthe page does not get redirtied pagevec_lookup_tag() just skips it.\n\nAs an exceptional case, when I/O error happens, set done_index to the next\npage as the comment in the code suggests.\n\nTested-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nSigned-off-by: Jun\u0027ichi Nomura \u003cj-nomura@ce.jp.nec.com\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "24b8ff7c27d9e975540656e377de44a2a181a01f",
      "tree": "cab32a01878ce32b46f41b71317421e894f183ea",
      "parents": [
        "40531542e2832419566c997af0808513f6f2815d"
      ],
      "author": {
        "name": "Cesar Eduardo Barros",
        "email": "cesarb@cesarb.net",
        "time": "Tue Mar 22 16:33:38 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:09 2011 -0700"
      },
      "message": "mm: remove inline from scan_swap_map()\n\nscan_swap_map() is a large function (224 lines), with several loops and a\ncomplex control flow involving several gotos.\n\nGiven all that, it is a bit silly that it is marked as inline.  The\ncompiler agrees with me: on a x86-64 compile, it did not inline the\nfunction.\n\nRemove the \"inline\" and let the compiler decide instead.\n\nSigned-off-by: Cesar Eduardo Barros \u003ccesarb@cesarb.net\u003e\nReviewed-by: Pekka Enberg \u003cpenberg@kernel.org\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nReviewed-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "40531542e2832419566c997af0808513f6f2815d",
      "tree": "06e0bb32e53447f58a1821af1c4e960edbd97b0d",
      "parents": [
        "c6a2b64ba5d09a1e281e85988ffd650655fa0f39"
      ],
      "author": {
        "name": "Cesar Eduardo Barros",
        "email": "cesarb@cesarb.net",
        "time": "Tue Mar 22 16:33:37 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:08 2011 -0700"
      },
      "message": "sys_swapon: separate final enabling of the swapfile\n\nThe block in sys_swapon which does the final adjustments to the\nswap_info_struct and to swap_list is the same as the block which\nre-inserts it again at sys_swapoff on failure of try_to_unuse(). Move\nthis code to a separate function, and use it both in sys_swapon and\nsys_swapoff.\n\nSigned-off-by: Cesar Eduardo Barros \u003ccesarb@cesarb.net\u003e\nTested-by: Eric B Munson \u003cemunson@mgebm.net\u003e\nAcked-by: Eric B Munson \u003cemunson@mgebm.net\u003e\nReviewed-by: Pekka Enberg \u003cpenberg@kernel.org\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c6a2b64ba5d09a1e281e85988ffd650655fa0f39",
      "tree": "5d3787b45e2e4ad7377c47cd601a1fcb1fec0bde",
      "parents": [
        "c69dbfb84e88503468b6c481aecdb48d76ad5bc6"
      ],
      "author": {
        "name": "Cesar Eduardo Barros",
        "email": "cesarb@cesarb.net",
        "time": "Tue Mar 22 16:33:36 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:08 2011 -0700"
      },
      "message": "sys_swapoff: change order to match sys_swapon\n\nThe block in sys_swapon which does the final adjustments to the\nswap_info_struct and to swap_list is the same as the block which\nre-inserts it again at sys_swapoff on failure of try_to_unuse(), except\nfor the order of the operations within the lock. Since the order should\nnot matter, arbitrarily change sys_swapoff to match sys_swapon, in\npreparation to making both share the same code.\n\nSigned-off-by: Cesar Eduardo Barros \u003ccesarb@cesarb.net\u003e\nTested-by: Eric B Munson \u003cemunson@mgebm.net\u003e\nAcked-by: Eric B Munson \u003cemunson@mgebm.net\u003e\nReviewed-by: Pekka Enberg \u003cpenberg@kernel.org\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c69dbfb84e88503468b6c481aecdb48d76ad5bc6",
      "tree": "ade74b75b80a0481ae6309c9cb0bc7298db13ad7",
      "parents": [
        "9c8100ef26ba9012b8677a383179a0cf169fc7f3"
      ],
      "author": {
        "name": "Cesar Eduardo Barros",
        "email": "cesarb@cesarb.net",
        "time": "Tue Mar 22 16:33:35 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:08 2011 -0700"
      },
      "message": "sys_swapon: move printk outside lock\n\nThe block in sys_swapon which does the final adjustments to the\nswap_info_struct and to swap_list is the same as the block which\nre-inserts it again at sys_swapoff on failure of try_to_unuse(). To be\nable to make both share the same code, move the printk() call in the\nmiddle of it to just after it.\n\nSigned-off-by: Cesar Eduardo Barros \u003ccesarb@cesarb.net\u003e\nTested-by: Eric B Munson \u003cemunson@mgebm.net\u003e\nAcked-by: Eric B Munson \u003cemunson@mgebm.net\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9c8100ef26ba9012b8677a383179a0cf169fc7f3",
      "tree": "6ff570c8373dbb90b47345b2adc0b0c9c9b11001",
      "parents": [
        "bdb8e3f68320f897de3f3a4c363fe2802037f21d"
      ],
      "author": {
        "name": "Cesar Eduardo Barros",
        "email": "cesarb@cesarb.net",
        "time": "Tue Mar 22 16:33:34 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:08 2011 -0700"
      },
      "message": "sys_swapon: remove nr_good_pages variable\n\nIt still exists within setup_swap_map_and_extents(), but after it\nnr_good_pages \u003d\u003d p-\u003epages.\n\nSigned-off-by: Cesar Eduardo Barros \u003ccesarb@cesarb.net\u003e\nTested-by: Eric B Munson \u003cemunson@mgebm.net\u003e\nAcked-by: Eric B Munson \u003cemunson@mgebm.net\u003e\nReviewed-by: Pekka Enberg \u003cpenberg@kernel.org\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bdb8e3f68320f897de3f3a4c363fe2802037f21d",
      "tree": "0eeb4907e05daa418ec8e98c2492b4177ab67e3c",
      "parents": [
        "915d4d7bc0d719f2f0907273c01967d38751c625"
      ],
      "author": {
        "name": "Cesar Eduardo Barros",
        "email": "cesarb@cesarb.net",
        "time": "Tue Mar 22 16:33:33 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:08 2011 -0700"
      },
      "message": "sys_swapon: simplify error flow in setup_swap_map_and_extents()\n\nSince there is no cleanup to do, there is no reason to jump to a label.\nReturn directly instead.\n\nSigned-off-by: Cesar Eduardo Barros \u003ccesarb@cesarb.net\u003e\nTested-by: Eric B Munson \u003cemunson@mgebm.net\u003e\nAcked-by: Eric B Munson \u003cemunson@mgebm.net\u003e\nReviewed-by: Pekka Enberg \u003cpenberg@kernel.org\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "915d4d7bc0d719f2f0907273c01967d38751c625",
      "tree": "deeab9a10407fa37dedb24d1adc5a83626f740f6",
      "parents": [
        "1421ef3cd15b87ef949e965efeb1e527479d3f75"
      ],
      "author": {
        "name": "Cesar Eduardo Barros",
        "email": "cesarb@cesarb.net",
        "time": "Tue Mar 22 16:33:32 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:08 2011 -0700"
      },
      "message": "sys_swapon: separate parsing of bad blocks and extents\n\nMove the code which parses the bad block list and the extents to a\nseparate function. Only code movement, no functional changes.\n\nThis change uses the fact that, after the success path, nr_good_pages \u003d\u003d\np-\u003epages.\n\nSigned-off-by: Cesar Eduardo Barros \u003ccesarb@cesarb.net\u003e\nTested-by: Eric B Munson \u003cemunson@mgebm.net\u003e\nAcked-by: Eric B Munson \u003cemunson@mgebm.net\u003e\nReviewed-by: Pekka Enberg \u003cpenberg@kernel.org\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1421ef3cd15b87ef949e965efeb1e527479d3f75",
      "tree": "8bcc6d1047905b205a7061c00bda40197fad2328",
      "parents": [
        "38719025384cf7121331bd6d41c062d3c5f7bb91"
      ],
      "author": {
        "name": "Cesar Eduardo Barros",
        "email": "cesarb@cesarb.net",
        "time": "Tue Mar 22 16:33:31 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:08 2011 -0700"
      },
      "message": "sys_swapon: call swap_cgroup_swapon() earlier\n\nThe call to swap_cgroup_swapon is in the middle of loading the swap map\nand extents. As it only does memory allocation and does not depend on\nthe swapfile layout (map/extents), it can be called earlier (or later).\n\nMove it to just after the allocation of swap_map, since it is\nconceptually similar (allocates a map).\n\nSigned-off-by: Cesar Eduardo Barros \u003ccesarb@cesarb.net\u003e\nTested-by: Eric B Munson \u003cemunson@mgebm.net\u003e\nAcked-by: Eric B Munson \u003cemunson@mgebm.net\u003e\nReviewed-by: Pekka Enberg \u003cpenberg@kernel.org\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "38719025384cf7121331bd6d41c062d3c5f7bb91",
      "tree": "8848283db6cd61b426491f17de38d9bc15697514",
      "parents": [
        "ca8bd38bf6f05481c4155fc444178151884f65d0"
      ],
      "author": {
        "name": "Cesar Eduardo Barros",
        "email": "cesarb@cesarb.net",
        "time": "Tue Mar 22 16:33:30 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:08 2011 -0700"
      },
      "message": "sys_swapon: simplify error flow in read_swap_header()\n\nSince there is no cleanup to do, there is no reason to jump to a label.\nReturn directly instead.\n\nSigned-off-by: Cesar Eduardo Barros \u003ccesarb@cesarb.net\u003e\nTested-by: Eric B Munson \u003cemunson@mgebm.net\u003e\nAcked-by: Eric B Munson \u003cemunson@mgebm.net\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ca8bd38bf6f05481c4155fc444178151884f65d0",
      "tree": "efb917f23834153878a8f9f4c5f784e9cb900f66",
      "parents": [
        "5de771e41f0fc2243c39585357b73f0ff757b280"
      ],
      "author": {
        "name": "Cesar Eduardo Barros",
        "email": "cesarb@cesarb.net",
        "time": "Tue Mar 22 16:33:29 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:07 2011 -0700"
      },
      "message": "sys_swapon: separate parsing of swapfile header\n\nMove the code which parses and checks the swapfile header (except for\nthe bad block list) to a separate function. Only code movement, no\nfunctional changes.\n\nSigned-off-by: Cesar Eduardo Barros \u003ccesarb@cesarb.net\u003e\nTested-by: Eric B Munson \u003cemunson@mgebm.net\u003e\nAcked-by: Eric B Munson \u003cemunson@mgebm.net\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5de771e41f0fc2243c39585357b73f0ff757b280",
      "tree": "a807bb46f4334b6697c0dba7dc80075e8dccae5f",
      "parents": [
        "87ade72a799a9a895b4a60918c32b43d3dfc3324"
      ],
      "author": {
        "name": "Cesar Eduardo Barros",
        "email": "cesarb@cesarb.net",
        "time": "Tue Mar 22 16:33:28 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:07 2011 -0700"
      },
      "message": "sys_swapon: move setting of swapfilepages near use\n\nThere is no reason I can see to read inode-\u003ei_size long before it is\nneeded. Move its read to just before it is needed, to reduce the\nvariable lifetime.\n\nSigned-off-by: Cesar Eduardo Barros \u003ccesarb@cesarb.net\u003e\nTested-by: Eric B Munson \u003cemunson@mgebm.net\u003e\nAcked-by: Eric B Munson \u003cemunson@mgebm.net\u003e\nReviewed-by: Jesper Juhl \u003cjj@chaosbits.net\u003e\nReviewed-by: Pekka Enberg \u003cpenberg@kernel.org\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "87ade72a799a9a895b4a60918c32b43d3dfc3324",
      "tree": "3110f7526fc3581962232b39567fee2fb95c44aa",
      "parents": [
        "4d0e1e10752ca487d83d1ab2a1d4ae6d664e1cc0"
      ],
      "author": {
        "name": "Cesar Eduardo Barros",
        "email": "cesarb@cesarb.net",
        "time": "Tue Mar 22 16:33:27 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:07 2011 -0700"
      },
      "message": "sys_swapon: simplify error flow in claim_swapfile()\n\nSince there is no cleanup to do, there is no reason to jump to a label.\nReturn directly instead.\n\nSigned-off-by: Cesar Eduardo Barros \u003ccesarb@cesarb.net\u003e\nTested-by: Eric B Munson \u003cemunson@mgebm.net\u003e\nAcked-by: Eric B Munson \u003cemunson@mgebm.net\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4d0e1e10752ca487d83d1ab2a1d4ae6d664e1cc0",
      "tree": "57f0c09fd4e61a02e4ad5cd86b1dbda7029b2806",
      "parents": [
        "bd69010b042a60ca41a890df1b10019e94746c2f"
      ],
      "author": {
        "name": "Cesar Eduardo Barros",
        "email": "cesarb@cesarb.net",
        "time": "Tue Mar 22 16:33:26 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:07 2011 -0700"
      },
      "message": "sys_swapon: separate bdev claim and inode lock\n\nMove the code which claims the bdev (S_ISBLK) or locks the inode\n(S_ISREG) to a separate function. Only code movement, no functional\nchanges.\n\nSigned-off-by: Cesar Eduardo Barros \u003ccesarb@cesarb.net\u003e\nTested-by: Eric B Munson \u003cemunson@mgebm.net\u003e\nAcked-by: Eric B Munson \u003cemunson@mgebm.net\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bd69010b042a60ca41a890df1b10019e94746c2f",
      "tree": "4064703903170911b09919f89b74a5bbe0d5ebfe",
      "parents": [
        "9b01c350af4fb00fe2ab66ff9bf16058c50b69bd"
      ],
      "author": {
        "name": "Cesar Eduardo Barros",
        "email": "cesarb@cesarb.net",
        "time": "Tue Mar 22 16:33:25 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:07 2011 -0700"
      },
      "message": "sys_swapon: use a single error label\n\nsys_swapon currently has two error labels, bad_swap and bad_swap_2.\nbad_swap does the same as bad_swap_2 plus destroy_swap_extents() and\nswap_cgroup_swapoff(); both are noops in the places where bad_swap_2 is\njumped to. With a single extra test for inode (matching the one in the\nS_ISREG case below), all the error paths in the function can go to\nbad_swap.\n\nSigned-off-by: Cesar Eduardo Barros \u003ccesarb@cesarb.net\u003e\nTested-by: Eric B Munson \u003cemunson@mgebm.net\u003e\nAcked-by: Eric B Munson \u003cemunson@mgebm.net\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9b01c350af4fb00fe2ab66ff9bf16058c50b69bd",
      "tree": "246a4e93384acaca2ae91826448bfed5da08cb07",
      "parents": [
        "f2090d2df51d7cdb2f952dcfdcd8baaac0aec444"
      ],
      "author": {
        "name": "Cesar Eduardo Barros",
        "email": "cesarb@cesarb.net",
        "time": "Tue Mar 22 16:33:24 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:07 2011 -0700"
      },
      "message": "sys_swapon: do only cleanup in the cleanup blocks\n\nThe only way error is 0 in the cleanup blocks is when the function is\nreturning successfully. In this case, the cleanup blocks were setting\nS_SWAPFILE in the S_ISREG case. But this is not a cleanup.\n\nMove the setting of S_SWAPFILE to just before the \"goto out;\" to make\nthis more clear. At this point, we do not need to test for inode because\nit will never be NULL.\n\nSigned-off-by: Cesar Eduardo Barros \u003ccesarb@cesarb.net\u003e\nTested-by: Eric B Munson \u003cemunson@mgebm.net\u003e\nAcked-by: Eric B Munson \u003cemunson@mgebm.net\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f2090d2df51d7cdb2f952dcfdcd8baaac0aec444",
      "tree": "474daba281f890d44ee22b23137d99cb5021f381",
      "parents": [
        "7de7fb6b3422e6d1dac00666a992834085e745dc"
      ],
      "author": {
        "name": "Cesar Eduardo Barros",
        "email": "cesarb@cesarb.net",
        "time": "Tue Mar 22 16:33:23 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:07 2011 -0700"
      },
      "message": "sys_swapon: remove bdev variable\n\nThe bdev variable is always equivalent to (S_ISBLK(inode-\u003ei_mode) ?\np-\u003ebdev : NULL), as long as it being set is moved to a bit earlier. Use\nthis fact to remove the bdev variable.\n\nSigned-off-by: Cesar Eduardo Barros \u003ccesarb@cesarb.net\u003e\nTested-by: Eric B Munson \u003cemunson@mgebm.net\u003e\nAcked-by: Eric B Munson \u003cemunson@mgebm.net\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7de7fb6b3422e6d1dac00666a992834085e745dc",
      "tree": "4dd93f9871c1ff05212652a1e4709414a4881f1d",
      "parents": [
        "83ef99befc324803a54cf2a5fab5a322df3a99d6"
      ],
      "author": {
        "name": "Cesar Eduardo Barros",
        "email": "cesarb@cesarb.net",
        "time": "Tue Mar 22 16:33:22 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:07 2011 -0700"
      },
      "message": "sys_swapon: move setting of error nearer use\n\nMove the setting of the error variable nearer the goto in a few places.\n\nAvoids calling PTR_ERR() if not IS_ERR() in two places, and makes the\nerror condition more explicit in two other places.\n\nSigned-off-by: Cesar Eduardo Barros \u003ccesarb@cesarb.net\u003e\nTested-by: Eric B Munson \u003cemunson@mgebm.net\u003e\nAcked-by: Eric B Munson \u003cemunson@mgebm.net\u003e\nReviewed-by: Jesper Juhl \u003cjj@chaosbits.net\u003e\nReviewed-by: Pekka Enberg \u003cpenberg@kernel.org\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "83ef99befc324803a54cf2a5fab5a322df3a99d6",
      "tree": "d56035f4683a387ac8bf0d37b21b15f7d04de672",
      "parents": [
        "28b36bd741bd44db30e12b1048a659aa346e9b76"
      ],
      "author": {
        "name": "Cesar Eduardo Barros",
        "email": "cesarb@cesarb.net",
        "time": "Tue Mar 22 16:33:21 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:07 2011 -0700"
      },
      "message": "sys_swapon: remove did_down variable\n\nSince mutex_lock(\u0026inode-\u003ei_mutex) is called just after setting inode,\ndid_down is always equivalent to (inode \u0026\u0026 S_ISREG(inode-\u003ei_mode)).\n\nUse this fact to remove the did_down variable.\n\nSigned-off-by: Cesar Eduardo Barros \u003ccesarb@cesarb.net\u003e\nTested-by: Eric B Munson \u003cemunson@mgebm.net\u003e\nAcked-by: Eric B Munson \u003cemunson@mgebm.net\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "28b36bd741bd44db30e12b1048a659aa346e9b76",
      "tree": "7843ec3dd5f4db132c4808b08daf98d795074dea",
      "parents": [
        "730c0581c82dbc5be2f41a2d85bde6bad11bc8a4"
      ],
      "author": {
        "name": "Cesar Eduardo Barros",
        "email": "cesarb@cesarb.net",
        "time": "Tue Mar 22 16:33:20 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:07 2011 -0700"
      },
      "message": "sys_swapon: remove initial value of name variable\n\nNow there is nothing which jumps to the cleanup blocks before the name\nvariable is set. There is no need to set it initially to NULL anymore.\n\nSigned-off-by: Cesar Eduardo Barros \u003ccesarb@cesarb.net\u003e\nTested-by: Eric B Munson \u003cemunson@mgebm.net\u003e\nAcked-by: Eric B Munson \u003cemunson@mgebm.net\u003e\nReviewed-by: Pekka Enberg \u003cpenberg@kernel.org\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "730c0581c82dbc5be2f41a2d85bde6bad11bc8a4",
      "tree": "de06f9f0e12ec8fe963a0bca3835ef0a72dd9191",
      "parents": [
        "2542e5134d2c19a9e6a4e641ef78cac6bccebd9b"
      ],
      "author": {
        "name": "Cesar Eduardo Barros",
        "email": "cesarb@cesarb.net",
        "time": "Tue Mar 22 16:33:19 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:06 2011 -0700"
      },
      "message": "sys_swapon: simplify error flow in alloc_swap_info()\n\nSince there is no cleanup to do, there is no reason to jump to a label.\nReturn directly instead.\n\nSigned-off-by: Cesar Eduardo Barros \u003ccesarb@cesarb.net\u003e\nTested-by: Eric B Munson \u003cemunson@mgebm.net\u003e\nAcked-by: Eric B Munson \u003cemunson@mgebm.net\u003e\nReviewed-by: Pekka Enberg \u003cpenberg@kernel.org\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2542e5134d2c19a9e6a4e641ef78cac6bccebd9b",
      "tree": "bcab086064e082d2b2275766327bb5518b81318f",
      "parents": [
        "53cbb2435f161f2a8b36af8f6d2c46dc59d0d757"
      ],
      "author": {
        "name": "Cesar Eduardo Barros",
        "email": "cesarb@cesarb.net",
        "time": "Tue Mar 22 16:33:18 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:06 2011 -0700"
      },
      "message": "sys_swapon: simplify error return from swap_info allocation\n\nAt this point in sys_swapon, there is nothing to free. Return directly\ninstead of jumping to the cleanup block at the end of the function.\n\nSigned-off-by: Cesar Eduardo Barros \u003ccesarb@cesarb.net\u003e\nTested-by: Eric B Munson \u003cemunson@mgebm.net\u003e\nAcked-by: Eric B Munson \u003cemunson@mgebm.net\u003e\nReviewed-by: Pekka Enberg \u003cpenberg@kernel.org\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "53cbb2435f161f2a8b36af8f6d2c46dc59d0d757",
      "tree": "e32652c07e3a65bbe29d04df8daf3cc753945c51",
      "parents": [
        "e8e6c2ec403ecfaa226857d8204344c98fe12b7b"
      ],
      "author": {
        "name": "Cesar Eduardo Barros",
        "email": "cesarb@cesarb.net",
        "time": "Tue Mar 22 16:33:17 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:06 2011 -0700"
      },
      "message": "sys_swapon: separate swap_info allocation\n\nMove the swap_info allocation to its own function. Only code movement,\nno functional changes.\n\nSigned-off-by: Cesar Eduardo Barros \u003ccesarb@cesarb.net\u003e\nTested-by: Eric B Munson \u003cemunson@mgebm.net\u003e\nAcked-by: Eric B Munson \u003cemunson@mgebm.net\u003e\nReviewed-by: Pekka Enberg \u003cpenberg@kernel.org\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e8e6c2ec403ecfaa226857d8204344c98fe12b7b",
      "tree": "93a3cdaf385c72ba1f98add399b34ba65608efff",
      "parents": [
        "80b0df12b808bf8e8391afae1b43f5e529f76d89"
      ],
      "author": {
        "name": "Cesar Eduardo Barros",
        "email": "cesarb@cesarb.net",
        "time": "Tue Mar 22 16:33:16 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:06 2011 -0700"
      },
      "message": "sys_swapon: do not depend on \"type\" after allocation\n\nWithin sys_swapon, after the swap_info entry has been allocated, we\nalways have type \u003d\u003d p-\u003etype and swap_info[type] \u003d\u003d p. Use this fact to\nreduce the dependency on the \"type\" local variable within the function,\nas a preparation to move the allocation of the swap_info entry to a\nseparate function.\n\nSigned-off-by: Cesar Eduardo Barros \u003ccesarb@cesarb.net\u003e\nTested-by: Eric B Munson \u003cemunson@mgebm.net\u003e\nAcked-by: Eric B Munson \u003cemunson@mgebm.net\u003e\nReviewed-by: Pekka Enberg \u003cpenberg@kernel.org\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujisu.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "80b0df12b808bf8e8391afae1b43f5e529f76d89",
      "tree": "1d71923d9e693f3dfb9dbc28b3ddcec80e6b2eff",
      "parents": [
        "803d0c8351b47b72b8b018457a33b342557b90a2"
      ],
      "author": {
        "name": "Cesar Eduardo Barros",
        "email": "cesarb@cesarb.net",
        "time": "Tue Mar 22 16:33:15 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:05 2011 -0700"
      },
      "message": "sys_swapon: remove changelog from function comment\n\nChangelogs belong in the git history instead of in the source code.\n\nAlso, \"The swapon system call\" is redundant with\n\"SYSCALL_DEFINE2(swapon, ...)\".\n\nSigned-off-by: Cesar Eduardo Barros \u003ccesarb@cesarb.net\u003e\nTested-by: Eric B Munson \u003cemunson@mgebm.net\u003e\nAcked-by: Eric B Munson \u003cemunson@mgebm.net\u003e\nReviewed-by: Pekka Enberg \u003cpenberg@kernel.org\u003e\nReviewed-by: Jesper Juhl \u003cjj@chaosbits.net\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\n[ Gaah. That\u0027s a _historical_ comment. But the patch-series depends on removal ]\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "803d0c8351b47b72b8b018457a33b342557b90a2",
      "tree": "feb660ed5b7b6fd3dfba9ec3e6f121c777ba6252",
      "parents": [
        "cc5d462f7777c06c5cf0b55d736be325cda747b3"
      ],
      "author": {
        "name": "Cesar Eduardo Barros",
        "email": "cesarb@cesarb.net",
        "time": "Tue Mar 22 16:33:14 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:05 2011 -0700"
      },
      "message": "sys_swapon: use vzalloc() instead of vmalloc/memset\n\nThis patch series refactors the sys_swapon function.\n\nsys_swapon is currently a very large function, with 313 lines (more than\n12 25-line screens), which can make it a bit hard to read. This patch\nseries reduces this size by half, by extracting large chunks of related\ncode to new helper functions.\n\nOne of these chunks of code was nearly identical to the part of\nsys_swapoff which is used in case of a failure return from\ntry_to_unuse(), so this patch series also makes both share the same\ncode.\n\nAs a side effect of all this refactoring, the compiled code gets a bit\nsmaller (from v1 of this patch series):\n\n   text       data        bss        dec        hex    filename\n  14012        944        276      15232       3b80    mm/swapfile.o.before\n  13941        944        276      15161       3b39    mm/swapfile.o.after\n\nThis patch:\n\nUse vzalloc() instead of vmalloc/memset.\n\nSigned-off-by: Cesar Eduardo Barros \u003ccesarb@cesarb.net\u003e\nTested-by: Eric B Munson \u003cemunson@mgebm.net\u003e\nAcked-by: Eric B Munson \u003cemunson@mgebm.net\u003e\nReviewed-by: Pekka Enberg \u003cpenberg@kernel.org\u003e\nReviewed-by: Jesper Juhl \u003cjj@chaosbits.net\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "cc5d462f7777c06c5cf0b55d736be325cda747b3",
      "tree": "3b0fc1539e85c0357ab0ae8a718b69b39377ede5",
      "parents": [
        "78afd5612deb8268bafc8b6507d72341d5ed9aac"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "ak@linux.intel.com",
        "time": "Tue Mar 22 16:33:13 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:05 2011 -0700"
      },
      "message": "mm: use __GFP_OTHER_NODE for transparent huge pages\n\nPass __GFP_OTHER_NODE for transparent hugepages NUMA allocations done by the\nhugepages daemon.  This way the low level accounting for local versus\nremote pages works correctly.\n\nContains improvements from Andrea Arcangeli\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@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": "78afd5612deb8268bafc8b6507d72341d5ed9aac",
      "tree": "b96131d6f237b9ce6848d95c8eccdd1f7855365c",
      "parents": [
        "11bc82d67d1150767901bca54a24466621d763d7"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "ak@linux.intel.com",
        "time": "Tue Mar 22 16:33:12 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:05 2011 -0700"
      },
      "message": "mm: add __GFP_OTHER_NODE flag\n\nAdd a new __GFP_OTHER_NODE flag to tell the low level numa statistics in\nzone_statistics() that an allocation is on behalf of another thread.  This\nway the local and remote counters can be still correct, even when\nbackground daemons like khugepaged are changing memory mappings.\n\nThis only affects the accounting, but I think it\u0027s worth doing that right\nto avoid confusing users.\n\nI first tried to just pass down the right node, but this required a lot of\nchanges to pass down this parameter and at least one addition of a 10th\nargument to a 9 argument function.  Using the flag is a lot less\nintrusive.\n\nOpen: should be also used for migration?\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@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": "11bc82d67d1150767901bca54a24466621d763d7",
      "tree": "119442c599a82b35c553c6f54626c870e885ee50",
      "parents": [
        "b2eef8c0d09101bbbff2531c097543aedde0b525"
      ],
      "author": {
        "name": "Andrea Arcangeli",
        "email": "aarcange@redhat.com",
        "time": "Tue Mar 22 16:33:11 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:05 2011 -0700"
      },
      "message": "mm: compaction: Use async migration for __GFP_NO_KSWAPD and enforce no writeback\n\n__GFP_NO_KSWAPD allocations are usually very expensive and not mandatory\nto succeed as they have graceful fallback.  Waiting for I/O in those,\ntends to be overkill in terms of latencies, so we can reduce their latency\nby disabling sync migrate.\n\nUnfortunately, even with async migration it\u0027s still possible for the\nprocess to be blocked waiting for a request slot (e.g.  get_request_wait\nin the block layer) when -\u003ewritepage is called.  To prevent\n__GFP_NO_KSWAPD blocking, this patch prevents -\u003ewritepage being called on\ndirty page cache for asynchronous migration.\n\nAddresses https://bugzilla.kernel.org/show_bug.cgi?id\u003d31142\n\n[mel@csn.ul.ie: Avoid writebacks for NFS, retry locked pages, use bool]\nSigned-off-by: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Arthur Marsh \u003carthur.marsh@internode.on.net\u003e\nCc: Clemens Ladisch \u003ccladisch@googlemail.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nReported-by: Alex Villacis Lasso \u003cavillaci@ceibo.fiec.espol.edu.ec\u003e\nTested-by: Alex Villacis Lasso \u003cavillaci@ceibo.fiec.espol.edu.ec\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b2eef8c0d09101bbbff2531c097543aedde0b525",
      "tree": "ba0cbc88a8f66dc53c915509d90b3c4eeae8e7f1",
      "parents": [
        "602605a42ea4c299aeed4d806c49fb9dd18cd204"
      ],
      "author": {
        "name": "Andrea Arcangeli",
        "email": "aarcange@redhat.com",
        "time": "Tue Mar 22 16:33:10 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:05 2011 -0700"
      },
      "message": "mm: compaction: minimise the time IRQs are disabled while isolating pages for migration\n\ncompaction_alloc() isolates pages for migration in isolate_migratepages.\nWhile it\u0027s scanning, IRQs are disabled on the mistaken assumption the\nscanning should be short.  Tests show this to be true for the most part\nbut contention times on the LRU lock can be increased.  Before this patch,\nthe IRQ disabled times for a simple test looked like\n\n  Total sampled time IRQs off (not real total time): 5493\n  Event shrink_inactive_list..shrink_zone                  1596 us count 1\n  Event shrink_inactive_list..shrink_zone                  1530 us count 1\n  Event shrink_inactive_list..shrink_zone                   956 us count 1\n  Event shrink_inactive_list..shrink_zone                   541 us count 1\n  Event shrink_inactive_list..shrink_zone                   531 us count 1\n  Event split_huge_page..add_to_swap                        232 us count 1\n  Event save_args..call_softirq                              36 us count 1\n  Event save_args..call_softirq                              35 us count 2\n  Event __wake_up..__wake_up                                  1 us count 1\n\nThis patch reduces the worst-case IRQs-disabled latencies by releasing the\nlock every SWAP_CLUSTER_MAX pages that are scanned and releasing the CPU if\nnecessary. The cost of this is that the processing performing compaction will\nbe slower but IRQs being disabled for too long a time has worse consequences\nas the following report shows;\n\n  Total sampled time IRQs off (not real total time): 4367\n  Event shrink_inactive_list..shrink_zone                   881 us count 1\n  Event shrink_inactive_list..shrink_zone                   875 us count 1\n  Event shrink_inactive_list..shrink_zone                   868 us count 1\n  Event shrink_inactive_list..shrink_zone                   555 us count 1\n  Event split_huge_page..add_to_swap                        495 us count 1\n  Event compact_zone..compact_zone_order                    269 us count 1\n  Event split_huge_page..add_to_swap                        266 us count 1\n  Event shrink_inactive_list..shrink_zone                    85 us count 1\n  Event save_args..call_softirq                              36 us count 2\n  Event __wake_up..__wake_up                                  1 us count 1\n\n[akpm@linux-foundation.org: simplify with s/unlocked/locked/]\nSigned-off-by: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Arthur Marsh \u003carthur.marsh@internode.on.net\u003e\nCc: Clemens Ladisch \u003ccladisch@googlemail.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.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": "602605a42ea4c299aeed4d806c49fb9dd18cd204",
      "tree": "55e98c0f8d1418248ec06b9f059d2713422e596a",
      "parents": [
        "5b280c0cc70062967bb9d630b216375b18db3a0b"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mel@csn.ul.ie",
        "time": "Tue Mar 22 16:33:08 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:05 2011 -0700"
      },
      "message": "mm: compaction: minimise the time IRQs are disabled while isolating free pages\n\ncompaction_alloc() isolates free pages to be used as migration targets.\nWhile its scanning, IRQs are disabled on the mistaken assumption the\nscanning should be short.  Analysis showed that IRQs were in fact being\ndisabled for substantial time.  A simple test was run using large\nanonymous mappings with transparent hugepage support enabled to trigger\nfrequent compactions.  A monitor sampled what the worst IRQ-off latencies\nwere and a post-processing tool found the following;\n\n  Total sampled time IRQs off (not real total time): 22355\n  Event compaction_alloc..compaction_alloc                 8409 us count 1\n  Event compaction_alloc..compaction_alloc                 7341 us count 1\n  Event compaction_alloc..compaction_alloc                 2463 us count 1\n  Event compaction_alloc..compaction_alloc                 2054 us count 1\n  Event shrink_inactive_list..shrink_zone                  1864 us count 1\n  Event shrink_inactive_list..shrink_zone                    88 us count 1\n  Event save_args..call_softirq                              36 us count 1\n  Event save_args..call_softirq                              35 us count 2\n  Event __make_request..__blk_run_queue                      24 us count 1\n  Event __alloc_pages_nodemask..__alloc_pages_nodemask        6 us count 1\n\ni.e.  compaction is disabled IRQs for a prolonged period of time - 8ms in\none instance.  The full report generated by the tool can be found at\n\n http://www.csn.ul.ie/~mel/postings/minfree-20110225/irqsoff-vanilla-micro.report\n\nThis patch reduces the time IRQs are disabled by simply disabling IRQs at\nthe last possible minute.  An updated IRQs-off summary report then looks\nlike;\n\n  Total sampled time IRQs off (not real total time): 5493\n  Event shrink_inactive_list..shrink_zone                  1596 us count 1\n  Event shrink_inactive_list..shrink_zone                  1530 us count 1\n  Event shrink_inactive_list..shrink_zone                   956 us count 1\n  Event shrink_inactive_list..shrink_zone                   541 us count 1\n  Event shrink_inactive_list..shrink_zone                   531 us count 1\n  Event split_huge_page..add_to_swap                        232 us count 1\n  Event save_args..call_softirq                              36 us count 1\n  Event save_args..call_softirq                              35 us count 2\n  Event __wake_up..__wake_up                                  1 us count 1\n\nA full report is again available at\n\n  http://www.csn.ul.ie/~mel/postings/minfree-20110225/irqsoff-minimiseirq-free-v1r4-micro.report\n\nAs should be obvious, IRQ disabled latencies due to compaction are\nalmost elimimnated for this particular test.\n\n[aarcange@redhat.com: Fix initialisation of isolated]\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nAcked-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujisu.com\u003e\nReviewed-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nAcked-by: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Arthur Marsh \u003carthur.marsh@internode.on.net\u003e\nCc: Clemens Ladisch \u003ccladisch@googlemail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5b280c0cc70062967bb9d630b216375b18db3a0b",
      "tree": "6242d234d08fdd433b99c425e25f6562cd51cd0f",
      "parents": [
        "9d8aa4ea855e0d64bb6926acb5618e6d1e2ed344"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hughd@google.com",
        "time": "Tue Mar 22 16:33:07 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:04 2011 -0700"
      },
      "message": "mm: don\u0027t return 0 too early from find_get_pages()\n\nCallers of find_get_pages(), or its wrapper pagevec_lookup() - notably\ntruncate_inode_pages_range() - stop looking further when it returns 0.\n\nBut if an interrupt comes just after its radix_tree_gang_lookup_slot(),\nespecially if we have preemptible RCU enabled, isn\u0027t it conceivable that\nall 14 pages returned could be removed from the page cache by\nshrink_page_list(), before find_get_pages() gets to process them?  So\ncausing it to return 0 although there may be plenty more pages beyond.\n\nMake find_get_pages() and find_get_pages_tag() check for this unlikely\ncase, and restart should it occur; but callers of find_get_pages_contig()\nhave no such expectation, it\u0027s okay for that to return 0 early.\n\nI have not seen this in practice, just worried by the possibility.\n\nSigned-off-by: Hugh Dickins \u003chughd@google.com\u003e\nCc: Nick Piggin \u003cnpiggin@kernel.dk\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nCc: Salman Qazi \u003csqazi@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": "9d8aa4ea855e0d64bb6926acb5618e6d1e2ed344",
      "tree": "a21357f21084169e0a322f8fa8ce8abe343d4f06",
      "parents": [
        "c033a93c0d961fc7ec5b0872649143e061d97dd4"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hughd@google.com",
        "time": "Tue Mar 22 16:33:06 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:04 2011 -0700"
      },
      "message": "mm: remove worrying dead code from find_get_pages()\n\nThe radix_tree_deref_retry() case in find_get_pages() has a strange little\nexcrescence, not seen in the other gang lookups: it looks like the start\nof an abandoned attempt to guarantee forward progress in a case that\ncannot arise.\n\nret should always be 0 here: if it isn\u0027t, then going back to restart will\nleak references to pages already gotten.  There used to be a comment\nsaying nr_found is necessarily 1 here: that\u0027s not quite true, but the\nradix_tree_deref_retry() case is peculiar to the entry at index 0, when we\nrace with it being moved out of the radix_tree root or back.\n\nRemove the worrisome two lines, add a brief comment here and in\nfind_get_pages_contig() and find_get_pages_tag(), and a WARN_ON in\nfind_get_pages() should it ever be seen elsewhere than at 0.\n\nSigned-off-by: Hugh Dickins \u003chughd@google.com\u003e\nCc: Nick Piggin \u003cnpiggin@kernel.dk\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nCc: Salman Qazi \u003csqazi@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": "c033a93c0d961fc7ec5b0872649143e061d97dd4",
      "tree": "06d037d837bb493b08e306a605b393c9f67d175f",
      "parents": [
        "8afdcece4911e51cfff2b50a269418914cab8a3f"
      ],
      "author": {
        "name": "Petr Holasek",
        "email": "pholasek@redhat.com",
        "time": "Tue Mar 22 16:33:05 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:04 2011 -0700"
      },
      "message": "hugetlbfs: correct handling of negative input to /proc/sys/vm/nr_hugepages\n\nWhen the user inserts a negative value into /proc/sys/vm/nr_hugepages it\nwill cause the kernel to allocate as many hugepages as possible and to\nthen update /proc/meminfo to reflect this.\n\nThis changes the behavior so that the negative input will result in\nnr_hugepages value being unchanged.\n\nSigned-off-by: Petr Holasek \u003cpholasek@redhat.com\u003e\nSigned-off-by: Anton Arapov \u003canton@redhat.com\u003e\nReviewed-by: Naoya Horiguchi \u003cn-horiguchi@ah.jp.nec.com\u003e\nAcked-by: David Rientjes \u003crientjes@google.com\u003e\nAcked-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nAcked-by: Eric B Munson \u003cemunson@mgebm.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8afdcece4911e51cfff2b50a269418914cab8a3f",
      "tree": "fcfb966822f0f6c128c754f3876a80106c9cc654",
      "parents": [
        "7571966189e54adf0a8bc1384d6f13f44052ba63"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mel@csn.ul.ie",
        "time": "Tue Mar 22 16:33:04 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:04 2011 -0700"
      },
      "message": "mm: vmscan: kswapd should not free an excessive number of pages when balancing small zones\n\nWhen reclaiming for order-0 pages, kswapd requires that all zones be\nbalanced.  Each cycle through balance_pgdat() does background ageing on\nall zones if necessary and applies equal pressure on the inactive zone\nunless a lot of pages are free already.\n\nA \"lot of free pages\" is defined as a \"balance gap\" above the high\nwatermark which is currently 7*high_watermark.  Historically this was\nreasonable as min_free_kbytes was small.  However, on systems using huge\npages, it is recommended that min_free_kbytes is higher and it is tuned\nwith hugeadm --set-recommended-min_free_kbytes.  With the introduction of\ntransparent huge page support, this recommended value is also applied.  On\nX86-64 with 4G of memory, min_free_kbytes becomes 67584 so one would\nexpect around 68M of memory to be free.  The Normal zone is approximately\n35000 pages so under even normal memory pressure such as copying a large\nfile, it gets exhausted quickly.  As it is getting exhausted, kswapd\napplies pressure equally to all zones, including the DMA32 zone.  DMA32 is\napproximately 700,000 pages with a high watermark of around 23,000 pages.\nIn this situation, kswapd will reclaim around (23000*8 where 8 is the high\nwatermark + balance gap of 7 * high watermark) pages or 718M of pages\nbefore the zone is ignored.  What the user sees is that free memory far\nhigher than it should be.\n\nTo avoid an excessive number of pages being reclaimed from the larger\nzones, explicitely defines the \"balance gap\" to be either 1% of the zone\nor the low watermark for the zone, whichever is smaller.  While kswapd\nwill check all zones to apply pressure, it\u0027ll ignore zones that meets the\n(high_wmark + balance_gap) watermark.\n\nTo test this, 80G were copied from a partition and the amount of memory\nbeing used was recorded.  A comparison of a patch and unpatched kernel can\nbe seen at\nhttp://www.csn.ul.ie/~mel/postings/minfree-20110222/memory-usage-hydra.ps\nand shows that kswapd is not reclaiming as much memory with the patch\napplied.\n\nSigned-off-by: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nCc: Shaohua Li \u003cshaohua.li@intel.com\u003e\nCc: \"Chen, Tim C\" \u003ctim.c.chen@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": "7571966189e54adf0a8bc1384d6f13f44052ba63",
      "tree": "51f421e135905399751eaf78b19cd184dddf9387",
      "parents": [
        "4031a219d8913da40ade5a6e5b538cc61e975cc8"
      ],
      "author": {
        "name": "Namhyung Kim",
        "email": "namhyung@gmail.com",
        "time": "Tue Mar 22 16:33:02 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:04 2011 -0700"
      },
      "message": "mempolicy: remove redundant check in __mpol_equal()\n\nThe \u0027flags\u0027 field is already checked, no need to do it again.\n\nSigned-off-by: Namhyung Kim \u003cnamhyung@gmail.com\u003e\nCc: Bob Liu \u003clliubbo@gmail.com\u003e\nCc: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nReviewed-by: Minchan Kim \u003cminchan.kim@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": "4031a219d8913da40ade5a6e5b538cc61e975cc8",
      "tree": "ead7acfa743ef31f5be6dc9cae1fc70cefd72bf0",
      "parents": [
        "22e057c5923e60debad318cbeaee33033b110bc8"
      ],
      "author": {
        "name": "Dave Hansen",
        "email": "dave@linux.vnet.ibm.com",
        "time": "Tue Mar 22 16:33:01 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:04 2011 -0700"
      },
      "message": "smaps: have smaps show transparent huge pages\n\nNow that the mere act of _looking_ at /proc/$pid/smaps will not destroy\ntransparent huge pages, tell how much of the VMA is actually mapped with\nthem.\n\nThis way, we can make sure that we\u0027re getting THPs where we\nexpect to see them.\n\nSigned-off-by: Dave Hansen \u003cdave@linux.vnet.ibm.com\u003e\nAcked-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nAcked-by: David Rientjes \u003crientjes@google.com\u003e\nReviewed-by: Eric B Munson \u003cemunson@mgebm.net\u003e\nTested-by: Eric B Munson \u003cemunson@mgebm.net\u003e\nCc: Michael J Wolf \u003cmjwolf@us.ibm.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Matt Mackall \u003cmpm@selenic.com\u003e\nCc: Jeremy Fitzhardinge \u003cjeremy@goop.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "22e057c5923e60debad318cbeaee33033b110bc8",
      "tree": "7dd6d7b5ed93974263377cd458384b85b2847041",
      "parents": [
        "3c9acc7849b1eab7ffc75e933404c5f32865d9a2"
      ],
      "author": {
        "name": "Dave Hansen",
        "email": "dave@linux.vnet.ibm.com",
        "time": "Tue Mar 22 16:33:00 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:04 2011 -0700"
      },
      "message": "smaps: teach smaps_pte_range() about THP pmds\n\nThis adds code to explicitly detect and handle pmd_trans_huge() pmds.  It\nthen passes HPAGE_SIZE units in to the smap_pte_entry() function instead\nof PAGE_SIZE.\n\nThis means that using /proc/$pid/smaps now will no longer cause THPs to be\nbroken down in to small pages.\n\nSigned-off-by: Dave Hansen \u003cdave@linux.vnet.ibm.com\u003e\nReviewed-by: Eric B Munson \u003cemunson@mgebm.net\u003e\nTested-by: Eric B Munson \u003cemunson@mgebm.net\u003e\nAcked-by: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nAcked-by: David Rientjes \u003crientjes@google.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Michael J Wolf \u003cmjwolf@us.ibm.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Matt Mackall \u003cmpm@selenic.com\u003e\nCc: Jeremy Fitzhardinge \u003cjeremy@goop.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3c9acc7849b1eab7ffc75e933404c5f32865d9a2",
      "tree": "7137eca693cd83bf89d30b354665ec9cf7b5f431",
      "parents": [
        "ae11c4d9f646064cf086e2f8cd4b3c475df7739c"
      ],
      "author": {
        "name": "Dave Hansen",
        "email": "dave@linux.vnet.ibm.com",
        "time": "Tue Mar 22 16:32:59 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:04 2011 -0700"
      },
      "message": "smaps: pass pte size argument in to smaps_pte_entry()\n\nAdd an argument to the new smaps_pte_entry() function to let it account in\nthings other than PAGE_SIZE units.  I changed all of the PAGE_SIZE sites,\neven though not all of them can be reached for transparent huge pages,\njust so this will continue to work without changes as THPs are improved.\n\nSigned-off-by: Dave Hansen \u003cdave@linux.vnet.ibm.com\u003e\nAcked-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nAcked-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nAcked-by: David Rientjes \u003crientjes@google.com\u003e\nReviewed-by: Eric B Munson \u003cemunson@mgebm.net\u003e\nTested-by: Eric B Munson \u003cemunson@mgebm.net\u003e\nCc: Michael J Wolf \u003cmjwolf@us.ibm.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Matt Mackall \u003cmpm@selenic.com\u003e\nCc: Jeremy Fitzhardinge \u003cjeremy@goop.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ae11c4d9f646064cf086e2f8cd4b3c475df7739c",
      "tree": "5c565c6250749daa757852a629b25815a6919476",
      "parents": [
        "033193275b3ffcfe7f3fde7b569f3d207f6cd6a0"
      ],
      "author": {
        "name": "Dave Hansen",
        "email": "dave@linux.vnet.ibm.com",
        "time": "Tue Mar 22 16:32:58 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:04 2011 -0700"
      },
      "message": "smaps: break out smaps_pte_entry() from smaps_pte_range()\n\nWe will use smaps_pte_entry() in a moment to handle both small and\ntransparent large pages.  But, we must break it out of smaps_pte_range()\nfirst.\n\nSigned-off-by: Dave Hansen \u003cdave@linux.vnet.ibm.com\u003e\nAcked-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nAcked-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nAcked-by: David Rientjes \u003crientjes@google.com\u003e\nReviewed-by: Eric B Munson \u003cemunson@mgebm.net\u003e\nTested-by: Eric B Munson \u003cemunson@mgebm.net\u003e\nCc: Michael J Wolf \u003cmjwolf@us.ibm.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Matt Mackall \u003cmpm@selenic.com\u003e\nCc: Jeremy Fitzhardinge \u003cjeremy@goop.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "033193275b3ffcfe7f3fde7b569f3d207f6cd6a0",
      "tree": "fc65fa02248f855f0f63e087f35a507b6abb5617",
      "parents": [
        "278df9f451dc71dcd002246be48358a473504ad0"
      ],
      "author": {
        "name": "Dave Hansen",
        "email": "dave@linux.vnet.ibm.com",
        "time": "Tue Mar 22 16:32:56 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:04 2011 -0700"
      },
      "message": "pagewalk: only split huge pages when necessary\n\nRight now, if a mm_walk has either -\u003epte_entry or -\u003epmd_entry set, it will\nunconditionally split any transparent huge pages it runs in to.  In\npractice, that means that anyone doing a\n\n\tcat /proc/$pid/smaps\n\nwill unconditionally break down every huge page in the process and depend\non khugepaged to re-collapse it later.  This is fairly suboptimal.\n\nThis patch changes that behavior.  It teaches each -\u003epmd_entry handler\n(there are five) that they must break down the THPs themselves.  Also, the\n_generic_ code will never break down a THP unless a -\u003epte_entry handler is\nactually set.\n\nThis means that the -\u003epmd_entry handlers can now choose to deal with THPs\nwithout breaking them down.\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: Dave Hansen \u003cdave@linux.vnet.ibm.com\u003e\nAcked-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nAcked-by: David Rientjes \u003crientjes@google.com\u003e\nReviewed-by: Eric B Munson \u003cemunson@mgebm.net\u003e\nTested-by: Eric B Munson \u003cemunson@mgebm.net\u003e\nCc: Michael J Wolf \u003cmjwolf@us.ibm.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Matt Mackall \u003cmpm@selenic.com\u003e\nCc: Jeremy Fitzhardinge \u003cjeremy@goop.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "278df9f451dc71dcd002246be48358a473504ad0",
      "tree": "3b79e956f2f0b9381f62518ff2fcf94df4ff9c3f",
      "parents": [
        "3f58a82943337fb6e79acfa5346719a97d3c0b98"
      ],
      "author": {
        "name": "Minchan Kim",
        "email": "minchan.kim@gmail.com",
        "time": "Tue Mar 22 16:32:54 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:04 2011 -0700"
      },
      "message": "mm: reclaim invalidated page ASAP\n\ninvalidate_mapping_pages is very big hint to reclaimer.  It means user\ndoesn\u0027t want to use the page any more.  So in order to prevent working set\npage eviction, this patch move the page into tail of inactive list by\nPG_reclaim.\n\nPlease, remember that pages in inactive list are working set as well as\nactive list.  If we don\u0027t move pages into inactive list\u0027s tail, pages near\nby tail of inactive list can be evicted although we have a big clue about\nuseless pages.  It\u0027s totally bad.\n\nNow PG_readahead/PG_reclaim is shared.  fe3cba17 added ClearPageReclaim\ninto clear_page_dirty_for_io for preventing fast reclaiming readahead\nmarker page.\n\nIn this series, PG_reclaim is used by invalidated page, too.  If VM find\nthe page is invalidated and it\u0027s dirty, it sets PG_reclaim to reclaim\nasap.  Then, when the dirty page will be writeback,\nclear_page_dirty_for_io will clear PG_reclaim unconditionally.  It\ndisturbs this serie\u0027s goal.\n\nI think it\u0027s okay to clear PG_readahead when the page is dirty, not\nwriteback time.  So this patch moves ClearPageReadahead.  In v4,\nClearPageReadahead in set_page_dirty has a problem which is reported by\nSteven Barrett.  It\u0027s due to compound page.  Some driver(ex, audio) calls\nset_page_dirty with compound page which isn\u0027t on LRU.  but my patch does\nClearPageRelcaim on compound page.  In non-CONFIG_PAGEFLAGS_EXTENDED, it\nbreaks PageTail flag.\n\nI think it doesn\u0027t affect THP and pass my test with THP enabling but Cced\nAndrea for double check.\n\nSigned-off-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nReported-by: Steven Barrett \u003cdamentz@liquorix.net\u003e\nReviewed-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nAcked-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Nick Piggin \u003cnpiggin@kernel.dk\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3f58a82943337fb6e79acfa5346719a97d3c0b98",
      "tree": "667441ac13c845edac93c937d0baba03a2021ea8",
      "parents": [
        "315601809d124d046abd6c3ffa346d0dbd7aa29d"
      ],
      "author": {
        "name": "Minchan Kim",
        "email": "minchan.kim@gmail.com",
        "time": "Tue Mar 22 16:32:53 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:03 2011 -0700"
      },
      "message": "memcg: move memcg reclaimable page into tail of inactive list\n\nThe rotate_reclaimable_page function moves just written out pages, which\nthe VM wanted to reclaim, to the end of the inactive list.  That way the\nVM will find those pages first next time it needs to free memory.\n\nThis patch applies the rule in memcg.  It can help to prevent unnecessary\nworking page eviction of memcg.\n\nSigned-off-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nAcked-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nReviewed-by: Rik van Riel \u003criel@redhat.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nAcked-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "315601809d124d046abd6c3ffa346d0dbd7aa29d",
      "tree": "be48e1a0053e3ada3a5c25561923f1b87f8e1719",
      "parents": [
        "481b4bb5e370aa69c1dc276bd08871ec01b41d2a"
      ],
      "author": {
        "name": "Minchan Kim",
        "email": "minchan.kim@gmail.com",
        "time": "Tue Mar 22 16:32:52 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:03 2011 -0700"
      },
      "message": "mm: deactivate invalidated pages\n\nRecently, there are reported problem about thrashing.\n(http://marc.info/?l\u003drsync\u0026m\u003d128885034930933\u0026w\u003d2) It happens by backup\nworkloads(ex, nightly rsync).  That\u0027s because the workload makes just\nuse-once pages and touches pages twice.  It promotes the page into active\nlist so that it results in working set page eviction.\n\nSome app developer want to support POSIX_FADV_NOREUSE.  But other OSes\ndon\u0027t support it, either.\n(http://marc.info/?l\u003dlinux-mm\u0026m\u003d128928979512086\u0026w\u003d2)\n\nBy other approach, app developers use POSIX_FADV_DONTNEED.  But it has a\nproblem.  If kernel meets page is writing during invalidate_mapping_pages,\nit can\u0027t work.  It makes for application programmer to use it since they\nalways have to sync data before calling fadivse(..POSIX_FADV_DONTNEED) to\nmake sure the pages could be discardable.  At last, they can\u0027t use\ndeferred write of kernel so that they could see performance loss.\n(http://insights.oetiker.ch/linux/fadvise.html)\n\nIn fact, invalidation is very big hint to reclaimer.  It means we don\u0027t\nuse the page any more.  So let\u0027s move the writing page into inactive\nlist\u0027s head if we can\u0027t truncate it right now.\n\nWhy I move page to head of lru on this patch, Dirty/Writeback page would\nbe flushed sooner or later.  It can prevent writeout of pageout which is\nless effective than flusher\u0027s writeout.\n\nOriginally, I reused lru_demote of Peter with some change so added his\nSigned-off-by.\n\nSigned-off-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nReported-by: Ben Gamari \u003cbgamari.foss@gmail.com\u003e\nSigned-off-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nAcked-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nAcked-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Nick Piggin \u003cnpiggin@kernel.dk\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "481b4bb5e370aa69c1dc276bd08871ec01b41d2a",
      "tree": "11a276bc58c2eb9b0a00fe751c3bf81bc3240382",
      "parents": [
        "cb240452bfc2ae9de7c840dd0fb3f5b33ce03c31"
      ],
      "author": {
        "name": "Richard Kennedy",
        "email": "richard@rsk.demon.co.uk",
        "time": "Tue Mar 22 16:32:50 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:03 2011 -0700"
      },
      "message": "mm: mm_struct: remove 16 bytes of alignment padding on 64 bit builds\n\nReorder mm_struct to remove 16 bytes of alignment padding on 64 bit\nbuilds.  On my config this shrinks mm_struct by enough to fit in one\nfewer cache lines and allows more objects per slab in mm_struct\nkmem_cache under SLUB.\n\nslabinfo before patch :-\n    Sizes (bytes)     Slabs\n    --------------------------------\n    Object :     848  Total  :       9\n    SlabObj:     896  Full   :       2\n    SlabSiz:   16384  Partial:       5\n    Loss   :      48  CpuSlab:       2\n    Align  :      64  Objects:      18\n\n slabinfo after :-\n    Sizes (bytes)     Slabs\n    --------------------------------\n    Object :     832  Total  :       7\n    SlabObj:     832  Full   :       2\n    SlabSiz:   16384  Partial:       3\n    Loss   :       0  CpuSlab:       2\n    Align  :      64  Objects:      19\n\nSigned-off-by: Richard Kennedy \u003crichard@rsk.demon.co.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "cb240452bfc2ae9de7c840dd0fb3f5b33ce03c31",
      "tree": "2c8542adfcae3dfe3e57b48a71abd50765e69fee",
      "parents": [
        "01d8b20dec5f4019283e244aba50ba86fe6ead6e"
      ],
      "author": {
        "name": "Michel Lespinasse",
        "email": "walken@google.com",
        "time": "Tue Mar 22 16:32:49 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:03 2011 -0700"
      },
      "message": "mm: remove unused TestSetPageLocked() interface\n\nTestSetPageLocked() isn\u0027t being used anywhere.  Also, using it would\nlikely be an error, since the proper interface trylock_page() provides\nstronger ordering guarantees.\n\nSigned-off-by: Michel Lespinasse \u003cwalken@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": "01d8b20dec5f4019283e244aba50ba86fe6ead6e",
      "tree": "738a2e675547de61f74d6f4019dd5830c40446dd",
      "parents": [
        "83813267c699ab11cc65a6d9d0f42db42f0862b3"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue Mar 22 16:32:49 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:03 2011 -0700"
      },
      "message": "mm: simplify anon_vma refcounts\n\nThis patch changes the anon_vma refcount to be 0 when the object is free.\nIt does this by adding 1 ref to being in use in the anon_vma structure\n(iow.  the anon_vma-\u003ehead list is not empty).\n\nThis allows a simpler release scheme without having to check both the\nrefcount and the list as well as avoids taking a ref for each entry on the\nlist.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nAcked-by: Hugh Dickins \u003chughd@google.com\u003e\nAcked-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nAcked-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": "83813267c699ab11cc65a6d9d0f42db42f0862b3",
      "tree": "8a3257ae177ba0f1bb0aebd4a503357c26472908",
      "parents": [
        "9e60109f125013b6c571f399a15a8b0fe1ffa4e6"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue Mar 22 16:32:48 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:03 2011 -0700"
      },
      "message": "mm: move anon_vma ref out from under CONFIG_foo\n\nWe need the anon_vma refcount unconditionally to simplify the anon_vma\nlifetime rules.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nAcked-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nAcked-by: Hugh Dickins \u003chughd@google.com\u003e\nAcked-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": "9e60109f125013b6c571f399a15a8b0fe1ffa4e6",
      "tree": "52d34958e82e5649b737e21e453516a3ecd365d3",
      "parents": [
        "7bc32f6f90dae67730645da67bfd44304f810f93"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue Mar 22 16:32:46 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:03 2011 -0700"
      },
      "message": "mm: rename drop_anon_vma() to put_anon_vma()\n\nThe normal code pattern used in the kernel is: get/put.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nAcked-by: Hugh Dickins \u003chughd@google.com\u003e\nReviewed-by: Rik van Riel \u003criel@redhat.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": "7bc32f6f90dae67730645da67bfd44304f810f93",
      "tree": "caefa40b2b5563d0e54686b40cb6f6375c2015cb",
      "parents": [
        "1d16871d8c96deadc5f9753b6b096074f2cbcbe1"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Tue Mar 22 16:32:46 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:02 2011 -0700"
      },
      "message": "mm: debug-pagealloc: fix kconfig dependency warning\n\nFix kconfig dependency warning to satisfy dependencies:\n\nwarning: (PAGE_POISONING) selects DEBUG_PAGEALLOC which has unmet\ndirect dependencies (DEBUG_KERNEL \u0026\u0026 ARCH_SUPPORTS_DEBUG_PAGEALLOC \u0026\u0026\n(!HIBERNATION || !PPC \u0026\u0026 !SPARC) \u0026\u0026 !KMEMCHECK)\n\nSigned-off-by: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nCc: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1d16871d8c96deadc5f9753b6b096074f2cbcbe1",
      "tree": "9f3f0c5a60e7a5bf4bfa9f2bd4c9492db36cecfe",
      "parents": [
        "e64a782fec684c29a8204c51b3cb554dce588592"
      ],
      "author": {
        "name": "Namhyung Kim",
        "email": "namhyung@gmail.com",
        "time": "Tue Mar 22 16:32:45 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:02 2011 -0700"
      },
      "message": "mm: batch-free pcp list if possible\n\nfree_pcppages_bulk() frees pages from pcp lists in a round-robin fashion\nby keeping batch_free counter.  But it doesn\u0027t need to spin if there is\nonly one non-empty list.  This can be checked by batch_free \u003d\u003d\nMIGRATE_PCPTYPES.\n\n[akpm@linux-foundation.org: fix comment]\nSigned-off-by: Namhyung Kim \u003cnamhyung@gmail.com\u003e\nAcked-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e64a782fec684c29a8204c51b3cb554dce588592",
      "tree": "5ff0beb21b973f1ad0edc1e31b6a1c2ee4406bdc",
      "parents": [
        "702cfbf93aaf3a091b0c64c8766c1ade0a820c38"
      ],
      "author": {
        "name": "Minchan Kim",
        "email": "minchan.kim@gmail.com",
        "time": "Tue Mar 22 16:32:44 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:02 2011 -0700"
      },
      "message": "mm: change __remove_from_page_cache()\n\nNow we renamed remove_from_page_cache with delete_from_page_cache.  As\nconsistency of __remove_from_swap_cache and remove_from_swap_cache, we\nchange internal page cache handling function name, too.\n\nSigned-off-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nAcked-by: Hugh Dickins \u003chughd@google.com\u003e\nAcked-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nReviewed-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "702cfbf93aaf3a091b0c64c8766c1ade0a820c38",
      "tree": "05416ad8133cbe64cb3b0ae475f486dd6ade8457",
      "parents": [
        "5adc7b518b54f7af2b8395d2035898340d96b1d5"
      ],
      "author": {
        "name": "Minchan Kim",
        "email": "minchan.kim@gmail.com",
        "time": "Tue Mar 22 16:32:43 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:02 2011 -0700"
      },
      "message": "mm: goodbye remove_from_page_cache()\n\nNow delete_from_page_cache() replaces remove_from_page_cache().  So we\nremove remove_from_page_cache so fs or something out of mainline will\nnotice it when compile time and can fix it.\n\nSigned-off-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nAcked-by: Hugh Dickins \u003chughd@google.com\u003e\nAcked-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nReviewed-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5adc7b518b54f7af2b8395d2035898340d96b1d5",
      "tree": "a1ef2db7e2a41333861ca067bb1c6f16589044eb",
      "parents": [
        "4c73b1bc6bb14aab7888ebe6bffe957cf7c07fa0"
      ],
      "author": {
        "name": "Minchan Kim",
        "email": "minchan.kim@gmail.com",
        "time": "Tue Mar 22 16:32:41 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:02 2011 -0700"
      },
      "message": "mm: truncate: change remove_from_page_cache\n\nThis patch series changes remove_from_page_cache()\u0027s page ref counting\nrule.  Page cache ref count is decreased in delete_from_page_cache().  So\nwe don\u0027t need to decrease the page reference in callers.\n\nSigned-off-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: Dan Magenheimer \u003cdan.magenheimer@oracle.com\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nCc: Nick Piggin \u003cnpiggin@kernel.dk\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nAcked-by: Hugh Dickins \u003chughd@google.com\u003e\nAcked-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nReviewed-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4c73b1bc6bb14aab7888ebe6bffe957cf7c07fa0",
      "tree": "152bc82ac08f59cdec1d7d3d4312f90e8aea124a",
      "parents": [
        "bd65cb86c98a79bc61afd0d80166005f125e9064"
      ],
      "author": {
        "name": "Minchan Kim",
        "email": "minchan.kim@gmail.com",
        "time": "Tue Mar 22 16:32:40 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:02 2011 -0700"
      },
      "message": "mm: shmem: change remove_from_page_cache\n\nThis patch series changes remove_from_page_cache()\u0027s page ref counting\nrule.  Page cache ref count is decreased in delete_from_page_cache().  So\nwe don\u0027t need to decrease the page reference in callers.\n\nSigned-off-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nAcked-by: Hugh Dickins \u003chughd@google.com\u003e\nAcked-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nReviewed-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bd65cb86c98a79bc61afd0d80166005f125e9064",
      "tree": "7980a38792c6855346e6d3b8c15a876dca9b50f8",
      "parents": [
        "97cecb5a254fec22d28ef32235d888bfbfd7c783"
      ],
      "author": {
        "name": "Minchan Kim",
        "email": "minchan.kim@gmail.com",
        "time": "Tue Mar 22 16:30:54 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:02 2011 -0700"
      },
      "message": "mm: hugetlbfs: change remove_from_page_cache\n\nThis patch series changes remove_from_page_cache()\u0027s page ref counting\nrule.  Page cache ref count is decreased in delete_from_page_cache().  So\nwe don\u0027t need to decrease the page reference in callers.\n\nSigned-off-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: William Irwin \u003cwli@holomorphy.com\u003e\nAcked-by: Hugh Dickins \u003chughd@google.com\u003e\nAcked-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nReviewed-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "97cecb5a254fec22d28ef32235d888bfbfd7c783",
      "tree": "186c6bb9c1f999f807e2ec68dc6a0cf16c9d0d73",
      "parents": [
        "ef6a3c63112e865d632ff7c478ba7c7160cad0d1"
      ],
      "author": {
        "name": "Minchan Kim",
        "email": "minchan.kim@gmail.com",
        "time": "Tue Mar 22 16:30:53 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:02 2011 -0700"
      },
      "message": "mm: introduce delete_from_page_cache()\n\nPresently we increase the page refcount in add_to_page_cache() but don\u0027t\ndecrease it in remove_from_page_cache().  Such asymmetry adds confusion,\nrequiring that callers notice it and a comment explaining why they release\na page reference.  It\u0027s not a good API.\n\nA long time ago, Hugh tried it (http://lkml.org/lkml/2004/10/24/140) but\ngave up because reiser4\u0027s drop_page() had to unlock the page between\nremoving it from page cache and doing the page_cache_release().  But now\nthe situation is changed.  I think at least things in current mainline\ndon\u0027t have any obstacles.  The problem is for out-of-mainline filesystems\n- if they have done such things as reiser4, this patch could be a problem\nbut they will discover this at compile time since we remove\nremove_from_page_cache().\n\nThis patch:\n\nThis function works as just wrapper remove_from_page_cache().  The\ndifference is that it decreases page references in itself.  So caller have\nto make sure it has a page reference before calling.\n\nThis patch is ready for removing remove_from_page_cache().\n\nSigned-off-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nAcked-by: Hugh Dickins \u003chughd@google.com\u003e\nAcked-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nReviewed-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Edward Shishkin \u003cedward.shishkin@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": "ef6a3c63112e865d632ff7c478ba7c7160cad0d1",
      "tree": "d0bd3ee2b79674e22b8dd3f318814cd4789697b8",
      "parents": [
        "318b275fbca1ab9ec0862de71420e0e92c3d1aa7"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Tue Mar 22 16:30:52 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:02 2011 -0700"
      },
      "message": "mm: add replace_page_cache_page() function\n\nThis function basically does:\n\n     remove_from_page_cache(old);\n     page_cache_release(old);\n     add_to_page_cache_locked(new);\n\nExcept it does this atomically, so there\u0027s no possibility for the \"add\" to\nfail because of a race.\n\nIf memory cgroups are enabled, then the memory cgroup charge is also moved\nfrom the old page to the new.\n\nThis function is currently used by fuse to move pages into the page cache\non read, instead of copying the page contents.\n\n[minchan.kim@gmail.com: add freepage() hook to replace_page_cache_page()]\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nSigned-off-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "318b275fbca1ab9ec0862de71420e0e92c3d1aa7",
      "tree": "aa4984469443ed53b4e7fa23d3f91966e536a803",
      "parents": [
        "5fda1bd5b8869574dad8e1f9f71e23bf0c186274"
      ],
      "author": {
        "name": "Gleb Natapov",
        "email": "gleb@redhat.com",
        "time": "Tue Mar 22 16:30:51 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:02 2011 -0700"
      },
      "message": "mm: allow GUP to fail instead of waiting on a page\n\nGUP user may want to try to acquire a reference to a page if it is already\nin memory, but not if IO, to bring it in, is needed.  For example KVM may\ntell vcpu to schedule another guest process if current one is trying to\naccess swapped out page.  Meanwhile, the page will be swapped in and the\nguest process, that depends on it, will be able to run again.\n\nThis patch adds FAULT_FLAG_RETRY_NOWAIT (suggested by Linus) and\nFOLL_NOWAIT follow_page flags.  FAULT_FLAG_RETRY_NOWAIT, when used in\nconjunction with VM_FAULT_ALLOW_RETRY, indicates to handle_mm_fault that\nit shouldn\u0027t drop mmap_sem and wait on a page, but return VM_FAULT_RETRY\ninstead.\n\n[akpm@linux-foundation.org: improve FOLL_NOWAIT comment]\nSigned-off-by: Gleb Natapov \u003cgleb@redhat.com\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nCc: Michel Lespinasse \u003cwalken@google.com\u003e\nCc: Avi Kivity \u003cavi@redhat.com\u003e\nCc: Marcelo Tosatti \u003cmtosatti@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": "5fda1bd5b8869574dad8e1f9f71e23bf0c186274",
      "tree": "a714e0d153622bd89cf9f775e04763ccbd6c4ca5",
      "parents": [
        "cbf978bfb12d7deca97d7333f65eda0381a072de"
      ],
      "author": {
        "name": "Prarit Bhargava",
        "email": "prarit@redhat.com",
        "time": "Tue Mar 22 16:30:49 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:01 2011 -0700"
      },
      "message": "mm: notifier_from_errno() cleanup\n\nWhile looking at some other notifier callbacks I noticed this code could\nuse a simple cleanup.\n\nnotifier_from_errno() no longer needs the if (ret)/else conditional.  That\nsame conditional is now done in notifier_from_errno().\n\nSigned-off-by: Prarit Bhargava \u003cprarit@redhat.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nAcked-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "cbf978bfb12d7deca97d7333f65eda0381a072de",
      "tree": "75a415ec997606460c0c851f43e29d008476f231",
      "parents": [
        "29423e77c06cee7d4e335ef4a7cbd949da978c91"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Tue Mar 22 16:30:48 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:01 2011 -0700"
      },
      "message": "oom: suppress nodes that are not allowed from meminfo on page alloc failure\n\nDisplaying extremely verbose meminfo for all nodes on the system is\noverkill for page allocation failures when the context restricts that\nallocation to only a subset of nodes.  We don\u0027t particularly care about\nthe state of all nodes when some are not allowed in the current context,\nthey can have an abundance of memory but we can\u0027t allocate from that part\nof memory.\n\nThis patch suppresses disallowed nodes from the meminfo dump on a page\nallocation failure if the context requires it.\n\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "29423e77c06cee7d4e335ef4a7cbd949da978c91",
      "tree": "4020036f36a8fb93d4c1010f59caa36742ff5c25",
      "parents": [
        "ddd588b5dd55f14320379961e47683db4e4c1d90"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Tue Mar 22 16:30:47 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:01 2011 -0700"
      },
      "message": "oom: suppress show_mem() for many nodes in irq context on page alloc failure\n\nWhen a page allocation failure occurs, show_mem() is called to dump the\nstate of the VM so users may understand what happened to get into that\ncondition.\n\nThis output, however, can be extremely verbose.  In irq context, it may\nresult in significant delays that incur NMI watchdog timeouts when the\nmachine is large (we use CONFIG_NODES_SHIFT \u003e 8 here to define a \"large\"\nmachine since the length of the show_mem() output is proportional to the\nnumber of possible nodes).\n\nThis patch suppresses the show_mem() call in irq context when the kernel\nhas CONFIG_NODES_SHIFT \u003e 8.\n\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ddd588b5dd55f14320379961e47683db4e4c1d90",
      "tree": "09de73c51c8c5e701e644236890a5d205ec3cdc9",
      "parents": [
        "94dcf29a11b3d20a28790598d701f98484a969da"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Tue Mar 22 16:30:46 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:01 2011 -0700"
      },
      "message": "oom: suppress nodes that are not allowed from meminfo on oom kill\n\nThe oom killer is extremely verbose for machines with a large number of\ncpus and/or nodes.  This verbosity can often be harmful if it causes other\nimportant messages to be scrolled from the kernel log and incurs a\nsignicant time delay, specifically for kernels with CONFIG_NODES_SHIFT \u003e\n8.\n\nThis patch causes only memory information to be displayed for nodes that\nare allowed by current\u0027s cpuset when dumping the VM state.  Information\nfor all other nodes is irrelevant to the oom condition; we don\u0027t care if\nthere\u0027s an abundance of memory elsewhere if we can\u0027t access it.\n\nThis only affects the behavior of dumping memory information when an oom\nis triggered.  Other dumps, such as for sysrq+m, still display the\nunfiltered form when using the existing show_mem() interface.\n\nAdditionally, the per-cpu pageset statistics are extremely verbose in oom\nkiller output, so it is now suppressed.  This removes\n\n\tnodes_weight(current-\u003emems_allowed) * (1 + nr_cpus)\n\nlines from the oom killer output.\n\nCallers may use __show_mem(SHOW_MEM_FILTER_NODES) to filter disallowed\nnodes.\n\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "94dcf29a11b3d20a28790598d701f98484a969da",
      "tree": "21c65f6634dcde739bb85cbc019ee273f1427f90",
      "parents": [
        "207205a2ba2655652fe46a60b49838af6c16a919"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Tue Mar 22 16:30:45 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:01 2011 -0700"
      },
      "message": "kthread: use kthread_create_on_node()\n\nksoftirqd, kworker, migration, and pktgend kthreads can be created with\nkthread_create_on_node(), to get proper NUMA affinities for their stack and\ntask_struct.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nAcked-by: David S. Miller \u003cdavem@davemloft.net\u003e\nReviewed-by: Andi Kleen \u003cak@linux.intel.com\u003e\nAcked-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nAcked-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Tony Luck \u003ctony.luck@intel.com\u003e\nCc: Fenghua Yu \u003cfenghua.yu@intel.com\u003e\nCc: David Howells \u003cdhowells@redhat.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": "207205a2ba2655652fe46a60b49838af6c16a919",
      "tree": "4309aa7cd5cf39c805219001e0ed8ec5b71e4d5e",
      "parents": [
        "b6a84016bd2598e35ead635147fa53619982648d"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Tue Mar 22 16:30:44 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:01 2011 -0700"
      },
      "message": "kthread: NUMA aware kthread_create_on_node()\n\nAll kthreads being created from a single helper task, they all use memory\nfrom a single node for their kernel stack and task struct.\n\nThis patch suite creates kthread_create_on_node(), adding a \u0027cpu\u0027 parameter\nto parameters already used by kthread_create().\n\nThis parameter serves in allocating memory for the new kthread on its\nmemory node if possible.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nAcked-by: David S. Miller \u003cdavem@davemloft.net\u003e\nReviewed-by: Andi Kleen \u003cak@linux.intel.com\u003e\nAcked-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Tony Luck \u003ctony.luck@intel.com\u003e\nCc: Fenghua Yu \u003cfenghua.yu@intel.com\u003e\nCc: David Howells \u003cdhowells@redhat.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": "b6a84016bd2598e35ead635147fa53619982648d",
      "tree": "a73dc0ef4e353723bf123898f0fc143e587c16d8",
      "parents": [
        "504f52b5439aaf26d3e2c1d45ec10fce38c8dd27"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Tue Mar 22 16:30:42 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:01 2011 -0700"
      },
      "message": "mm: NUMA aware alloc_thread_info_node()\n\nAdd a node parameter to alloc_thread_info(), and change its name to\nalloc_thread_info_node()\n\nThis change is needed to allow NUMA aware kthread_create_on_cpu()\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nAcked-by: David S. Miller \u003cdavem@davemloft.net\u003e\nReviewed-by: Andi Kleen \u003cak@linux.intel.com\u003e\nAcked-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Tony Luck \u003ctony.luck@intel.com\u003e\nCc: Fenghua Yu \u003cfenghua.yu@intel.com\u003e\nCc: David Howells \u003cdhowells@redhat.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": "504f52b5439aaf26d3e2c1d45ec10fce38c8dd27",
      "tree": "cb46d72c50e843c36540c88ef8c9000dff31c1c8",
      "parents": [
        "9d502c1c8d47b337c378c2ac8eaeee7918ad16b1"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Tue Mar 22 16:30:41 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:01 2011 -0700"
      },
      "message": "mm: NUMA aware alloc_task_struct_node()\n\nAll kthreads being created from a single helper task, they all use memory\nfrom a single node for their kernel stack and task struct.\n\nThis patch suite creates kthread_create_on_cpu(), adding a \u0027cpu\u0027 parameter\nto parameters already used by kthread_create().\n\nThis parameter serves in allocating memory for the new kthread on its\nmemory node if available.\n\nUsers of this new function are : ksoftirqd, kworker, migration, pktgend...\n\nThis patch:\n\nAdd a node parameter to alloc_task_struct(), and change its name to\nalloc_task_struct_node()\n\nThis change is needed to allow NUMA aware kthread_create_on_cpu()\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nAcked-by: David S. Miller \u003cdavem@davemloft.net\u003e\nReviewed-by: Andi Kleen \u003cak@linux.intel.com\u003e\nAcked-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Tony Luck \u003ctony.luck@intel.com\u003e\nCc: Fenghua Yu \u003cfenghua.yu@intel.com\u003e\nCc: David Howells \u003cdhowells@redhat.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": "9d502c1c8d47b337c378c2ac8eaeee7918ad16b1",
      "tree": "2bd7b5213369a509220864868d593f4ab4e5ebd1",
      "parents": [
        "d527caf22e48480b102c7c6ee5b9ba12170148f7"
      ],
      "author": {
        "name": "Minchan Kim",
        "email": "minchan.kim@gmail.com",
        "time": "Tue Mar 22 16:30:39 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:00 2011 -0700"
      },
      "message": "mm/compaction: check migrate_pages\u0027s return value instead of list_empty()\n\nMany migrate_page\u0027s caller check return value instead of list_empy by\ncf608ac19c (\"mm: compaction: fix COMPACTPAGEFAILED counting\").  This patch\nmakes compaction\u0027s migrate_pages consistent with others.  This patch\nshould not change old behavior.\n\nSigned-off-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Christoph Lameter \u003ccl@linux.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d527caf22e48480b102c7c6ee5b9ba12170148f7",
      "tree": "7d53a2c430f8c020b6fa8390396dd2d1ce480b9a",
      "parents": [
        "89699605fe7cfd8611900346f61cb6cbf179b10a"
      ],
      "author": {
        "name": "Andrea Arcangeli",
        "email": "aarcange@redhat.com",
        "time": "Tue Mar 22 16:30:38 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:00 2011 -0700"
      },
      "message": "mm: compaction: prevent kswapd compacting memory to reduce CPU usage\n\nThis patch reverts 5a03b051 (\"thp: use compaction in kswapd for GFP_ATOMIC\norder \u003e 0\") due to reports stating that kswapd CPU usage was higher and\nIRQs were being disabled more frequently.  This was reported at\nhttp://www.spinics.net/linux/fedora/alsa-user/msg09885.html.\n\nWithout this patch applied, CPU usage by kswapd hovers around the 20% mark\naccording to the tester (Arthur Marsh:\nhttp://www.spinics.net/linux/fedora/alsa-user/msg09899.html).  With this\npatch applied, it\u0027s around 2%.\n\nThe problem is not related to THP which specifies __GFP_NO_KSWAPD but is\ntriggered by high-order allocations hitting the low watermark for their\norder and waking kswapd on kernels with CONFIG_COMPACTION set.  The most\ncommon trigger for this is network cards configured for jumbo frames but\nit\u0027s also possible it\u0027ll be triggered by fork-heavy workloads (order-1)\nand some wireless cards which depend on order-1 allocations.\n\nThe symptoms for the user will be high CPU usage by kswapd in low-memory\nsituations which could be confused with another writeback problem.  While\na patch like 5a03b051 may be reintroduced in the future, this patch plays\nit safe for now and reverts it.\n\n[mel@csn.ul.ie: Beefed up the changelog]\nSigned-off-by: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nReported-by: Arthur Marsh \u003carthur.marsh@internode.on.net\u003e\nTested-by: Arthur Marsh \u003carthur.marsh@internode.on.net\u003e\nCc: \u003cstable@kernel.org\u003e\t\t[2.6.38.1]\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "89699605fe7cfd8611900346f61cb6cbf179b10a",
      "tree": "5970232526d3b3715704bb6f90742e033802c3aa",
      "parents": [
        "ef0a5e80f56f6409e957e7117da9551c3d3ff239"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Tue Mar 22 16:30:36 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:00 2011 -0700"
      },
      "message": "mm: vmap area cache\n\nProvide a free area cache for the vmalloc virtual address allocator, based\non the algorithm used by the user virtual memory allocator.\n\nThis reduces the number of rbtree operations and linear traversals over\nthe vmap extents in order to find a free area, by starting off at the last\npoint that a free area was found.\n\nThe free area cache is reset if areas are freed behind it, or if we are\nsearching for a smaller area or alignment than last time.  So allocation\npatterns are not changed (verified by corner-case and random test cases in\nuserspace testing).\n\nThis solves a regression caused by lazy vunmap TLB purging introduced in\ndb64fe02 (mm: rewrite vmap layer).  That patch will leave extents in the\nvmap allocator after they are vunmapped, and until a significant number\naccumulate that can be flushed in a single batch.  So in a workload that\nvmalloc/vfree frequently, a chain of extents will build up from\nVMALLOC_START address, which have to be iterated over each time (giving an\nO(n) type of behaviour).\n\nAfter this patch, the search will start from where it left off, giving\ncloser to an amortized O(1).\n\nThis is verified to solve regressions reported Steven in GFS2, and Avi in\nKVM.\n\nHugh\u0027s update:\n\n: I tried out the recent mmotm, and on one machine was fortunate to hit\n: the BUG_ON(first-\u003eva_start \u003c addr) which seems to have been stalling\n: your vmap area cache patch ever since May.\n\n: I can get you addresses etc, I did dump a few out; but once I stared\n: at them, it was easier just to look at the code: and I cannot see how\n: you would be so sure that first-\u003eva_start \u003c addr, once you\u0027ve done\n: that addr \u003d ALIGN(max(...), align) above, if align is over 0x1000\n: (align was 0x8000 or 0x4000 in the cases I hit: ioremaps like Steve).\n\n: I originally got around it by just changing the\n: \t\tif (first-\u003eva_start \u003c addr) {\n: to\n: \t\twhile (first-\u003eva_start \u003c addr) {\n: without thinking about it any further; but that seemed unsatisfactory,\n: why would we want to loop here when we\u0027ve got another very similar\n: loop just below it?\n\n: I am never going to admit how long I\u0027ve spent trying to grasp your\n: \"while (n)\" rbtree loop just above this, the one with the peculiar\n: \t\tif (!first \u0026\u0026 tmp-\u003eva_start \u003c addr + size)\n: in.  That\u0027s unfamiliar to me, I\u0027m guessing it\u0027s designed to save a\n: subsequent rb_next() in a few circumstances (at risk of then setting\n: a wrong cached_hole_size?); but they did appear few to me, and I didn\u0027t\n: feel I could sign off something with that in when I don\u0027t grasp it,\n: and it seems responsible for extra code and mistaken BUG_ON below it.\n\n: I\u0027ve reverted to the familiar rbtree loop that find_vma() does (but\n: with va_end \u003e\u003d addr as you had, to respect the additional guard page):\n: and then (given that cached_hole_size starts out 0) I don\u0027t see the\n: need for any complications below it.  If you do want to keep that loop\n: as you had it, please add a comment to explain what it\u0027s trying to do,\n: and where addr is relative to first when you emerge from it.\n\n: Aren\u0027t your tests \"size \u003c\u003d cached_hole_size\" and\n: \"addr + size \u003e first-\u003eva_start\" forgetting the guard page we want\n: before the next area?  I\u0027ve changed those.\n\n: I have not changed your many \"addr + size - 1 \u003c addr\" overflow tests,\n: but have since come to wonder, shouldn\u0027t they be \"addr + size \u003c addr\"\n: tests - won\u0027t the vend checks go wrong if addr + size is 0?\n\n: I have added a few comments - Wolfgang Wander\u0027s 2.6.13 description of\n: 1363c3cd8603a913a27e2995dccbd70d5312d8e6 Avoiding mmap fragmentation\n: helped me a lot, perhaps a pointer to that would be good too.  And I found\n: it easier to understand when I renamed cached_start slightly and moved the\n: overflow label down.\n\n: This patch would go after your mm-vmap-area-cache.patch in mmotm.\n: Trivially, nobody is going to get that BUG_ON with this patch, and it\n: appears to work fine on my machines; but I have not given it anything like\n: the testing you did on your original, and may have broken all the\n: performance you were aiming for.  Please take a look and test it out\n: integrate with yours if you\u0027re satisfied - thanks.\n\n[akpm@linux-foundation.org: add locking comment]\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Hugh Dickins \u003chughd@google.com\u003e\nReviewed-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nReported-and-tested-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nReported-and-tested-by: Avi Kivity \u003cavi@redhat.com\u003e\nTested-by: \"Barry J. Marson\" \u003cbmarson@redhat.com\u003e\nCc: Prarit Bhargava \u003cprarit@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": "ef0a5e80f56f6409e957e7117da9551c3d3ff239",
      "tree": "718bcc9cbab5ffaeb07d65eb5d0eebbb80af3801",
      "parents": [
        "0508e04e05cdf9b819210f5d5a12264e5eeff1f3"
      ],
      "author": {
        "name": "Robert Morell",
        "email": "rmorell@nvidia.com",
        "time": "Tue Mar 22 16:30:31 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:00 2011 -0700"
      },
      "message": "pwm_backlight: add check_fb() hook\n\nIn systems with multiple framebuffer devices, one of the devices might be\nblanked while another is unblanked.  In order for the backlight blanking\nlogic to know whether to turn off the backlight for a particular\nframebuffer\u0027s blanking notification, it needs to be able to check if a\ngiven framebuffer device corresponds to the backlight.\n\nThis plumbs the check_fb hook from core backlight through the\npwm_backlight helper to allow platform code to plug in a check_fb hook.\n\nSigned-off-by: Robert Morell \u003crmorell@nvidia.com\u003e\nCc: Richard Purdie \u003crpurdie@rpsys.net\u003e\nCc: Arun Murthy \u003carun.murthy@stericsson.com\u003e\nCc: Linus Walleij \u003clinus.walleij@stericsson.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0508e04e05cdf9b819210f5d5a12264e5eeff1f3",
      "tree": "94a9c7f5105755523c624416458060618f0276a3",
      "parents": [
        "b372412e159897c20ce2ad100f51c5d94ae98845"
      ],
      "author": {
        "name": "Axel Lin",
        "email": "axel.lin@gmail.com",
        "time": "Tue Mar 22 16:30:30 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:00 2011 -0700"
      },
      "message": "drivers/video/backlight/jornada720_*.c: make needlessly global symbols static\n\nThe following symbols are needlessly defined global: jornada_bl_init,\njornada_bl_exit, jornada_lcd_init, jornada_lcd_exit.\n\nMake them static.\n\nSigned-off-by: Axel Lin \u003caxel.lin@gmail.com\u003e\nAcked-by: Kristoffer Ericson \u003ckristoffer.ericson@gmail.com\u003e\nCc: Richard Purdie \u003crpurdie@rpsys.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b372412e159897c20ce2ad100f51c5d94ae98845",
      "tree": "e939eac4cb8b3e58f86ecc9591189ac617a344ac",
      "parents": [
        "39b3dee76fa1f1ac8310ea5898ba7c07280bdd9f"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Tue Mar 22 16:30:29 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:00 2011 -0700"
      },
      "message": "backlight: apple_bl depends on ACPI\n\napple_bl uses ACPI interfaces (data \u0026 code), so it should depend on ACPI.\n\n  drivers/video/backlight/apple_bl.c:142: warning: \u0027struct acpi_device\u0027 declared inside parameter list\n  drivers/video/backlight/apple_bl.c:142: warning: its scope is only this definition or declaration, which is probably not what you want\n  drivers/video/backlight/apple_bl.c:201: warning: \u0027struct acpi_device\u0027 declared inside parameter list\n  drivers/video/backlight/apple_bl.c:215: error: variable \u0027apple_bl_driver\u0027 has initializer but incomplete type\n  drivers/video/backlight/apple_bl.c:216: error: unknown field \u0027name\u0027 specified in initializer\n  ...\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nAcked-by: Matthew Garrett \u003cmjg@redhat.com\u003e\nCc: Richard Purdie \u003crpurdie@rpsys.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "39b3dee76fa1f1ac8310ea5898ba7c07280bdd9f",
      "tree": "2e1ea6ca8afa6c15dc6a288c1b800e52cd823f39",
      "parents": [
        "99fd28e19429f5212f0758adc1b2f08c6e63b6db"
      ],
      "author": {
        "name": "Matthew Garrett",
        "email": "mjg@redhat.com",
        "time": "Tue Mar 22 16:30:28 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:00 2011 -0700"
      },
      "message": "mbp_nvidia_bl: rename to apple_bl\n\nIt works on hardware other than Macbook Pros, and it works on GPUs other\nthan Nvidia.  It should even work on iMacs, so change the name to match\nreality more precisely and include an alias so existing users don\u0027t get\nconfused.\n\nSigned-off-by: Matthew Garrett \u003cmjg@redhat.com\u003e\nAcked-by: Richard Purdie \u003crichard.purdie@linuxfoundation.org\u003e\nCc: Mourad De Clerck \u003cmourad@aquazul.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "99fd28e19429f5212f0758adc1b2f08c6e63b6db",
      "tree": "9d9139fa58c28b1f8a40b77df7b839bc70c59a25",
      "parents": [
        "23a9847f0d5252872c4fecb5d4f803c523bd9283"
      ],
      "author": {
        "name": "Matthew Garrett",
        "email": "mjg@redhat.com",
        "time": "Tue Mar 22 16:30:27 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:00 2011 -0700"
      },
      "message": "mbp_nvidia_bl: check that the backlight control functions\n\nThe SMI-based backlight control functionality may fail to work if the\nsystem is running under EFI rather than BIOS.  Check that the hardware\nresponds as expected, and exit if it doesn\u0027t.\n\nSigned-off-by: Matthew Garrett \u003cmjg@redhat.com\u003e\nAcked-by: Richard Purdie \u003crichard.purdie@linuxfoundation.org\u003e\nCc: Mourad De Clerck \u003cmourad@aquazul.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "23a9847f0d5252872c4fecb5d4f803c523bd9283",
      "tree": "c85e4580d76007cfe486804e88c71b3ec2e074ab",
      "parents": [
        "9661e92c10a9775243c1ecb73373528ed8725a10"
      ],
      "author": {
        "name": "Matthew Garrett",
        "email": "mjg@redhat.com",
        "time": "Tue Mar 22 16:30:26 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:00 2011 -0700"
      },
      "message": "mbp_nvidia_bl: remove DMI dependency\n\nThis driver only has to deal with two different classes of hardware, but\nright now it needs new DMI entries for every new machine. It turns out\nthat there\u0027s an ACPI device that uniquely identifies Apples with backlights,\nso this patch reworks the driver into an ACPI one, identifies the hardware\nby checking the PCI vendor of the root bridge and strips out all the DMI\ncode. It also changes the config text to clarify that it works on devices\nother than Macbook Pros and GPUs other than nvidia.\n\nSigned-off-by: Matthew Garrett \u003cmjg@redhat.com\u003e\nAcked-by: Richard Purdie \u003crichard.purdie@linuxfoundation.org\u003e\nCc: Mourad De Clerck \u003cmourad@aquazul.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9661e92c10a9775243c1ecb73373528ed8725a10",
      "tree": "6540081a58b66142f3c84f93f76313be7e38b02b",
      "parents": [
        "7eae3efa13c5d1c8e7d8dd0504ad524963b8add1"
      ],
      "author": {
        "name": "Matthew Garrett",
        "email": "mjg@redhat.com",
        "time": "Tue Mar 22 16:30:25 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:00 2011 -0700"
      },
      "message": "acpi: tie ACPI backlight devices to PCI devices if possible\n\nDual-GPU machines may provide more than one ACPI backlight interface.  Tie\nthe backlight device to the GPU in order to allow userspace to identify\nthe correct interface.\n\nSigned-off-by: Matthew Garrett \u003cmjg@redhat.com\u003e\nCc: Richard Purdie \u003crpurdie@rpsys.net\u003e\nCc: Chris Wilson \u003cchris@chris-wilson.co.uk\u003e\nCc: David Airlie \u003cairlied@linux.ie\u003e\nCc: Alex Deucher \u003calexdeucher@gmail.com\u003e\nCc: Ben Skeggs \u003cbskeggs@redhat.com\u003e\nCc: Zhang Rui \u003crui.zhang@intel.com\u003e\nCc: Len Brown \u003clenb@kernel.org\u003e\nCc: Jesse Barnes \u003cjbarnes@virtuousgeek.org\u003e\nTested-by: Sedat Dilek \u003csedat.dilek@googlemail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7eae3efa13c5d1c8e7d8dd0504ad524963b8add1",
      "tree": "3e8326d5a377b55916ffd48c179821148881f4f1",
      "parents": [
        "63ec0119d3720034dfd626c9785aefa5a6f972ca"
      ],
      "author": {
        "name": "Matthew Garrett",
        "email": "mjg@redhat.com",
        "time": "Tue Mar 22 16:30:24 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:43:59 2011 -0700"
      },
      "message": "nouveau: change the backlight parent device to the connector, not the PCI dev\n\nWe may eventually end up with per-connector backlights, especially with\nddcci devices.  Make sure that the parent node for the backlight device is\nthe connector rather than the PCI device.\n\nSigned-off-by: Matthew Garrett \u003cmjg@redhat.com\u003e\nCc: Richard Purdie \u003crpurdie@rpsys.net\u003e\nCc: Chris Wilson \u003cchris@chris-wilson.co.uk\u003e\nCc: David Airlie \u003cairlied@linux.ie\u003e\nCc: Alex Deucher \u003calexdeucher@gmail.com\u003e\nAcked-by: Ben Skeggs \u003cbskeggs@redhat.com\u003e\nCc: Zhang Rui \u003crui.zhang@intel.com\u003e\nCc: Len Brown \u003clenb@kernel.org\u003e\nCc: Jesse Barnes \u003cjbarnes@virtuousgeek.org\u003e\nTested-by: Sedat Dilek \u003csedat.dilek@googlemail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "63ec0119d3720034dfd626c9785aefa5a6f972ca",
      "tree": "58141ebc543324e8111c5fdc5f2ada50418926d6",
      "parents": [
        "bb7ca747f8d6243b3943c5b133048652020f4a50"
      ],
      "author": {
        "name": "Michel Dänzer",
        "email": "michel@daenzer.net",
        "time": "Tue Mar 22 16:30:23 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:43:59 2011 -0700"
      },
      "message": "radeon: expose backlight class device for legacy LVDS encoder\n\nAllows e.g. power management daemons to control the backlight level. Inspired\nby the corresponding code in radeonfb.\n\n[mjg@redhat.com: updated to add backlight type and make the connector the parent device]\nSigned-off-by: Michel Dänzer \u003cmichel@daenzer.net\u003e\nSigned-off-by: Matthew Garrett \u003cmjg@redhat.com\u003e\nCc: Richard Purdie \u003crpurdie@rpsys.net\u003e\nCc: Chris Wilson \u003cchris@chris-wilson.co.uk\u003e\nCc: David Airlie \u003cairlied@linux.ie\u003e\nAcked-by: Alex Deucher \u003calexdeucher@gmail.com\u003e\nCc: Ben Skeggs \u003cbskeggs@redhat.com\u003e\nCc: Zhang Rui \u003crui.zhang@intel.com\u003e\nCc: Len Brown \u003clenb@kernel.org\u003e\nCc: Jesse Barnes \u003cjbarnes@virtuousgeek.org\u003e\nTested-by: Sedat Dilek \u003csedat.dilek@googlemail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bb7ca747f8d6243b3943c5b133048652020f4a50",
      "tree": "b40e879a7b26e3763aea2af2d4dd9079483de11e",
      "parents": [
        "ccd7510fd8dea5b4b2af87fb2aef2ebd6b23b76b"
      ],
      "author": {
        "name": "Matthew Garrett",
        "email": "mjg@redhat.com",
        "time": "Tue Mar 22 16:30:21 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:43:59 2011 -0700"
      },
      "message": "backlight: add backlight type\n\nThere may be multiple ways of controlling the backlight on a given\nmachine.  Allow drivers to expose the type of interface they are\nproviding, making it possible for userspace to make appropriate policy\ndecisions.\n\nSigned-off-by: Matthew Garrett \u003cmjg@redhat.com\u003e\nCc: Richard Purdie \u003crpurdie@rpsys.net\u003e\nCc: Chris Wilson \u003cchris@chris-wilson.co.uk\u003e\nCc: David Airlie \u003cairlied@linux.ie\u003e\nCc: Alex Deucher \u003calexdeucher@gmail.com\u003e\nCc: Ben Skeggs \u003cbskeggs@redhat.com\u003e\nCc: Zhang Rui \u003crui.zhang@intel.com\u003e\nCc: Len Brown \u003clenb@kernel.org\u003e\nCc: Jesse Barnes \u003cjbarnes@virtuousgeek.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ccd7510fd8dea5b4b2af87fb2aef2ebd6b23b76b",
      "tree": "cd71d20ddf832d08e60bd3f62694ba7fc224dde1",
      "parents": [
        "67d1da79b25c05d9a38b820bb5b5d89c91070ab2"
      ],
      "author": {
        "name": "Vasiliy Kulikov",
        "email": "segoon@openwall.com",
        "time": "Tue Mar 22 16:30:20 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:43:59 2011 -0700"
      },
      "message": "drivers/leds/leds-lp5523.c: world-writable engine* sysfs files\n\nDon\u0027t allow everybody to change LED settings.\n\nSigned-off-by: Vasiliy Kulikov \u003csegoon@openwall.com\u003e\nCc: Richard Purdie \u003crpurdie@rpsys.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "67d1da79b25c05d9a38b820bb5b5d89c91070ab2",
      "tree": "d476f6dec88b93118848a6ad89c96d3bcbc7b057",
      "parents": [
        "1baf0eb3975ab56e29d57984b7bd6c9cd360dbf3"
      ],
      "author": {
        "name": "Vasiliy Kulikov",
        "email": "segoon@openwall.com",
        "time": "Tue Mar 22 16:30:19 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:43:59 2011 -0700"
      },
      "message": "drivers/leds/leds-lp5521.c: world-writable sysfs engine* files\n\nDon\u0027t allow everybody to change LED settings.\n\nSigned-off-by: Vasiliy Kulikov \u003csegoon@openwall.com\u003e\nCc: Richard Purdie \u003crpurdie@rpsys.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1baf0eb3975ab56e29d57984b7bd6c9cd360dbf3",
      "tree": "1f54a690fa9a88a42be05f35d9fa86416fbad4b1",
      "parents": [
        "9517f925f2eb9ffca78b3f0f9389fc675bcb572c"
      ],
      "author": {
        "name": "Donghwa Lee",
        "email": "dh09.lee@samsung.com",
        "time": "Tue Mar 22 16:30:18 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:43:59 2011 -0700"
      },
      "message": "drivers/vidfeo/backlight: ld9040 amoled driver support\n\nAdd a ld9040 amoled panel driver.\n\nSigned-off-by: Donghwa Lee \u003cdh09.lee@samsung.com\u003e\nSigned-off-by: Kyungmin Park \u003ckyungmin.park@samsung.com\u003e\nSigned-off-by: Inki Dae \u003cinki.dae@samsung.com\u003e\nCc: Richard Purdie \u003crpurdie@rpsys.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9517f925f2eb9ffca78b3f0f9389fc675bcb572c",
      "tree": "e2750ab7bdc19cba2f17ce2d479e4abd6468cd61",
      "parents": [
        "b1e6b7068f026e88257c20522555c78122e5a14d"
      ],
      "author": {
        "name": "Uwe Kleine-König",
        "email": "u.kleine-koenig@pengutronix.de",
        "time": "Tue Mar 22 16:30:17 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:43:59 2011 -0700"
      },
      "message": "leds: make *struct gpio_led_platform_data.leds const\n\nAnd fix a typo.\n\nSigned-off-by: Uwe Kleine-König \u003cu.kleine-koenig@pengutronix.de\u003e\nCc: Lars-Peter Clausen \u003clars@metafoo.de\u003e\nCc: Richard Purdie \u003crpurdie@rpsys.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b1e6b7068f026e88257c20522555c78122e5a14d",
      "tree": "21cbe63961ce77a0077a638fcfbda84d4530a63e",
      "parents": [
        "551ea73838c5eba18d673bd4e7fb0fec77cdcb8a"
      ],
      "author": {
        "name": "Shreshtha Kumar Sahu",
        "email": "shreshthakumar.sahu@stericsson.com",
        "time": "Tue Mar 22 16:30:16 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:43:59 2011 -0700"
      },
      "message": "leds: add driver for LM3530 ALS\n\nSimple backlight driver for National Semiconductor LM3530.  Presently only\nmanual mode is supported, PWM and ALS support to be added.\n\nSigned-off-by: Shreshtha Kumar Sahu \u003cshreshthakumar.sahu@stericsson.com\u003e\nCc: Linus Walleij \u003clinus.walleij@stericsson.com\u003e\nCc: Richard Purdie \u003crpurdie@rpsys.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "551ea73838c5eba18d673bd4e7fb0fec77cdcb8a",
      "tree": "93cc18d1a12ca9a7248cf005fe64a6c5aa67fdee",
      "parents": [
        "8d2587970b8bdf7c8d9208e3f4bb93182aef1a0f"
      ],
      "author": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Tue Mar 22 16:30:14 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:43:58 2011 -0700"
      },
      "message": "leds: convert bd2802 driver to dev_pm_ops\n\nThere is a move to deprecate bus-specific PM operations and move to using\ndev_pm_ops instead in order to reduce the amount of boilerplate code in\nbuses and facilitiate updates to the PM core.  Do this move for the bs2802\ndriver.\n\n[akpm@linux-foundation.org: fix warnings]\nSigned-off-by: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\nCc: Kim Kyuwon \u003cq1.kim@samsung.com\u003e\nCc: Kim Kyuwon \u003cchammoru@gmail.com\u003e\nCc: Richard Purdie \u003crpurdie@rpsys.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8d2587970b8bdf7c8d9208e3f4bb93182aef1a0f",
      "tree": "931cacaa98583412975b4601b62fb244a5ed678d",
      "parents": [
        "edd45544c6f09550df0a5491aa8a07af24767e73"
      ],
      "author": {
        "name": "Phil Carmody",
        "email": "ext-phil.2.carmody@nokia.com",
        "time": "Tue Mar 22 16:30:13 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:43:58 2011 -0700"
      },
      "message": "cgroups: if you list_empty() a head then don\u0027t list_del() it\n\nlist_del() leaves poison in the prev and next pointers.  The next\nlist_empty() will compare those poisons, and say the list isn\u0027t empty.\nAny list operations that assume the node is on a list because of such a\ncheck will be fooled into dereferencing poison.  One needs to INIT the\nnode after the del, and fortunately there\u0027s already a wrapper for that -\nlist_del_init().\n\nSome of the dels are followed by deallocations, so can be ignored, and one\ncan be merged with an add to make a move.  Apart from that, I erred on the\nside of caution in making nodes list_empty()-queriable.\n\nSigned-off-by: Phil Carmody \u003cext-phil.2.carmody@nokia.com\u003e\nReviewed-by: Paul Menage \u003cmenage@google.com\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nAcked-by: Kirill A. Shutemov \u003ckirill@shutemov.name\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": "edd45544c6f09550df0a5491aa8a07af24767e73",
      "tree": "a44ec26701ed430b68ee3b045b6575462d15af71",
      "parents": [
        "30e2b41f20b6238f51e7cffb879c7a0f0073f5fe"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Tue Mar 22 16:30:12 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:43:58 2011 -0700"
      },
      "message": "oom: avoid deferring oom killer if exiting task is being traced\n\nThe oom killer naturally defers killing anything if it finds an eligible\ntask that is already exiting and has yet to detach its -\u003emm.  This avoids\nunnecessarily killing tasks when one is already in the exit path and may\nfree enough memory that the oom killer is no longer needed.  This is\ndetected by PF_EXITING since threads that have already detached its -\u003emm\nare no longer considered at all.\n\nThe problem with always deferring when a thread is PF_EXITING, however, is\nthat it may never actually exit when being traced, specifically if another\ntask is tracing it with PTRACE_O_TRACEEXIT.  The oom killer does not want\nto defer in this case since there is no guarantee that thread will ever\nexit without intervention.\n\nThis patch will now only defer the oom killer when a thread is PF_EXITING\nand no ptracer has stopped its progress in the exit path.  It also ensures\nthat a child is sacrificed for the chosen parent only if it has a\ndifferent -\u003emm as the comment implies: this ensures that the thread group\nleader is always targeted appropriately.\n\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nReported-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Andrey Vagin \u003cavagin@openvz.org\u003e\nCc: \u003cstable@kernel.org\u003e\t\t[2.6.38.x]\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "30e2b41f20b6238f51e7cffb879c7a0f0073f5fe",
      "tree": "fc1bdcfd516bbf67cf6c5c36f903a299c1ac03df",
      "parents": [
        "3a5dda7a17cf3706f79b86293f29db02d61e0d48"
      ],
      "author": {
        "name": "Andrey Vagin",
        "email": "avagin@openvz.org",
        "time": "Tue Mar 22 16:30:11 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:43:58 2011 -0700"
      },
      "message": "oom: skip zombies when iterating tasklist\n\nWe shouldn\u0027t defer oom killing if a thread has already detached its -\u003emm\nand still has TIF_MEMDIE set.  Memory needs to be freed, so find kill\nother threads that pin the same -\u003emm or find another task to kill.\n\nSigned-off-by: Andrey Vagin \u003cavagin@openvz.org\u003e\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: \u003cstable@kernel.org\u003e\t\t[2.6.38.x]\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3a5dda7a17cf3706f79b86293f29db02d61e0d48",
      "tree": "0d173f484968b7e08cf3f75006450b62e1521227",
      "parents": [
        "52c50567d8ab0a0a87f12cceaa4194967854f0bd"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Tue Mar 22 16:30:09 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:43:58 2011 -0700"
      },
      "message": "oom: prevent unnecessary oom kills or kernel panics\n\nThis patch prevents unnecessary oom kills or kernel panics by reverting\ntwo commits:\n\n\t495789a5 (oom: make oom_score to per-process value)\n\tcef1d352 (oom: multi threaded process coredump don\u0027t make deadlock)\n\nFirst, 495789a5 (oom: make oom_score to per-process value) ignores the\nfact that all threads in a thread group do not necessarily exit at the\nsame time.\n\nIt is imperative that select_bad_process() detect threads that are in the\nexit path, specifically those with PF_EXITING set, to prevent needlessly\nkilling additional tasks.  If a process is oom killed and the thread group\nleader exits, select_bad_process() cannot detect the other threads that\nare PF_EXITING by iterating over only processes.  Thus, it currently\nchooses another task unnecessarily for oom kill or panics the machine when\nnothing else is eligible.\n\nBy iterating over threads instead, it is possible to detect threads that\nare exiting and nominate them for oom kill so they get access to memory\nreserves.\n\nSecond, cef1d352 (oom: multi threaded process coredump don\u0027t make\ndeadlock) erroneously avoids making the oom killer a no-op when an\neligible thread other than current isfound to be exiting.  We want to\ndetect this situation so that we may allow that exiting thread time to\nexit and free its memory; if it is able to exit on its own, that should\nfree memory so current is no loner oom.  If it is not able to exit on its\nown, the oom killer will nominate it for oom kill which, in this case,\nonly means it will get access to memory reserves.\n\nWithout this change, it is easy for the oom killer to unnecessarily target\ntasks when all threads of a victim don\u0027t exit before the thread group\nleader or, in the worst case, panic the machine.\n\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Andrey Vagin \u003cavagin@openvz.org\u003e\nCc: \u003cstable@kernel.org\u003e\t\t[2.6.38.x]\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "52c50567d8ab0a0a87f12cceaa4194967854f0bd",
      "tree": "11644ba2fd533fdd39631254fc9cfc2699dfb8ae",
      "parents": [
        "c7a1fcd8e6e0c3c8f4f8f74fc926ff04da3bf7a7"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mgorman@suse.de",
        "time": "Tue Mar 22 16:30:08 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:43:58 2011 -0700"
      },
      "message": "mm: swap: unlock swapfile inode mutex before closing file on bad swapfiles\n\nIf an administrator tries to swapon a file backed by NFS, the inode mutex is\ntaken (as it is for any swapfile) but later identified to be a bad swapfile\ndue to the lack of bmap and tries to cleanup. During cleanup, an attempt is\nmade to close the file but with inode-\u003ei_mutex still held. Closing an NFS\nfile syncs it which tries to acquire the inode mutex leading to deadlock. If\nlockdep is enabled the following appears on the console;\n\n    \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n    [ INFO: possible recursive locking detected ]\n    2.6.38-rc8-autobuild #1\n    ---------------------------------------------\n    swapon/2192 is trying to acquire lock:\n     (\u0026sb-\u003es_type-\u003ei_mutex_key#13){+.+.+.}, at: vfs_fsync_range+0x47/0x7c\n\n    but task is already holding lock:\n     (\u0026sb-\u003es_type-\u003ei_mutex_key#13){+.+.+.}, at: sys_swapon+0x28d/0xae7\n\n    other info that might help us debug this:\n    1 lock held by swapon/2192:\n     #0:  (\u0026sb-\u003es_type-\u003ei_mutex_key#13){+.+.+.}, at: sys_swapon+0x28d/0xae7\n\n    stack backtrace:\n    Pid: 2192, comm: swapon Not tainted 2.6.38-rc8-autobuild #1\n    Call Trace:\n        __lock_acquire+0x2eb/0x1623\n        find_get_pages_tag+0x14a/0x174\n        pagevec_lookup_tag+0x25/0x2e\n        vfs_fsync_range+0x47/0x7c\n        lock_acquire+0xd3/0x100\n        vfs_fsync_range+0x47/0x7c\n        nfs_flush_one+0x0/0xdf [nfs]\n        mutex_lock_nested+0x40/0x2b1\n        vfs_fsync_range+0x47/0x7c\n        vfs_fsync_range+0x47/0x7c\n        vfs_fsync+0x1c/0x1e\n        nfs_file_flush+0x64/0x69 [nfs]\n        filp_close+0x43/0x72\n        sys_swapon+0xa39/0xae7\n        sysret_check+0x2e/0x69\n        system_call_fastpath+0x16/0x1b\n\nThis patch releases the mutex if its held before calling filep_close()\nso swapon fails as expected without deadlock when the swapfile is backed\nby NFS.  If accepted for 2.6.39, it should also be considered a -stable\ncandidate for 2.6.38 and 2.6.37.\n\nSigned-off-by: Mel Gorman \u003cmgorman@suse.de\u003e\nAcked-by: Hugh Dickins \u003chughd@google.com\u003e\nCc: \u003cstable@kernel.org\u003e\t\t[2.6.37+]\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    }
  ],
  "next": "c7a1fcd8e6e0c3c8f4f8f74fc926ff04da3bf7a7"
}
