)]}'
{
  "log": [
    {
      "commit": "e8eebe90fb591b76950eff0238bf9b15717e02cc",
      "tree": "e10e9ef030b746dbf2f505685fa9bb71336e5494",
      "parents": [
        "a88184417fb27c2f5482eb98d37c7f3664508d0c"
      ],
      "author": {
        "name": "Liam Mark",
        "email": "lmark@codeaurora.org",
        "time": "Fri Jan 04 09:40:11 2013 -0800"
      },
      "committer": {
        "name": "Liam Mark",
        "email": "lmark@codeaurora.org",
        "time": "Fri Jan 04 10:09:06 2013 -0800"
      },
      "message": "android/lowmemorykiller: Selectively count free CMA pages\n\nIn certain memory configurations there can be a large number of\nCMA pages which are not suitable to satisfy certain memory\nrequests.\n\nThis large number of unsuitable pages can cause the\nlowmemorykiller to not kill any tasks because the\nlowmemorykiller counts all free pages.\nIn order to ensure the lowmemorykiller properly evaluates the\nfree memory only count the free CMA pages if they are suitable\nfor satisfying the memory request.\n\nChange-Id: I7f06d53e2d8cfe7439e5561fe6e5209ce73b1c90\nCRs-fixed: 437016\nSigned-off-by: Liam Mark \u003clmark@codeaurora.org\u003e\n"
    },
    {
      "commit": "733d861236661e6252afbb9ccb179d48f79334f3",
      "tree": "4edda9907fc715e98063a422b18ec1175423775f",
      "parents": [
        "922b8422857516bf67a760a398327a96fbbfa6a9"
      ],
      "author": {
        "name": "Laura Abbott",
        "email": "lauraa@codeaurora.org",
        "time": "Mon Dec 17 18:33:37 2012 -0800"
      },
      "committer": {
        "name": "Neha Pandey",
        "email": "nehap@codeaurora.org",
        "time": "Thu Dec 27 15:18:16 2012 -0800"
      },
      "message": "mm: Use correct define for CMA features\n\nCMA features may ifdef out parts of the code with\nCONFIG_CMA. Older code uses CONFIG_DMA_CMA. Switch\nto using the newer CONFIG_CMA to ensure the code gets\ncompiled when needed.\n\nChange-Id: I3cae639797787b4926a6c5e057de973b66196707\nSigned-off-by: Laura Abbott \u003clauraa@codeaurora.org\u003e\nSigned-off-by: Neha Pandey \u003cnehap@codeaurora.org\u003e\n"
    },
    {
      "commit": "922b8422857516bf67a760a398327a96fbbfa6a9",
      "tree": "693ead65bf39d2c97f122257b390a570869c3da2",
      "parents": [
        "13afc1a418378a97ba455122c6f6f79e1048c5cb"
      ],
      "author": {
        "name": "Larry Bassel",
        "email": "lbassel@codeaurora.org",
        "time": "Fri Dec 14 14:21:05 2012 -0800"
      },
      "committer": {
        "name": "Neha Pandey",
        "email": "nehap@codeaurora.org",
        "time": "Thu Dec 27 14:11:13 2012 -0800"
      },
      "message": "mm: make counts of CMA free pages correct\n\nBoth patches needed, second patch (among other things) fixes\na bug in the first.\n\ncommit 2139cbe627b8910ded55148f87ee10f7485408ed\nAuthor: Bartlomiej Zolnierkiewicz \u003cb.zolnierkie@samsung.com\u003e\nDate:   Mon Oct 8 16:32:00 2012 -0700\n\n    cma: fix counting of isolated pages\n\n    Isolated free pages shouldn\u0027t be accounted to NR_FREE_PAGES counter.  Fix\n    it by properly decreasing/increasing NR_FREE_PAGES counter in\n    set_migratetype_isolate()/unset_migratetype_isolate() and removing counter\n    adjustment for isolated pages from free_one_page() and split_free_page().\n\n    Signed-off-by: Bartlomiej Zolnierkiewicz \u003cb.zolnierkie@samsung.com\u003e\n    Signed-off-by: Kyungmin Park \u003ckyungmin.park@samsung.com\u003e\n    Cc: Marek Szyprowski \u003cm.szyprowski@samsung.com\u003e\n    Cc: Michal Nazarewicz \u003cmina86@mina86.com\u003e\n    Cc: Minchan Kim \u003cminchan@kernel.org\u003e\n    Cc: Mel Gorman \u003cmgorman@suse.de\u003e\n    Cc: Hugh Dickins \u003chughd@google.com\u003e\n    Signed-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\n    Signed-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n    [lbassel@codeaurora.org: backport from 3.7, small changes needed]\n    Signed-off-by: Larry Bassel \u003clbassel@codeaurora.org\u003e\n\ncommit d1ce749a0db12202b711d1aba1d29e823034648d\nAuthor: Bartlomiej Zolnierkiewicz \u003cb.zolnierkie@samsung.com\u003e\nDate:   Mon Oct 8 16:32:02 2012 -0700\n\n    cma: count free CMA pages\n\n    Add NR_FREE_CMA_PAGES counter to be later used for checking watermark in\n    __zone_watermark_ok().  For simplicity and to avoid #ifdef hell make this\n    counter always available (not only when CONFIG_CMA\u003dy).\n\n    [akpm@linux-foundation.org: use conventional migratetype naming]\n    Signed-off-by: Bartlomiej Zolnierkiewicz \u003cb.zolnierkie@samsung.com\u003e\n    Signed-off-by: Kyungmin Park \u003ckyungmin.park@samsung.com\u003e\n    Cc: Marek Szyprowski \u003cm.szyprowski@samsung.com\u003e\n    Cc: Michal Nazarewicz \u003cmina86@mina86.com\u003e\n    Cc: Minchan Kim \u003cminchan@kernel.org\u003e\n    Cc: Mel Gorman \u003cmgorman@suse.de\u003e\n    Cc: Hugh Dickins \u003chughd@google.com\u003e\n    Signed-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\n    Signed-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n    [lbassel@codeaurora.org: backport from 3.7, small changes needed]\n    Signed-off-by: Larry Bassel \u003clbassel@codeaurora.org\u003e\n\nChange-Id: I7d4f5fe0b6931192706337e0b730f43e7cccd031\nSigned-off-by: Larry Bassel \u003clbassel@codeaurora.org\u003e\nSigned-off-by: Neha Pandey \u003cnehap@codeaurora.org\u003e\n"
    },
    {
      "commit": "70b7280939672e434a6e2536a9a36f4dafc17934",
      "tree": "8e1632a6ea5252d7ce556de3be828f2606c4d345",
      "parents": [
        "afb2a33921982599d247a46b2306c75a4b69064b"
      ],
      "author": {
        "name": "Laura Abbott",
        "email": "lauraa@codeaurora.org",
        "time": "Fri Nov 30 14:07:01 2012 -0800"
      },
      "committer": {
        "name": "Mitchel Humpherys",
        "email": "mitchelh@codeaurora.org",
        "time": "Tue Dec 11 21:45:17 2012 -0800"
      },
      "message": "mm: Use aligned zone start for pfn_to_bitidx calculation\n\nThe current calculation in pfn_to_bitidx assumes that\n(pfn - zone-\u003ezone_start_pfn) \u003e\u003e pageblock_order will return the\nsame bit for all pfn in a pageblock. If zone_start_pfn is not\naligned to pageblock_nr_pages, this may not always be correct.\n\nConsider the following with pageblock order \u003d 10, zone start 2MB:\n\npfn     | pfn - zone start | (pfn - zone start) \u003e\u003e page block order\n----------------------------------------------------------------\n0x26000 | 0x25e00\t   |  0x97\n0x26100 | 0x25f00\t   |  0x97\n0x26200 | 0x26000\t   |  0x98\n0x26300 | 0x26100\t   |  0x98\n\nThis means that calling {get,set}_pageblock_migratetype on a single\npage will not set the migratetype for the full block. Fix this by\nrounding down zone_start_pfn when doing the bitidx calculation.\n\nChange-Id: I13e2f53f50db294f38ec86138c17c6fe29f0ee82\nSigned-off-by: Laura Abbott \u003clauraa@codeaurora.org\u003e\nSigned-off-by: Mitchel Humpherys \u003cmitchelh@codeaurora.org\u003e\n"
    },
    {
      "commit": "d3c11452319e8e958cc7485fa78d7737429323dd",
      "tree": "4f25f8d653217a3f61532e99187f4e8543c5f1ff",
      "parents": [
        "c21a803d13f8f03d10a4b70e80408b99645d9efa"
      ],
      "author": {
        "name": "Minchan Kim",
        "email": "minchan.kim@gmail.com",
        "time": "Fri May 11 09:37:13 2012 +0200"
      },
      "committer": {
        "name": "Mitchel Humpherys",
        "email": "mitchelh@codeaurora.org",
        "time": "Tue Dec 11 21:45:15 2012 -0800"
      },
      "message": "cma: fix migration mode\n\n__alloc_contig_migrate_range calls migrate_pages with wrong argument\nfor migrate_mode. Fix it.\n\nChange-Id: I84697cf7c6aef6253e9ee7e5b3028c946b95e253\nCc: Marek Szyprowski \u003cm.szyprowski@samsung.com\u003e\nSigned-off-by: Minchan Kim \u003cminchan@kernel.org\u003e\nAcked-by: Michal Nazarewicz \u003cmina86@mina86.com\u003e\nSigned-off-by: Marek Szyprowski \u003cm.szyprowski@samsung.com\u003e\nSigned-off-by: Laura Abbott \u003clauraa@codeaurora.org\u003e\nSigned-off-by: Mitchel Humpherys \u003cmitchelh@codeaurora.org\u003e\n"
    },
    {
      "commit": "c21a803d13f8f03d10a4b70e80408b99645d9efa",
      "tree": "a2d7da6a22e64724de6eb6ccb526ff23eb83c052",
      "parents": [
        "926c5240503f037ba0d5f45b6673487a4ec6bd18"
      ],
      "author": {
        "name": "woojoong.lee",
        "email": "woojoong.lee@samsung.com",
        "time": "Mon Dec 03 17:58:43 2012 -0800"
      },
      "committer": {
        "name": "Mitchel Humpherys",
        "email": "mitchelh@codeaurora.org",
        "time": "Tue Dec 11 21:45:15 2012 -0800"
      },
      "message": "cma : use migrate_prep() instead of migrate_prep_local()\n\n__alloc_contig_migrate_range() should use all possible ways to get all the\npages migrated from the given memory range, so pruning per-cpu lru lists\nfor all CPUs is required, regadless the cost of such operation. Otherwise\nsome pages which got stuck at per-cpu lru list might get missed by\nmigration procedure causing the contiguous allocation to fail.\n\nChange-Id: I70cc0864c57dd49e89f57797122a3fd0f300647a\nSigned-off-by: woojoong.lee \u003cwoojoong.lee@samsung.com\u003e\nReviewed-on: http://165.213.202.130:8080/43063\nTested-by: System S/W SCM \u003cscm.systemsw@samsung.com\u003e\nReviewed-by: daeho jeong \u003cdaeho.jeong@samsung.com\u003e\nReviewed-by: Jeong-Ho Kim \u003cjammer@samsung.com\u003e\nTested-by: Jeong-Ho Kim \u003cjammer@samsung.com\u003e\n[lauraa@codeaurora.org: Applied to correct file]\nSigned-off-by: Laura Abbott \u003clauraa@codeaurora.org\u003e\nSigned-off-by: Mitchel Humpherys \u003cmitchelh@codeaurora.org\u003e\n"
    },
    {
      "commit": "926c5240503f037ba0d5f45b6673487a4ec6bd18",
      "tree": "a05055556ef818570aec12318cc677e145d485ca",
      "parents": [
        "2dc518e5ebceb877016e7189b27e5506cb67c2ed"
      ],
      "author": {
        "name": "Laura Abbott",
        "email": "lauraa@codeaurora.org",
        "time": "Tue Nov 27 10:17:24 2012 -0800"
      },
      "committer": {
        "name": "Mitchel Humpherys",
        "email": "mitchelh@codeaurora.org",
        "time": "Tue Dec 11 21:45:14 2012 -0800"
      },
      "message": "mm: Add is_cma_pageblock definition\n\nBring back the is_cma_pageblock definition for determining if a\npage is CMA or not.\n\nChange-Id: I39fd546e22e240b752244832c79514f109c8e84b\nSigned-off-by: Laura Abbott \u003clauraa@codeaurora.org\u003e\nSigned-off-by: Mitchel Humpherys \u003cmitchelh@codeaurora.org\u003e\n"
    },
    {
      "commit": "2dc518e5ebceb877016e7189b27e5506cb67c2ed",
      "tree": "16cbe592362825a2c1586a8db4ae324e7dcaf4f1",
      "parents": [
        "039f2980c4f82d1b1c3e174ceaa56d514caffe35"
      ],
      "author": {
        "name": "Liam Mark",
        "email": "lmark@codeaurora.org",
        "time": "Tue Nov 27 18:49:58 2012 -0800"
      },
      "committer": {
        "name": "Mitchel Humpherys",
        "email": "mitchelh@codeaurora.org",
        "time": "Tue Dec 11 21:45:13 2012 -0800"
      },
      "message": "mm: split_free_page ignore memory watermarks for CMA\n\nMemory watermarks were sometimes preventing CMA allocations\nin low memory.\n\nChange-Id: I550ec987cbd6bc6dadd72b4a764df20cd0758479\nSigned-off-by: Liam Mark \u003clmark@codeaurora.org\u003e\nSigned-off-by: Mitchel Humpherys \u003cmitchelh@codeaurora.org\u003e\n"
    },
    {
      "commit": "039f2980c4f82d1b1c3e174ceaa56d514caffe35",
      "tree": "e64572ca200b2db400917574afe10d811ddb8928",
      "parents": [
        "630920b02b470e77b2832286f3791dbb43f4bc57"
      ],
      "author": {
        "name": "Laura Abbott",
        "email": "lauraa@codeaurora.org",
        "time": "Thu Nov 29 16:22:01 2012 -0800"
      },
      "committer": {
        "name": "Mitchel Humpherys",
        "email": "mitchelh@codeaurora.org",
        "time": "Tue Dec 11 21:45:13 2012 -0800"
      },
      "message": "mm: Don\u0027t use CMA pages for writes\n\nIf CMA pages are used for writes, the writes may not complete\nfast enough for CMA to be allocated within a reasonable amount\nof time. If we get a CMA page, get another one to use instead.\n\nChange-Id: I19d8ba655da7525d68d5947337d500566998971c\nSigned-off-by: Laura Abbott \u003clauraa@codeaurora.org\u003e\nSigned-off-by: Mitchel Humpherys \u003cmitchelh@codeaurora.org\u003e\n"
    },
    {
      "commit": "630920b02b470e77b2832286f3791dbb43f4bc57",
      "tree": "bf9d1e9bf20c0f5d0ecd2ee731908194c28514ef",
      "parents": [
        "5249a0554b29373a26f5f6bf7e19124a2bab143d"
      ],
      "author": {
        "name": "Heesub Shin",
        "email": "heesub.shin@samsung.com",
        "time": "Mon Dec 03 17:55:40 2012 -0800"
      },
      "committer": {
        "name": "Mitchel Humpherys",
        "email": "mitchelh@codeaurora.org",
        "time": "Tue Dec 11 21:45:12 2012 -0800"
      },
      "message": "cma: fix race condition on a page\n\ncruel, brute-force method for letting cma/migration to\nfinish its job without stealing the lock\nmigration_entry_wait() and creating a live-lock on the\nfaulted page. This patch solves the case of\npage-\u003e_count \u003d\u003d 2 migration failure.\n\nChange-Id: Ia94542a80e44a213831291af289bbf5ee6880bfd\nSigned-off-by: Heesub Shin \u003cheesub.shin@samsung.com\u003e\nReviewed-on: http://165.213.202.130:8080/39341\nTested-by: System S/W SCM \u003cscm.systemsw@samsung.com\u003e\nTested-by: Dongjun Shin \u003cd.j.shin@samsung.com\u003e\nReviewed-by: Hyunju Ahn \u003chyunju.ahn@samsung.com\u003e\nSigned-off-by: Laura Abbott \u003clauraa@codeaurora.org\u003e\nSigned-off-by: Mitchel Humpherys \u003cmitchelh@codeaurora.org\u003e\n"
    },
    {
      "commit": "fbfcd6fa25e08b96f28527da696a7b3250588df2",
      "tree": "8f2bf0cf48ef4ebe9fd1c81835fdd2103c73c0e3",
      "parents": [
        "2e781cd43f310a482c7d651a9d38de3459967fba"
      ],
      "author": {
        "name": "Rabin Vincent",
        "email": "rabin@rab.in",
        "time": "Thu Jul 05 15:52:23 2012 +0530"
      },
      "committer": {
        "name": "Laura Abbott",
        "email": "lauraa@codeaurora.org",
        "time": "Mon Jul 23 14:48:17 2012 -0700"
      },
      "message": "mm: cma: don\u0027t replace lowmem pages with highmem\n\nThe filesystem layer expects pages in the block device\u0027s mapping to not\nbe in highmem (the mapping\u0027s gfp mask is set in bdget()), but CMA can\ncurrently replace lowmem pages with highmem pages, leading to crashes in\nfilesystem code such as the one below:\n\n  Unable to handle kernel NULL pointer dereference at virtual address 00000400\n  pgd \u003d c0c98000\n  [00000400] *pgd\u003d00c91831, *pte\u003d00000000, *ppte\u003d00000000\n  Internal error: Oops: 817 [#1] PREEMPT SMP ARM\n  CPU: 0    Not tainted  (3.5.0-rc5+ #80)\n  PC is at __memzero+0x24/0x80\n  ...\n  Process fsstress (pid: 323, stack limit \u003d 0xc0cbc2f0)\n  Backtrace:\n  [\u003cc010e3f0\u003e] (ext4_getblk+0x0/0x180) from [\u003cc010e58c\u003e] (ext4_bread+0x1c/0x98)\n  [\u003cc010e570\u003e] (ext4_bread+0x0/0x98) from [\u003cc0117944\u003e] (ext4_mkdir+0x160/0x3bc)\n   r4:c15337f0\n  [\u003cc01177e4\u003e] (ext4_mkdir+0x0/0x3bc) from [\u003cc00c29e0\u003e] (vfs_mkdir+0x8c/0x98)\n  [\u003cc00c2954\u003e] (vfs_mkdir+0x0/0x98) from [\u003cc00c2a60\u003e] (sys_mkdirat+0x74/0xac)\n   r6:00000000 r5:c152eb40 r4:000001ff r3:c14b43f0\n  [\u003cc00c29ec\u003e] (sys_mkdirat+0x0/0xac) from [\u003cc00c2ab8\u003e] (sys_mkdir+0x20/0x24)\n   r6:beccdcf0 r5:00074000 r4:beccdbbc\n  [\u003cc00c2a98\u003e] (sys_mkdir+0x0/0x24) from [\u003cc000e3c0\u003e] (ret_fast_syscall+0x0/0x30)\n\nFix this by replacing only highmem pages with highmem.\n\nChange-Id: I6af2d509af48b5a586037be14bd3593b3f269d95\nReported-by: Laura Abbott \u003clauraa@codeaurora.org\u003e\nSigned-off-by: Rabin Vincent \u003crabin@rab.in\u003e\nAcked-by: Michal Nazarewicz \u003cmina86@mina86.com\u003e\nSigned-off-by: Marek Szyprowski \u003cm.szyprowski@samsung.com\u003e\nSigned-off-by: Laura Abbott \u003clauraa@codeaurora.org\u003e\n"
    },
    {
      "commit": "f398f30d1f34632d3c96758b5b19e65b056af072",
      "tree": "2b9e0d69cedefea5b8f127245e0ff37db4fe01dd",
      "parents": [
        "c4b646ff80f558010ee486421ee1b718db1a3193"
      ],
      "author": {
        "name": "Yong Wang",
        "email": "yong.y.wang@intel.com",
        "time": "Thu Apr 26 16:45:46 2012 +0530"
      },
      "committer": {
        "name": "Krishna Vanka",
        "email": "kvanka@codeaurora.org",
        "time": "Mon Jul 16 10:48:42 2012 +0530"
      },
      "message": "bdi: use deferable timer for sync_supers task\n\nsync_supers task currently wakes up periodically for superblock\nwriteback. This hurts power on battery driven devices. This patch\nturns this housekeeping timer into a deferable timer so that it\ndoes not fire when system is really idle.\n\nCRs-Fixed: 353700\nChange-Id: Idc7953b5d0580546808bc5832291ca570837ee7f\nSigned-off-by: Yong Wang \u003cyong.y.wang@intel.com\u003e\nSigned-off-by: Xia Wu \u003cxia.wu@intel.com\u003e\nSigned-off-by: Krishna Vanka \u003ckvanka@codeaurora.org\u003e\n"
    },
    {
      "commit": "f1f63887812a871f4a37842008bab4bdb7560011",
      "tree": "add9bb8720eeeace0bf747cb5efe06d7ed0b82d4",
      "parents": [
        "1ed36511162ddf23ccf3a834721c4fcfde8c9ff1"
      ],
      "author": {
        "name": "Marek Szyprowski",
        "email": "m.szyprowski@samsung.com",
        "time": "Wed Jan 25 12:49:24 2012 +0100"
      },
      "committer": {
        "name": "Laura Abbott",
        "email": "lauraa@codeaurora.org",
        "time": "Fri Jun 29 16:06:50 2012 -0700"
      },
      "message": "mm: trigger page reclaim in alloc_contig_range() to stabilise watermarks\n\nalloc_contig_range() performs memory allocation so it also should keep\ntrack on keeping the correct level of memory watermarks. This commit adds\na call to *_slowpath style reclaim to grab enough pages to make sure that\nthe final collection of contiguous pages from freelists will not starve\nthe system.\n\nChange-Id: I2d68d9ac2cfcd32ca6f515fc7e44e8d9d850dff1\nSigned-off-by: Marek Szyprowski \u003cm.szyprowski@samsung.com\u003e\nSigned-off-by: Kyungmin Park \u003ckyungmin.park@samsung.com\u003e\nCC: Michal Nazarewicz \u003cmina86@mina86.com\u003e\nTested-by: Rob Clark \u003crob.clark@linaro.org\u003e\nTested-by: Ohad Ben-Cohen \u003cohad@wizery.com\u003e\nTested-by: Benjamin Gaignard \u003cbenjamin.gaignard@linaro.org\u003e\nTested-by: Robert Nelson \u003crobertcnelson@gmail.com\u003e\nTested-by: Barry Song \u003cBaohua.Song@csr.com\u003e\nSigned-off-by: Laura Abbott \u003clauraa@codeaurora.org\u003e\n"
    },
    {
      "commit": "1ed36511162ddf23ccf3a834721c4fcfde8c9ff1",
      "tree": "3bc88974f90f8a7319d9b15fe3684327293e6886",
      "parents": [
        "e12aade2adf3c56764123c51af35ea74b221c4f1"
      ],
      "author": {
        "name": "Marek Szyprowski",
        "email": "m.szyprowski@samsung.com",
        "time": "Wed Jan 25 12:09:52 2012 +0100"
      },
      "committer": {
        "name": "Laura Abbott",
        "email": "lauraa@codeaurora.org",
        "time": "Fri Jun 29 16:06:49 2012 -0700"
      },
      "message": "mm: extract reclaim code from __alloc_pages_direct_reclaim()\n\nThis patch extracts common reclaim code from __alloc_pages_direct_reclaim()\nfunction to separate function: __perform_reclaim() which can be later used\nby alloc_contig_range().\n\nChange-Id: Ia9d8b82018d91dc669488955b20f69f1cba43147\nSigned-off-by: Marek Szyprowski \u003cm.szyprowski@samsung.com\u003e\nSigned-off-by: Kyungmin Park \u003ckyungmin.park@samsung.com\u003e\nCc: Michal Nazarewicz \u003cmina86@mina86.com\u003e\nAcked-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nTested-by: Rob Clark \u003crob.clark@linaro.org\u003e\nTested-by: Ohad Ben-Cohen \u003cohad@wizery.com\u003e\nTested-by: Benjamin Gaignard \u003cbenjamin.gaignard@linaro.org\u003e\nTested-by: Robert Nelson \u003crobertcnelson@gmail.com\u003e\nTested-by: Barry Song \u003cBaohua.Song@csr.com\u003e\nSigned-off-by: Laura Abbott \u003clauraa@codeaurora.org\u003e\n"
    },
    {
      "commit": "e12aade2adf3c56764123c51af35ea74b221c4f1",
      "tree": "7dabac1a6fc0b947e77c8d6a03f9d28fa7f2d32e",
      "parents": [
        "c80cd92bb7b152912b8d4487c18d040e1b4266b0"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mgorman@suse.de",
        "time": "Mon Apr 25 21:36:42 2011 +0000"
      },
      "committer": {
        "name": "Laura Abbott",
        "email": "lauraa@codeaurora.org",
        "time": "Fri Jun 29 16:06:49 2012 -0700"
      },
      "message": "mm: Serialize access to min_free_kbytes\n\nThere is a race between the min_free_kbytes sysctl, memory hotplug\nand transparent hugepage support enablement.  Memory hotplug uses a\nzonelists_mutex to avoid a race when building zonelists. Reuse it to\nserialise watermark updates.\n\nChange-Id: I31786592a8cc03e579ee01d99d7eba76e926263f\n[a.p.zijlstra@chello.nl: Older patch fixed the race with spinlock]\nSigned-off-by: Mel Gorman \u003cmgorman@suse.de\u003e\nSigned-off-by: Marek Szyprowski \u003cm.szyprowski@samsung.com\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nTested-by: Barry Song \u003cBaohua.Song@csr.com\u003e\nSigned-off-by: Laura Abbott \u003clauraa@codeaurora.org\u003e\n"
    },
    {
      "commit": "c80cd92bb7b152912b8d4487c18d040e1b4266b0",
      "tree": "1ec5588773c691c7d65c73bc8f8f946470cc3a2e",
      "parents": [
        "1d22dfa0b050d09fc589af90b8d35f32a5dc3056"
      ],
      "author": {
        "name": "Michal Nazarewicz",
        "email": "mina86@mina86.com",
        "time": "Tue Apr 03 15:06:15 2012 +0200"
      },
      "committer": {
        "name": "Laura Abbott",
        "email": "lauraa@codeaurora.org",
        "time": "Fri Jun 29 16:06:48 2012 -0700"
      },
      "message": "mm: page_isolation: MIGRATE_CMA isolation functions added\n\nThis commit changes various functions that change pages and\npageblocks migrate type between MIGRATE_ISOLATE and\nMIGRATE_MOVABLE in such a way as to allow to work with\nMIGRATE_CMA migrate type.\n\nChange-Id: Ib3a0b04cae49396b206a39bfced470e218ab1f90\nSigned-off-by: Michal Nazarewicz \u003cmina86@mina86.com\u003e\nSigned-off-by: Marek Szyprowski \u003cm.szyprowski@samsung.com\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nTested-by: Rob Clark \u003crob.clark@linaro.org\u003e\nTested-by: Ohad Ben-Cohen \u003cohad@wizery.com\u003e\nTested-by: Benjamin Gaignard \u003cbenjamin.gaignard@linaro.org\u003e\nTested-by: Robert Nelson \u003crobertcnelson@gmail.com\u003e\nTested-by: Barry Song \u003cBaohua.Song@csr.com\u003e\nSigned-off-by: Laura Abbott \u003clauraa@codeaurora.org\u003e\n"
    },
    {
      "commit": "d4158d253a1993af1faf103575045350313caeda",
      "tree": "531d46fbfc6a9d06c3cdd7f36ddc6dd9620efd93",
      "parents": [
        "c6114bf2a0c067ee77ce240e82694c88a4f31a7e"
      ],
      "author": {
        "name": "Michal Nazarewicz",
        "email": "mina86@mina86.com",
        "time": "Thu Dec 29 13:09:50 2011 +0100"
      },
      "committer": {
        "name": "Laura Abbott",
        "email": "lauraa@codeaurora.org",
        "time": "Tue Jun 26 10:32:20 2012 -0700"
      },
      "message": "mm: mmzone: MIGRATE_CMA migration type added\n\nThe MIGRATE_CMA migration type has two main characteristics:\n(i) only movable pages can be allocated from MIGRATE_CMA\npageblocks and (ii) page allocator will never change migration\ntype of MIGRATE_CMA pageblocks.\n\nThis guarantees (to some degree) that page in a MIGRATE_CMA page\nblock can always be migrated somewhere else (unless there\u0027s no\nmemory left in the system).\n\nIt is designed to be used for allocating big chunks (eg. 10MiB)\nof physically contiguous memory.  Once driver requests\ncontiguous memory, pages from MIGRATE_CMA pageblocks may be\nmigrated away to create a contiguous block.\n\nTo minimise number of migrations, MIGRATE_CMA migration type\nis the last type tried when page allocator falls back to other\nmigration types when requested.\n\nChange-Id: I2bb0954de8be4f212b03dea0e5a508048684bda2\nSigned-off-by: Michal Nazarewicz \u003cmina86@mina86.com\u003e\nSigned-off-by: Marek Szyprowski \u003cm.szyprowski@samsung.com\u003e\nSigned-off-by: Kyungmin Park \u003ckyungmin.park@samsung.com\u003e\nAcked-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nTested-by: Rob Clark \u003crob.clark@linaro.org\u003e\nTested-by: Ohad Ben-Cohen \u003cohad@wizery.com\u003e\nTested-by: Benjamin Gaignard \u003cbenjamin.gaignard@linaro.org\u003e\nTested-by: Robert Nelson \u003crobertcnelson@gmail.com\u003e\nTested-by: Barry Song \u003cBaohua.Song@csr.com\u003e\nSigned-off-by: Laura Abbott \u003clauraa@codeaurora.org\u003e\n"
    },
    {
      "commit": "c6114bf2a0c067ee77ce240e82694c88a4f31a7e",
      "tree": "c889aaa7a6dc15362538105501e22a751b125a72",
      "parents": [
        "4c1ff37656a55618a00d3462bd1631f485a3ee8c"
      ],
      "author": {
        "name": "Michal Nazarewicz",
        "email": "mina86@mina86.com",
        "time": "Wed Jan 11 15:31:33 2012 +0100"
      },
      "committer": {
        "name": "Laura Abbott",
        "email": "lauraa@codeaurora.org",
        "time": "Tue Jun 26 10:32:20 2012 -0700"
      },
      "message": "mm: page_alloc: change fallbacks array handling\n\nThis commit adds a row for MIGRATE_ISOLATE type to the fallbacks array\nwhich was missing from it.  It also, changes the array traversal logic\na little making MIGRATE_RESERVE an end marker.  The letter change,\nremoves the implicit MIGRATE_UNMOVABLE from the end of each row which\nwas read by __rmqueue_fallback() function.\n\nChange-Id: Icdbbebb9eece2468c0b963964be9a4c579cbc775\nSigned-off-by: Michal Nazarewicz \u003cmina86@mina86.com\u003e\nSigned-off-by: Marek Szyprowski \u003cm.szyprowski@samsung.com\u003e\nAcked-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nTested-by: Rob Clark \u003crob.clark@linaro.org\u003e\nTested-by: Ohad Ben-Cohen \u003cohad@wizery.com\u003e\nTested-by: Benjamin Gaignard \u003cbenjamin.gaignard@linaro.org\u003e\nTested-by: Robert Nelson \u003crobertcnelson@gmail.com\u003e\nTested-by: Barry Song \u003cBaohua.Song@csr.com\u003e\nSigned-off-by: Laura Abbott \u003clauraa@codeaurora.org\u003e\n"
    },
    {
      "commit": "4c1ff37656a55618a00d3462bd1631f485a3ee8c",
      "tree": "3fa7d31768f8a104bf4a1e0ae376e0a992961524",
      "parents": [
        "02ff1deb01f25ce3cdedb52d852974d0d2afe406"
      ],
      "author": {
        "name": "Michal Nazarewicz",
        "email": "mina86@mina86.com",
        "time": "Thu Dec 29 13:09:50 2011 +0100"
      },
      "committer": {
        "name": "Laura Abbott",
        "email": "lauraa@codeaurora.org",
        "time": "Tue Jun 26 10:32:20 2012 -0700"
      },
      "message": "mm: page_alloc: introduce alloc_contig_range()\n\nThis commit adds the alloc_contig_range() function which tries\nto allocate given range of pages.  It tries to migrate all\nalready allocated pages that fall in the range thus freeing them.\nOnce all pages in the range are freed they are removed from the\nbuddy system thus allocated for the caller to use.\n\nChange-Id: I659b133b1c9991568bfb6bd09c7792e15f2a2bfb\nSigned-off-by: Michal Nazarewicz \u003cmina86@mina86.com\u003e\nSigned-off-by: Marek Szyprowski \u003cm.szyprowski@samsung.com\u003e\nAcked-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nTested-by: Rob Clark \u003crob.clark@linaro.org\u003e\nTested-by: Ohad Ben-Cohen \u003cohad@wizery.com\u003e\nTested-by: Benjamin Gaignard \u003cbenjamin.gaignard@linaro.org\u003e\nTested-by: Robert Nelson \u003crobertcnelson@gmail.com\u003e\nTested-by: Barry Song \u003cBaohua.Song@csr.com\u003e\nSigned-off-by: Laura Abbott \u003clauraa@codeaurora.org\u003e\n"
    },
    {
      "commit": "02ff1deb01f25ce3cdedb52d852974d0d2afe406",
      "tree": "4779f959959d1b3b33efe2ee52839d16c6c70a9c",
      "parents": [
        "61ee2fc958fa38c9b0cc834aef6a234b4376cff3"
      ],
      "author": {
        "name": "Michal Nazarewicz",
        "email": "mina86@mina86.com",
        "time": "Thu Dec 29 13:09:50 2011 +0100"
      },
      "committer": {
        "name": "Laura Abbott",
        "email": "lauraa@codeaurora.org",
        "time": "Tue Jun 26 10:32:20 2012 -0700"
      },
      "message": "mm: compaction: export some of the functions\n\nThis commit exports some of the functions from compaction.c file\noutside of it adding their declaration into internal.h header\nfile so that other mm related code can use them.\n\nThis forced compaction.c to always be compiled (as opposed to being\ncompiled only if CONFIG_COMPACTION is defined) but as to avoid\nintroducing code that user did not ask for, part of the compaction.c\nis now wrapped in on #ifdef.\n\nChange-Id: Id51bc882d1befd5afef2c8d1e5dcc7993496893c\nSigned-off-by: Michal Nazarewicz \u003cmina86@mina86.com\u003e\nSigned-off-by: Marek Szyprowski \u003cm.szyprowski@samsung.com\u003e\nAcked-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nTested-by: Rob Clark \u003crob.clark@linaro.org\u003e\nTested-by: Ohad Ben-Cohen \u003cohad@wizery.com\u003e\nTested-by: Benjamin Gaignard \u003cbenjamin.gaignard@linaro.org\u003e\nTested-by: Robert Nelson \u003crobertcnelson@gmail.com\u003e\nTested-by: Barry Song \u003cBaohua.Song@csr.com\u003e\nSigned-off-by: Laura Abbott \u003clauraa@codeaurora.org\u003e\n"
    },
    {
      "commit": "61ee2fc958fa38c9b0cc834aef6a234b4376cff3",
      "tree": "a8b50b1d9b8ecc28dcaae5f063136da2d77b08ea",
      "parents": [
        "2770ccfd916e6167af0c6fae07228329f9c3abe9"
      ],
      "author": {
        "name": "Michal Nazarewicz",
        "email": "mina86@mina86.com",
        "time": "Mon Jan 30 13:24:03 2012 +0100"
      },
      "committer": {
        "name": "Laura Abbott",
        "email": "lauraa@codeaurora.org",
        "time": "Tue Jun 26 10:32:19 2012 -0700"
      },
      "message": "mm: compaction: introduce isolate_freepages_range()\n\nThis commit introduces isolate_freepages_range() function which\ngeneralises isolate_freepages_block() so that it can be used on\narbitrary PFN ranges.\n\nisolate_freepages_block() is left with only minor changes.\n\nChange-Id: I59917adce1fa71ef9f0534abb5ba07f84c6dcdc7\nSigned-off-by: Michal Nazarewicz \u003cmina86@mina86.com\u003e\nSigned-off-by: Marek Szyprowski \u003cm.szyprowski@samsung.com\u003e\nAcked-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nTested-by: Rob Clark \u003crob.clark@linaro.org\u003e\nTested-by: Ohad Ben-Cohen \u003cohad@wizery.com\u003e\nTested-by: Benjamin Gaignard \u003cbenjamin.gaignard@linaro.org\u003e\nTested-by: Robert Nelson \u003crobertcnelson@gmail.com\u003e\nTested-by: Barry Song \u003cBaohua.Song@csr.com\u003e\nSigned-off-by: Laura Abbott \u003clauraa@codeaurora.org\u003e\n"
    },
    {
      "commit": "2770ccfd916e6167af0c6fae07228329f9c3abe9",
      "tree": "dd6bcf34233b58c297f3f1f23005d9736662bd56",
      "parents": [
        "a196a6ca54e51c35bc0b8392ff9a1c5599d8fc19"
      ],
      "author": {
        "name": "Michal Nazarewicz",
        "email": "mina86@mina86.com",
        "time": "Mon Jan 30 13:23:47 2012 +0100"
      },
      "committer": {
        "name": "Laura Abbott",
        "email": "lauraa@codeaurora.org",
        "time": "Tue Jun 26 10:32:19 2012 -0700"
      },
      "message": "mm: compaction: introduce map_pages()\n\nThis commit creates a map_pages() function which map pages freed\nusing split_free_pages().  This merely moves some code from\nisolate_freepages() so that it can be reused in other places.\n\nChange-Id: Ia67eaee00ca88a402f21a651de409bd93ae00312\nSigned-off-by: Michal Nazarewicz \u003cmina86@mina86.com\u003e\nSigned-off-by: Marek Szyprowski \u003cm.szyprowski@samsung.com\u003e\nAcked-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nTested-by: Robert Nelson \u003crobertcnelson@gmail.com\u003e\nTested-by: Barry Song \u003cBaohua.Song@csr.com\u003e\nSigned-off-by: Laura Abbott \u003clauraa@codeaurora.org\u003e\n"
    },
    {
      "commit": "a196a6ca54e51c35bc0b8392ff9a1c5599d8fc19",
      "tree": "227a0aa6eb3989d67dbb70149cb2384de21a6bde",
      "parents": [
        "adc95fd67db3a93510c858f558f2e52d7571e1db"
      ],
      "author": {
        "name": "Michal Nazarewicz",
        "email": "mina86@mina86.com",
        "time": "Mon Jan 30 13:16:26 2012 +0100"
      },
      "committer": {
        "name": "Laura Abbott",
        "email": "lauraa@codeaurora.org",
        "time": "Tue Jun 26 10:32:19 2012 -0700"
      },
      "message": "mm: compaction: introduce isolate_migratepages_range()\n\nThis commit introduces isolate_migratepages_range() function which\nextracts functionality from isolate_migratepages() so that it can be\nused on arbitrary PFN ranges.\n\nisolate_migratepages() function is implemented as a simple wrapper\naround isolate_migratepages_range().\n\nChange-Id: I8e82434ba75d9862bec485392eb079c9d3b70ae0\nSigned-off-by: Michal Nazarewicz \u003cmina86@mina86.com\u003e\nSigned-off-by: Marek Szyprowski \u003cm.szyprowski@samsung.com\u003e\nAcked-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nTested-by: Rob Clark \u003crob.clark@linaro.org\u003e\nTested-by: Ohad Ben-Cohen \u003cohad@wizery.com\u003e\nTested-by: Benjamin Gaignard \u003cbenjamin.gaignard@linaro.org\u003e\nTested-by: Robert Nelson \u003crobertcnelson@gmail.com\u003e\nTested-by: Barry Song \u003cBaohua.Song@csr.com\u003e\nSigned-off-by: Laura Abbott \u003clauraa@codeaurora.org\u003e\n"
    },
    {
      "commit": "adc95fd67db3a93510c858f558f2e52d7571e1db",
      "tree": "99764741d97c21f1d13d7df4fe46d2efbef5aa63",
      "parents": [
        "63e6e20a39c7636d81cd1912ccb114ed9830eeaa"
      ],
      "author": {
        "name": "Michal Nazarewicz",
        "email": "mina86@mina86.com",
        "time": "Wed Jan 11 15:16:11 2012 +0100"
      },
      "committer": {
        "name": "Laura Abbott",
        "email": "lauraa@codeaurora.org",
        "time": "Tue Jun 26 10:32:19 2012 -0700"
      },
      "message": "mm: page_alloc: remove trailing whitespace\n\nChange-Id: I1f112fa3be958d1f9d24ebd076ef4ddcf91fe868\nSigned-off-by: Michal Nazarewicz \u003cmina86@mina86.com\u003e\nSigned-off-by: Marek Szyprowski \u003cm.szyprowski@samsung.com\u003e\nAcked-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nSigned-off-by: Laura Abbott \u003clauraa@codeaurora.org\u003e\n"
    },
    {
      "commit": "5310349dc7cd8a900bb33934df103e86c65baea0",
      "tree": "171a74fa7f29fafd235751cb77b3d21c6874b3cc",
      "parents": [
        "26d45460e9699e041a399713f1524ceecf3df200"
      ],
      "author": {
        "name": "Shashank Mittal",
        "email": "mittals@codeaurora.org",
        "time": "Tue Jun 19 19:45:35 2012 -0700"
      },
      "committer": {
        "name": "Shashank Mittal",
        "email": "mittals@codeaurora.org",
        "time": "Tue Jun 19 19:51:08 2012 -0700"
      },
      "message": "mm: Fix a compiler warning.\n\nFix compiler warning for a variable not initialized.\n\nChange-Id: Ieedeb1cfb5a22eb5f671e6bfd1361315347a49af\nSigned-off-by: Shashank Mittal \u003cmittals@codeaurora.org\u003e\n"
    },
    {
      "commit": "fa002621c590c56e13cd86e944919a5771a6e03e",
      "tree": "cfd4cd60944226684e60737b02712414a4bc9d4d",
      "parents": [
        "e847911515edb5b1109be0e9e6e8206e42e048aa"
      ],
      "author": {
        "name": "KyongHo",
        "email": "pullip.cho@samsung.com",
        "time": "Tue May 29 15:06:49 2012 -0700"
      },
      "committer": {
        "name": "Steve Muckle",
        "email": "smuckle@codeaurora.org",
        "time": "Wed Jun 06 19:01:38 2012 -0700"
      },
      "message": "mm: fix faulty initialization in vmalloc_init()\n\nThe transfer of -\u003eflags causes some of the static mapping virtual\naddresses to be prematurely freed (before the mapping is removed) because\nVM_LAZY_FREE gets \"set\" if tmp-\u003eflags has VM_IOREMAP set.  This might\ncause subsequent vmalloc/ioremap calls to fail because it might allocate\none of the freed virtual address ranges that aren\u0027t unmapped.\n\nva-\u003eflags has different types of flags from tmp-\u003eflags.  If a region with\nVM_IOREMAP set is registered with vm_area_add_early(), it will be removed\nby __purge_vmap_area_lazy().\n\nFix vmalloc_init() to correctly initialize vmap_area for the given\nvm_struct.\n\nAlso initialise va-\u003evm.  If it is not set, find_vm_area() for the early\nvm regions will always fail.\n\nSigned-off-by: KyongHo Cho \u003cpullip.cho@samsung.com\u003e\nCc: \"Olav Haugan\" \u003cohaugan@codeaurora.org\u003e\nCc: \u003cstable@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nSigned-off-by: Steve Muckle \u003csmuckle@codeaurora.org\u003e\n"
    },
    {
      "commit": "f132c6cf77251e011e1dad0ec88c0b1fda16d5aa",
      "tree": "f04b469a3547a19b7bdbe110adc571eb71c93328",
      "parents": [
        "23016defd7db701a01dc49f972ad6b1bae9651c2",
        "3f6240f3e4e2608caf1a70d614ada658cbcbe7be"
      ],
      "author": {
        "name": "Steve Muckle",
        "email": "smuckle@codeaurora.org",
        "time": "Wed Jun 06 18:30:57 2012 -0700"
      },
      "committer": {
        "name": "Steve Muckle",
        "email": "smuckle@codeaurora.org",
        "time": "Wed Jun 06 18:45:28 2012 -0700"
      },
      "message": "Merge commit \u0027AU_LINUX_ANDROID_ICS.04.00.04.00.126\u0027 into msm-3.4\n\nAU_LINUX_ANDROID_ICS.04.00.04.00.126 from msm-3.0.\nFirst parent is from google/android-3.4.\n\n* commit \u0027AU_LINUX_ANDROID_ICS.04.00.04.00.126\u0027: (8712 commits)\n  PRNG: Device tree entry for qrng device.\n  vidc:1080p: Set video core timeout value for Thumbnail mode\n  msm: sps: improve the debugging support in SPS driver\n  board-8064 msm: Overlap secure and non secure video firmware heaps.\n  msm: clock: Add handoff ops for 7x30 and copper XO clocks\n  msm_fb: display: Wait for external vsync before DTV IOMMU unmap\n  msm: Fix ciruclar dependency in debug UART settings\n  msm: gdsc: Add GDSC regulator driver for msm-copper\n  defconfig: Enable Mobicore Driver.\n  mobicore: Add mobicore driver.\n  mobicore: rename variable to lower case.\n  mobicore: rename folder.\n  mobicore: add makefiles\n  mobicore: initial import of kernel driver\n  ASoC: msm: Add SLIMBUS_2_RX CPU DAI\n  board-8064-gpio: Update FUNC for EPM SPI CS\n  msm_fb: display: Remove chicken bit config during video playback\n  mmc: msm_sdcc: enable the sanitize capability\n  msm-fb: display: lm2 writeback support on mpq platfroms\n  msm_fb: display: Disable LVDS phy \u0026 pll during panel off\n  ...\n\nSigned-off-by: Steve Muckle \u003csmuckle@codeaurora.org\u003e\n"
    },
    {
      "commit": "5500e4fab219bf210f22d2334cc98f3ca8f8912d",
      "tree": "60f3edf480190ee60676348c1ca2730a699f8671",
      "parents": [
        "903f6c716db3d4e26952aae9717f81dd5bc9e4ba",
        "76e10d158efb6d4516018846f60c2ab5501900bc"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri May 25 13:56:28 2012 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri May 25 13:56:28 2012 -0700"
      },
      "message": "Merge commit \u0027v3.4\u0027 into android-3.4\n"
    },
    {
      "commit": "1aa4e5a974b3087d29510802810170c071df8546",
      "tree": "f2d984de7ce60ce31d933e51fcc24ddbd4bbf985",
      "parents": [
        "03bb493026b10388b5aea58f723d5c15d7ae77eb"
      ],
      "author": {
        "name": "Stephen Boyd",
        "email": "sboyd@codeaurora.org",
        "time": "Mon May 14 18:55:50 2012 -0700"
      },
      "committer": {
        "name": "Stephen Boyd",
        "email": "sboyd@codeaurora.org",
        "time": "Mon May 21 14:10:46 2012 -0700"
      },
      "message": "memblock: Add memblock_overlaps_memory()\n\nAdd a new function, memblock_overlaps_memory(), to check if a\nregion overlaps with a memory bank. This will be used by\nperipheral loader code to detect when kernel memory would be\noverwritten.\n\nChange-Id: I851f8f416a0f36e85c0e19536b5209f7d4bd431c\nSigned-off-by: Stephen Boyd \u003csboyd@codeaurora.org\u003e\n"
    },
    {
      "commit": "62ade86ab6c7e26409229ca45503cae97bf698cf",
      "tree": "569ce54e1fce1f985cc9525712c39b2b020e1fdf",
      "parents": [
        "b1dab2f0409c478fd2d9e227c2c018524eca9603"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hughd@google.com",
        "time": "Fri May 18 11:28:34 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat May 19 10:10:27 2012 -0700"
      },
      "message": "memcg,thp: fix res_counter:96 regression\n\nOccasionally, testing memcg\u0027s move_charge_at_immigrate on rc7 shows\na flurry of hundreds of warnings at kernel/res_counter.c:96, where\nres_counter_uncharge_locked() does WARN_ON(counter-\u003eusage \u003c val).\n\nThe first trace of each flurry implicates __mem_cgroup_cancel_charge()\nof mc.precharge, and an audit of mc.precharge handling points to\nmem_cgroup_move_charge_pte_range()\u0027s THP handling in commit 12724850e806\n(\"memcg: avoid THP split in task migration\").\n\nChecking !mc.precharge is good everywhere else, when a single page is to\nbe charged; but here the \"mc.precharge -\u003d HPAGE_PMD_NR\" likely to\nfollow, is liable to result in underflow (a lot can change since the\nprecharge was estimated).\n\nSimply check against HPAGE_PMD_NR: there\u0027s probably a better\nalternative, trying precharge for more, splitting if unsuccessful; but\nthis one-liner is safer for now - no kernel/res_counter.c:96 warnings\nseen in 26 hours.\n\nSigned-off-by: Hugh Dickins \u003chughd@google.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "02e1a9cd1ea99b67a668f13b61fdf5d42115db0a",
      "tree": "9b3bda333e113047b62f79681cad416259bee160",
      "parents": [
        "eb94cd96e05d6c65a07937e66a04ea265c1b767d"
      ],
      "author": {
        "name": "majianpeng",
        "email": "majianpeng@gmail.com",
        "time": "Thu May 17 17:03:26 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 17 18:00:51 2012 -0700"
      },
      "message": "slub: missing test for partial pages flush work in flush_all()\n\nI found some kernel messages such as:\n\n    SLUB raid5-md127: kmem_cache_destroy called for cache that still has objects.\n    Pid: 6143, comm: mdadm Tainted: G           O 3.4.0-rc6+        #75\n    Call Trace:\n    kmem_cache_destroy+0x328/0x400\n    free_conf+0x2d/0xf0 [raid456]\n    stop+0x41/0x60 [raid456]\n    md_stop+0x1a/0x60 [md_mod]\n    do_md_stop+0x74/0x470 [md_mod]\n    md_ioctl+0xff/0x11f0 [md_mod]\n    blkdev_ioctl+0xd8/0x7a0\n    block_ioctl+0x3b/0x40\n    do_vfs_ioctl+0x96/0x560\n    sys_ioctl+0x91/0xa0\n    system_call_fastpath+0x16/0x1b\n\nThen using kmemleak I found these messages:\n\n    unreferenced object 0xffff8800b6db7380 (size 112):\n      comm \"mdadm\", pid 5783, jiffies 4294810749 (age 90.589s)\n      hex dump (first 32 bytes):\n        01 01 db b6 ad 4e ad de ff ff ff ff ff ff ff ff  .....N..........\n        ff ff ff ff ff ff ff ff 98 40 4a 82 ff ff ff ff  .........@J.....\n      backtrace:\n        kmemleak_alloc+0x21/0x50\n        kmem_cache_alloc+0xeb/0x1b0\n        kmem_cache_open+0x2f1/0x430\n        kmem_cache_create+0x158/0x320\n        setup_conf+0x649/0x770 [raid456]\n        run+0x68b/0x840 [raid456]\n        md_run+0x529/0x940 [md_mod]\n        do_md_run+0x18/0xc0 [md_mod]\n        md_ioctl+0xba8/0x11f0 [md_mod]\n        blkdev_ioctl+0xd8/0x7a0\n        block_ioctl+0x3b/0x40\n        do_vfs_ioctl+0x96/0x560\n        sys_ioctl+0x91/0xa0\n        system_call_fastpath+0x16/0x1b\n\nThis bug was introduced by commit a8364d5555b (\"slub: only IPI CPUs that\nhave per cpu obj to flush\"), which did not include checks for per cpu\npartial pages being present on a cpu.\n\nSigned-off-by: majianpeng \u003cmajianpeng@gmail.com\u003e\nCc: Gilad Ben-Yossef \u003cgilad@benyossef.com\u003e\nAcked-by: Christoph Lameter \u003ccl@linux.com\u003e\nCc: Pekka Enberg \u003cpenberg@kernel.org\u003e\nTested-by: Jeff Layton \u003cjlayton@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": "ec0b571c19ac62ab0bb80d373a3d4922a48b4b75",
      "tree": "10c597f5227c969c3f2b909fbeb29725a0c5c6e8",
      "parents": [
        "7bb8b65407a519d3a90dd8cecdd1ccd10ee0c6cc",
        "36be50515fe2aef61533b516fa2576a2c7fe7664"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Mon May 14 16:41:02 2012 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Mon May 14 16:41:02 2012 -0700"
      },
      "message": "Merge commit \u0027v3.4-rc7\u0027 into android-3.4\n"
    },
    {
      "commit": "1b76b02f15c70d5f392ee2e231fbd20a26063a77",
      "tree": "5c7bee2e8a5333e9f99b64287d587a026386459e",
      "parents": [
        "d60b9c16d7bae49b75255520abd7dfd2e94627bc"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hughd@google.com",
        "time": "Fri May 11 01:00:07 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 11 09:23:39 2012 -0700"
      },
      "message": "mm: raise MemFree by reverting percpu_pagelist_fraction to 0\n\nWhy is there less MemFree than there used to be?  It perturbed a test,\nso I\u0027ve just been bisecting linux-next, and now find the offender went\nupstream yesterday.\n\nCommit 93278814d359 \"mm: fix division by 0 in percpu_pagelist_fraction()\"\nmistakenly initialized percpu_pagelist_fraction to the sysctl\u0027s minimum 8,\nwhich leaves 1/8th of memory on percpu lists (on each cpu??); but most of\nus expect it to be left unset at 0 (and it\u0027s not then used as a divisor).\n\n  MemTotal: 8061476kB  8061476kB  8061476kB  8061476kB  8061476kB  8061476kB\n  Repetitive test with percpu_pagelist_fraction 8:\n  MemFree:  6948420kB  6237172kB  6949696kB  6840692kB  6949048kB  6862984kB\n  Same test with percpu_pagelist_fraction back to 0:\n  MemFree:  7945000kB  7944908kB  7948568kB  7949060kB  7948796kB  7948812kB\n\nSigned-off-by: Hugh Dickins \u003chughd@google.com\u003e\n[ We really should fix the crazy sysctl interface too, but that\u0027s a\n  separate thing - Linus ]\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7c283324da366a3e6ffaad4352a51a3c71fcae17",
      "tree": "b4d02c340a17ac5134889c4eec7dcd06d407e3ca",
      "parents": [
        "9e5869f8d70d94850cf86163c57ba8d4daa29924",
        "17ff3c1fa4c7bd0c38d751715033023ebf32fc96"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 10 15:17:24 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 10 15:17:24 2012 -0700"
      },
      "message": "Merge branch \u0027akpm\u0027 (Andrew\u0027s patch-bomb)\n\nMerge misc fixes from Andrew Morton.\n\n* emailed from Andrew Morton \u003cakpm@linux-foundation.org\u003e: (8 patches)\n  MAINTAINERS: add maintainer for LED subsystem\n  mm: nobootmem: fix sign extend problem in __free_pages_memory()\n  drivers/leds: correct __devexit annotations\n  memcg: free spare array to avoid memory leak\n  namespaces, pid_ns: fix leakage on fork() failure\n  hugetlb: prevent BUG_ON in hugetlb_fault() -\u003e hugetlb_cow()\n  mm: fix division by 0 in percpu_pagelist_fraction()\n  proc/pid/pagemap: correctly report non-present ptes and holes between vmas\n"
    },
    {
      "commit": "6bc2e853c6b46a6041980d58200ad9b0a73a60ff",
      "tree": "8e36db26a891ee14f9341eaa77f698aeb44301d7",
      "parents": [
        "b8cd742acfd78a4689148fb80cf74bc26e7f1f3c"
      ],
      "author": {
        "name": "Russ Anderson",
        "email": "rja@sgi.com",
        "time": "Thu May 10 13:01:46 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 10 15:06:44 2012 -0700"
      },
      "message": "mm: nobootmem: fix sign extend problem in __free_pages_memory()\n\nSystems with 8 TBytes of memory or greater can hit a problem where only\nthe the first 8 TB of memory shows up.  This is due to \"int i\" being\nsmaller than \"unsigned long start_aligned\", causing the high bits to be\ndropped.\n\nThe fix is to change `i\u0027 to unsigned long to match start_aligned\nand end_aligned.\n\nThanks to Jack Steiner for assistance tracking this down.\n\nSigned-off-by: Russ Anderson \u003crja@sgi.com\u003e\nCc: Jack Steiner \u003csteiner@sgi.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nCc: David S. Miller \u003cdavem@davemloft.net\u003e\nCc: Yinghai Lu \u003cyinghai@kernel.org\u003e\nCc: Gavin Shan \u003cshangw@linux.vnet.ibm.com\u003e\nCc: \u003cstable@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8c7577637ca31385e92769a77e2ab5b428e8b99c",
      "tree": "ecf350b4defdd9ad31a9d1eb6353b890c5951eb9",
      "parents": [
        "5e2bf0142231194d36fdc9596b36a261ed2b9fe7"
      ],
      "author": {
        "name": "Sha Zhengju",
        "email": "handai.szj@taobao.com",
        "time": "Thu May 10 13:01:45 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 10 15:06:44 2012 -0700"
      },
      "message": "memcg: free spare array to avoid memory leak\n\nWhen the last event is unregistered, there is no need to keep the spare\narray anymore.  So free it to avoid memory leak.\n\nSigned-off-by: Sha Zhengju \u003chandai.szj@taobao.com\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nReviewed-by: Kirill A. Shutemov \u003ckirill@shutemov.name\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4998a6c0edce7fae9c0a5463f6ec3fa585258ee7",
      "tree": "d19a02785d8a5793abefb0ec3edb435c77e96a7e",
      "parents": [
        "93278814d3590eba0ee360b8d69a35c7f2203ea8"
      ],
      "author": {
        "name": "Chris Metcalf",
        "email": "cmetcalf@tilera.com",
        "time": "Thu May 10 13:01:44 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 10 15:06:44 2012 -0700"
      },
      "message": "hugetlb: prevent BUG_ON in hugetlb_fault() -\u003e hugetlb_cow()\n\nCommit 66aebce747eaf (\"hugetlb: fix race condition in hugetlb_fault()\")\nadded code to avoid a race condition by elevating the page refcount in\nhugetlb_fault() while calling hugetlb_cow().\n\nHowever, one code path in hugetlb_cow() includes an assertion that the\npage count is 1, whereas it may now also have the value 2 in this path.\n\nThe consensus is that this BUG_ON has served its purpose, so rather than\nextending it to cover both cases, we just remove it.\n\nSigned-off-by: Chris Metcalf \u003ccmetcalf@tilera.com\u003e\nAcked-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nAcked-by: Hillf Danton \u003cdhillf@gmail.com\u003e\nAcked-by: Hugh Dickins \u003chughd@google.com\u003e\nCc: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: \u003cstable@vger.kernel.org\u003e\t[3.0.29+, 3.2.16+, 3.3.3+]\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "93278814d3590eba0ee360b8d69a35c7f2203ea8",
      "tree": "17784192015e71464f1064af2b071c8cd7fe7f13",
      "parents": [
        "16fbdce62d9c89b794e303f4a232e4749b77e9ac"
      ],
      "author": {
        "name": "Sasha Levin",
        "email": "levinsasha928@gmail.com",
        "time": "Thu May 10 13:01:44 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 10 15:06:44 2012 -0700"
      },
      "message": "mm: fix division by 0 in percpu_pagelist_fraction()\n\npercpu_pagelist_fraction_sysctl_handler() has only considered -EINVAL as\na possible error from proc_dointvec_minmax().\n\nIf any other error is returned, it would proceed to divide by zero since\npercpu_pagelist_fraction wasn\u0027t getting initialized at any point.  For\nexample, writing 0 bytes into the proc file would trigger the issue.\n\nSigned-off-by: Sasha Levin \u003clevinsasha928@gmail.com\u003e\nReviewed-by: Minchan Kim \u003cminchan@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": "100d13c3b5b9410f604b86f5e0a34da64b8cf659",
      "tree": "d28702d0290cd2da7e443d798baab10ac831c4fe",
      "parents": [
        "42b64281453249dac52861f9b97d18552a7ec62b"
      ],
      "author": {
        "name": "Catalin Marinas",
        "email": "catalin.marinas@arm.com",
        "time": "Wed May 09 16:55:19 2012 +0100"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed May 09 10:13:29 2012 -0700"
      },
      "message": "kmemleak: Fix the kmemleak tracking of the percpu areas with !SMP\n\nKmemleak tracks the percpu allocations via a specific API and the\noriginally allocated areas must be removed from kmemleak (via\nkmemleak_free). The code was already doing this for SMP systems.\n\nReported-by: Sami Liedes \u003csami.liedes@iki.fi\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nSigned-off-by: Catalin Marinas \u003ccatalin.marinas@arm.com\u003e\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\n"
    },
    {
      "commit": "42b64281453249dac52861f9b97d18552a7ec62b",
      "tree": "1a9ca6f44ee7834c5b0a9757631534452b0fc3bd",
      "parents": [
        "789505b05752239d957dbfa84b183e0d7a641952"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Fri Apr 27 08:42:53 2012 -0700"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed May 09 10:08:16 2012 -0700"
      },
      "message": "percpu: pcpu_embed_first_chunk() should free unused parts after all allocs are complete\n\npcpu_embed_first_chunk() allocates memory for each node, copies percpu\ndata and frees unused portions of it before proceeding to the next\ngroup.  This assumes that allocations for different nodes doesn\u0027t\noverlap; however, depending on memory topology, the bootmem allocator\nmay end up allocating memory from a different node than the requested\none which may overlap with the portion freed from one of the previous\npercpu areas.  This leads to percpu groups for different nodes\noverlapping which is a serious bug.\n\nThis patch separates out copy \u0026 partial free from the allocation loop\nsuch that all allocations are complete before partial frees happen.\n\nThis also fixes overlapping frees which could happen on allocation\nfailure path - out_free_areas path frees whole groups but the groups\ncould have portions freed at that point.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: stable@vger.kernel.org\nReported-by: \"Pavel V. Panteleev\" \u003cpp_84@mail.ru\u003e\nTested-by: \"Pavel V. Panteleev\" \u003cpp_84@mail.ru\u003e\nLKML-Reference: \u003cE1SNhwY-0007ui-V7.pp_84-mail-ru@f220.mail.ru\u003e\n"
    },
    {
      "commit": "e9b19cd43f3f55a7f1d1c9a033feda8dabce3be6",
      "tree": "2cb60b7af0bba9f69eb54db66f6e25f7c0fc898c",
      "parents": [
        "301cdf5c75695addaaf3b4857b6df7a1d764503e",
        "d5e28005a1d2e67833852f4c9ea8ec206ea3ff85"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 08 11:06:07 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 08 11:06:07 2012 -0700"
      },
      "message": "Merge branch \u0027for-3.4-fixes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu\n\nPull two percpu fixes from Tejun Heo:\n \"One adds missing KERN_CONT on split printk()s and the other makes\n  the percpu allocator avoid using PMD_SIZE as atom_size on x86_32.\n\n  Using PMD_SIZE led to vmalloc area exhaustion on certain\n  configurations (x86_32 android) and the only cost of using PAGE_SIZE\n  instead is static percpu area not being aligned to large page\n  mapping.\"\n\n* \u0027for-3.4-fixes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu:\n  percpu, x86: don\u0027t use PMD_SIZE as embedded atom_size on 32bit\n  percpu: use KERN_CONT in pcpu_dump_alloc_info()\n"
    },
    {
      "commit": "aadf030d84352a91cdadf50f947da739c5611450",
      "tree": "5f22ec57ee257776b4c157f0c91f3612f05ed6c5",
      "parents": [
        "aad2732ba0dddcf3446a4e3c4843496759c1c305",
        "69964ea4c7b68c9399f7977aa5b9aa6539a6a98a"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue May 01 15:47:09 2012 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue May 01 15:47:09 2012 -0700"
      },
      "message": "Merge commit \u0027v3.4-rc5\u0027 into android-3.4\n"
    },
    {
      "commit": "957265bd4fe182af757886f117416d66f68854aa",
      "tree": "177cee182ea61611f0b80db704203bf72ee4f3cb",
      "parents": [
        "60c98d9abbd1ff3274b904027690f3c33d656250",
        "66f75a5d028beaf67c931435fdc3e7823125730c"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri Apr 27 14:03:45 2012 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri Apr 27 14:03:45 2012 -0700"
      },
      "message": "Merge commit \u0027v3.4-rc4\u0027 into android-3.4\n"
    },
    {
      "commit": "110a5c8b389407e1e859c43293179f9089671a60",
      "tree": "83245c842a809ecd728f12814a344e7224109d7a",
      "parents": [
        "2300fd67b4f29eec19addb15a8571837228f63fc",
        "6e8b09eaf268bceac0c62e389b4bc0cb83dfb8e5"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 26 15:24:45 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 26 15:24:45 2012 -0700"
      },
      "message": "Merge branch \u0027akpm\u0027 (Andrew\u0027s patch-bomb)\n\nMerge fixes from Andrew Morton:\n \"13 fixes.  The acerhdf patches aren\u0027t (really) fixes.  But they\u0027ve\n  been stuck in my tree for up to two years, sent to Matthew multiple\n  times and the developers are unhappy.\"\n\n* emailed from Andrew Morton \u003cakpm@linux-foundation.org\u003e: (13 patches)\n  mm: fix NULL ptr dereference in move_pages\n  mm: fix NULL ptr dereference in migrate_pages\n  revert \"proc: clear_refs: do not clear reserved pages\"\n  drivers/rtc/rtc-ds1307.c: fix BUG shown with lock debugging enabled\n  arch/arm/mach-ux500/mbox-db5500.c: world-writable sysfs fifo file\n  hugetlbfs: lockdep annotate root inode properly\n  acerhdf: lowered default temp fanon/fanoff values\n  acerhdf: add support for new hardware\n  acerhdf: add support for Aspire 1410 BIOS v1.3314\n  fs/buffer.c: remove BUG() in possible but rare condition\n  mm: fix up the vmscan stat in vmstat\n  epoll: clear the tfile_check_list on -ELOOP\n  mm/hugetlb: fix warning in alloc_huge_page/dequeue_huge_page_vma\n"
    },
    {
      "commit": "6e8b09eaf268bceac0c62e389b4bc0cb83dfb8e5",
      "tree": "8b284da8a79355ef631c8c418c369fd1ec83b251",
      "parents": [
        "f2a9ef880763d7fbd657a3af646e132a90d70d34"
      ],
      "author": {
        "name": "Sasha Levin",
        "email": "levinsasha928@gmail.com",
        "time": "Wed Apr 25 16:01:53 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 25 21:26:34 2012 -0700"
      },
      "message": "mm: fix NULL ptr dereference in move_pages\n\nCommit 3268c63 (\"mm: fix move/migrate_pages() race on task struct\") has\nadded an odd construct where \u0027mm\u0027 is checked for being NULL, and if it is,\nit would get dereferenced anyways by mput()ing it.\n\nSigned-off-by: Sasha Levin \u003clevinsasha928@gmail.com\u003e\nCc: Dave Hansen \u003cdave@linux.vnet.ibm.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\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\nAcked-by: Christoph Lameter \u003ccl@linux.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f2a9ef880763d7fbd657a3af646e132a90d70d34",
      "tree": "09df0c2a4b0572f44424f1e11aee655135082c94",
      "parents": [
        "63f61a6f4633ff34c17bea7a0ed827eaeb0733e1"
      ],
      "author": {
        "name": "Sasha Levin",
        "email": "levinsasha928@gmail.com",
        "time": "Wed Apr 25 16:01:52 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 25 21:26:34 2012 -0700"
      },
      "message": "mm: fix NULL ptr dereference in migrate_pages\n\nCommit 3268c63 (\"mm: fix move/migrate_pages() race on task struct\") has\nadded an odd construct where \u0027mm\u0027 is checked for being NULL, and if it is,\nit would get dereferenced anyways by mput()ing it.\n\nThis would lead to the following NULL ptr deref and BUG() when calling\nmigrate_pages() with a pid that has no mm struct:\n\n[25904.193704] BUG: unable to handle kernel NULL pointer dereference at 0000000000000050\n[25904.194235] IP: [\u003cffffffff810b0de7\u003e] mmput+0x27/0xf0\n[25904.194235] PGD 773e6067 PUD 77da0067 PMD 0\n[25904.194235] Oops: 0002 [#1] PREEMPT SMP\n[25904.194235] CPU 2\n[25904.194235] Pid: 31608, comm: trinity Tainted: G        W    3.4.0-rc2-next-20120412-sasha #69\n[25904.194235] RIP: 0010:[\u003cffffffff810b0de7\u003e]  [\u003cffffffff810b0de7\u003e] mmput+0x27/0xf0\n[25904.194235] RSP: 0018:ffff880077d49e08  EFLAGS: 00010202\n[25904.194235] RAX: 0000000000000286 RBX: 0000000000000000 RCX: 0000000000000000\n[25904.194235] RDX: ffff880075ef8000 RSI: 000000000000023d RDI: 0000000000000286\n[25904.194235] RBP: ffff880077d49e18 R08: 0000000000000001 R09: 0000000000000001\n[25904.194235] R10: 0000000000000000 R11: 0000000000000000 R12: 0000000000000000\n[25904.194235] R13: 00000000ffffffea R14: ffff880034287740 R15: ffff8800218d3010\n[25904.194235] FS:  00007fc8b244c700(0000) GS:ffff880029800000(0000) knlGS:0000000000000000\n[25904.194235] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033\n[25904.194235] CR2: 0000000000000050 CR3: 00000000767c6000 CR4: 00000000000406e0\n[25904.194235] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000\n[25904.194235] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400\n[25904.194235] Process trinity (pid: 31608, threadinfo ffff880077d48000, task ffff880075ef8000)\n[25904.194235] Stack:\n[25904.194235]  ffff8800342876c0 0000000000000000 ffff880077d49f78 ffffffff811b8020\n[25904.194235]  ffffffff811b7d91 ffff880075ef8000 ffff88002256d200 0000000000000000\n[25904.194235]  00000000000003ff 0000000000000000 0000000000000000 0000000000000000\n[25904.194235] Call Trace:\n[25904.194235]  [\u003cffffffff811b8020\u003e] sys_migrate_pages+0x340/0x3a0\n[25904.194235]  [\u003cffffffff811b7d91\u003e] ? sys_migrate_pages+0xb1/0x3a0\n[25904.194235]  [\u003cffffffff8266cbb9\u003e] system_call_fastpath+0x16/0x1b\n[25904.194235] Code: c9 c3 66 90 55 31 d2 48 89 e5 be 3d 02 00 00 48 83 ec 10 48 89 1c 24 4c 89 64 24 08 48 89 fb 48 c7 c7 cf 0e e1 82 e8 69 18 03 00 \u003cf0\u003e ff 4b 50 0f 94 c0 84 c0 0f 84 aa 00 00 00 48 89 df e8 72 f1\n[25904.194235] RIP  [\u003cffffffff810b0de7\u003e] mmput+0x27/0xf0\n[25904.194235]  RSP \u003cffff880077d49e08\u003e\n[25904.194235] CR2: 0000000000000050\n[25904.348999] ---[ end trace a307b3ed40206b4b ]---\n\nSigned-off-by: Sasha Levin \u003clevinsasha928@gmail.com\u003e\nCc: Dave Hansen \u003cdave@linux.vnet.ibm.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\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: 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": "904249aa68010c8e223263c922fcbb840a3f42e4",
      "tree": "5476bdf728cd77ac6fcaaeb986df1ddd5c9527d7",
      "parents": [
        "13d518074a952d33d47c428419693f63389547e9"
      ],
      "author": {
        "name": "Ying Han",
        "email": "yinghan@google.com",
        "time": "Wed Apr 25 16:01:48 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 25 21:26:33 2012 -0700"
      },
      "message": "mm: fix up the vmscan stat in vmstat\n\nThe \"pgsteal\" stat is confusing because it counts both direct reclaim as\nwell as background reclaim.  However, we have \"kswapd_steal\" which also\ncounts background reclaim value.\n\nThis patch fixes it and also makes it match the existng \"pgscan_\" stats.\n\nTest:\npgsteal_kswapd_dma32 447623\npgsteal_kswapd_normal 42272677\npgsteal_kswapd_movable 0\npgsteal_direct_dma32 2801\npgsteal_direct_normal 44353270\npgsteal_direct_movable 0\n\nSigned-off-by: Ying Han \u003cyinghan@google.com\u003e\nReviewed-by: Rik van Riel \u003criel@redhat.com\u003e\nAcked-by: Christoph Lameter \u003ccl@linux.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Hillf Danton \u003cdhillf@gmail.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Dan Magenheimer \u003cdan.magenheimer@oracle.com\u003e\nReviewed-by: Minchan Kim \u003cminchan@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": "b1c12cbcd0a02527c180a862e8971e249d3b347d",
      "tree": "f1c6c3ae42641cf89e8e2d7b731595550960e5d0",
      "parents": [
        "66f75a5d028beaf67c931435fdc3e7823125730c"
      ],
      "author": {
        "name": "Konstantin Khlebnikov",
        "email": "khlebnikov@openvz.org",
        "time": "Wed Apr 25 16:01:46 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 25 21:26:33 2012 -0700"
      },
      "message": "mm/hugetlb: fix warning in alloc_huge_page/dequeue_huge_page_vma\n\nFix a gcc warning (and bug?) introduced in cc9a6c877 (\"cpuset: mm: reduce\nlarge amounts of memory barrier related damage v3\")\n\nLocal variable \"page\" can be uninitialized if the nodemask from vma policy\ndoes not intersects with nodemask from cpuset.  Even if it doesn\u0027t happens\nit is better to initialize this variable explicitly than to introduce\na kernel oops in a weird corner case.\n\nmm/hugetlb.c: In function `alloc_huge_page\u0027:\nmm/hugetlb.c:1135:5: warning: `page\u0027 may be used uninitialized in this function\n\nSigned-off-by: Konstantin Khlebnikov \u003ckhlebnikov@openvz.org\u003e\nAcked-by: Mel Gorman \u003cmgorman@suse.de\u003e\nAcked-by: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ce587e65e8c669eec61df7fb1c515720302e3cc0",
      "tree": "fcda8e91609e1a74f629c1a7b0e95c3e76cab75e",
      "parents": [
        "4e1c2b284461fd8aa8d7b295a1e911fc4390755b"
      ],
      "author": {
        "name": "Johannes Weiner",
        "email": "hannes@cmpxchg.org",
        "time": "Tue Apr 24 20:22:33 2012 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 25 21:22:35 2012 -0700"
      },
      "message": "mm: memcg: move pc lookup point to commit_charge()\n\nNone of the callsites actually need the page_cgroup descriptor\nthemselves, so just pass the page and do the look up in there.\n\nWe already had two bugs (6568d4a \u0027mm: memcg: update the correct soft\nlimit tree during migration\u0027 and \u0027memcg: fix Bad page state after\nreplace_page_cache\u0027) where the passed page and pc were not referring\nto the same page frame.\n\nSigned-off-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nAcked-by: Hugh Dickins \u003chughd@google.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4e1c2b284461fd8aa8d7b295a1e911fc4390755b",
      "tree": "f51ab604d23af8ac0f6087516f877af5604c3477",
      "parents": [
        "af3a3ab2966112c0d0a44df7eeb1e95fe32d4495"
      ],
      "author": {
        "name": "David Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Apr 25 16:10:50 2012 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 25 21:18:01 2012 -0700"
      },
      "message": "mm: nobootmem: Correct alloc_bootmem semantics.\n\nThe comments above __alloc_bootmem_node() claim that the code will\nfirst try the allocation using \u0027goal\u0027 and if that fails it will\ntry again but with the \u0027goal\u0027 requirement dropped.\n\nUnfortunately, this is not what the code does, so fix it to do so.\n\nThis is important for nobootmem conversions to architectures such\nas sparc where MAX_DMA_ADDRESS is infinity.\n\nOn such architectures all of the allocations done by generic spots,\nsuch as the sparse-vmemmap implementation, will pass in:\n\n\t__pa(MAX_DMA_ADDRESS)\n\nas the goal, and with the limit given as \"-1\" this will always fail\nunless we add the appropriate fallback logic here.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\nAcked-by: Yinghai Lu \u003cyinghai@kernel.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "aca50bd3b4c4bb5528a1878158ba7abce41de534",
      "tree": "697c1d89d8d8a75878dc5c5c70aeb14cd72f80fa",
      "parents": [
        "e895bd7992df1ebd1e0c28f7965520482bc83b74"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hughd@google.com",
        "time": "Mon Apr 23 11:14:50 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 23 18:19:22 2012 -0700"
      },
      "message": "mm: fix s390 BUG by __set_page_dirty_no_writeback on swap\n\nMel reports a BUG_ON(slot \u003d\u003d NULL) in radix_tree_tag_set() on s390\n3.0.13: called from __set_page_dirty_nobuffers() when page_remove_rmap()\ntries to transfer dirty flag from s390 storage key to struct page and\nradix_tree.\n\nThat would be because of reclaim\u0027s shrink_page_list() calling\nadd_to_swap() on this page at the same time: first PageSwapCache is set\n(causing page_mapping(page) to appear as \u0026swapper_space), then\npage-\u003eprivate set, then tree_lock taken, then page inserted into\nradix_tree - so there\u0027s an interval before taking the lock when the\nradix_tree slot is empty.\n\nWe could fix this by moving __add_to_swap_cache()\u0027s spin_lock_irq up\nbefore the SetPageSwapCache.  But a better fix is simply to do what\u0027s\nfive years overdue: Ken Chen introduced __set_page_dirty_no_writeback()\n(if !PageDirty TestSetPageDirty) for tmpfs to skip all the radix_tree\noverhead, and swap is just the same - it ignores the radix_tree tag, and\ndoes not participate in dirty page accounting, so should be using\n__set_page_dirty_no_writeback() too.\n\ns390 testing now confirms that this does indeed fix the problem.\n\nReported-by: Mel Gorman \u003cmgorman@suse.de\u003e\nSigned-off-by: Hugh Dickins \u003chughd@google.com\u003e\nAcked-by: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Ken Chen \u003ckenchen@google.com\u003e\nCc: stable@vger.kernel.org\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bfce281c287a427d0841fadf5d59242757b4e620",
      "tree": "abca9ebeef4c668021e85e4d54e6e779121e92cc",
      "parents": [
        "9f3a4afb276e4d8b3be7f3e678d4dbd11470416f"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Apr 20 21:57:04 2012 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Apr 21 01:58:20 2012 -0400"
      },
      "message": "kill mm argument of vm_munmap()\n\nit\u0027s always current-\u003emm\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "6be5ceb02e98eaf6cfc4f8b12a896d04023f340d",
      "tree": "f34de1392300bbf63549f4eeb20f7606d6f7b1f9",
      "parents": [
        "a46ef99d80817a167477ed1c8b4d90ee0c2e726f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Apr 20 17:13:58 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Apr 20 17:29:13 2012 -0700"
      },
      "message": "VM: add \"vm_mmap()\" helper function\n\nThis continues the theme started with vm_brk() and vm_munmap():\nvm_mmap() does the same thing as do_mmap(), but additionally does the\nrequired VM locking.\n\nThis uninlines (and rewrites it to be clearer) do_mmap(), which sadly\nduplicates it in mm/mmap.c and mm/nommu.c.  But that way we don\u0027t have\nto export our internal do_mmap_pgoff() function.\n\nSome day we hopefully don\u0027t have to export do_mmap() either, if all\nmodular users can become the simpler vm_mmap() instead.  We\u0027re actually\nvery close to that already, with the notable exception of the (broken)\nuse in i810, and a couple of stragglers in binfmt_elf.\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a46ef99d80817a167477ed1c8b4d90ee0c2e726f",
      "tree": "3d8c980c627e8b9c009dbf63628a9be8b8d1069f",
      "parents": [
        "e4eb1ff61b323d6141614e5458a1f53c7046ff8e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Apr 20 16:20:01 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Apr 20 17:29:13 2012 -0700"
      },
      "message": "VM: add \"vm_munmap()\" helper function\n\nLike the vm_brk() function, this is the same as \"do_munmap()\", except it\ndoes the VM locking for the caller.\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e4eb1ff61b323d6141614e5458a1f53c7046ff8e",
      "tree": "7a0251509c169b0df1a6bf4bc47c5bca709e06da",
      "parents": [
        "3b422e9c2c020a1137349c614da7f9c9761a0922"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Apr 20 15:35:40 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Apr 20 17:28:17 2012 -0700"
      },
      "message": "VM: add \"vm_brk()\" helper function\n\nIt does the same thing as \"do_brk()\", except it handles the VM locking\ntoo.\n\nIt turns out that all external callers want that anyway, so we can make\ndo_brk() static to just mm/mmap.c while at it.\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b3dc627cabb33fc95f93da78457770c1b2a364d2",
      "tree": "e37cae7a574b808b6da48e4c93e81f170efce078",
      "parents": [
        "310eb776501af8412c570c4bcddc9ab5cecf3d7a"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Fri Apr 20 08:31:34 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Apr 20 11:18:46 2012 -0700"
      },
      "message": "memblock: memblock should be able to handle zero length operations\n\nCommit 24aa07882b (\"memblock, x86: Replace memblock_x86_reserve/\nfree_range() with generic ones\") replaced x86 specific memblock\noperations with the generic ones; unfortunately, it lost zero length\noperation handling in the process making the kernel panic if somebody\ntries to reserve zero length area.\n\nThere isn\u0027t much to be gained by being cranky to zero length operations\nand panicking is almost the worst response.  Drop the BUG_ON() in\nmemblock_reserve() and update memblock_add_region/isolate_range() so\nthat all zero length operations are handled as noops.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: stable@vger.kernel.org\nReported-by: Valere Monseur \u003cvalere.monseur@ymail.com\u003e\nBisected-by: Joseph Freeman \u003cjfree143dev@gmail.com\u003e\nTested-by: Joseph Freeman \u003cjfree143dev@gmail.com\u003e\nBugzilla: https://bugzilla.kernel.org/show_bug.cgi?id\u003d43098\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ab2965eefef95a2eecfd54c12b0eb243162862e9",
      "tree": "c947fdc158e144c2d060486b65d10ee67d254039",
      "parents": [
        "a0ec4361e4539e30cf1c5de7ddfd2dadcd8e1595",
        "e816b57a337ea3b755de72bec38c10c864f23015"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Apr 19 14:42:22 2012 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Apr 19 14:42:22 2012 -0700"
      },
      "message": "Merge commit \u0027v3.4-rc3\u0027 into android-3.4\n\nConflicts:\n\tdrivers/staging/android/lowmemorykiller.c\n\nChange-Id: Ia3ffcfc702e28c4fce0e91b363f4afd5f1c40306\n"
    },
    {
      "commit": "9b7f43afd417a6feb80841d30ced4051c362eb5d",
      "tree": "695f97a4d028a3463c8e7edaa4c6d410a941d0bb",
      "parents": [
        "932e9f352b5d685725076f21b237f7c7d804b29c"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hughd@google.com",
        "time": "Wed Apr 18 23:34:46 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 18 23:40:57 2012 -0700"
      },
      "message": "memcg: fix Bad page state after replace_page_cache\n\nMy 9ce70c0240d0 \"memcg: fix deadlock by inverting lrucare nesting\" put a\nnasty little bug into v3.3\u0027s version of mem_cgroup_replace_page_cache(),\nsometimes used for FUSE.  Replacing __mem_cgroup_commit_charge_lrucare()\nby __mem_cgroup_commit_charge(), I used the \"pc\" pointer set up earlier:\nbut it\u0027s for oldpage, and needs now to be for newpage.  Once oldpage was\nfreed, its PageCgroupUsed bit (cleared above but set again here) caused\n\"Bad page state\" messages - and perhaps worse, being missed from newpage.\n(I didn\u0027t find this by using FUSE, but in reusing the function for tmpfs.)\n\nSigned-off-by: Hugh Dickins \u003chughd@google.com\u003e\nCc: stable@vger.kernel.org [v3.3 only]\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "41c93088127df2579e8ca64010929ec9e41d5543",
      "tree": "5bbfded1934fc94facbfa892a59874703aa6922a",
      "parents": [
        "66aebce747eaf9bc456bf1f1b217d8db843031d0"
      ],
      "author": {
        "name": "Ying Han",
        "email": "yinghan@google.com",
        "time": "Thu Apr 12 12:49:16 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 12 13:12:12 2012 -0700"
      },
      "message": "Revert \"mm: vmscan: fix misused nr_reclaimed in shrink_mem_cgroup_zone()\"\n\nThis reverts commit c38446cc65e1f2b3eb8630c53943b94c4f65f670.\n\nBefore the commit, the code makes senses to me but not after the commit.\nThe \"nr_reclaimed\" is the number of pages reclaimed by scanning through\nthe memcg\u0027s lru lists.  The \"nr_to_reclaim\" is the target value for the\nwhole function.  For example, we like to early break the reclaim if\nreclaimed 32 pages under direct reclaim (not DEF_PRIORITY).\n\nAfter the reverted commit, the target \"nr_to_reclaim\" is decremented each\ntime by \"nr_reclaimed\" but we still use it to compare the \"nr_reclaimed\".\nIt just doesn\u0027t make sense to me...\n\nSigned-off-by: Ying Han \u003cyinghan@google.com\u003e\nAcked-by: Hugh Dickins \u003chughd@google.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Hillf Danton \u003cdhillf@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": "66aebce747eaf9bc456bf1f1b217d8db843031d0",
      "tree": "460c0268105191b2d581f42d5534dc952d565a17",
      "parents": [
        "f3ec434c69ac7f447ff6e6389c19727c9f002087"
      ],
      "author": {
        "name": "Chris Metcalf",
        "email": "cmetcalf@tilera.com",
        "time": "Thu Apr 12 12:49:15 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 12 13:12:12 2012 -0700"
      },
      "message": "hugetlb: fix race condition in hugetlb_fault()\n\nThe race is as follows:\n\nSuppose a multi-threaded task forks a new process (on cpu A), thus\nbumping up the ref count on all the pages.  While the fork is occurring\n(and thus we have marked all the PTEs as read-only), another thread in\nthe original process (on cpu B) tries to write to a huge page, taking an\naccess violation from the write-protect and calling hugetlb_cow().  Now,\nsuppose the fork() fails.  It will undo the COW and decrement the ref\ncount on the pages, so the ref count on the huge page drops back to 1.\nMeanwhile hugetlb_cow() also decrements the ref count by one on the\noriginal page, since the original address space doesn\u0027t need it any\nmore, having copied a new page to replace the original page.  This\nleaves the ref count at zero, and when we call unlock_page(), we panic.\n\n\tfork on CPU A\t\t\t\tfault on CPU B\n\t\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\t\t\t\t\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\t...\n\tdown_write(\u0026parent-\u003emmap_sem);\n\tdown_write_nested(\u0026child-\u003emmap_sem);\n\t...\n\twhile duplicating vmas\n\t\tif error\n\t\t\tbreak;\n\t...\n\tup_write(\u0026child-\u003emmap_sem);\n\tup_write(\u0026parent-\u003emmap_sem);\t\t...\n\t\t\t\t\t\tdown_read(\u0026parent-\u003emmap_sem);\n\t\t\t\t\t\t...\n\t\t\t\t\t\tlock_page(page);\n\t\t\t\t\t\thandle COW\n\t\t\t\t\t\tpage_mapcount(old_page) \u003d\u003d 2\n\t\t\t\t\t\talloc and prepare new_page\n\t...\n\thandle error\n\tpage_remove_rmap(page);\n\tput_page(page);\n\t...\n\t\t\t\t\t\tfold new_page into pte\n\t\t\t\t\t\tpage_remove_rmap(page);\n\t\t\t\t\t\tput_page(page);\n\t\t\t\t\t\t...\n\t\t\t\toops \u003d\u003d\u003e\tunlock_page(page);\n\t\t\t\t\t\tup_read(\u0026parent-\u003emmap_sem);\n\nThe solution is to take an extra reference to the page while we are\nholding the lock on it.\n\nSigned-off-by: Chris Metcalf \u003ccmetcalf@tilera.com\u003e\nCc: Hillf Danton \u003cdhillf@gmail.com\u003e\nCc: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: \u003cstable@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "569530fb1b40ab2d2ca147ee79898ac807ebdf90",
      "tree": "e9f4f9a04a9a8f2a94a919aff55629f8946b30f4",
      "parents": [
        "32050017cf3bf2b983571a90351328b4f66e463d"
      ],
      "author": {
        "name": "Glauber Costa",
        "email": "glommer@parallels.com",
        "time": "Thu Apr 12 12:49:13 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 12 13:12:12 2012 -0700"
      },
      "message": "memcg: do not open code accesses to res_counter members\n\nWe should use the accessor res_counter_read_u64 for that.\n\nAlthough a purely cosmetic change is sometimes better delayed, to avoid\nconflicting with other people\u0027s work, we are starting to have people\ntouching this code as well, and reproducing the open code behavior\nbecause that\u0027s the standard \u003d)\n\nTime to fix it, then.\n\nSigned-off-by: Glauber Costa \u003cglommer@parallels.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nAcked-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d833049bd20570cbbadeb5228c579f9f3aaa4e03",
      "tree": "2995af0705ce161cba50739048e90b89ea3991e2",
      "parents": [
        "6252efcc3626bdcde1c1c2d8a83be0bc66b8cc2c"
      ],
      "author": {
        "name": "Kirill A. Shutemov",
        "email": "kirill@shutemov.name",
        "time": "Thu Apr 12 12:49:11 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 12 13:12:11 2012 -0700"
      },
      "message": "memcg: fix broken boolen expression\n\naction !\u003d CPU_DEAD || action !\u003d CPU_DEAD_FROZEN is always true.\n\nSigned-off-by: Kirill A. Shutemov \u003ckirill@shutemov.name\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nAcked-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d92aa582e4cf5c378defc14b892ae056c9db65b6",
      "tree": "d3cd1ff19186370eb2f8757a11ecd005621c4b01",
      "parents": [
        "8d9e6aca1f6042e53123be3eda327a955a509a35"
      ],
      "author": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Thu Dec 15 18:51:04 2011 -0800"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Mon Apr 09 13:53:14 2012 -0700"
      },
      "message": "ashmem: Add shmem_set_file to mm/shmem.c\n\nNOT FOR STAGING\nThis patch re-adds the original shmem_set_file to mm/shmem.c\nand converts ashmem.c back to using it.\n\nCC: Brian Swetland \u003cswetland@google.com\u003e\nCC: Colin Cross \u003cccross@android.com\u003e\nCC: Arve Hjønnevåg \u003carve@android.com\u003e\nCC: Dima Zavin \u003cdima@android.com\u003e\nCC: Robert Love \u003crlove@google.com\u003e\nCC: Greg KH \u003cgreg@kroah.com\u003e\nSigned-off-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\n"
    },
    {
      "commit": "cde8949795629dc5e9e3781fad26afc8dd8d767b",
      "tree": "f9fda0a83fb6111bd50dbe8fb1d4663319fe8400",
      "parents": [
        "ed275aa26f3bcde6da3356755ae5ad8eeab7444f"
      ],
      "author": {
        "name": "Arve Hjønnevåg",
        "email": "arve@android.com",
        "time": "Tue Feb 17 14:51:02 2009 -0800"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Mon Apr 09 13:53:12 2012 -0700"
      },
      "message": "mm: Add min_free_order_shift tunable.\n\nBy default the kernel tries to keep half as much memory free at each\norder as it does for one order below. This can be too agressive when\nrunning without swap.\n\nChange-Id: I5efc1a0b50f41ff3ac71e92d2efd175dedd54ead\nSigned-off-by: Arve Hjønnevåg \u003carve@android.com\u003e\n"
    },
    {
      "commit": "a76e99abc558aed633ba28ff61c5328116292bf3",
      "tree": "60f7677f0baafa00825accc1214839246b3e78dd",
      "parents": [
        "a54734678ff9cb97938b9f7648547174f3b118e4",
        "1d05f993784973189395051cc711fdd6dd5eb389"
      ],
      "author": {
        "name": "Rohit Vaswani",
        "email": "rvaswani@codeaurora.org",
        "time": "Fri Mar 30 00:09:34 2012 -0700"
      },
      "committer": {
        "name": "Rohit Vaswani",
        "email": "rvaswani@codeaurora.org",
        "time": "Fri Mar 30 00:09:34 2012 -0700"
      },
      "message": "Merge branch \u0027Linux 3.0.21\u0027 into msm-3.0\n\nMerge Upstream\u0027s stable 3.0.21 branch into msm-3.0\nThis consists 814 commits and some merge conflicts.\n\nThe merge conflicts are because of some local changes to\nmsm-3.0 as well as some conflicts between google\u0027s tree and\nthe upstream tree.\n\nConflicts:\n\tarch/arm/kernel/head.S\n\tdrivers/bluetooth/ath3k.c\n\tdrivers/bluetooth/btusb.c\n\tdrivers/mmc/core/core.c\n\tdrivers/tty/serial/serial_core.c\n\tdrivers/usb/host/ehci-hub.c\n\tdrivers/usb/serial/qcserial.c\n\tfs/namespace.c\n\tfs/proc/base.c\n\nChange-Id: I62e2edbe213f84915e27f8cd6e4f6ce23db22a21\nSigned-off-by: Rohit Vaswani \u003crvaswani@codeaurora.org\u003e\n"
    },
    {
      "commit": "cb129820f1e6ccf309510f4eb28df45cb0742005",
      "tree": "bc87b3d13e1103b37206cc011da526389a74310c",
      "parents": [
        "b5174fa3a7f4f8f150bfa3b917c92608953dfa0f"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Mar 29 09:45:58 2012 -0700"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Mar 29 09:45:58 2012 -0700"
      },
      "message": "percpu: use KERN_CONT in pcpu_dump_alloc_info()\n\npcpu_dump_alloc_info() was printing continued lines without KERN_CONT.\nUse it.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nReported-by: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\n"
    },
    {
      "commit": "532bfc851a7475fb6a36c1e953aa395798a7cca7",
      "tree": "a7892e5a31330dd59f31959efbe9fda1803784fd",
      "parents": [
        "0195c00244dc2e9f522475868fa278c473ba7339",
        "8da00edc1069f01c34510fa405dc15d96c090a3f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 28 17:19:27 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 28 17:19:28 2012 -0700"
      },
      "message": "Merge branch \u0027akpm\u0027 (Andrew\u0027s patch-bomb)\n\nMerge third batch of patches from Andrew Morton:\n - Some MM stragglers\n - core SMP library cleanups (on_each_cpu_mask)\n - Some IPI optimisations\n - kexec\n - kdump\n - IPMI\n - the radix-tree iterator work\n - various other misc bits.\n\n \"That\u0027ll do for -rc1.  I still have ~10 patches for 3.4, will send\n  those along when they\u0027ve baked a little more.\"\n\n* emailed from Andrew Morton \u003cakpm@linux-foundation.org\u003e: (35 commits)\n  backlight: fix typo in tosa_lcd.c\n  crc32: add help text for the algorithm select option\n  mm: move hugepage test examples to tools/testing/selftests/vm\n  mm: move slabinfo.c to tools/vm\n  mm: move page-types.c from Documentation to tools/vm\n  selftests/Makefile: make `run_tests\u0027 depend on `all\u0027\n  selftests: launch individual selftests from the main Makefile\n  radix-tree: use iterators in find_get_pages* functions\n  radix-tree: rewrite gang lookup using iterator\n  radix-tree: introduce bit-optimized iterator\n  fs/proc/namespaces.c: prevent crash when ns_entries[] is empty\n  nbd: rename the nbd_device variable from lo to nbd\n  pidns: add reboot_pid_ns() to handle the reboot syscall\n  sysctl: use bitmap library functions\n  ipmi: use locks on watchdog timeout set on reboot\n  ipmi: simplify locking\n  ipmi: fix message handling during panics\n  ipmi: use a tasklet for handling received messages\n  ipmi: increase KCS timeouts\n  ipmi: decrease the IPMI message transaction time in interrupt mode\n  ...\n"
    },
    {
      "commit": "0fc9d1040313047edf6a39fd4d7c7defdca97c62",
      "tree": "4503c084da1097e1cf66d8bac1ec548bc69ce69a",
      "parents": [
        "cebbd29e1c2f7a969919f19f74583070840163d7"
      ],
      "author": {
        "name": "Konstantin Khlebnikov",
        "email": "khlebnikov@openvz.org",
        "time": "Wed Mar 28 14:42:54 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 28 17:14:37 2012 -0700"
      },
      "message": "radix-tree: use iterators in find_get_pages* functions\n\nReplace radix_tree_gang_lookup_slot() and\nradix_tree_gang_lookup_tag_slot() in page-cache lookup functions with\nbrand-new radix-tree direct iterating.  This avoids the double-scanning\nand pointer copying.\n\nIterator don\u0027t stop after nr_pages page-get fails in a row, it continue\nlookup till the radix-tree end.  Thus we can safely remove these restart\nconditions.\n\nUnfortunately, old implementation didn\u0027t forbid nr_pages \u003d\u003d 0, this corner\ncase does not fit into new code, so the patch adds an extra check at the\nbeginning.\n\nSigned-off-by: Konstantin Khlebnikov \u003ckhlebnikov@openvz.org\u003e\nTested-by: Hugh Dickins \u003chughd@google.com\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "74046494ea68676d29ef6501a4bd950f08112a2c",
      "tree": "4fb862c2ebeba25b089ed64d5cc36437ad9e3df2",
      "parents": [
        "42be35d0390b966253136a285f507f5ad00fd9e8"
      ],
      "author": {
        "name": "Gilad Ben-Yossef",
        "email": "gilad@benyossef.com",
        "time": "Wed Mar 28 14:42:45 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 28 17:14:35 2012 -0700"
      },
      "message": "mm: only IPI CPUs to drain local pages if they exist\n\nCalculate a cpumask of CPUs with per-cpu pages in any zone and only send\nan IPI requesting CPUs to drain these pages to the buddy allocator if they\nactually have pages when asked to flush.\n\nThis patch saves 85%+ of IPIs asking to drain per-cpu pages in case of\nsevere memory pressure that leads to OOM since in these cases multiple,\npossibly concurrent, allocation requests end up in the direct reclaim code\npath so when the per-cpu pages end up reclaimed on first allocation\nfailure for most of the proceeding allocation attempts until the memory\npressure is off (possibly via the OOM killer) there are no per-cpu pages\non most CPUs (and there can easily be hundreds of them).\n\nThis also has the side effect of shortening the average latency of direct\nreclaim by 1 or more order of magnitude since waiting for all the CPUs to\nACK the IPI takes a long time.\n\nTested by running \"hackbench 400\" on a 8 CPU x86 VM and observing the\ndifference between the number of direct reclaim attempts that end up in\ndrain_all_pages() and those were more then 1/2 of the online CPU had any\nper-cpu page in them, using the vmstat counters introduced in the next\npatch in the series and using proc/interrupts.\n\nIn the test sceanrio, this was seen to save around 3600 global\nIPIs after trigerring an OOM on a concurrent workload:\n\n$ cat /proc/vmstat | tail -n 2\npcp_global_drain 0\npcp_global_ipi_saved 0\n\n$ cat /proc/interrupts | grep CAL\nCAL:          1          2          1          2\n          2          2          2          2   Function call interrupts\n\n$ hackbench 400\n[OOM messages snipped]\n\n$ cat /proc/vmstat | tail -n 2\npcp_global_drain 3647\npcp_global_ipi_saved 3642\n\n$ cat /proc/interrupts | grep CAL\nCAL:          6         13          6          3\n          3          3         1 2          7   Function call interrupts\n\nPlease note that if the global drain is removed from the direct reclaim\npath as a patch from Mel Gorman currently suggests this should be replaced\nwith an on_each_cpu_cond invocation.\n\nSigned-off-by: Gilad Ben-Yossef \u003cgilad@benyossef.com\u003e\nAcked-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nAcked-by: Christoph Lameter \u003ccl@linux.com\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Pekka Enberg \u003cpenberg@kernel.org\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nAcked-by: Michal Nazarewicz \u003cmina86@mina86.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a8364d5555b2030d093cde0f07951628e55454e1",
      "tree": "a0fa097e39d103644d9f82269eea419b2a604f74",
      "parents": [
        "b3a7e98e024ffa9f7e4554dd720c508015c4a831"
      ],
      "author": {
        "name": "Gilad Ben-Yossef",
        "email": "gilad@benyossef.com",
        "time": "Wed Mar 28 14:42:44 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 28 17:14:35 2012 -0700"
      },
      "message": "slub: only IPI CPUs that have per cpu obj to flush\n\nflush_all() is called for each kmem_cache_destroy().  So every cache being\ndestroyed dynamically ends up sending an IPI to each CPU in the system,\nregardless if the cache has ever been used there.\n\nFor example, if you close the Infinband ipath driver char device file, the\nclose file ops calls kmem_cache_destroy().  So running some infiniband\nconfig tool on one a single CPU dedicated to system tasks might interrupt\nthe rest of the 127 CPUs dedicated to some CPU intensive or latency\nsensitive task.\n\nI suspect there is a good chance that every line in the output of \"git\ngrep kmem_cache_destroy linux/ | grep \u0027\\-\u003e\u0027\" has a similar scenario.\n\nThis patch attempts to rectify this issue by sending an IPI to flush the\nper cpu objects back to the free lists only to CPUs that seem to have such\nobjects.\n\nThe check which CPU to IPI is racy but we don\u0027t care since asking a CPU\nwithout per cpu objects to flush does no damage and as far as I can tell\nthe flush_all by itself is racy against allocs on remote CPUs anyway, so\nif you required the flush_all to be determinstic, you had to arrange for\nlocking regardless.\n\nWithout this patch the following artificial test case:\n\n$ cd /sys/kernel/slab\n$ for DIR in *; do cat $DIR/alloc_calls \u003e /dev/null; done\n\nproduces 166 IPIs on an cpuset isolated CPU. With it it produces none.\n\nThe code path of memory allocation failure for CPUMASK_OFFSTACK\u003dy\nconfig was tested using fault injection framework.\n\nSigned-off-by: Gilad Ben-Yossef \u003cgilad@benyossef.com\u003e\nAcked-by: Christoph Lameter \u003ccl@linux.com\u003e\nCc: Chris Metcalf \u003ccmetcalf@tilera.com\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Russell King \u003clinux@arm.linux.org.uk\u003e\nCc: Pekka Enberg \u003cpenberg@kernel.org\u003e\nCc: Matt Mackall \u003cmpm@selenic.com\u003e\nCc: Sasha Levin \u003clevinsasha928@gmail.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Alexander Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Avi Kivity \u003cavi@redhat.com\u003e\nCc: Michal Nazarewicz \u003cmina86@mina86.org\u003e\nCc: Kosaki Motohiro \u003ckosaki.motohiro@gmail.com\u003e\nCc: Milton Miller \u003cmiltonm@bga.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d15cab975459fb6092eeba1be72c13621337784f",
      "tree": "5c1d8d18c65a34eb738c97d75f2c44becdff1de3",
      "parents": [
        "29fd66d289f2981e11c550f8b411a6d3d38be0cf"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hughd@google.com",
        "time": "Wed Mar 28 14:42:42 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 28 17:14:35 2012 -0700"
      },
      "message": "swapon: check validity of swap_flags\n\nMost system calls taking flags first check that the flags passed in are\nvalid, and that helps userspace to detect when new flags are supported.\n\nBut swapon never did so: start checking now, to help if we ever want to\nsupport more swap_flags in future.\n\nIt\u0027s difficult to get stray bits set in an int, and swapon is not widely\nused, so this is most unlikely to break any userspace; but we can just\nrevert if it turns out to do so.\n\nSigned-off-by: Hugh Dickins \u003chughd@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "29fd66d289f2981e11c550f8b411a6d3d38be0cf",
      "tree": "cc9931d0ee891ccfe9114bfd977da47f47175dbe",
      "parents": [
        "45f83cefe3a5f0476ac3f96382ebfdc3fe4caab2"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Wed Mar 28 14:42:41 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 28 17:14:35 2012 -0700"
      },
      "message": "mm, coredump: fail allocations when coredumping instead of oom killing\n\nThe size of coredump files is limited by RLIMIT_CORE, however, allocating\nlarge amounts of memory results in three negative consequences:\n\n - the coredumping process may be chosen for oom kill and quickly deplete\n   all memory reserves in oom conditions preventing further progress from\n   being made or tasks from exiting,\n\n - the coredumping process may cause other processes to be oom killed\n   without fault of their own as the result of a SIGSEGV, for example, in\n   the coredumping process, or\n\n - the coredumping process may result in a livelock while writing to the\n   dump file if it needs memory to allocate while other threads are in\n   the exit path waiting on the coredumper to complete.\n\nThis is fixed by implying __GFP_NORETRY in the page allocator for\ncoredumping processes when reclaim has failed so the allocations fail and\nthe process continues to exit.\n\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: Oleg Nesterov \u003coleg@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": "45f83cefe3a5f0476ac3f96382ebfdc3fe4caab2",
      "tree": "b2f7d3c02923d89db5a551c6a7923121db9610c4",
      "parents": [
        "623e3db9f9b7d6e7b2a99180f9cf0825c936ab7a"
      ],
      "author": {
        "name": "Andrea Arcangeli",
        "email": "aarcange@redhat.com",
        "time": "Wed Mar 28 14:42:40 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 28 17:14:35 2012 -0700"
      },
      "message": "mm: thp: fix up pmd_trans_unstable() locations\n\npmd_trans_unstable() should be called before pmd_offset_map() in the\nlocations where the mmap_sem is held for reading.\n\nSigned-off-by: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Larry Woodman \u003clwoodman@redhat.com\u003e\nCc: Ulrich Obergfell \u003cuobergfe@redhat.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Mark Salter \u003cmsalter@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": "623e3db9f9b7d6e7b2a99180f9cf0825c936ab7a",
      "tree": "d8eaa8f1665a048c4318ccd0759775e057792823",
      "parents": [
        "3748b2f15b06ea1861df39d5e9693dcd6e9542b1"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hughd@google.com",
        "time": "Wed Mar 28 14:42:40 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 28 17:14:35 2012 -0700"
      },
      "message": "mm for fs: add truncate_pagecache_range()\n\nHolepunching filesystems ext4 and xfs are using truncate_inode_pages_range\nbut forgetting to unmap pages first (ocfs2 remembers).  This is not really\na bug, since races already require truncate_inode_page() to handle that\ncase once the page is locked; but it can be very inefficient if the file\nbeing punched happens to be mapped into many vmas.\n\nProvide a drop-in replacement truncate_pagecache_range() which does the\nunmapping pass first, handling the awkward mismatch between arguments to\ntruncate_inode_pages_range() and arguments to unmap_mapping_range().\n\nNote that holepunching does not unmap privately COWed pages in the range:\nPOSIX requires that we do so when truncating, but it\u0027s hard to justify,\ndifficult to implement without an i_size cutoff, and no filesystem is\nattempting to implement it.\n\nSigned-off-by: Hugh Dickins \u003chughd@google.com\u003e\nCc: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCc: Andreas Dilger \u003cadilger.kernel@dilger.ca\u003e\nCc: Mark Fasheh \u003cmfasheh@suse.com\u003e\nCc: Joel Becker \u003cjlbec@evilplan.org\u003e\nCc: Ben Myers \u003cbpm@sgi.com\u003e\nCc: Alex Elder \u003celder@kernel.org\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Dave Chinner \u003cdavid@fromorbit.com\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": "0c9aac08261512d70d7d4817bd222abca8b6bdd6",
      "tree": "41bbfed632bfc6233eac3e936cfdce75c5bd3a8f",
      "parents": [
        "ed0bb8ea059764c3fc882fb135473afd347335e9",
        "8bdec192b40cf7f7eec170b317c76089eb5eeddb"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 28 15:04:26 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 28 15:04:26 2012 -0700"
      },
      "message": "Merge branch \u0027slab/for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/penberg/linux\n\nPull SLAB changes from Pekka Enberg:\n \"There\u0027s the new kmalloc_array() API, minor fixes and performance\n  improvements, but quite honestly, nothing terribly exciting.\"\n\n* \u0027slab/for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/penberg/linux:\n  mm: SLAB Out-of-memory diagnostics\n  slab: introduce kmalloc_array()\n  slub: per cpu partial statistics change\n  slub: include include for prefetch\n  slub: Do not hold slub_lock when calling sysfs_slab_add()\n  slub: prefetch next freelist pointer in slab_alloc()\n  slab, cleanup: remove unneeded return\n"
    },
    {
      "commit": "69e1aaddd63104f37021d0b0f6abfd9623c9134c",
      "tree": "14ad49741b428d270b681694bb2df349465455b9",
      "parents": [
        "56b59b429b4c26e5e730bc8c3d837de9f7d0a966",
        "9d547c35799a4ddd235f1565cec2fff6c9263504"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 28 10:02:55 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 28 10:02:55 2012 -0700"
      },
      "message": "Merge tag \u0027ext4_for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4\n\nPull ext4 updates for 3.4 from Ted Ts\u0027o:\n \"Ext4 commits for 3.3 merge window; mostly cleanups and bug fixes\n\n  The changes to export dirty_writeback_interval are from Artem\u0027s s_dirt\n  cleanup patch series.  The same is true of the change to remove the\n  s_dirt helper functions which never got used by anyone in-tree.  I\u0027ve\n  run these changes by Al Viro, and am carrying them so that Artem can\n  more easily fix up the rest of the file systems during the next merge\n  window.  (Originally we had hopped to remove the use of s_dirt from\n  ext4 during this merge window, but his patches had some bugs, so I\n  ultimately ended dropping them from the ext4 tree.)\"\n\n* tag \u0027ext4_for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4: (66 commits)\n  vfs: remove unused superblock helpers\n  mm: export dirty_writeback_interval\n  ext4: remove useless s_dirt assignment\n  ext4: write superblock only once on unmount\n  ext4: do not mark superblock as dirty unnecessarily\n  ext4: correct ext4_punch_hole return codes\n  ext4: remove restrictive checks for EOFBLOCKS_FL\n  ext4: always set then trimmed blocks count into len\n  ext4: fix trimmed block count accunting\n  ext4: fix start and len arguments handling in ext4_trim_fs()\n  ext4: update s_free_{inodes,blocks}_count during online resize\n  ext4: change some printk() calls to use ext4_msg() instead\n  ext4: avoid output message interleaving in ext4_error_\u003cfoo\u003e()\n  ext4: remove trailing newlines from ext4_msg() and ext4_error() messages\n  ext4: add no_printk argument validation, fix fallout\n  ext4: remove redundant \"EXT4-fs: \" from uses of ext4_msg\n  ext4: give more helpful error message in ext4_ext_rm_leaf()\n  ext4: remove unused code from ext4_ext_map_blocks()\n  ext4: rewrite punch hole to use ext4_ext_remove_space()\n  jbd2: cleanup journal tail after transaction commit\n  ...\n"
    },
    {
      "commit": "496b919b3bdd957d4b1727df79bfa3751bced1c1",
      "tree": "5585608ebdce5a7eca8f5ef334e6b167fcd5aab1",
      "parents": [
        "250f6715a4112d6686670c5a62ceb9305da94616"
      ],
      "author": {
        "name": "Rik van Riel",
        "email": "riel@redhat.com",
        "time": "Sat Mar 24 10:26:21 2012 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 24 12:18:32 2012 -0700"
      },
      "message": "Fix potential endless loop in kswapd when compaction is not enabled\n\nWe should only test compaction_suitable if the kernel is built with\nCONFIG_COMPACTION, otherwise the stub compaction_suitable function will\nalways return COMPACT_SKIPPED and send kswapd into an infinite loop.\n\nReported-by: Anton Blanchard \u003canton@samba.org\u003e\nSigned-off-by: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "accb61fe7bb0f5c2a4102239e4981650f9048519",
      "tree": "5e7120b80944d9719684b94e0c419761ba2d59e1",
      "parents": [
        "909af768e88867016f427264ae39d27a57b6a8ed"
      ],
      "author": {
        "name": "Jason Baron",
        "email": "jbaron@redhat.com",
        "time": "Fri Mar 23 15:02:51 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 23 16:58:42 2012 -0700"
      },
      "message": "coredump: add VM_NODUMP, MADV_NODUMP, MADV_CLEAR_NODUMP\n\nSince we no longer need the VM_ALWAYSDUMP flag, let\u0027s use the freed bit\nfor \u0027VM_NODUMP\u0027 flag.  The idea is is to add a new madvise() flag:\nMADV_DONTDUMP, which can be set by applications to specifically request\nmemory regions which should not dump core.\n\nThe specific application I have in mind is qemu: we can add a flag there\nthat wouldn\u0027t dump all of guest memory when qemu dumps core.  This flag\nmight also be useful for security sensitive apps that want to absolutely\nmake sure that parts of memory are not dumped.  To clear the flag use:\nMADV_DODUMP.\n\n[akpm@linux-foundation.org: s/MADV_NODUMP/MADV_DONTDUMP/, s/MADV_CLEAR_NODUMP/MADV_DODUMP/, per Roland]\n[akpm@linux-foundation.org: fix up the architectures which broke]\nSigned-off-by: Jason Baron \u003cjbaron@redhat.com\u003e\nAcked-by: Roland McGrath \u003croland@hack.frob.com\u003e\nCc: Chris Metcalf \u003ccmetcalf@tilera.com\u003e\nCc: Avi Kivity \u003cavi@redhat.com\u003e\nCc: Ralf Baechle \u003cralf@linux-mips.org\u003e\nCc: Richard Henderson \u003crth@twiddle.net\u003e\nCc: Ivan Kokshaysky \u003cink@jurassic.park.msu.ru\u003e\nCc: Matt Turner \u003cmattst88@gmail.com\u003e\nCc: \"James E.J. Bottomley\" \u003cjejb@parisc-linux.org\u003e\nCc: Helge Deller \u003cdeller@gmx.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "909af768e88867016f427264ae39d27a57b6a8ed",
      "tree": "5068b4d98e4bedecde89d9113dc7ef8c69633f45",
      "parents": [
        "1cc684ab75123efe7ff446eb821d44375ba8fa30"
      ],
      "author": {
        "name": "Jason Baron",
        "email": "jbaron@redhat.com",
        "time": "Fri Mar 23 15:02:51 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 23 16:58:42 2012 -0700"
      },
      "message": "coredump: remove VM_ALWAYSDUMP flag\n\nThe motivation for this patchset was that I was looking at a way for a\nqemu-kvm process, to exclude the guest memory from its core dump, which\ncan be quite large.  There are already a number of filter flags in\n/proc/\u003cpid\u003e/coredump_filter, however, these allow one to specify \u0027types\u0027\nof kernel memory, not specific address ranges (which is needed in this\ncase).\n\nSince there are no more vma flags available, the first patch eliminates\nthe need for the \u0027VM_ALWAYSDUMP\u0027 flag.  The flag is used internally by\nthe kernel to mark vdso and vsyscall pages.  However, it is simple\nenough to check if a vma covers a vdso or vsyscall page without the need\nfor this flag.\n\nThe second patch then replaces the \u0027VM_ALWAYSDUMP\u0027 flag with a new\n\u0027VM_NODUMP\u0027 flag, which can be set by userspace using new madvise flags:\n\u0027MADV_DONTDUMP\u0027, and unset via \u0027MADV_DODUMP\u0027.  The core dump filters\ncontinue to work the same as before unless \u0027MADV_DONTDUMP\u0027 is set on the\nregion.\n\nThe qemu code which implements this features is at:\n\n  http://people.redhat.com/~jbaron/qemu-dump/qemu-dump.patch\n\nIn my testing the qemu core dump shrunk from 383MB -\u003e 13MB with this\npatch.\n\nI also believe that the \u0027MADV_DONTDUMP\u0027 flag might be useful for\nsecurity sensitive apps, which might want to select which areas are\ndumped.\n\nThis patch:\n\nThe VM_ALWAYSDUMP flag is currently used by the coredump code to\nindicate that a vma is part of a vsyscall or vdso section.  However, we\ncan determine if a vma is in one these sections by checking it against\nthe gate_vma and checking for a non-NULL return value from\narch_vma_name().  Thus, freeing a valuable vma bit.\n\nSigned-off-by: Jason Baron \u003cjbaron@redhat.com\u003e\nAcked-by: Roland McGrath \u003croland@hack.frob.com\u003e\nCc: Chris Metcalf \u003ccmetcalf@tilera.com\u003e\nCc: Avi Kivity \u003cavi@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": "d2d393099de21eda91c5ec6a05d60e5dee4d5175",
      "tree": "92f2f5eaed87e35c43d8461a86f618b6f2a28406",
      "parents": [
        "def8cf72562e17ec8316ce0cb5697c7afd6400e3"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Fri Mar 23 15:02:45 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 23 16:58:41 2012 -0700"
      },
      "message": "signal: oom_kill_task: use SEND_SIG_FORCED instead of force_sig()\n\nChange oom_kill_task() to use do_send_sig_info(SEND_SIG_FORCED) instead\nof force_sig(SIGKILL).  With the recent changes we do not need force_ to\nkill the CLONE_NEWPID tasks.\n\nAnd this is more correct.  force_sig() can race with the exiting thread\neven if oom_kill_task() checks p-\u003emm !\u003d NULL, while\ndo_send_sig_info(group \u003d\u003e true) kille the whole process.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Anton Vorontsov \u003canton.vorontsov@linaro.org\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@gmail.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6629326b89b6e69cc44276e1649a31158bb2c819",
      "tree": "ca9463de7f327189cece1111112d2641114f3acc",
      "parents": [
        "934e18b5cb4531cc6e81865bf54115cfd21d1ac6"
      ],
      "author": {
        "name": "Hillf Danton",
        "email": "dhillf@gmail.com",
        "time": "Fri Mar 23 15:01:48 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 23 16:58:31 2012 -0700"
      },
      "message": "mm: hugetlb: cleanup duplicated code in unmapping vm range\n\nFix code duplication in __unmap_hugepage_range(), such as pte_page() and\nhuge_pte_none().\n\nSigned-off-by: Hillf Danton \u003cdhillf@gmail.com\u003e\nCc: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: 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": "643ac9fc5429e85b8b7f534544b80bcc4f34c367",
      "tree": "f6db7d7e8a08761119d478ef7adf5bef4402f786",
      "parents": [
        "437538267b672f9320833907f1b5acbb2605f4be"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hughd@google.com",
        "time": "Fri Mar 23 02:57:31 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 23 08:34:40 2012 -0700"
      },
      "message": "mm: fix testorder interaction between two kswapd patches\n\nAdjusting cc715d99e529 \"mm: vmscan: forcibly scan highmem if there are\ntoo many buffer_heads pinning highmem\" for -stable reveals that it was\nslightly wrong once on top of fe2c2a106663 \"vmscan: reclaim at order 0\nwhen compaction is enabled\", which specifically adds testorder for the\nzone_watermark_ok_safe() test.\n\nSigned-off-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\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "aab008db8063364dc3c8ccf4981c21124866b395",
      "tree": "72914203f4decb023efdaabd0301a62d742dfa8c",
      "parents": [
        "4f5b1affdda3e0c48cac674182f52004137b0ffc",
        "16c0cfa425b8e1488f7a1873bd112a7a099325f0"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 22 19:52:47 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 22 19:52:47 2012 -0700"
      },
      "message": "Merge tag \u0027stable/for-linus-3.4\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/mm\n\nPull cleancache changes from Konrad Rzeszutek Wilk:\n \"This has some patches for the cleancache API that should have been\n  submitted a _long_ time ago.  They are basically cleanups:\n\n   - rename of flush to invalidate\n\n   - moving reporting of statistics into debugfs\n\n   - use __read_mostly as necessary.\n\n  Oh, and also the MAINTAINERS file change.  The files (except the\n  MAINTAINERS file) have been in #linux-next for months now.  The late\n  addition of MAINTAINERS file is a brain-fart on my side - didn\u0027t\n  realize I needed that just until I was typing this up - and I based\n  that patch on v3.3 - so the tree is on top of v3.3.\"\n\n* tag \u0027stable/for-linus-3.4\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/mm:\n  MAINTAINERS: Adding cleancache API to the list.\n  mm: cleancache: Use __read_mostly as appropiate.\n  mm: cleancache: report statistics via debugfs instead of sysfs.\n  mm: zcache/tmem/cleancache: s/flush/invalidate/\n  mm: cleancache: s/flush/invalidate/\n"
    },
    {
      "commit": "754b9800779402924fffe456b49d557e15260cbf",
      "tree": "0e0441eca766616fccd8fc37a3885397efc6063a",
      "parents": [
        "35cb8d9e18c0bb33b90d7e574abadbe23b65427d",
        "ea281a9ebaba3287130dbe15bb0aad6f798bb06b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 22 09:42:04 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 22 09:42:04 2012 -0700"
      },
      "message": "Merge branch \u0027x86-mce-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\nPull MCE changes from Ingo Molnar.\n\n* \u0027x86-mce-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:\n  x86/mce: Fix return value of mce_chrdev_read() when erst is disabled\n  x86/mce: Convert static array of pointers to per-cpu variables\n  x86/mce: Replace hard coded hex constants with symbolic defines\n  x86/mce: Recognise machine check bank signature for data path error\n  x86/mce: Handle \"action required\" errors\n  x86/mce: Add mechanism to safely save information in MCE handler\n  x86/mce: Create helper function to save addr/misc when needed\n  HWPOISON: Add code to handle \"action required\" errors.\n  HWPOISON: Clean up memory_failure() vs. __memory_failure()\n"
    },
    {
      "commit": "95211279c5ad00a317c98221d7e4365e02f20836",
      "tree": "2ddc8625378d2915b8c96392f3cf6663b705ed55",
      "parents": [
        "5375871d432ae9fc581014ac117b96aaee3cd0c7",
        "12724850e8064f64b6223d26d78c0597c742c65a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 22 09:04:48 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 22 09:04:48 2012 -0700"
      },
      "message": "Merge branch \u0027akpm\u0027 (Andrew\u0027s patch-bomb)\n\nMerge first batch of patches from Andrew Morton:\n \"A few misc things and all the MM queue\"\n\n* emailed from Andrew Morton \u003cakpm@linux-foundation.org\u003e: (92 commits)\n  memcg: avoid THP split in task migration\n  thp: add HPAGE_PMD_* definitions for !CONFIG_TRANSPARENT_HUGEPAGE\n  memcg: clean up existing move charge code\n  mm/memcontrol.c: remove unnecessary \u0027break\u0027 in mem_cgroup_read()\n  mm/memcontrol.c: remove redundant BUG_ON() in mem_cgroup_usage_unregister_event()\n  mm/memcontrol.c: s/stealed/stolen/\n  memcg: fix performance of mem_cgroup_begin_update_page_stat()\n  memcg: remove PCG_FILE_MAPPED\n  memcg: use new logic for page stat accounting\n  memcg: remove PCG_MOVE_LOCK flag from page_cgroup\n  memcg: simplify move_account() check\n  memcg: remove EXPORT_SYMBOL(mem_cgroup_update_page_stat)\n  memcg: kill dead prev_priority stubs\n  memcg: remove PCG_CACHE page_cgroup flag\n  memcg: let css_get_next() rely upon rcu_read_lock()\n  cgroup: revert ss_id_lock to spinlock\n  idr: make idr_get_next() good for rcu_read_lock()\n  memcg: remove unnecessary thp check in page stat accounting\n  memcg: remove redundant returns\n  memcg: enum lru_list lru\n  ...\n"
    },
    {
      "commit": "91913a2942d2b582c40673956dec1a9c71d32fe4",
      "tree": "b055ae821b46fa7e11e1f7035a3da7b1e711f5e4",
      "parents": [
        "182f514f883abb5f942c94e61c371c4b406352d4"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Wed Mar 21 22:33:00 2012 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Mar 21 22:33:00 2012 -0400"
      },
      "message": "mm: export dirty_writeback_interval\n\nExport \u0027dirty_writeback_interval\u0027 to make it visible to\nfile-systems. We are going to push superblock management down to\nfile-systems and get rid of the \u0027sync_supers\u0027 kernel thread completly.\n\nSigned-off-by: Artem Bityutskiy \u003cartem.bityutskiy@linux.intel.com\u003e\nCc: Al Viro \u003cviro@ZenIV.linux.org.uk\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "12724850e8064f64b6223d26d78c0597c742c65a",
      "tree": "f0b91eeae069fe92906db7ad9d0d8a8003f05db4",
      "parents": [
        "d8c37c480678ebe09bc570f33e085e28049db035"
      ],
      "author": {
        "name": "Naoya Horiguchi",
        "email": "n-horiguchi@ah.jp.nec.com",
        "time": "Wed Mar 21 16:34:28 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 17:55:02 2012 -0700"
      },
      "message": "memcg: avoid THP split in task migration\n\nCurrently we can\u0027t do task migration among memory cgroups without THP\nsplit, which means processes heavily using THP experience large overhead\nin task migration.  This patch introduces the code for moving charge of\nTHP and makes THP more valuable.\n\nSigned-off-by: Naoya Horiguchi \u003cn-horiguchi@ah.jp.nec.com\u003e\nAcked-by: Hillf Danton \u003cdhillf@gmail.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d8c37c480678ebe09bc570f33e085e28049db035",
      "tree": "c8c53fde803f1a9655f44193c97db76dc4a90fe1",
      "parents": [
        "8d32ff84401f1addb961c7af2c8d9baceb0ab9ba"
      ],
      "author": {
        "name": "Naoya Horiguchi",
        "email": "n-horiguchi@ah.jp.nec.com",
        "time": "Wed Mar 21 16:34:27 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 17:55:02 2012 -0700"
      },
      "message": "thp: add HPAGE_PMD_* definitions for !CONFIG_TRANSPARENT_HUGEPAGE\n\nThese macros will be used in a later patch, where all usages are expected\nto be optimized away without #ifdef CONFIG_TRANSPARENT_HUGEPAGE.  But to\ndetect unexpected usages, we convert the existing BUG() to BUILD_BUG().\n\n[akpm@linux-foundation.org: fix build in mm/pgtable-generic.c]\nSigned-off-by: Naoya Horiguchi \u003cn-horiguchi@ah.jp.nec.com\u003e\nAcked-by: Hillf Danton \u003cdhillf@gmail.com\u003e\nReviewed-by: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nAcked-by: David Rientjes \u003crientjes@google.com\u003e\nCc: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8d32ff84401f1addb961c7af2c8d9baceb0ab9ba",
      "tree": "bf62513b239dce072f0105c0b06ed694634a77d4",
      "parents": [
        "a488428871265979bcf2c46298a04c1d5826e6cb"
      ],
      "author": {
        "name": "Naoya Horiguchi",
        "email": "n-horiguchi@ah.jp.nec.com",
        "time": "Wed Mar 21 16:34:27 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 17:55:02 2012 -0700"
      },
      "message": "memcg: clean up existing move charge code\n\n- Replace lengthy function name is_target_pte_for_mc() with a shorter\n  one in order to avoid ugly line breaks.\n\n- explicitly use MC_TARGET_* instead of simply using integers.\n\nSigned-off-by: Naoya Horiguchi \u003cn-horiguchi@ah.jp.nec.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nCc: Hillf Danton \u003cdhillf@gmail.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nAcked-by: Hillf Danton \u003cdhillf@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": "a488428871265979bcf2c46298a04c1d5826e6cb",
      "tree": "87126bade942bcff8f36e538c8f45605fd080fd0",
      "parents": [
        "45f3e385b7a639c633d7a4b1e863c2d52b918258"
      ],
      "author": {
        "name": "Jeff Liu",
        "email": "jeff.liu@oracle.com",
        "time": "Wed Mar 21 16:34:27 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 17:55:02 2012 -0700"
      },
      "message": "mm/memcontrol.c: remove unnecessary \u0027break\u0027 in mem_cgroup_read()\n\nSigned-off-by: Jie Liu \u003cjeff.liu@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": "45f3e385b7a639c633d7a4b1e863c2d52b918258",
      "tree": "8f0c068aff36cc4f915899ed68d2e8686d75b069",
      "parents": [
        "13fd1dd9db345f6b2babd1e80a1c929092eb4896"
      ],
      "author": {
        "name": "Anton Vorontsov",
        "email": "anton.vorontsov@linaro.org",
        "time": "Wed Mar 21 16:34:26 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 17:55:02 2012 -0700"
      },
      "message": "mm/memcontrol.c: remove redundant BUG_ON() in mem_cgroup_usage_unregister_event()\n\nIn the following code:\n\n\tif (type \u003d\u003d _MEM)\n\t\tthresholds \u003d \u0026memcg-\u003ethresholds;\n\telse if (type \u003d\u003d _MEMSWAP)\n\t\tthresholds \u003d \u0026memcg-\u003ememsw_thresholds;\n\telse\n\t\tBUG();\n\n\tBUG_ON(!thresholds);\n\nThe BUG_ON() seems redundant.\n\nSigned-off-by: Anton Vorontsov \u003canton.vorontsov@linaro.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "13fd1dd9db345f6b2babd1e80a1c929092eb4896",
      "tree": "03d5fd77f06780bd5c164b82c6ba04b56a259b06",
      "parents": [
        "4331f7d339ee0b54603344b9d13662a9c022540c"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Wed Mar 21 16:34:26 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 17:55:02 2012 -0700"
      },
      "message": "mm/memcontrol.c: s/stealed/stolen/\n\nA grammatical fix.\n\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4331f7d339ee0b54603344b9d13662a9c022540c",
      "tree": "ea67ad19a4dff0f8bf7d335bb7ab148ecfb4d329",
      "parents": [
        "2ff76f1193f8481f7e6c29304eea4006e8e51569"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Wed Mar 21 16:34:26 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 17:55:02 2012 -0700"
      },
      "message": "memcg: fix performance of mem_cgroup_begin_update_page_stat()\n\nmem_cgroup_begin_update_page_stat() should be very fast because it\u0027s\ncalled very frequently.  Now, it needs to look up page_cgroup and its\nmemcg....this is slow.\n\nThis patch adds a global variable to check \"any memcg is moving or not\".\nWith this, the caller doesn\u0027t need to visit page_cgroup and memcg.\n\nHere is a test result.  A test program makes page faults onto a file,\nMAP_SHARED and makes each page\u0027s page_mapcount(page) \u003e 1, and free the\nrange by madvise() and page fault again.  This program causes 26214400\ntimes of page fault onto a file(size was 1G.) and shows shows the cost of\nmem_cgroup_begin_update_page_stat().\n\nBefore this patch for mem_cgroup_begin_update_page_stat()\n\n    [kamezawa@bluextal test]$ time ./mmap 1G\n\n    real    0m21.765s\n    user    0m5.999s\n    sys     0m15.434s\n\n    27.46%     mmap  mmap               [.] reader\n    21.15%     mmap  [kernel.kallsyms]  [k] page_fault\n     9.17%     mmap  [kernel.kallsyms]  [k] filemap_fault\n     2.96%     mmap  [kernel.kallsyms]  [k] __do_fault\n     2.83%     mmap  [kernel.kallsyms]  [k] __mem_cgroup_begin_update_page_stat\n\nAfter this patch\n\n    [root@bluextal test]# time ./mmap 1G\n\n    real    0m21.373s\n    user    0m6.113s\n    sys     0m15.016s\n\nIn usual path, calls to __mem_cgroup_begin_update_page_stat() goes away.\n\nNote: we may be able to remove this optimization in future if\n      we can get pointer to memcg directly from struct page.\n\n[akpm@linux-foundation.org: don\u0027t return a void]\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nAcked-by: Greg Thelen \u003cgthelen@google.com\u003e\nAcked-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Ying Han \u003cyinghan@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2ff76f1193f8481f7e6c29304eea4006e8e51569",
      "tree": "a263678dc298e29a0c54bb2e6f98bb1d5ee19751",
      "parents": [
        "89c06bd52fb9ffceddf84f7309d2e8c9f1666216"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Wed Mar 21 16:34:25 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 17:55:01 2012 -0700"
      },
      "message": "memcg: remove PCG_FILE_MAPPED\n\nWith the new lock scheme for updating memcg\u0027s page stat, we don\u0027t need a\nflag PCG_FILE_MAPPED which was duplicated information of page_mapped().\n\n[hughd@google.com: cosmetic fix]\n[hughd@google.com: add comment to MEM_CGROUP_CHARGE_TYPE_MAPPED case in __mem_cgroup_uncharge_common()]\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nAcked-by: Greg Thelen \u003cgthelen@google.com\u003e\nAcked-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Ying Han \u003cyinghan@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "89c06bd52fb9ffceddf84f7309d2e8c9f1666216",
      "tree": "43ec3d97a89988bc143bed5796bcd7bef64212dc",
      "parents": [
        "312734c04e2fecc58429aec98194e4ff12d8f7d6"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Wed Mar 21 16:34:25 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 17:55:01 2012 -0700"
      },
      "message": "memcg: use new logic for page stat accounting\n\nNow, page-stat-per-memcg is recorded into per page_cgroup flag by\nduplicating page\u0027s status into the flag.  The reason is that memcg has a\nfeature to move a page from a group to another group and we have race\nbetween \"move\" and \"page stat accounting\",\n\nUnder current logic, assume CPU-A and CPU-B.  CPU-A does \"move\" and CPU-B\ndoes \"page stat accounting\".\n\nWhen CPU-A goes 1st,\n\n            CPU-A                           CPU-B\n                                    update \"struct page\" info.\n    move_lock_mem_cgroup(memcg)\n    see pc-\u003eflags\n    copy page stat to new group\n    overwrite pc-\u003emem_cgroup.\n    move_unlock_mem_cgroup(memcg)\n                                    move_lock_mem_cgroup(mem)\n                                    set pc-\u003eflags\n                                    update page stat accounting\n                                    move_unlock_mem_cgroup(mem)\n\nstat accounting is guarded by move_lock_mem_cgroup() and \"move\" logic\n(CPU-A) doesn\u0027t see changes in \"struct page\" information.\n\nBut it\u0027s costly to have the same information both in \u0027struct page\u0027 and\n\u0027struct page_cgroup\u0027.  And, there is a potential problem.\n\nFor example, assume we have PG_dirty accounting in memcg.\nPG_..is a flag for struct page.\nPCG_ is a flag for struct page_cgroup.\n(This is just an example. The same problem can be found in any\n kind of page stat accounting.)\n\n\t  CPU-A                               CPU-B\n      TestSet PG_dirty\n      (delay)                        TestClear PG_dirty\n                                     if (TestClear(PCG_dirty))\n                                          memcg-\u003enr_dirty--\n      if (TestSet(PCG_dirty))\n          memcg-\u003enr_dirty++\n\nHere, memcg-\u003enr_dirty \u003d +1, this is wrong.  This race was reported by Greg\nThelen \u003cgthelen@google.com\u003e.  Now, only FILE_MAPPED is supported but\nfortunately, it\u0027s serialized by page table lock and this is not real bug,\n_now_,\n\nIf this potential problem is caused by having duplicated information in\nstruct page and struct page_cgroup, we may be able to fix this by using\noriginal \u0027struct page\u0027 information.  But we\u0027ll have a problem in \"move\naccount\"\n\nAssume we use only PG_dirty.\n\n         CPU-A                   CPU-B\n    TestSet PG_dirty\n    (delay)                    move_lock_mem_cgroup()\n                               if (PageDirty(page))\n                                      new_memcg-\u003enr_dirty++\n                               pc-\u003emem_cgroup \u003d new_memcg;\n                               move_unlock_mem_cgroup()\n    move_lock_mem_cgroup()\n    memcg \u003d pc-\u003emem_cgroup\n    new_memcg-\u003enr_dirty++\n\naccounting information may be double-counted.  This was original reason to\nhave PCG_xxx flags but it seems PCG_xxx has another problem.\n\nI think we need a bigger lock as\n\n     move_lock_mem_cgroup(page)\n     TestSetPageDirty(page)\n     update page stats (without any checks)\n     move_unlock_mem_cgroup(page)\n\nThis fixes both of problems and we don\u0027t have to duplicate page flag into\npage_cgroup.  Please note: move_lock_mem_cgroup() is held only when there\nare possibility of \"account move\" under the system.  So, in most path,\nstatus update will go without atomic locks.\n\nThis patch introduces mem_cgroup_begin_update_page_stat() and\nmem_cgroup_end_update_page_stat() both should be called at modifying\n\u0027struct page\u0027 information if memcg takes care of it.  as\n\n     mem_cgroup_begin_update_page_stat()\n     modify page information\n     mem_cgroup_update_page_stat()\n     \u003d\u003e never check any \u0027struct page\u0027 info, just update counters.\n     mem_cgroup_end_update_page_stat().\n\nThis patch is slow because we need to call begin_update_page_stat()/\nend_update_page_stat() regardless of accounted will be changed or not.  A\nfollowing patch adds an easy optimization and reduces the cost.\n\n[akpm@linux-foundation.org: s/lock/locked/]\n[hughd@google.com: fix deadlock by avoiding stat lock when anon]\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Greg Thelen \u003cgthelen@google.com\u003e\nAcked-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Ying Han \u003cyinghan@google.com\u003e\nSigned-off-by: Hugh Dickins \u003chughd@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "312734c04e2fecc58429aec98194e4ff12d8f7d6",
      "tree": "c1195cd46733b6a3909c11b2b5abcdee4412b99b",
      "parents": [
        "619d094b5872a5af153f1af77a8b7f7326faf0d0"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Wed Mar 21 16:34:24 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 17:55:01 2012 -0700"
      },
      "message": "memcg: remove PCG_MOVE_LOCK flag from page_cgroup\n\nPCG_MOVE_LOCK is used for bit spinlock to avoid race between overwriting\npc-\u003emem_cgroup and page statistics accounting per memcg.  This lock helps\nto avoid the race but the race is very rare because moving tasks between\ncgroup is not a usual job.  So, it seems using 1bit per page is too\ncostly.\n\nThis patch changes this lock as per-memcg spinlock and removes\nPCG_MOVE_LOCK.\n\nIf smaller lock is required, we\u0027ll be able to add some hashes but I\u0027d like\nto start from this.\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nAcked-by: Greg Thelen \u003cgthelen@google.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Ying Han \u003cyinghan@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "619d094b5872a5af153f1af77a8b7f7326faf0d0",
      "tree": "4de9ff8640d8cee092800cd722e621ea2db63640",
      "parents": [
        "9e3357907c84517d9e07bc0b19265807f0264b43"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Wed Mar 21 16:34:23 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 17:55:01 2012 -0700"
      },
      "message": "memcg: simplify move_account() check\n\nIn memcg, for avoiding take-lock-irq-off at accessing page_cgroup, a\nlogic, flag + rcu_read_lock(), is used.  This works as following\n\n     CPU-A                     CPU-B\n                             rcu_read_lock()\n    set flag\n                             if(flag is set)\n                                   take heavy lock\n                             do job.\n    synchronize_rcu()        rcu_read_unlock()\n    take heavy lock.\n\nIn recent discussion, it\u0027s argued that using per-cpu value for this flag\njust complicates the code because \u0027set flag\u0027 is very rare.\n\nThis patch changes \u0027flag\u0027 implementation from percpu to atomic_t.  This\nwill be much simpler.\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nAcked-by: Greg Thelen \u003cgthelen@google.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Ying Han \u003cyinghan@google.com\u003e\nCc: \"Paul E. McKenney\" \u003cpaulmck@us.ibm.com\u003e\nAcked-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9e3357907c84517d9e07bc0b19265807f0264b43",
      "tree": "3ce1602eefd0c1f006c23170da16545478dc5404",
      "parents": [
        "a710920caedfcf56543136bfea300a6c593f9838"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Wed Mar 21 16:34:23 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 17:55:01 2012 -0700"
      },
      "message": "memcg: remove EXPORT_SYMBOL(mem_cgroup_update_page_stat)\n\nAs described in the log, I guess EXPORT was for preparing dirty\naccounting.  But _now_, we don\u0027t need to export this.  Remove this for\nnow.\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nReviewed-by: Greg Thelen \u003cgthelen@google.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Ying Han \u003cyinghan@google.com\u003e\nAcked-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b24028572fb69e9dd6de8c359eba2b2c66baa889",
      "tree": "563594eba40e5fd0b61c36c09705f128a8dfbe40",
      "parents": [
        "ca464d69b19120a826aa2534de2511a6f542edf5"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Wed Mar 21 16:34:22 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 17:55:01 2012 -0700"
      },
      "message": "memcg: remove PCG_CACHE page_cgroup flag\n\nWe record \u0027the page is cache\u0027 with the PCG_CACHE bit in page_cgroup.\nHere, \"CACHE\" means anonymous user pages (and SwapCache).  This doesn\u0027t\ninclude shmem.\n\nConsidering callers, at charge/uncharge, the caller should know what the\npage is and we don\u0027t need to record it by using one bit per page.\n\nThis patch removes PCG_CACHE bit and make callers of\nmem_cgroup_charge_statistics() to specify what the page is.\n\nAbout page migration: Mapping of the used page is not touched during migra\ntion (see page_remove_rmap) so we can rely on it and push the correct\ncharge type down to __mem_cgroup_uncharge_common from end_migration for\nunused page.  The force flag was misleading was abused for skipping the\nneedless page_mapped() / PageCgroupMigration() check, as we know the\nunused page is no longer mapped and cleared the migration flag just a few\nlines up.  But doing the checks is no biggie and it\u0027s not worth adding\nanother flag just to skip them.\n\n[akpm@linux-foundation.org: checkpatch fixes]\n[hughd@google.com: fix PageAnon uncharging]\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nAcked-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nAcked-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Ying Han \u003cyinghan@google.com\u003e\nAcked-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0e79dedde951e981612ed4e6d74873d61d2a113b",
      "tree": "eb759b4516068a39bc30a2e1758f0743a9c68762",
      "parents": [
        "1f2b71f41ee81735c25ef326da9a0610d640abc2"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Wed Mar 21 16:34:20 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 17:55:01 2012 -0700"
      },
      "message": "memcg: remove unnecessary thp check in page stat accounting\n\nCommit e94c8a9cbce1 (\"memcg: make mem_cgroup_split_huge_fixup() more\nefficient\") removed move_lock_page_cgroup().  So we do not have to check\nPageTransHuge in mem_cgroup_update_page_stat() and fallback into the\nlocked accounting because both move_account() and thp split are done\nwith compound_lock so they cannot race.\n\nThe race between update vs.  move is protected by mem_cgroup_stealed.\n\nPageTransHuge pages shouldn\u0027t appear in this code path currently because\nwe are tracking only file pages at the moment but later we are planning\nto track also other pages (e.g.  mlocked ones).\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nReviewed-by: Acked-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nAcked-by: Ying Han\u003cyinghan@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    }
  ],
  "next": "1f2b71f41ee81735c25ef326da9a0610d640abc2"
}
