)]}'
{
  "log": [
    {
      "commit": "c92182ee0b5a33c74e4b6c0ded36166e4ef3bc3e",
      "tree": "4583c06816318f4e4b4216239f83d91aa11b5fbe",
      "parents": [
        "7287be1d0ac8c82999b67c2a33517c6ec9cfdbe7"
      ],
      "author": {
        "name": "Yauhen Kharuzhy",
        "email": "jekhor@gmail.com",
        "time": "Tue Jan 10 15:10:34 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 16:30:52 2012 -0800"
      },
      "message": "drivers/rtc/rtc-mxc.c: make alarm work\n\nFix alarm IRQ handling, make the alarm one-shot.  Cleanup black magick\nwith a validation of already validated time data.\n\nAdd ability to wake the system with alarm.\n\n[akpm@linux-foundation.org: fix CONFIG_PM\u003dn build]\nSigned-off-by: Yauhen Kharuzhy \u003cjekhor@gmail.com\u003e\nCc: Daniel Mack \u003cdaniel@caiaq.de\u003e\nCc: Alessandro Zummo \u003ca.zummo@towertech.it\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7287be1d0ac8c82999b67c2a33517c6ec9cfdbe7",
      "tree": "7ed79d428bec700c2288c83cf3d685f87aa7019a",
      "parents": [
        "b43c1ea4d622b6951377de92edfb219d893e23ef"
      ],
      "author": {
        "name": "Yauhen Kharuzhy",
        "email": "jekhor@gmail.com",
        "time": "Tue Jan 10 15:10:32 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 16:30:52 2012 -0800"
      },
      "message": "drivers/rtc/rtc-mxc.c: fix setting time for MX1 SoC\n\nThere is no way to track year in the i.MX1 RTC: Days Counter register is\n9-bit wide only.  Attempt to save date after 1970-01-01 plus 512 days\ncauses endless loop in mxc_rtc_set_mmss().  Fix this by resetting year to\n1970.\n\n[akpm@linux-foundation.org: use conventional comment layout]\nSigned-off-by: Yauhen Kharuzhy \u003cjekhor@gmail.com\u003e\nCc: Daniel Mack \u003cdaniel@caiaq.de\u003e\nCc: Alessandro Zummo \u003ca.zummo@towertech.it\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b43c1ea4d622b6951377de92edfb219d893e23ef",
      "tree": "9275010ed3f8a4eb521e2ceafe1ef2605b7b9b3b",
      "parents": [
        "e26d196cc88c5436ca93532cabce87dbd8bf49b4"
      ],
      "author": {
        "name": "Ondrej Zary",
        "email": "linux@rainbow-software.org",
        "time": "Tue Jan 10 15:10:26 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 16:30:52 2012 -0800"
      },
      "message": "drivers/rtc/rtc-cmos.c: fix broken NVRAM bank 2 writing\n\nFix writing to NVRAM bank 2 in rtc-cmos driver.  It never worked since its\nintroduction in 2.6.28 because of a typo.\n\nSigned-off-by: Ondrej Zary \u003clinux@rainbow-software.org\u003e\nCc: Alessandro Zummo \u003ca.zummo@towertech.it\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e26d196cc88c5436ca93532cabce87dbd8bf49b4",
      "tree": "7aafb2985451ea59598fb49bb71641b552cc080a",
      "parents": [
        "e39f560239984c3098237ad94c9449b1494163f8"
      ],
      "author": {
        "name": "David Daney",
        "email": "ddaney.cavm@gmail.com",
        "time": "Tue Jan 10 15:10:22 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 16:30:51 2012 -0800"
      },
      "message": "MIPS: randomize PIE load address\n\n... by selecting ARCH_BINFMT_ELF_RANDOMIZE_PIE\n\nSigned-off-by: David Daney \u003cdavid.daney@cavium.com\u003e\nCc: Russell King \u003clinux@arm.linux.org.uk\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nCc: Alexander Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: H. Peter Anvin \u003chpa@zytor.com\u003e\nCc: Ralf Baechle \u003cralf@linux-mips.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e39f560239984c3098237ad94c9449b1494163f8",
      "tree": "c86d9f84a3cb706813919ec7472fb75207bc9c8c",
      "parents": [
        "5742332dea5560d6c449b007d9539dbdc8ee531b"
      ],
      "author": {
        "name": "David Daney",
        "email": "ddaney.cavm@gmail.com",
        "time": "Tue Jan 10 15:10:21 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 16:30:51 2012 -0800"
      },
      "message": "fs: binfmt_elf: create Kconfig variable for PIE randomization\n\nRandomization of PIE load address is hard coded in binfmt_elf.c for X86\nand ARM.  Create a new Kconfig variable\n(CONFIG_ARCH_BINFMT_ELF_RANDOMIZE_PIE) for this and use it instead.  Thus\narchitecture specific policy is pushed out of the generic binfmt_elf.c and\ninto the architecture Kconfig files.\n\nX86 and ARM Kconfigs are modified to select the new variable so there is\nno change in behavior.  A follow on patch will select it for MIPS too.\n\nSigned-off-by: David Daney \u003cdavid.daney@cavium.com\u003e\nCc: Russell King \u003clinux@arm.linux.org.uk\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nCc: Alexander Viro \u003cviro@zeniv.linux.org.uk\u003e\nAcked-by: H. Peter Anvin \u003chpa@zytor.com\u003e\nCc: Ralf Baechle \u003cralf@linux-mips.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5742332dea5560d6c449b007d9539dbdc8ee531b",
      "tree": "64f4516b733638c966d6e66613e6ae016839d3f2",
      "parents": [
        "bfcb2cc798a14230d22b6dd999e2e680623de622"
      ],
      "author": {
        "name": "Joakim Tjernlund",
        "email": "Joakim.Tjernlund@transmode.se",
        "time": "Tue Jan 10 15:10:18 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 16:30:51 2012 -0800"
      },
      "message": "crc32: optimize inner loop\n\nTaking a pointer reference to each row in the crc table matrix, one can\nreduce the inner loop with a few insn\u0027s\n\nSigned-off-by: Joakim Tjernlund \u003cJoakim.Tjernlund@transmode.se\u003e\nCc: Bob Pearson \u003crpearson@systemfabricworks.com\u003e\nCc: Frank Zago \u003cfzago@systemfabricworks.com\u003e\nCc: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bfcb2cc798a14230d22b6dd999e2e680623de622",
      "tree": "dfa486a04620bd02e58b3cdcb8b06ee5da3014ac",
      "parents": [
        "6b48db24e30d371bc54566667b82ca3d64aab80a"
      ],
      "author": {
        "name": "Andy Whitcroft",
        "email": "apw@canonical.com",
        "time": "Tue Jan 10 15:10:15 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 16:30:51 2012 -0800"
      },
      "message": "checkpatch: catch all occurences of type and cast spacing errors per line\n\nFix up type and cast spacing checks such that all occurences on a line are\nexamined and reported.  For example the line below has a valid cast and a\nbad type, but currently we check the cast first which is good and stop:\n\n    u16* bar \u003d (u16 *)baz;\n\nWe will also only report one of the errors in this example:\n\n    u16* bar \u003d (u16*)bad;\n\nMove to iterating across all casts and all types, reporting any failure.\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: Andy Whitcroft \u003capw@canonical.com\u003e\nCc: Joe Perches \u003cjoe@perches.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6b48db24e30d371bc54566667b82ca3d64aab80a",
      "tree": "4532e530d3e97917dc8a82bfc1f23f91e9627150",
      "parents": [
        "addcdcea99514bee64b5bf091ac9fd2fc5da65cf"
      ],
      "author": {
        "name": "Andy Whitcroft",
        "email": "apw@canonical.com",
        "time": "Tue Jan 10 15:10:13 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 16:30:51 2012 -0800"
      },
      "message": "checkpatch: typeof may have more complex arguments\n\ntypeof may have various more complex forms as its arguement, not just an\nidentifier.  For now allow us to leak to the first close perenthesis \u0027)\u0027.\n\nSigned-off-by: Andy Whitcroft \u003capw@canonical.com\u003e\nCc: Joe Perches \u003cjoe@perches.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "addcdcea99514bee64b5bf091ac9fd2fc5da65cf",
      "tree": "effbf409bfc451203c0051f130ff263c52aa356e",
      "parents": [
        "c81769fdc84ed7c6eb3cc5cecb194324a5e4c8ad"
      ],
      "author": {
        "name": "Andy Whitcroft",
        "email": "apw@canonical.com",
        "time": "Tue Jan 10 15:10:11 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 16:30:51 2012 -0800"
      },
      "message": "checkpatch: ensure cast type is unique in the context parser\n\nEnsure the cast type is unique in the context parser, we do not want them\nto detect as a comma \u0027,\u0027.\n\nSigned-off-by: Andy Whitcroft \u003capw@canonical.com\u003e\nCc: Joe Perches \u003cjoe@perches.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c81769fdc84ed7c6eb3cc5cecb194324a5e4c8ad",
      "tree": "bfa7973e16263c7993a54bd53e7a00f350f7d5cc",
      "parents": [
        "e01886ada28741d7cb2cfb3224e9caccfbc1a2d5"
      ],
      "author": {
        "name": "Andy Whitcroft",
        "email": "apw@canonical.com",
        "time": "Tue Jan 10 15:10:10 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 16:30:51 2012 -0800"
      },
      "message": "checkpatch: fix complex macros handling of square brackets\n\nSigned-off-by: Andy Whitcroft \u003capw@canonical.com\u003e\nCc: Joe Perches \u003cjoe@perches.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e01886ada28741d7cb2cfb3224e9caccfbc1a2d5",
      "tree": "ba401dddad6fffc2dc079e1449f20c2091195a41",
      "parents": [
        "72f115f94d500fc72f78c5df8104a98f8b9cc273"
      ],
      "author": {
        "name": "Andy Whitcroft",
        "email": "apw@canonical.com",
        "time": "Tue Jan 10 15:10:08 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 16:30:51 2012 -0800"
      },
      "message": "checkpatch: fix \u0027return is not a function\u0027 square bracket handling\n\nWe are incorrectly matching square brackets \u0027[\u0027 and \u0027]\u0027 leading to false\npositives on more complex functions as below:\n\n    return (dt3155_fbuffer[m]-\u003eready_head -\n\tdt3155_fbuffer[m]-\u003eready_len +\n\tdt3155_fbuffer[m]-\u003enbuffers)%\n\t(dt3155_fbuffer[m]-\u003enbuffers);\n\nSigned-off-by: Andy Whitcroft \u003capw@canonical.com\u003e\nCc: Joe Perches \u003cjoe@perches.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "72f115f94d500fc72f78c5df8104a98f8b9cc273",
      "tree": "3c6b37bebd9b1f1671df4f8d0dcbe0f625b4a6a0",
      "parents": [
        "87a53877185627b49a903023255425bda78f890c"
      ],
      "author": {
        "name": "Andy Whitcroft",
        "email": "apw@canonical.com",
        "time": "Tue Jan 10 15:10:06 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 16:30:51 2012 -0800"
      },
      "message": "checkpatch: complex macro should allow the empty do while loop\n\nIt is common to stub out a function as below, this is triggering a complex\nmacro format incorrectly.  Sort this out:\n\n    #define cma_early_regions_reserve(reserve)   do { } while (0)\n\nSigned-off-by: Andy Whitcroft \u003capw@canonical.com\u003e\nCc: Joe Perches \u003cjoe@perches.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "87a53877185627b49a903023255425bda78f890c",
      "tree": "47809b22567658e1e17be1603358d06f79a8e99f",
      "parents": [
        "a13858033a3a993147d190317cc9d709f0a1b819"
      ],
      "author": {
        "name": "Andy Whitcroft",
        "email": "apw@canonical.com",
        "time": "Tue Jan 10 15:10:04 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 16:30:50 2012 -0800"
      },
      "message": "checkpatch: fix EXPORT_SYMBOL handling following a function\n\nThe following fragment defeats the DEVICE_ATTR style handing, check for\nand ignore the close brace \u0027}\u0027 in this context:\n\n    int foo()\n    {\n    }\n    DEVICE_ATTR(link_power_management_policy, S_IRUGO | S_IWUSR,\n                ata_scsi_lpm_show, ata_scsi_lpm_put);\n    EXPORT_SYMBOL_GPL(dev_attr_link_power_management_policy);\n\nSigned-off-by: Andy Whitcroft \u003capw@canonical.com\u003e\nCc: Joe Perches \u003cjoe@perches.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a13858033a3a993147d190317cc9d709f0a1b819",
      "tree": "2d82b609eeafc484a046faa4616f4ed67a31c27f",
      "parents": [
        "3e469cdc08ac5d84b220f8fb76a090d158d5114f"
      ],
      "author": {
        "name": "Andy Whitcroft",
        "email": "apw@canonical.com",
        "time": "Tue Jan 10 15:10:03 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 16:30:50 2012 -0800"
      },
      "message": "checkpatch: only apply kconfig help checks for options which prompt\n\nThe intent of this check is to catch the options which the user will see\nand ensure they are properly described.  It is also common for internal\nonly options to have a brief description.  Allow this form.\n\nReported-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nTested-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Andy Whitcroft \u003capw@canonical.com\u003e\nCc: Joe Perches \u003cjoe@perches.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3e469cdc08ac5d84b220f8fb76a090d158d5114f",
      "tree": "fc35a9ca8593ddd2bf0e07ceb2f39e83ff06ff4c",
      "parents": [
        "89a883530fe79939384a6c6ed893c719762c7c9c"
      ],
      "author": {
        "name": "Andy Whitcroft",
        "email": "apw@canonical.com",
        "time": "Tue Jan 10 15:10:01 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 16:30:50 2012 -0800"
      },
      "message": "checkpatch: optimise statement scanner when mid-statement\n\nIn the middle of a long definition or similar, there is no possibility of\nfinding a smaller sub-statement.  Optimise this case by skipping statement\naquirey where there are no starts of statement (open brace \u0027{\u0027 or\nsemi-colon \u0027;\u0027).  We are likely to scan slightly more than needed still\nbut this is safest.\n\nSigned-off-by: Andy Whitcroft \u003capw@canonical.com\u003e\nCc: Joe Perches \u003cjoe@perches.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "89a883530fe79939384a6c6ed893c719762c7c9c",
      "tree": "49d1dd395c3029ab6261c8d217f53642d77bdc0f",
      "parents": [
        "d7c76ba7e58bc3ca674f20759c686535db484749"
      ],
      "author": {
        "name": "Andy Whitcroft",
        "email": "apw@canonical.com",
        "time": "Tue Jan 10 15:10:00 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 16:30:50 2012 -0800"
      },
      "message": "checkpatch: ## is not a valid modifier\n\nInserting a # into the modifiers list will incorrectly add the null string\nto the modifiers list, leading to an infinite loop.  As neither of these\nis a valid modifier form simply ignore them.\n\nSigned-off-by: Andy Whitcroft \u003capw@canonical.com\u003e\nReported-by: Joe Perches \u003cjoe@perches.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d7c76ba7e58bc3ca674f20759c686535db484749",
      "tree": "26066daabbfd375eb984da2d8d773ef230f62ddb",
      "parents": [
        "554e165cf32610ec9596a183fa1b54a5707fc3cb"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Tue Jan 10 15:09:58 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 16:30:50 2012 -0800"
      },
      "message": "checkpatch: improve memset and min/max with cast checking\n\nImprove the checking of arguments to memset and min/max tests.\n\nMove the checking of min/max to statement blocks instead of single line.\nChange $Constant to allow any case type 0x initiator and trailing ul\nspecifier.  Add $FuncArg type as any function argument with or without a\ncast.  Print the whole statement when showing memset or min/max messages.\nImprove the memset with 0 as 3rd argument error message.\n\nThere are still weaknesses in the $FuncArg and $Constant code as arbitrary\nparentheses and negative signs are not generically supported.\n\n[akpm@linux-foundation.org: fix per Andy]\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nAcked-by: Andy Whitcroft \u003capw@canonical.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "554e165cf32610ec9596a183fa1b54a5707fc3cb",
      "tree": "027354f186b71c033929a5ecf8df80f131c9ce7b",
      "parents": [
        "f74bd1942e04a0cedd1e9c8b331141e75add49c0"
      ],
      "author": {
        "name": "Andy Whitcroft",
        "email": "apw@canonical.com",
        "time": "Tue Jan 10 15:09:57 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 16:30:50 2012 -0800"
      },
      "message": "checkpatch: check for common memset parameter issues against statments\n\nMove the memset checks over to work against the statement.  Also add\nchecks for 0 and 1 used as lengths.  Generally these indicate badly\nordered parameters.\n\nSigned-off-by: Andy Whitcroft \u003capw@canonical.com\u003e\nCc: Joe Perches \u003cjoe@perches.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f74bd1942e04a0cedd1e9c8b331141e75add49c0",
      "tree": "76e1f8b1fdf0c1be748304d14f9aed353932fc26",
      "parents": [
        "5f14d3bd87ef5f979ea64c1f0862534d71786db7"
      ],
      "author": {
        "name": "Andy Whitcroft",
        "email": "apw@canonical.com",
        "time": "Tue Jan 10 15:09:54 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 16:30:50 2012 -0800"
      },
      "message": "checkpatch: correctly track the end of preprocessor commands in context\n\nWhen looking for a statement we currently run on through preprocessor\ncommands.  This means that a header file with just definitions is parsed\nover and over again combining all of the lines from the current line to\nthe end of file leading to severe performance issues.\n\nFix up context accumulation to track preprocessor commands and stop when\nreaching the end of them.  At the same time vastly simplify the #define\nhandling.\n\nSigned-off-by: Andy Whitcroft \u003capw@canonical.com\u003e\nCc: Joe Perches \u003cjoe@perches.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5f14d3bd87ef5f979ea64c1f0862534d71786db7",
      "tree": "88982b950031e877156bf17c3755d9a128b336f8",
      "parents": [
        "270c49a088ae58d4b817861bb04bfec63b0966db"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Tue Jan 10 15:09:52 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 16:30:50 2012 -0800"
      },
      "message": "checkpatch: prefer __printf over __attribute__((format(printf,...)))\n\nAdd a warn for not using __printf.\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "270c49a088ae58d4b817861bb04bfec63b0966db",
      "tree": "4c08b86b0be13a7d256e1f7a83f87ebca9d20b9d",
      "parents": [
        "96b62067f970ff529c98913311d33f4b57b453dc"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Tue Jan 10 15:09:50 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 16:30:50 2012 -0800"
      },
      "message": "checkpatch: update signature \"might be better as\" warning\n\nemail header lines can look like signature tags.  It\u0027s valid to have\nmultiple email recipients on a single line but not valid to have multiple\nsignatures on a single line.\n\nValidate signatures only when not in the email headers.\n\nClear the $in_commit_log flag when the patch filename appears.\n\nAdd \u0027-\u0027 to the valid chars in a message header for headers\nlike \"Message-Id:\" and \"In-Reply-To:\".\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nReported-by: Julia Lawall \u003cjulia.lawall@lip6.fr\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "96b62067f970ff529c98913311d33f4b57b453dc",
      "tree": "4e696c155b2cce6fd0068a9be2a0c09e42bb38d6",
      "parents": [
        "c957b614bde8539416dcde8d702370ff30b1c662"
      ],
      "author": {
        "name": "Steve Hodgson",
        "email": "steve@purestorage.com",
        "time": "Tue Jan 10 15:09:47 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 16:30:49 2012 -0800"
      },
      "message": "btree: export btree_get_prev() so modules can use btree_for_each\n\nThe btree_for_each API is implemented with macros that internally call\nbtree_get_prev(), so if btree_get_prev() isn\u0027t exported then modules fail\nto link if they try to use one of the btree_for_each macros.  Since the\nrest of the btree API is exported, we should keep things orthogonal and\nmake this work too.\n\nSigned-off-by: Roland Dreier \u003croland@purestorage.com\u003e\nSigned-off-by: Steve Hodgson \u003csteve@purestorage.com\u003e\nAcked-by: Joern Engel \u003cjoern@logfs.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c957b614bde8539416dcde8d702370ff30b1c662",
      "tree": "06b97ffc49747d3410616c32de8a39a8cdc6129f",
      "parents": [
        "1713cb9d6069fac581fcea928f65ca6ca7c9facf"
      ],
      "author": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Tue Jan 10 15:09:46 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 16:30:49 2012 -0800"
      },
      "message": "leds: convert wm8350 driver to devm_kzalloc()\n\nSaves a small amount of code and systematically eliminates leaks.\n\nSigned-off-by: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\nCc: Richard Purdie \u003crpurdie@rpsys.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1713cb9d6069fac581fcea928f65ca6ca7c9facf",
      "tree": "51aec6df6fa247827b54f41b75ec3a66d426362b",
      "parents": [
        "3b080945aa7670354364c8f9e1a3a07cbb97beb3"
      ],
      "author": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Tue Jan 10 15:09:45 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 16:30:49 2012 -0800"
      },
      "message": "leds: convert wm831x status driver to devm_kzalloc()\n\nSaves a small amount of code and systematically eliminates leaks.\n\nSigned-off-by: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\nCc: Richard Purdie \u003crpurdie@rpsys.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3b080945aa7670354364c8f9e1a3a07cbb97beb3",
      "tree": "c901525cf47e02e4423800d13bc7802755e566cd",
      "parents": [
        "a6d511e5155406cd214d3af3ff9cffc69548b006"
      ],
      "author": {
        "name": "Axel Lin",
        "email": "axel.lin@gmail.com",
        "time": "Tue Jan 10 15:09:43 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 16:30:49 2012 -0800"
      },
      "message": "drivers/leds/leds-mc13783.c: fix off-by-one for checking num_leds\n\nThe LED id begins from 0.  Thus the maximum number of leds should be\nMC13783_LED_MAX + 1.\n\nSigned-off-by: Axel Lin \u003caxel.lin@gmail.com\u003e\nAcked-by: Philippe Retornaz \u003cphilippe.retornaz@epfl.ch\u003e\nCc: Richard Purdie \u003crpurdie@rpsys.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a6d511e5155406cd214d3af3ff9cffc69548b006",
      "tree": "2151e16ad65c9646a47d9591b264e9016efedc33",
      "parents": [
        "b96a573f4c27529d379922670e8cf5530120d5ca"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Jan 10 15:09:40 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 16:30:49 2012 -0800"
      },
      "message": "leds: add driver for TCA6507 LED controller\n\nTI\u0027s TCA6507 is the LED driver in the GTA04 Openmoko motherboard.  The\ndriver provides full support for brightness levels and hardware blinking.\n\nThis driver can drive each of 7 outputs as an LED or a GPIO output,\nand provides hardware-assist blinking.\n\n[akpm@linux-foundation.org: fix __mod_i2c_device_table alias]\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\nCc: Richard Purdie \u003crpurdie@rpsys.net\u003e\nCc: Randy Dunlap \u003crdunlap@xenotime.net\u003e\nCc: Dan Carpenter \u003cdan.carpenter@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": "b96a573f4c27529d379922670e8cf5530120d5ca",
      "tree": "3bcc570221a4a47c83e50d8d538730c4ea4bedd3",
      "parents": [
        "95dafd475382740a841697a2ead6566175d26390"
      ],
      "author": {
        "name": "Axel Lin",
        "email": "axel.lin@gmail.com",
        "time": "Tue Jan 10 15:09:37 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 16:30:49 2012 -0800"
      },
      "message": "drivers/leds/leds-netxbig.c: use gpio_request_one()\n\nUse gpio_request_one() instead of multiple gpiolib calls.  This also\nsimplifies error handling a bit.\n\nSigned-off-by: Axel Lin \u003caxel.lin@gmail.com\u003e\nCc: Simon Guinot \u003csguinot@lacie.com\u003e\nCc: Richard Purdie \u003crpurdie@rpsys.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "95dafd475382740a841697a2ead6566175d26390",
      "tree": "4aa338ef4b6afb327fc037ed8811e99be18dfe73",
      "parents": [
        "1980bcfa6bc5a77491176ba695422e205dcfd2da"
      ],
      "author": {
        "name": "Axel Lin",
        "email": "axel.lin@gmail.com",
        "time": "Tue Jan 10 15:09:35 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 16:30:49 2012 -0800"
      },
      "message": "drivers/leds/leds-bd2802.c: use gpio_request_one()\n\nUse gpio_request_one() instead of multiple gpiolib calls.\n\nSigned-off-by: Axel Lin \u003caxel.lin@gmail.com\u003e\nCc: Kim Kyuwon \u003cq1.kim@samsung.com\u003e\nCc: Richard Purdie \u003crpurdie@rpsys.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1980bcfa6bc5a77491176ba695422e205dcfd2da",
      "tree": "60d23fc2c2be0b93b4539a8fcd6ae17b927c85ed",
      "parents": [
        "19b955768b4ede7c9ad0efe4def70852c530d4f9"
      ],
      "author": {
        "name": "Axel Lin",
        "email": "axel.lin@gmail.com",
        "time": "Tue Jan 10 15:09:34 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 16:30:49 2012 -0800"
      },
      "message": "drivers/leds/leds-lp5523.c: remove unneeded forward declaration\n\nSigned-off-by: Axel Lin \u003caxel.lin@gmail.com\u003e\nCc: Samu Onkalo \u003csamu.p.onkalo@nokia.com\u003e\nCc: Richard Purdie \u003crpurdie@rpsys.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "19b955768b4ede7c9ad0efe4def70852c530d4f9",
      "tree": "680cfdeb779ac97be163fbe908f8ac8061236791",
      "parents": [
        "09a0d183ef3d310ee9d0b835d9db741fda9d6d46"
      ],
      "author": {
        "name": "Axel Lin",
        "email": "axel.lin@gmail.com",
        "time": "Tue Jan 10 15:09:30 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 16:30:49 2012 -0800"
      },
      "message": "leds: convert leds-dac124s085 to module_spi_driver\n\nFactor out some boilerplate code for spi driver registration into\nmodule_spi_driver.\n\nSigned-off-by: Axel Lin \u003caxel.lin@gmail.com\u003e\nCc: Haojian Zhuang \u003chzhuang1@marvell.com\u003e\nCc: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\nCc: Richard Purdie \u003crpurdie@rpsys.net\u003e\nCc: Michael Hennerich \u003chennerich@blackfin.uclinux.org\u003e\nCc: Mike Rapoport \u003cmike@compulab.co.il\u003e\nAcked-by: Guennadi Liakhovetski \u003cg.liakhovetski@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": "09a0d183ef3d310ee9d0b835d9db741fda9d6d46",
      "tree": "8ccf315879a3152eba11961885f5f589088dc9da",
      "parents": [
        "892a8843fbef07a7f2ab62d5f7ff5c16ea0903b0"
      ],
      "author": {
        "name": "Axel Lin",
        "email": "axel.lin@gmail.com",
        "time": "Tue Jan 10 15:09:27 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 16:30:48 2012 -0800"
      },
      "message": "leds: convert led i2c drivers to module_i2c_driver\n\nFactor out some boilerplate code for i2c driver registration\ninto module_i2c_driver.\n\nSigned-off-by: Axel Lin \u003caxel.lin@gmail.com\u003e\nCc: Haojian Zhuang \u003chzhuang1@marvell.com\u003e\nCc: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\nCc: Richard Purdie \u003crpurdie@rpsys.net\u003e\nCc: Michael Hennerich \u003chennerich@blackfin.uclinux.org\u003e\nCc: Mike Rapoport \u003cmike@compulab.co.il\u003e\nCc: Guennadi Liakhovetski \u003cg.liakhovetski@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": "892a8843fbef07a7f2ab62d5f7ff5c16ea0903b0",
      "tree": "cddc55a75280ec2851e26f127acd2f05e9483cc1",
      "parents": [
        "e2c17bc6f717a8847df2a867caec6ba4fe85f3fc"
      ],
      "author": {
        "name": "Axel Lin",
        "email": "axel.lin@gmail.com",
        "time": "Tue Jan 10 15:09:24 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 16:30:48 2012 -0800"
      },
      "message": "leds: convert led platform drivers to module_platform_driver\n\nFactor out some boilerplate code for platform driver registration into\nmodule_platform_driver.\n\nSigned-off-by: Axel Lin \u003caxel.lin@gmail.com\u003e\nAcked-by: Haojian Zhuang \u003chzhuang1@marvell.com\u003e\t\t[led-88pm860x.c]\nAcked-by: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\nCc: Richard Purdie \u003crpurdie@rpsys.net\u003e\nCc: Michael Hennerich \u003chennerich@blackfin.uclinux.org\u003e\nCc: Mike Rapoport \u003cmike@compulab.co.il\u003e\nCc: Guennadi Liakhovetski \u003cg.liakhovetski@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": "e2c17bc6f717a8847df2a867caec6ba4fe85f3fc",
      "tree": "9e0014d520c8b83601968da292d080fda8bb7e52",
      "parents": [
        "48e78e8cc87ab80617ef0c5a146701ca96a4a51d"
      ],
      "author": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Tue Jan 10 15:09:22 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 16:30:48 2012 -0800"
      },
      "message": "backlight: convert pwm_bl to dev_pm_ops\n\nShould be no functional changes, mainly a reorganisation to support future\nwork.\n\n[akpm@linux-foundation.org: fix CONFIG_PM\u003dn build]\nSigned-off-by: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\nCc: Richard Purdie \u003crpurdie@rpsys.net\u003e\nCc: Florian Tobias Schandinat \u003cFlorianSchandinat@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": "48e78e8cc87ab80617ef0c5a146701ca96a4a51d",
      "tree": "607c7288eec87945a387a035b297a41650ed6b61",
      "parents": [
        "66655760bf38861299e3c8196f5303f886b0eef9"
      ],
      "author": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Tue Jan 10 15:09:21 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 16:30:48 2012 -0800"
      },
      "message": "backlight: convert platform_lcd to devm_kzalloc()\n\nSaves some error handling code and eliminates a class of leaks.\n\nSigned-off-by: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\nCc: Richard Purdie \u003crpurdie@rpsys.net\u003e\nCc: Florian Tobias Schandinat \u003cFlorianSchandinat@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": "66655760bf38861299e3c8196f5303f886b0eef9",
      "tree": "fb027ccb8c61fa987aec251887c91541d310be9d",
      "parents": [
        "1cfc6fee34a4343d79357c46722eb840fbc04f46"
      ],
      "author": {
        "name": "Jingoo Han",
        "email": "jg1.han@samsung.com",
        "time": "Tue Jan 10 15:09:19 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 16:30:48 2012 -0800"
      },
      "message": "backlight: use kstrtoul()\n\nThe usage of simple_strtoul() or strict_strtoul() is not preferred.  Thus,\nkstrtoul should be used.\n\nThis patch also fixes checkpatch error as follows:\nERROR: space required after that \u0027,\u0027 (ctx:VxV)\n\nSigned-off-by: Jingoo Han \u003cjg1.han@samsung.com\u003e\nCc: Richard Purdie \u003crpurdie@rpsys.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1cfc6fee34a4343d79357c46722eb840fbc04f46",
      "tree": "beaa72fe50266f544a529a46e05f96127182cd61",
      "parents": [
        "b148a272944549c2b9f180b53c4fcf35aca4ed3e"
      ],
      "author": {
        "name": "Jingoo Han",
        "email": "jg1.han@samsung.com",
        "time": "Tue Jan 10 15:09:18 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 16:30:48 2012 -0800"
      },
      "message": "drivers/video/backlight/ep93xx_bl.c: remove duplicated header include\n\nmodule.h is included twice.\n\nSigned-off-by: Jingoo Han \u003cjg1.han@samsung.com\u003e\nAcked-by: H Hartley Sweeten \u003chsweeten@visionengravers.com\u003e\nCc: Ryan Mallon \u003crmallon@gmail.com\u003e\nCc: Richard Purdie \u003crpurdie@rpsys.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b148a272944549c2b9f180b53c4fcf35aca4ed3e",
      "tree": "0f16c6f941973b69bcf73acf35a1939cf4ba09b2",
      "parents": [
        "81178e021689bf86c328f144aa0f0e1b50f5e94c"
      ],
      "author": {
        "name": "Donghwa Lee",
        "email": "dh09.lee@samsung.com",
        "time": "Tue Jan 10 15:09:15 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 16:30:48 2012 -0800"
      },
      "message": "backlight/ld9040.c: regulator control in the driver\n\nThis patch supports regulator power control in the driver.  Current ld9040\ndriver was controlled power on/off sequence by callback function in the\nboard file.  But, by doing this, there\u0027s no need to register lcd power\non/off callback function in the board file.\n\nSigned-off-by: Donghwa Lee \u003cdh09.lee@samsung.com\u003e\nSigned-off-by: Kyungmin Park \u003ckyungmin.park@samsung.com\u003e\nSigned-off-by: Inki Dae \u003cinki.dae@samsung.com\u003e\nCc: Richard Purdie \u003crpurdie@rpsys.net\u003e\nCc: Florian Tobias Schandinat \u003cFlorianSchandinat@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": "81178e021689bf86c328f144aa0f0e1b50f5e94c",
      "tree": "fccb1bdc72884c42ca491067060bc760a1d6e24c",
      "parents": [
        "3ed0c15fd1032c6a75aba804a200d4acc5aeb72e"
      ],
      "author": {
        "name": "Axel Lin",
        "email": "axel.lin@gmail.com",
        "time": "Tue Jan 10 15:09:11 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 16:30:48 2012 -0800"
      },
      "message": "backlight: convert drivers/video/backlight/* to use module_platform_driver()\n\nConvert the drivers in drivers/video/backlight/* to use the\nmodule_platform_driver() macro which makes the code smaller and a bit\nsimpler.\n\nSigned-off-by: Axel Lin \u003caxel.lin@gmail.com\u003e\nAcked-by: Haojian Zhuang \u003chaojian.zhuang@gmail.com\u003e\nAcked-by: H Hartley Sweeten \u003chsweeten@visionengravers.com\u003e\t[ep93xx_bl.c]\nCc: Mike Rapoport \u003cmike@compulab.co.il\u003e\nCc: Richard Purdie \u003crpurdie@rpsys.net\u003e\nAcked-by: Michael Hennerich \u003cmichael.hennerich@analog.com\u003e\nAcked-by: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3ed0c15fd1032c6a75aba804a200d4acc5aeb72e",
      "tree": "c6e9bc0f01533d21b872078808b621733bc06b6f",
      "parents": [
        "89d07767d051c9713b4d79c387c1eadd085c30f8"
      ],
      "author": {
        "name": "Paul Bolle",
        "email": "pebolle@tiscali.nl",
        "time": "Tue Jan 10 15:09:10 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 16:30:48 2012 -0800"
      },
      "message": "backlight: remove ADX backlight device support\n\nSupport for the Avionic Design Xanthos backlight device got added in\ncommit 3b96ea9ef8 (\"backlight: Add support for the Avionic Design Xanthos\nbacklight device.\").  That support depends on ARCH_PXA_ADX.  The code that\nshould have provided that Kconfig symbol never got submitted.  It has\nnever been possible to even build this driver.  Remove it.\n\nSigned-off-by: Paul Bolle \u003cpebolle@tiscali.nl\u003e\nAcked-by: Thierry Reding \u003cthierry.reding@avionic-design.de\u003e\nCc: Richard Purdie \u003crpurdie@rpsys.net\u003e\nCc: Wim Van Sebroeck \u003cwim@iguana.be\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "89d07767d051c9713b4d79c387c1eadd085c30f8",
      "tree": "bfc0c3b1e0e6db4bc3bcb6c800760a59d177460e",
      "parents": [
        "9df92e6c770e2709f6e3080a4a82d71953267f05"
      ],
      "author": {
        "name": "Kyungmin Park",
        "email": "kyungmin.park@samsung.com",
        "time": "Tue Jan 10 15:09:09 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 16:30:47 2012 -0800"
      },
      "message": "devfreq: add devfreq maintainer entry\n\nAs devfreq is merged at mainline. Also update the maintainer entry.\n\nSigned-off-by: Kyungmin Park \u003ckyungmin.park@samsung.com\u003e\nCc: Kevin Hilman \u003ckhilman@ti.com\u003e\nCc: MyungJoo Ham \u003cmyungjoo.ham@samsung.com\u003e\nAcked-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9df92e6c770e2709f6e3080a4a82d71953267f05",
      "tree": "cfe8f2c55413c624a5c25362eca4456db6d69d4f",
      "parents": [
        "8460241e4477db699135ad0521e1293258a8baaa"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Tue Jan 10 15:09:06 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 16:30:47 2012 -0800"
      },
      "message": "MAINTAINERS: spi: update F: patterns\n\ncommit ca632f55669 (\"spi: reorganize drivers\") renamed the files, update\nthe F: patterns.\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nAcked-by: Grant Likely \u003cgrant.likely@secretlab.ca\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8460241e4477db699135ad0521e1293258a8baaa",
      "tree": "e427460ad5983e162fa8d4371d1657d386579f0d",
      "parents": [
        "b2b0186d0f98e7fc2c21a2a3514223ab248e46f6"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Tue Jan 10 15:09:04 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 16:30:47 2012 -0800"
      },
      "message": "MAINTAINERS: serial:blackfin: update F: pattern\n\ncommit 0c6967b5a0 (\"serial:blackfin: rename Blackfin serial driver to\nbfin_uart.c\") renamed the file, update the pattern.\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nAcked-by: Sonic Zhang \u003csonic.zhang@analog.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b2b0186d0f98e7fc2c21a2a3514223ab248e46f6",
      "tree": "ba2167b1a422b51f0de28f765fb168cd1596bcd0",
      "parents": [
        "19c90aa678a166381609af574d2a993568f5f5bb"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Tue Jan 10 15:09:01 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 16:30:47 2012 -0800"
      },
      "message": "MAINTAINERS: staging: media: update F: patterns\n\ncommit 4860c73804c (\"staging: Move media drivers to staging/media\") moved\nthe files, update the F: patterns.\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nAcked-by: Mauro Carvalho Chehab\u003cmchehab@redhat.com\u003e\nCc: Greg KH \u003cgreg@kroah.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "19c90aa678a166381609af574d2a993568f5f5bb",
      "tree": "5079ab5993d1208985503e7c05b8b371cfe4c2c9",
      "parents": [
        "a31a96ad7206df554f1d1571b986abbe742d8b8e"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Tue Jan 10 15:09:00 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 16:30:47 2012 -0800"
      },
      "message": "MAINTAINERS: update encrypted-keys F: patterns\n\ncommit 61cf45d0199 (\"encrypted-keys: create encrypted-keys directory\")\nmoved the files, update the patterns.\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nCc: Mimi Zohar \u003czohar@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a31a96ad7206df554f1d1571b986abbe742d8b8e",
      "tree": "cf404ab5d7a51b6eae4c914921517d732b587685",
      "parents": [
        "0f04e2aa0cbe10f06326cd7f98aaf0012d9c6038"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Tue Jan 10 15:08:58 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 16:30:47 2012 -0800"
      },
      "message": "MAINTAINERS: update greth F: patterns\n\ncommit 1fe003fd424 (\"greth: Move the Aeroflex Gaisler driver\") moved the\nfiles, update the patterns.\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nCc: Kristoffer Glembo \u003ckristoffer@gaisler.com\u003e\nCc: Jeff Kirsher \u003cjeffrey.t.kirsher@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0f04e2aa0cbe10f06326cd7f98aaf0012d9c6038",
      "tree": "9776fcf6702412070cdd3a81f930d7b64f615bdf",
      "parents": [
        "d4a45787afd22316dc9ee9129a58796100621cb5"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Tue Jan 10 15:08:56 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 16:30:47 2012 -0800"
      },
      "message": "MAINTAINERS: update tulip F: patterns\n\ncommit a88394cfb58 (\"ewrk3/tulip: Move the DEC - Tulip drivers\") moved the\nfiles, update the patterns.\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nAcked-by: Grant Grundler \u003cgrundler@parisc-linux.org\u003e\nCc: Jeff Kirsher \u003cjeffrey.t.kirsher@intel.com\u003e\nCc: Tobias Ringstrom \u003ctori@unhappy.mine.nu\u003e\nCc: Grant Grundler \u003cgrundler@parisc-linux.org\u003e\nCc: David Davies \u003cdavies@maniac.ultranet.com\u003e\nCc: David Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d4a45787afd22316dc9ee9129a58796100621cb5",
      "tree": "67e58fdfe02ba8de6ece3a2a5f09f6cc61b5e91f",
      "parents": [
        "d8f663561b185101c5b97b55d0f6aad49671d4e3"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Tue Jan 10 15:08:54 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 16:30:47 2012 -0800"
      },
      "message": "MAINTAINERS: update sdhci F: patterns\n\ncommit 38576af1f8c (\"mmc: sdhci: make sdhci-of device drivers self\nregistered\") moved the files around.  Update the patterns.\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nCc: Shawn Guo \u003cshawn.guo@linaro.org\u003e\nCc: Chris Ball \u003ccjb@laptop.org\u003e\nAcked-by: Anton Vorontsov \u003ccbouatmailru@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": "d8f663561b185101c5b97b55d0f6aad49671d4e3",
      "tree": "5f32ed3730f1729adb43c0dd17728c9dc14f24b5",
      "parents": [
        "25b8d2b4fc4fd9f9ae7f95ce76bc47712c99809e"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Tue Jan 10 15:08:51 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 16:30:47 2012 -0800"
      },
      "message": "MAINTAINERS: update mfd F: patterns\n\ncommit 8959e74399c (\"mfd: Delete ab3550 driver\") removed the driver,\nupdate the patterns.\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nAcked-by: Linus Walleij \u003clinus.walleij@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": "25b8d2b4fc4fd9f9ae7f95ce76bc47712c99809e",
      "tree": "2278eff6e2db34e1657f38811b7594f02976f188",
      "parents": [
        "72dbb7051334c37c9210cd735684c304da8a5e85"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Tue Jan 10 15:08:49 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 16:30:46 2012 -0800"
      },
      "message": "MAINTAINERS: update marvell ccic F: patterns\n\nCommit f8fc729870ee (\"[media] marvell-cam: Move cafe-ccic into its own\ndirectory\") moved the files, update the pattern.\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nCc: Jonathan Corbet \u003ccorbet@lwn.net\u003e\nAcked-by: Mauro Carvalho Chehab\u003cmchehab@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": "72dbb7051334c37c9210cd735684c304da8a5e85",
      "tree": "976906ce1aa37cedde3ed7e81d5c2fb8aedaf79a",
      "parents": [
        "77278d50e04bfb57076eb50cf8c5f898f933bf84"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Tue Jan 10 15:08:46 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 16:30:46 2012 -0800"
      },
      "message": "MAINTAINERS: update bt8xx gpio F: patterns\n\nCommit c103de240439d (\"gpio: reorganize drivers\") renamed the file, update\nthe pattern.\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nCc: Grant Likely \u003cgrant.likely@secretlab.ca\u003e\nCc: Michael Buesch \u003cm@bues.ch\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "77278d50e04bfb57076eb50cf8c5f898f933bf84",
      "tree": "d0df884d17cd6860fbc427697d9d937cff3f182a",
      "parents": [
        "38f1b4c53826f3ac7e1b17c04a2dcdc802fb0785"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Tue Jan 10 15:08:44 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 16:30:46 2012 -0800"
      },
      "message": "MAINTAINERS: update adp gpio F: patterns\n\nCommit c103de240439df (\"gpio: reorganize drivers\") renamed the files,\nupdate the patterns.\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nAcked-by: Grant Likely \u003cgrant.likely@secretlab.ca\u003e\nAcked-by: Michael Hennerich \u003cmichael.hennerich@analog.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "38f1b4c53826f3ac7e1b17c04a2dcdc802fb0785",
      "tree": "cfba1212d5ec73618f83c753335599338579d423",
      "parents": [
        "ed128fea3bcbce728c9c81b2e45ec3921911bfb6"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Tue Jan 10 15:08:42 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 16:30:46 2012 -0800"
      },
      "message": "MAINTAINERS: update various arm F: patterns\n\nTrack renames and missing or deleted files.\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nCc: Russell King \u003clinux@arm.linux.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ed128fea3bcbce728c9c81b2e45ec3921911bfb6",
      "tree": "994226e0688d7522e403fe749a3d125d4acccd1d",
      "parents": [
        "db1aecafef58b5dda39c4228debe2c845e4a27ab"
      ],
      "author": {
        "name": "Ian Campbell",
        "email": "Ian.Campbell@citrix.com",
        "time": "Tue Jan 10 15:08:41 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 16:30:46 2012 -0800"
      },
      "message": "get_maintainers.pl: follow renames when looking up commit signers\n\nI happen to have had a commit to various network drivers since the big\nrenaming/reorg which happened to drivers/net recently.  This means that I\nnow appear to be in the top few commit signers (by %age) for many of them\nso am getting sent all sorts of stuff and people who are involved with the\ndriver are not.  e.g.  (to pick one at random):\n\n        $ ./scripts/get_maintainer.pl -f drivers/net/ethernet/nvidia/forcedeth.c\n        \"David S. Miller\" \u003cdavem@davemloft.net\u003e (commit_signer:5/7\u003d71%)\n        Ian Campbell \u003cian.campbell@citrix.com\u003e (commit_signer:2/7\u003d29%)\n        Eric Dumazet \u003ceric.dumazet@gmail.com\u003e (commit_signer:1/7\u003d14%)\n        Jeff Kirsher \u003cjeffrey.t.kirsher@intel.com\u003e (commit_signer:1/7\u003d14%)\n        Jiri Pirko \u003cjpirko@redhat.com\u003e (commit_signer:1/7\u003d14%)\n        netdev@vger.kernel.org (open list:NETWORKING DRIVERS)\n        linux-kernel@vger.kernel.org (open list)\n\nWith the following patch the renames are followed and the result appears\nmuch more sensible:\n\n        $ ./scripts/get_maintainer.pl -f drivers/net/ethernet/nvidia/forcedeth.c\n        \"David S. Miller\" \u003cdavem@davemloft.net\u003e (commit_signer:31/34\u003d91%)\n        Joe Perches \u003cjoe@perches.com\u003e (commit_signer:11/34\u003d32%)\n        Szymon Janc \u003cszymon@janc.net.pl\u003e (commit_signer:5/34\u003d15%)\n        Jiri Pirko \u003cjpirko@redhat.com\u003e (commit_signer:3/34\u003d9%)\n        Paul \u003cpaul.gortmaker@windriver.com\u003e (commit_signer:2/34\u003d6%)\n        netdev@vger.kernel.org (open list:NETWORKING DRIVERS)\n        linux-kernel@vger.kernel.org (open list)\n\nSigned-off-by: Ian Campbell \u003cIan.Campbell@citrix.com\u003e\nAcked-by: Joe Perches \u003cjoe@perches.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "db1aecafef58b5dda39c4228debe2c845e4a27ab",
      "tree": "4f8848463794e2e2d90039dc95a304d5efd7ca5a",
      "parents": [
        "3770490ec82ca63d5fdcebeb95f2f68af2626357"
      ],
      "author": {
        "name": "Minchan Kim",
        "email": "minchan@kernel.org",
        "time": "Tue Jan 10 15:08:39 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 16:30:46 2012 -0800"
      },
      "message": "mm/vmalloc.c: change void* into explict vm_struct*\n\nvmap_area-\u003eprivate is void* but we don\u0027t use the field for various purpose\nbut use only for vm_struct.  So change it to a vm_struct* with naming to\nimprove for readability and type checking.\n\nSigned-off-by: Minchan Kim \u003cminchan@kernel.org\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": "3770490ec82ca63d5fdcebeb95f2f68af2626357",
      "tree": "4bbd061f44be4250394f4d580d169efaf07a7368",
      "parents": [
        "043bcbe5ec51e0478ef2b44acef17193e01d7f70"
      ],
      "author": {
        "name": "Hillf Danton",
        "email": "dhillf@gmail.com",
        "time": "Tue Jan 10 15:08:36 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 16:30:46 2012 -0800"
      },
      "message": "mm: vmscan: fix typo in isolating lru pages\n\nIt is not the tag page but the cursor page that we should process, and it\nlooks a typo.\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: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nAcked-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "043bcbe5ec51e0478ef2b44acef17193e01d7f70",
      "tree": "4b93556acfdd790ea3e85ed60240134bd06c0d1b",
      "parents": [
        "faed836a2371a96901057f310e436a09eded94fd"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hughd@google.com",
        "time": "Tue Jan 10 15:08:33 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 16:30:46 2012 -0800"
      },
      "message": "mm: test PageSwapBacked in lumpy reclaim\n\nLumpy reclaim does well to stop at a PageAnon when there\u0027s no swap, but\nbetter is to stop at any PageSwapBacked, which includes shmem/tmpfs too.\n\nSigned-off-by: Hugh Dickins \u003chughd@google.com\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.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": "faed836a2371a96901057f310e436a09eded94fd",
      "tree": "3f6f0b09d80afb5f38feffadcf33c104a53c63e0",
      "parents": [
        "ea5768c74b8e0d6a866508fc6399d5ff958da5e3"
      ],
      "author": {
        "name": "Wang Sheng-Hui",
        "email": "shhuiw@gmail.com",
        "time": "Tue Jan 10 15:08:32 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 16:30:46 2012 -0800"
      },
      "message": "mm/migrate.c: remove the unused macro lru_to_page\n\nlru_to_page is not used in mm/migrate.c.\n\nSigned-off-by: Wang Sheng-Hui \u003cshhuiw@gmail.com\u003e\nAcked-by: Mel Gorman \u003cmgorman@suse.de\u003e\nAcked-by: Kyungmin Park \u003ckyungmin.park@samsung.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ea5768c74b8e0d6a866508fc6399d5ff958da5e3",
      "tree": "c9669e800bca28d9b905b6e47c206a5ea3fe149b",
      "parents": [
        "1ebb7044c9142c67d1d2b04d84010b4810a43fd8"
      ],
      "author": {
        "name": "Hillf Danton",
        "email": "dhillf@gmail.com",
        "time": "Tue Jan 10 15:08:30 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 16:30:45 2012 -0800"
      },
      "message": "mm/hugetlb.c: avoid bogus counter of surplus huge page\n\nIf we have to hand back the newly allocated huge page to page allocator,\nfor any reason, the changed counter should be recovered.\n\nThis affects only s390 at present.\n\nSigned-off-by: Hillf Danton \u003cdhillf@gmail.com\u003e\nReviewed-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1ebb7044c9142c67d1d2b04d84010b4810a43fd8",
      "tree": "bfacd21f2aabf0b727d678797e2764d010918f29",
      "parents": [
        "0565d317768cc66b13e37184f29d9f270c2886dc"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Jan 10 15:08:28 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 16:30:45 2012 -0800"
      },
      "message": "mempool: fix first round failure behavior\n\nmempool modifies gfp_mask so that the backing allocator doesn\u0027t try too\nhard or trigger warning message when there\u0027s pool to fall back on.  In\naddition, for the first try, it removes __GFP_WAIT and IO, so that it\ndoesn\u0027t trigger reclaim or wait when allocation can be fulfilled from\npool; however, when that allocation fails and pool is empty too, it waits\nfor the pool to be replenished before retrying.\n\nAllocation which could have succeeded after a bit of reclaim has to wait\non the reserved items and it\u0027s not like mempool doesn\u0027t retry with\n__GFP_WAIT and IO.  It just does that *after* someone returns an element,\npointlessly delaying things.\n\nFix it by retrying immediately if the first round of allocation attempts\nw/o __GFP_WAIT and IO fails.\n\n[akpm@linux-foundation.org: shorten the lock hold time]\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0565d317768cc66b13e37184f29d9f270c2886dc",
      "tree": "9618e46da0eac37472cde829d9574a98a1d28bbb",
      "parents": [
        "5b990546e33477c34ee6fbc20fad6584386b46c3"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Jan 10 15:08:26 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 16:30:45 2012 -0800"
      },
      "message": "mempool: drop unnecessary and incorrect BUG_ON() from mempool_destroy()\n\nmempool_destroy() is a thin wrapper around free_pool().  The only thing it\nadds is BUG_ON(pool-\u003ecurr_nr !\u003d pool-\u003emin_nr).  The intention seems to be\nto enforce that all allocated elements are freed; however, the BUG_ON()\ncan\u0027t achieve that (it doesn\u0027t know anything about objects above min_nr)\nand incorrect as mempool_resize() is allowed to leave the pool extended\nbut not filled.  Furthermore, panicking is way worse than any memory leak\nand there are better debug tools to track memory leaks.\n\nDrop the BUG_ON() from mempool_destory() and as that leaves the function\nidentical to free_pool(), replace it.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5b990546e33477c34ee6fbc20fad6584386b46c3",
      "tree": "2e4aa8b194aefee6286a2d0040e15d31df5f66c1",
      "parents": [
        "564c81db19f3630f53a14bbceb7b85eb9660ded3"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Jan 10 15:08:23 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 16:30:45 2012 -0800"
      },
      "message": "mempool: fix and document synchronization and memory barrier usage\n\nmempool_alloc/free() use undocumented smp_mb()\u0027s.  The code is slightly\nbroken and misleading.\n\nThe lockless part is in mempool_free().  It wants to determine whether the\nitem being freed needs to be returned to the pool or backing allocator\nwithout grabbing pool-\u003elock.  Two things need to be guaranteed for correct\noperation.\n\n1. pool-\u003ecurr_nr + #allocated should never dip below pool-\u003emin_nr.\n2. Waiters shouldn\u0027t be left dangling.\n\nFor #1, The only necessary condition is that curr_nr visible at free is\nfrom after the allocation of the element being freed (details in the\ncomment).  For most cases, this is true without any barrier but there can\nbe fringe cases where the allocated pointer is passed to the freeing task\nwithout going through memory barriers.  To cover this case, wmb is\nnecessary before returning from allocation and rmb is necessary before\nreading curr_nr.  IOW,\n\n\tALLOCATING TASK\t\t\tFREEING TASK\n\n\tupdate pool state after alloc;\n\twmb();\n\tpass pointer to freeing task;\n\t\t\t\t\tread pointer;\n\t\t\t\t\trmb();\n\t\t\t\t\tread pool state to free;\n\nThe current code doesn\u0027t have wmb after pool update during allocation and\nmay theoretically, on machines where unlock doesn\u0027t behave as full wmb,\nlead to pool depletion and deadlock.  smp_wmb() needs to be added after\nsuccessful allocation from reserved elements and smp_mb() in\nmempool_free() can be replaced with smp_rmb().\n\nFor #2, the waiter needs to add itself to waitqueue and then check the\nwait condition and the waker needs to update the wait condition and then\nwake up.  Because waitqueue operations always go through full spinlock\nsynchronization, there is no need for extra memory barriers.\n\nFurthermore, mempool_alloc() is already holding pool-\u003elock when it decides\nthat it needs to wait.  There is no reason to do unlock - add waitqueue -\ntest condition again.  It can simply add itself to waitqueue while holding\npool-\u003elock and then unlock and sleep.\n\nThis patch adds smp_wmb() after successful allocation from reserved pool,\nreplaces smp_mb() in mempool_free() with smp_rmb() and extend pool-\u003elock\nover waitqueue addition.  More importantly, it explains what memory\nbarriers do and how the lockless testing is correct.\n\n-v2: Oleg pointed out that unlock doesn\u0027t imply wmb.  Added explicit\n     smp_wmb() after successful allocation from reserved pool and\n     updated comments accordingly.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: \"Paul E. McKenney\" \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "564c81db19f3630f53a14bbceb7b85eb9660ded3",
      "tree": "c8da7f1d2eed5999af067c714d65de7b90840f79",
      "parents": [
        "fcfb4dcc9698f932836aa63ba0d82e7dbd300fb3"
      ],
      "author": {
        "name": "Wang Sheng-Hui",
        "email": "shhuiw@gmail.com",
        "time": "Tue Jan 10 15:08:22 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 16:30:45 2012 -0800"
      },
      "message": "mm/migrate.c: cleanup comment for migration_entry_wait()\n\nmigration_entry_wait() can also be called from hugetlb_fault() now.\nRemove the incorrect comment.\n\nSigned-off-by: Wang Sheng-Hui \u003cshhuiw@gmail.com\u003e\nAcked-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": "fcfb4dcc9698f932836aa63ba0d82e7dbd300fb3",
      "tree": "3a01fc96cc2ba9c339e2848c20a241a9ec9d2423",
      "parents": [
        "0c176d52b0b2619f231b2bbf329b90c028134f58"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Tue Jan 10 15:08:21 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 16:30:45 2012 -0800"
      },
      "message": "mm/mempolicy.c: mpol_equal(): use bool\n\nmpol_equal() logically returns a boolean.  Use a bool type to slightly\nimprove readability.\n\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Stephen Wilson \u003cwilsons@start.ca\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": "0c176d52b0b2619f231b2bbf329b90c028134f58",
      "tree": "540d2b64a9efe0cd307c04fecedf72e5f3875260",
      "parents": [
        "86cfd3a45042ab242d47f3935a02811a402beab6"
      ],
      "author": {
        "name": "Hillf Danton",
        "email": "dhillf@gmail.com",
        "time": "Tue Jan 10 15:08:19 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 16:30:45 2012 -0800"
      },
      "message": "mm: hugetlb: fix pgoff computation when unmapping page from vma\n\nThe computation for pgoff is incorrect, at least with\n\n\t(vma-\u003evm_pgoff \u003e\u003e PAGE_SHIFT)\n\ninvolved.  It is fixed with the available method if HPAGE_SIZE is\nconcerned in page cache lookup.\n\n[akpm@linux-foundation.org: use vma_hugecache_offset() directly, per Michal]\nSigned-off-by: Hillf Danton \u003cdhillf@gmail.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Michal Hocko \u003cmhocko@suse.cz\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nReviewed-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": "86cfd3a45042ab242d47f3935a02811a402beab6",
      "tree": "bd189c05dc3176f2193192ecea01f6b3a1ff8c71",
      "parents": [
        "799f933a82d878d7f15215473c5561ce984ada75"
      ],
      "author": {
        "name": "Minchan Kim",
        "email": "minchan@kernel.org",
        "time": "Tue Jan 10 15:08:18 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 16:30:45 2012 -0800"
      },
      "message": "mm/vmscan.c: consider swap space when deciding whether to continue reclaim\n\nIt\u0027s pointless to continue reclaiming when we have no swap space and lots\nof anon pages in the inactive list.\n\nWithout this patch, it is possible when swap is disabled to continue\ntrying to reclaim when there are only anonymous pages in the system even\nthough that will not make any progress.\n\nSigned-off-by: Minchan Kim \u003cminchan@kernel.org\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nAcked-by: Mel Gorman \u003cmgorman@suse.de\u003e\nReviewed-by: Rik van Riel \u003criel@redhat.com\u003e\nCc: Johannes Weiner \u003cjweiner@redhat.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "799f933a82d878d7f15215473c5561ce984ada75",
      "tree": "a096ac8de8da31385026c3d51eec292815438ac4",
      "parents": [
        "560a036b3a3733e33424385c0a0c799dee454d05"
      ],
      "author": {
        "name": "Johannes Weiner",
        "email": "hannes@cmpxchg.org",
        "time": "Tue Jan 10 15:08:15 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 16:30:45 2012 -0800"
      },
      "message": "mm: bootmem: try harder to free pages in bulk\n\nThe loop that frees pages to the page allocator while bootstrapping tries\nto free higher-order blocks only when the starting address is aligned to\nthat block size.  Otherwise it will free all pages on that node\none-by-one.\n\nChange it to free individual pages up to the first aligned block and then\ntry higher-order frees from there.\n\nSigned-off-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Uwe Kleine-König \u003cu.kleine-koenig@pengutronix.de\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "560a036b3a3733e33424385c0a0c799dee454d05",
      "tree": "07d1ddc729e233d0590b308f1ea7d04405e796b6",
      "parents": [
        "c3993076f842de3754360e5b998d6657a9d30303"
      ],
      "author": {
        "name": "Johannes Weiner",
        "email": "hannes@cmpxchg.org",
        "time": "Tue Jan 10 15:08:13 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 16:30:44 2012 -0800"
      },
      "message": "mm: bootmem: drop superfluous range check when freeing pages in bulk\n\nThe area node_bootmem_map represents is aligned to BITS_PER_LONG, and all\nbits in any aligned word of that map valid.  When the represented area\nextends beyond the end of the node, the non-existant pages will be marked\nas reserved.\n\nAs a result, when freeing a page block, doing an explicit range check for\nwhether that block is within the node\u0027s range is redundant as the bitmap\nis consulted anyway to see whether all pages in the block are unreserved.\n\nSigned-off-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Uwe Kleine-König \u003cu.kleine-koenig@pengutronix.de\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c3993076f842de3754360e5b998d6657a9d30303",
      "tree": "78c1ca3d031483932e2f236706b20064742c0b0c",
      "parents": [
        "43d2b113241d6797b890318767e0af78e313414b"
      ],
      "author": {
        "name": "Johannes Weiner",
        "email": "hannes@cmpxchg.org",
        "time": "Tue Jan 10 15:08:10 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 16:30:44 2012 -0800"
      },
      "message": "mm: page_alloc: generalize order handling in __free_pages_bootmem()\n\n__free_pages_bootmem() used to special-case higher-order frees to save\nindividual page checking with free_pages_bulk().\n\nNowadays, both zero order and non-zero order frees use free_pages(), which\nchecks each individual page anyway, and so there is little point in making\nthe distinction anymore.  The higher-order loop will work just fine for\nzero order pages.\n\nSigned-off-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Uwe Kleine-König \u003cu.kleine-koenig@pengutronix.de\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "43d2b113241d6797b890318767e0af78e313414b",
      "tree": "6f25647f2660f8fca63cc8355b70ad643993dab8",
      "parents": [
        "6bd4837de96e7d9f9bf33e59117c24fc230862ac"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Tue Jan 10 15:08:09 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 16:30:44 2012 -0800"
      },
      "message": "tracepoint: add tracepoints for debugging oom_score_adj\n\noom_score_adj is used for guarding processes from OOM-Killer.  One of\nproblem is that it\u0027s inherited at fork().  When a daemon set oom_score_adj\nand make children, it\u0027s hard to know where the value is set.\n\nThis patch adds some tracepoints useful for debugging. This patch adds\n3 trace points.\n  - creating new task\n  - renaming a task (exec)\n  - set oom_score_adj\n\nTo debug, users need to enable some trace pointer. Maybe filtering is useful as\n\n# EVENT\u003d/sys/kernel/debug/tracing/events/task/\n# echo \"oom_score_adj !\u003d 0\" \u003e $EVENT/task_newtask/filter\n# echo \"oom_score_adj !\u003d 0\" \u003e $EVENT/task_rename/filter\n# echo 1 \u003e $EVENT/enable\n# EVENT\u003d/sys/kernel/debug/tracing/events/oom/\n# echo 1 \u003e $EVENT/enable\n\noutput will be like this.\n# grep oom /sys/kernel/debug/tracing/trace\nbash-7699  [007] d..3  5140.744510: oom_score_adj_update: pid\u003d7699 comm\u003dbash oom_score_adj\u003d-1000\nbash-7699  [007] ...1  5151.818022: task_newtask: pid\u003d7729 comm\u003dbash clone_flags\u003d1200011 oom_score_adj\u003d-1000\nls-7729  [003] ...2  5151.818504: task_rename: pid\u003d7729 oldcomm\u003dbash newcomm\u003dls oom_score_adj\u003d-1000\nbash-7699  [002] ...1  5175.701468: task_newtask: pid\u003d7730 comm\u003dbash clone_flags\u003d1200011 oom_score_adj\u003d-1000\ngrep-7730  [007] ...2  5175.701993: task_rename: pid\u003d7730 oldcomm\u003dbash newcomm\u003dgrep oom_score_adj\u003d-1000\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\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": "6bd4837de96e7d9f9bf33e59117c24fc230862ac",
      "tree": "633d23438e31aeef61063c6de490cc5696f4e5f5",
      "parents": [
        "948f017b093a9baac23855fcd920d3a970b71bb6"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Tue Jan 10 15:08:07 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 16:30:44 2012 -0800"
      },
      "message": "mm: simplify find_vma_prev()\n\ncommit 297c5eee37 (\"mm: make the vma list be doubly linked\") added the\nvm_prev member to vm_area_struct.  We can simplify find_vma_prev() by\nusing it.  Also, this change helps to improve page fault performance\nbecause it has stronger locality of reference.\n\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Shaohua Li \u003cshaohua.li@intel.com\u003e\nCc: 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": "948f017b093a9baac23855fcd920d3a970b71bb6",
      "tree": "4536a9cbe1077133e600da2072998f5e60c696c6",
      "parents": [
        "df0a6daa01fa3856c08f4274d4f21a8092caa480"
      ],
      "author": {
        "name": "Andrea Arcangeli",
        "email": "aarcange@redhat.com",
        "time": "Tue Jan 10 15:08:05 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 16:30:44 2012 -0800"
      },
      "message": "mremap: enforce rmap src/dst vma ordering in case of vma_merge() succeeding in copy_vma()\n\nmigrate was doing an rmap_walk with speculative lock-less access on\npagetables.  That could lead it to not serializing properly against mremap\nPT locks.  But a second problem remains in the order of vmas in the\nsame_anon_vma list used by the rmap_walk.\n\nIf vma_merge succeeds in copy_vma, the src vma could be placed after the\ndst vma in the same_anon_vma list.  That could still lead to migrate\nmissing some pte.\n\nThis patch adds an anon_vma_moveto_tail() function to force the dst vma at\nthe end of the list before mremap starts to solve the problem.\n\nIf the mremap is very large and there are a lots of parents or childs\nsharing the anon_vma root lock, this should still scale better than taking\nthe anon_vma root lock around every pte copy practically for the whole\nduration of mremap.\n\nUpdate: Hugh noticed special care is needed in the error path where\nmove_page_tables goes in the reverse direction, a second\nanon_vma_moveto_tail() call is needed in the error path.\n\nThis program exercises the anon_vma_moveto_tail:\n\n\u003d\u003d\u003d\n\nint main()\n{\n\tstatic struct timeval oldstamp, newstamp;\n\tlong diffsec;\n\tchar *p, *p2, *p3, *p4;\n\tif (posix_memalign((void **)\u0026p, 2*1024*1024, SIZE))\n\t\tperror(\"memalign\"), exit(1);\n\tif (posix_memalign((void **)\u0026p2, 2*1024*1024, SIZE))\n\t\tperror(\"memalign\"), exit(1);\n\tif (posix_memalign((void **)\u0026p3, 2*1024*1024, SIZE))\n\t\tperror(\"memalign\"), exit(1);\n\n\tmemset(p, 0xff, SIZE);\n\tprintf(\"%p\\n\", p);\n\tmemset(p2, 0xff, SIZE);\n\tmemset(p3, 0x77, 4096);\n\tif (memcmp(p, p2, SIZE))\n\t\tprintf(\"error\\n\");\n\tp4 \u003d mremap(p+SIZE/2, SIZE/2, SIZE/2, MREMAP_FIXED|MREMAP_MAYMOVE, p3);\n\tif (p4 !\u003d p3)\n\t\tperror(\"mremap\"), exit(1);\n\tp4 \u003d mremap(p4, SIZE/2, SIZE/2, MREMAP_FIXED|MREMAP_MAYMOVE, p+SIZE/2);\n\tif (p4 !\u003d p+SIZE/2)\n\t\tperror(\"mremap\"), exit(1);\n\tif (memcmp(p, p2, SIZE))\n\t\tprintf(\"error\\n\");\n\tprintf(\"ok\\n\");\n\n\treturn 0;\n}\n\u003d\u003d\u003d\n\n$ perf probe -a anon_vma_moveto_tail\nAdd new event:\n  probe:anon_vma_moveto_tail (on anon_vma_moveto_tail)\n\nYou can now use it on all perf tools, such as:\n\n        perf record -e probe:anon_vma_moveto_tail -aR sleep 1\n\n$ perf record -e probe:anon_vma_moveto_tail -aR ./anon_vma_moveto_tail\n0x7f2ca2800000\nok\n[ perf record: Woken up 1 times to write data ]\n[ perf record: Captured and wrote 0.043 MB perf.data (~1860 samples) ]\n$ perf report --stdio\n   100.00%  anon_vma_moveto  [kernel.kallsyms]  [k] anon_vma_moveto_tail\n\nSigned-off-by: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nReported-by: Nai Xia \u003cnai.xia@gmail.com\u003e\nAcked-by: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Pawel Sikora \u003cpluto@agmk.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "df0a6daa01fa3856c08f4274d4f21a8092caa480",
      "tree": "089c112e98c87c4326443c21711bf9410c1989ce",
      "parents": [
        "9571a982903bf9dcbca2479fd3e7dafd2211ecf9"
      ],
      "author": {
        "name": "Michal Hocko",
        "email": "mhocko@suse.cz",
        "time": "Tue Jan 10 15:08:02 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 16:30:44 2012 -0800"
      },
      "message": "mm: fix off-by-two in __zone_watermark_ok()\n\nCommit 88f5acf88ae6 (\"mm: page allocator: adjust the per-cpu counter\nthreshold when memory is low\") changed the form how free_pages is\ncalculated but it forgot that we used to do free_pages - ((1 \u003c\u003c order) -\n1) so we ended up with off-by-two when calculating free_pages.\n\nReported-by: Wang Sheng-Hui \u003cshhuiw@gmail.com\u003e\nSigned-off-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nAcked-by: Mel Gorman \u003cmgorman@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9571a982903bf9dcbca2479fd3e7dafd2211ecf9",
      "tree": "6a426c81c23cc4e5e81388c52ff37ed33a1187ac",
      "parents": [
        "31b8384a555d94c78e2ea2284a323cb985441f60"
      ],
      "author": {
        "name": "Uwe Kleine-König",
        "email": "u.kleine-koenig@pengutronix.de",
        "time": "Tue Jan 10 15:08:00 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 16:30:44 2012 -0800"
      },
      "message": "bootmem: micro optimize freeing pages in bulk\n\nThe first entry of bdata-\u003enode_bootmem_map holds the data for\nbdata-\u003enode_min_pfn up to bdata-\u003enode_min_pfn + BITS_PER_LONG - 1.  So the\ntest for freeing all pages of a single map entry can be slightly relaxed.\n\nMoreover use DIV_ROUND_UP in another place instead of open coding it.\n\nSigned-off-by: Uwe Kleine-König \u003cu.kleine-koenig@pengutronix.de\u003e\nCc: Johannes Weiner \u003channes@saeurebad.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "31b8384a555d94c78e2ea2284a323cb985441f60",
      "tree": "6e9b3fc9d14e7bbd8c6c97a1277fd3e9b5034f5b",
      "parents": [
        "e3a41a5ba9c2ab988b9f1442925109dca2382fd9"
      ],
      "author": {
        "name": "Hillf Danton",
        "email": "dhillf@gmail.com",
        "time": "Tue Jan 10 15:07:59 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 16:30:44 2012 -0800"
      },
      "message": "mm: compaction: push isolate search base of compact control one pfn ahead\n\nAfter isolated the current pfn will no longer be scanned and isolated if\nthe next round is necessary, so push the isolate_migratepages search base\nof the given compact_control one step ahead.\n\nSigned-off-by: Hillf Danton \u003cdhillf@gmail.com\u003e\nReviewed-by: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e3a41a5ba9c2ab988b9f1442925109dca2382fd9",
      "tree": "a89e8b4bc3aa5e60f16c390d1abb3760317a5207",
      "parents": [
        "0faa70cb0180d45a06208e54b552a538aabb8a30"
      ],
      "author": {
        "name": "Johannes Weiner",
        "email": "jweiner@redhat.com",
        "time": "Tue Jan 10 15:07:55 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 16:30:44 2012 -0800"
      },
      "message": "btrfs: pass __GFP_WRITE for buffered write page allocations\n\nTell the page allocator that pages allocated for a buffered write are\nexpected to become dirty soon.\n\nSigned-off-by: Johannes Weiner \u003cjweiner@redhat.com\u003e\nReviewed-by: Rik van Riel \u003criel@redhat.com\u003e\nAcked-by: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nCc: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nCc: Dave Chinner \u003cdavid@fromorbit.com\u003e\nCc: Jan Kara \u003cjack@suse.cz\u003e\nCc: Shaohua Li \u003cshaohua.li@intel.com\u003e\nCc: Chris Mason \u003cchris.mason@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": "0faa70cb0180d45a06208e54b552a538aabb8a30",
      "tree": "7d734a556ad1568301cf802c5afbaa83cc0bdcd5",
      "parents": [
        "a756cf5908530e8b40bdf569eb48b40139e8d7fd"
      ],
      "author": {
        "name": "Johannes Weiner",
        "email": "jweiner@redhat.com",
        "time": "Tue Jan 10 15:07:53 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 16:30:43 2012 -0800"
      },
      "message": "mm: filemap: pass __GFP_WRITE from grab_cache_page_write_begin()\n\nTell the page allocator that pages allocated through\ngrab_cache_page_write_begin() are expected to become dirty soon.\n\nSigned-off-by: Johannes Weiner \u003cjweiner@redhat.com\u003e\nReviewed-by: Rik van Riel \u003criel@redhat.com\u003e\nAcked-by: Mel Gorman \u003cmgorman@suse.de\u003e\nReviewed-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nReviewed-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nCc: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nCc: Dave Chinner \u003cdavid@fromorbit.com\u003e\nCc: Jan Kara \u003cjack@suse.cz\u003e\nCc: Shaohua Li \u003cshaohua.li@intel.com\u003e\nCc: Chris Mason \u003cchris.mason@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": "a756cf5908530e8b40bdf569eb48b40139e8d7fd",
      "tree": "ba9df151d5468098c7eae563ce09faea6a539fc0",
      "parents": [
        "ccafa2879fb8d13b8031337a8743eac4189e5d6e"
      ],
      "author": {
        "name": "Johannes Weiner",
        "email": "jweiner@redhat.com",
        "time": "Tue Jan 10 15:07:49 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 16:30:43 2012 -0800"
      },
      "message": "mm: try to distribute dirty pages fairly across zones\n\nThe maximum number of dirty pages that exist in the system at any time is\ndetermined by a number of pages considered dirtyable and a user-configured\npercentage of those, or an absolute number in bytes.\n\nThis number of dirtyable pages is the sum of memory provided by all the\nzones in the system minus their lowmem reserves and high watermarks, so\nthat the system can retain a healthy number of free pages without having\nto reclaim dirty pages.\n\nBut there is a flaw in that we have a zoned page allocator which does not\ncare about the global state but rather the state of individual memory\nzones.  And right now there is nothing that prevents one zone from filling\nup with dirty pages while other zones are spared, which frequently leads\nto situations where kswapd, in order to restore the watermark of free\npages, does indeed have to write pages from that zone\u0027s LRU list.  This\ncan interfere so badly with IO from the flusher threads that major\nfilesystems (btrfs, xfs, ext4) mostly ignore write requests from reclaim\nalready, taking away the VM\u0027s only possibility to keep such a zone\nbalanced, aside from hoping the flushers will soon clean pages from that\nzone.\n\nEnter per-zone dirty limits.  They are to a zone\u0027s dirtyable memory what\nthe global limit is to the global amount of dirtyable memory, and try to\nmake sure that no single zone receives more than its fair share of the\nglobally allowed dirty pages in the first place.  As the number of pages\nconsidered dirtyable excludes the zones\u0027 lowmem reserves and high\nwatermarks, the maximum number of dirty pages in a zone is such that the\nzone can always be balanced without requiring page cleaning.\n\nAs this is a placement decision in the page allocator and pages are\ndirtied only after the allocation, this patch allows allocators to pass\n__GFP_WRITE when they know in advance that the page will be written to and\nbecome dirty soon.  The page allocator will then attempt to allocate from\nthe first zone of the zonelist - which on NUMA is determined by the task\u0027s\nNUMA memory policy - that has not exceeded its dirty limit.\n\nAt first glance, it would appear that the diversion to lower zones can\nincrease pressure on them, but this is not the case.  With a full high\nzone, allocations will be diverted to lower zones eventually, so it is\nmore of a shift in timing of the lower zone allocations.  Workloads that\npreviously could fit their dirty pages completely in the higher zone may\nbe forced to allocate from lower zones, but the amount of pages that\n\"spill over\" are limited themselves by the lower zones\u0027 dirty constraints,\nand thus unlikely to become a problem.\n\nFor now, the problem of unfair dirty page distribution remains for NUMA\nconfigurations where the zones allowed for allocation are in sum not big\nenough to trigger the global dirty limits, wake up the flusher threads and\nremedy the situation.  Because of this, an allocation that could not\nsucceed on any of the considered zones is allowed to ignore the dirty\nlimits before going into direct reclaim or even failing the allocation,\nuntil a future patch changes the global dirty throttling and flusher\nthread activation so that they take individual zone states into account.\n\n\t\t\tTest results\n\n15M DMA + 3246M DMA32 + 504 Normal \u003d 3765M memory\n40% dirty ratio\n16G USB thumb drive\n10 runs of dd if\u003d/dev/zero of\u003ddisk/zeroes bs\u003d32k count\u003d$((10 \u003c\u003c 15))\n\n\t\tseconds\t\t\tnr_vmscan_write\n\t\t        (stddev)\t       min|     median|        max\nxfs\nvanilla:\t 549.747( 3.492)\t     0.000|      0.000|      0.000\npatched:\t 550.996( 3.802)\t     0.000|      0.000|      0.000\n\nfuse-ntfs\nvanilla:\t1183.094(53.178)\t 54349.000|  59341.000|  65163.000\npatched:\t 558.049(17.914)\t     0.000|      0.000|     43.000\n\nbtrfs\nvanilla:\t 573.679(14.015)\t156657.000| 460178.000| 606926.000\npatched:\t 563.365(11.368)\t     0.000|      0.000|   1362.000\n\next4\nvanilla:\t 561.197(15.782)\t     0.000|2725438.000|4143837.000\npatched:\t 568.806(17.496)\t     0.000|      0.000|      0.000\n\nSigned-off-by: Johannes Weiner \u003cjweiner@redhat.com\u003e\nReviewed-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nAcked-by: Mel Gorman \u003cmgorman@suse.de\u003e\nReviewed-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nTested-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nCc: Dave Chinner \u003cdavid@fromorbit.com\u003e\nCc: Jan Kara \u003cjack@suse.cz\u003e\nCc: Shaohua Li \u003cshaohua.li@intel.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Chris Mason \u003cchris.mason@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": "ccafa2879fb8d13b8031337a8743eac4189e5d6e",
      "tree": "0202fd26218faba5751de0906c430f422b0ccbac",
      "parents": [
        "ab8fabd46f811d5153d8a0cd2fac9a0d41fb593d"
      ],
      "author": {
        "name": "Johannes Weiner",
        "email": "jweiner@redhat.com",
        "time": "Tue Jan 10 15:07:44 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 16:30:43 2012 -0800"
      },
      "message": "mm: writeback: cleanups in preparation for per-zone dirty limits\n\nThe next patch will introduce per-zone dirty limiting functions in\naddition to the traditional global dirty limiting.\n\nRename determine_dirtyable_memory() to global_dirtyable_memory() before\nadding the zone-specific version, and fix up its documentation.\n\nAlso, move the functions to determine the dirtyable memory and the\nfunction to calculate the dirty limit based on that together so that their\nrelationship is more apparent and that they can be commented on as a\ngroup.\n\nSigned-off-by: Johannes Weiner \u003cjweiner@redhat.com\u003e\nReviewed-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nAcked-by: Mel Gorman \u003cmel@suse.de\u003e\nReviewed-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nCc: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nCc: Dave Chinner \u003cdavid@fromorbit.com\u003e\nCc: Jan Kara \u003cjack@suse.cz\u003e\nCc: Shaohua Li \u003cshaohua.li@intel.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Chris Mason \u003cchris.mason@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": "ab8fabd46f811d5153d8a0cd2fac9a0d41fb593d",
      "tree": "0a6f7dcca59d22abe07973e3fafc41719ff3ad9d",
      "parents": [
        "25bd91bd27820d5971258cecd1c0e64b0e485144"
      ],
      "author": {
        "name": "Johannes Weiner",
        "email": "jweiner@redhat.com",
        "time": "Tue Jan 10 15:07:42 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 16:30:43 2012 -0800"
      },
      "message": "mm: exclude reserved pages from dirtyable memory\n\nPer-zone dirty limits try to distribute page cache pages allocated for\nwriting across zones in proportion to the individual zone sizes, to reduce\nthe likelihood of reclaim having to write back individual pages from the\nLRU lists in order to make progress.\n\nThis patch:\n\nThe amount of dirtyable pages should not include the full number of free\npages: there is a number of reserved pages that the page allocator and\nkswapd always try to keep free.\n\nThe closer (reclaimable pages - dirty pages) is to the number of reserved\npages, the more likely it becomes for reclaim to run into dirty pages:\n\n       +----------+ ---\n       |   anon   |  |\n       +----------+  |\n       |          |  |\n       |          |  -- dirty limit new    -- flusher new\n       |   file   |  |                     |\n       |          |  |                     |\n       |          |  -- dirty limit old    -- flusher old\n       |          |                        |\n       +----------+                       --- reclaim\n       | reserved |\n       +----------+\n       |  kernel  |\n       +----------+\n\nThis patch introduces a per-zone dirty reserve that takes both the lowmem\nreserve as well as the high watermark of the zone into account, and a\nglobal sum of those per-zone values that is subtracted from the global\namount of dirtyable pages.  The lowmem reserve is unavailable to page\ncache allocations and kswapd tries to keep the high watermark free.  We\ndon\u0027t want to end up in a situation where reclaim has to clean pages in\norder to balance zones.\n\nNot treating reserved pages as dirtyable on a global level is only a\nconceptual fix.  In reality, dirty pages are not distributed equally\nacross zones and reclaim runs into dirty pages on a regular basis.\n\nBut it is important to get this right before tackling the problem on a\nper-zone level, where the distance between reclaim and the dirty pages is\nmostly much smaller in absolute numbers.\n\n[akpm@linux-foundation.org: fix highmem build]\nSigned-off-by: Johannes Weiner \u003cjweiner@redhat.com\u003e\nReviewed-by: Rik van Riel \u003criel@redhat.com\u003e\nReviewed-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nReviewed-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nAcked-by: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nCc: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nCc: Dave Chinner \u003cdavid@fromorbit.com\u003e\nCc: Jan Kara \u003cjack@suse.cz\u003e\nCc: Shaohua Li \u003cshaohua.li@intel.com\u003e\nCc: Chris Mason \u003cchris.mason@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": "25bd91bd27820d5971258cecd1c0e64b0e485144",
      "tree": "dab03e7e19132c6e630d9e65baa125d60825bbd9",
      "parents": [
        "f6d7e0cb3ecc248e98fa11d83253f6174bd7e085"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Tue Jan 10 15:07:40 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 16:30:43 2012 -0800"
      },
      "message": "vmscan: add task name to warn_scan_unevictable() messages\n\nIf we need to know a usecase, caller program name is critical important.\nShow it.\n\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nAcked-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nDavid Rientjes \u003crientjes@google.com\u003e\nReviewed-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f6d7e0cb3ecc248e98fa11d83253f6174bd7e085",
      "tree": "0925b5b584c8ed6718a54e6e56202686fb5b9468",
      "parents": [
        "ad8a1b558e6c76fb53901956d3c8f29b82a4ccfa"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Tue Jan 10 15:07:38 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 16:30:43 2012 -0800"
      },
      "message": "mm, debug: test for online nid when allocating on single node\n\nCalling alloc_pages_exact_node() means the allocation only passes the\nzonelist of a single node into the page allocator.  If that node isn\u0027t\nonline, it\u0027s zonelist may never have been initialized causing a strange\noops that may not immediately be clear.\n\nI recently debugged an issue where node 0 wasn\u0027t online and an allocator\nwas passing 0 to alloc_pages_exact_node() and it resulted in a NULL\npointer on zonelist-\u003e_zoneref.  If CONFIG_DEBUG_VM is enabled, though, it\nwould be nice to catch this a bit earlier.\n\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nAcked-by: Mel Gorman \u003cmgorman@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ad8a1b558e6c76fb53901956d3c8f29b82a4ccfa",
      "tree": "48eae18bf9392cf373adb296301ccf02301da3f1",
      "parents": [
        "fc8d8620d39dbbaf412b1b9247d77d196d92adb9"
      ],
      "author": {
        "name": "Shawn Bohrer",
        "email": "sbohrer@rgmadvisors.com",
        "time": "Tue Jan 10 15:07:35 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 16:30:43 2012 -0800"
      },
      "message": "fadvise: only initiate writeback for specified range with FADV_DONTNEED\n\nPreviously POSIX_FADV_DONTNEED would start writeback for the entire file\nwhen the bdi was not write congested.  This negatively impacts performance\nif the file contains dirty pages outside of the requested range.  This\nchange uses __filemap_fdatawrite_range() to only initiate writeback for\nthe requested range.\n\nSigned-off-by: Shawn Bohrer \u003csbohrer@rgmadvisors.com\u003e\nAcked-by: Johannes Weiner \u003cjweiner@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": "fc8d8620d39dbbaf412b1b9247d77d196d92adb9",
      "tree": "aab70c3807026701f326bb8a88c81845da059d9b",
      "parents": [
        "c6968e73b90c2a2fb9a32d4bad249f8f70f70125"
      ],
      "author": {
        "name": "Stanislaw Gruszka",
        "email": "sgruszka@redhat.com",
        "time": "Tue Jan 10 15:07:32 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 16:30:43 2012 -0800"
      },
      "message": "slub: min order when debug_guardpage_minorder \u003e 0\n\nDisable slub debug facilities and allocate slabs at minimal order when\ndebug_guardpage_minorder \u003e 0 to increase probability to catch random\nmemory corruption by cpu exception.\n\nSigned-off-by: Stanislaw Gruszka \u003csgruszka@redhat.com\u003e\nCc: \"Rafael J. Wysocki\" \u003crjw@sisk.pl\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nAcked-by: Christoph Lameter \u003ccl@linux.com\u003e\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Stanislaw Gruszka \u003csgruszka@redhat.com\u003e\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c6968e73b90c2a2fb9a32d4bad249f8f70f70125",
      "tree": "67ec90fc8e187fcf316298dd9d514bbbbbc8f187",
      "parents": [
        "c0a32fc5a2e470d0b02597b23ad79a317735253e"
      ],
      "author": {
        "name": "Stanislaw Gruszka",
        "email": "sgruszka@redhat.com",
        "time": "Tue Jan 10 15:07:31 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 16:30:42 2012 -0800"
      },
      "message": "PM/Hibernate: do not count debug pages as savable\n\nWhen debugging with CONFIG_DEBUG_PAGEALLOC and debug_guardpage_minorder \u003e\n0, we have lot of free pages that are not marked so.  Snapshot code\naccount them as savable, what cause hibernate memory preallocation\nfailure.\n\nIt is pretty hard to make hibernate allocation succeed with\ndebug_guardpage_minorder\u003d1.  This change at least make it possible when\nsystem has relatively big amount of RAM.\n\nSigned-off-by: Stanislaw Gruszka \u003csgruszka@redhat.com\u003e\nAcked-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c0a32fc5a2e470d0b02597b23ad79a317735253e",
      "tree": "2d164edae0062918ca2088772c00b0615781353b",
      "parents": [
        "1399ff86f2a2bbacbbe68fa00c5f8c752b344723"
      ],
      "author": {
        "name": "Stanislaw Gruszka",
        "email": "sgruszka@redhat.com",
        "time": "Tue Jan 10 15:07:28 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 16:30:42 2012 -0800"
      },
      "message": "mm: more intensive memory corruption debugging\n\nWith CONFIG_DEBUG_PAGEALLOC configured, the CPU will generate an exception\non access (read,write) to an unallocated page, which permits us to catch\ncode which corrupts memory.  However the kernel is trying to maximise\nmemory usage, hence there are usually few free pages in the system and\nbuggy code usually corrupts some crucial data.\n\nThis patch changes the buddy allocator to keep more free/protected pages\nand to interlace free/protected and allocated pages to increase the\nprobability of catching corruption.\n\nWhen the kernel is compiled with CONFIG_DEBUG_PAGEALLOC,\ndebug_guardpage_minorder defines the minimum order used by the page\nallocator to grant a request.  The requested size will be returned with\nthe remaining pages used as guard pages.\n\nThe default value of debug_guardpage_minorder is zero: no change from\ncurrent behaviour.\n\n[akpm@linux-foundation.org: tweak documentation, s/flg/flag/]\nSigned-off-by: Stanislaw Gruszka \u003csgruszka@redhat.com\u003e\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: \"Rafael J. Wysocki\" \u003crjw@sisk.pl\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1399ff86f2a2bbacbbe68fa00c5f8c752b344723",
      "tree": "7cfb8e346ff8d750cbf33bb0655603e21e394c37",
      "parents": [
        "1e16a539ac16e7b3a8c2cee188897d4bdb88e6e8"
      ],
      "author": {
        "name": "David Daney",
        "email": "david.daney@cavium.com",
        "time": "Tue Jan 10 15:07:25 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 16:30:42 2012 -0800"
      },
      "message": "kernel.h: add BUILD_BUG() macro\n\nWe can place this in definitions that we expect the compiler to remove by\ndead code elimination.  If this assertion fails, we get a nice error\nmessage at build time.\n\nThe GCC function attribute error(\"message\") was added in version 4.3, so\nwe define a new macro __linktime_error(message) to expand to this for\nGCC-4.3 and later.  This will give us an error diagnostic from the\ncompiler on the line that fails.  For other compilers\n__linktime_error(message) expands to nothing, and we have to be content\nwith a link time error, but at least we will still get a build error.\n\nBUILD_BUG() expands to the undefined function __build_bug_failed() and\nwill fail at link time if the compiler ever emits code for it.  On GCC-4.3\nand later, attribute((error())) is used so that the failure will be noted\nat compile time instead.\n\nSigned-off-by: David Daney \u003cdavid.daney@cavium.com\u003e\nAcked-by: David Rientjes \u003crientjes@google.com\u003e\nCc: DM \u003cdm.n9107@gmail.com\u003e\nCc: Ralf Baechle \u003cralf@linux-mips.org\u003e\nAcked-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1e16a539ac16e7b3a8c2cee188897d4bdb88e6e8",
      "tree": "12ee5589d6a04d54fc89c7970b6b8e5012d5e74f",
      "parents": [
        "ef009b25f4f8a77d2b32067d424d5ac757dcdc5b"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Tue Jan 10 15:07:22 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 16:30:42 2012 -0800"
      },
      "message": "mm/hugetlb.c: fix virtual address handling in hugetlb fault\n\nhandle_mm_fault() passes \u0027faulted\u0027 address to hugetlb_fault().  This\naddress is not aligned to a hugepage boundary.\n\nMost of the functions for hugetlb pages are aware of that and calculate an\nalignment themselves.  However some functions such as\ncopy_user_huge_page() and clear_huge_page() don\u0027t handle alignment by\nthemselves.\n\nThis patch make hugeltb_fault() fix the alignment and pass an aligned\naddresss (to address of a faulted hugepage) to functions.\n\n[akpm@linux-foundation.org: use \u0026\u003d]\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ef009b25f4f8a77d2b32067d424d5ac757dcdc5b",
      "tree": "4972dac6ca66279277da1b328d9f6d32bcf08dd0",
      "parents": [
        "a734bcc812146cfba530e1adaf609fce1357982e"
      ],
      "author": {
        "name": "Michal Hocko",
        "email": "mhocko@suse.cz",
        "time": "Tue Jan 10 15:07:21 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 16:30:42 2012 -0800"
      },
      "message": "hugetlb: clarify hugetlb_instantiation_mutex usage\n\nLet\u0027s make it clear that we cannot race with other fault handlers due to\nhugetlb (global) mutex.  Also make it clear that we want to keep pte_same\nchecks anayway to have a transition from the global mutex easier.\n\nSigned-off-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Hillf Danton \u003cdhillf@gmail.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Johannes Weiner \u003cjweiner@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": "a734bcc812146cfba530e1adaf609fce1357982e",
      "tree": "021fb4187985de65744a3f8f831a5f07130f2e2e",
      "parents": [
        "5f8aefd44e64ed2f6950a1dcc77309b7dd9979f4"
      ],
      "author": {
        "name": "Hillf Danton",
        "email": "dhillf@gmail.com",
        "time": "Tue Jan 10 15:07:20 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 16:30:42 2012 -0800"
      },
      "message": "hugetlb: detect race upon page allocation failure during COW\n\nCurrently we are not rechecking pte_same in hugetlb_cow after we take ptl\nlock again in the page allocation failure code path and simply retry\nagain.  This is not an issue at the moment because hugetlb fault path is\nprotected by hugetlb_instantiation_mutex so we cannot race.\n\nThe original page is locked and so we cannot race even with the page\nmigration.\n\nLet\u0027s add the pte_same check anyway as we want to be consistent with the\nother check later in this function and be safe if we ever remove the\nmutex.\n\n[mhocko@suse.cz: reworded the changelog]\nSigned-off-by: Hillf Danton \u003cdhillf@gmail.com\u003e\nSigned-off-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Johannes Weiner \u003cjweiner@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": "5f8aefd44e64ed2f6950a1dcc77309b7dd9979f4",
      "tree": "524db6828c07e0f83f94d799cbc1bbb7dd8e6084",
      "parents": [
        "f90ac3982a78d36f894824636beeef13361d7c59"
      ],
      "author": {
        "name": "Konstantin Khlebnikov",
        "email": "khlebnikov@openvz.org",
        "time": "Tue Jan 10 15:07:18 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 16:30:42 2012 -0800"
      },
      "message": "mm: account reaped page cache on inode cache pruning\n\nInode cache pruning indirectly reclaims page-cache by invalidating mapping\npages.  Let\u0027s account them into reclaim-state to notice this progress in\nmemory reclaimer.\n\nSigned-off-by: Konstantin Khlebnikov \u003ckhlebnikov@openvz.org\u003e\nCc: Dave Chinner \u003cdavid@fromorbit.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f90ac3982a78d36f894824636beeef13361d7c59",
      "tree": "64bbe3b415bdfc151dc44f6b4c216c65351eb53c",
      "parents": [
        "938929f14cb595f43cd1a4e63e22d36cab1e4a1f"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mgorman@suse.de",
        "time": "Tue Jan 10 15:07:15 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 16:30:42 2012 -0800"
      },
      "message": "mm: avoid livelock on !__GFP_FS allocations\n\nColin Cross reported;\n\n  Under the following conditions, __alloc_pages_slowpath can loop forever:\n  gfp_mask \u0026 __GFP_WAIT is true\n  gfp_mask \u0026 __GFP_FS is false\n  reclaim and compaction make no progress\n  order \u003c\u003d PAGE_ALLOC_COSTLY_ORDER\n\n  These conditions happen very often during suspend and resume,\n  when pm_restrict_gfp_mask() effectively converts all GFP_KERNEL\n  allocations into __GFP_WAIT.\n\n  The oom killer is not run because gfp_mask \u0026 __GFP_FS is false,\n  but should_alloc_retry will always return true when order is less\n  than PAGE_ALLOC_COSTLY_ORDER.\n\nIn his fix, he avoided retrying the allocation if reclaim made no progress\nand __GFP_FS was not set.  The problem is that this would result in\nGFP_NOIO allocations failing that previously succeeded which would be very\nunfortunate.\n\nThe big difference between GFP_NOIO and suspend converting GFP_KERNEL to\nbehave like GFP_NOIO is that normally flushers will be cleaning pages and\nkswapd reclaims pages allowing GFP_NOIO to succeed after a short delay.\nThe same does not necessarily apply during suspend as the storage device\nmay be suspended.\n\nThis patch special cases the suspend case to fail the page allocation if\nreclaim cannot make progress and adds some documentation on how\ngfp_allowed_mask is currently used.  Failing allocations like this may\ncause suspend to abort but that is better than a livelock.\n\n[mgorman@suse.de: Rework fix to be suspend specific]\n[rientjes@google.com: Move suspended device check to should_alloc_retry]\nReported-by: Colin Cross \u003cccross@android.com\u003e\nSigned-off-by: Mel Gorman \u003cmgorman@suse.de\u003e\nAcked-by: David Rientjes \u003crientjes@google.com\u003e\nCc: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "938929f14cb595f43cd1a4e63e22d36cab1e4a1f",
      "tree": "54c23d02494c05d13cc6a6ffb327cc1fb03e72fd",
      "parents": [
        "937a94c9db30a818baa5e2c09dbf4589251355c3"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mgorman@suse.de",
        "time": "Tue Jan 10 15:07:14 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 16:30:42 2012 -0800"
      },
      "message": "mm: reduce the amount of work done when updating min_free_kbytes\n\nWhen min_free_kbytes is updated, some pageblocks are marked\nMIGRATE_RESERVE.  Ordinarily, this work is unnoticable as it happens early\nin boot but on large machines with 1TB of memory, this has been reported\nto delay boot times, probably due to the NUMA distances involved.\n\nThe bulk of the work is due to calling calling pageblock_is_reserved() an\nunnecessary amount of times and accessing far more struct page metadata\nthan is necessary.  This patch significantly reduces the amount of work\ndone by setup_zone_migrate_reserve() improving boot times on 1TB machines.\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: Mel Gorman \u003cmgorman@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "937a94c9db30a818baa5e2c09dbf4589251355c3",
      "tree": "c038d9689edf1f03467227959f66c3ef750a9572",
      "parents": [
        "90a5d5af74f6570af063fb6bff33c6b2f8361bbc"
      ],
      "author": {
        "name": "Jacobo Giralt",
        "email": "jacobo.giralt@gmail.com",
        "time": "Tue Jan 10 15:07:11 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 16:30:41 2012 -0800"
      },
      "message": "mm: migrate: one less atomic operation\n\nmigrate_page_move_mapping() drops a reference from the old page after\nunfreezing its counter.  Both operations can be merged into a single\natomic operation by directly unfreezing to one less reference.\n\nThe same applies to migrate_huge_page_move_mapping().\n\nSigned-off-by: Jacobo Giralt \u003cjacobo.giralt@gmail.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: Johannes Weiner \u003cjweiner@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": "90a5d5af74f6570af063fb6bff33c6b2f8361bbc",
      "tree": "3165cde652d1c8cf3c8817b34ba880fc35fa6c96",
      "parents": [
        "b413d48aa70605701c0b395b2e350ca15f5d643a"
      ],
      "author": {
        "name": "Konstantin Khlebnikov",
        "email": "khlebnikov@openvz.org",
        "time": "Tue Jan 10 15:07:10 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 16:30:41 2012 -0800"
      },
      "message": "mm-tracepoint: fix documentation and examples\n\nWe renamed the page-free mm tracepoints.\n\nSigned-off-by: Konstantin Khlebnikov \u003ckhlebnikov@openvz.org\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nReviewed-by: Minchan Kim \u003cminchan.kim@gmail.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": "b413d48aa70605701c0b395b2e350ca15f5d643a",
      "tree": "6aa777c589eedfb9dc498f375d553e561e203506",
      "parents": [
        "da066ad3570b88e7dee82e76a06ee9a7adffcf0d"
      ],
      "author": {
        "name": "Konstantin Khlebnikov",
        "email": "khlebnikov@openvz.org",
        "time": "Tue Jan 10 15:07:09 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 16:30:41 2012 -0800"
      },
      "message": "mm-tracepoint: rename page-free events\n\nRename mm_page_free_direct into mm_page_free and mm_pagevec_free into\nmm_page_free_batched\n\nSince v2.6.33-5426-gc475dab the kernel triggers mm_page_free_direct for\nall freed pages, not only for directly freed.  So, let\u0027s name it properly.\n For pages freed via page-list we also trigger mm_page_free_batched event.\n\nSigned-off-by: Konstantin Khlebnikov \u003ckhlebnikov@openvz.org\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nReviewed-by: Minchan Kim \u003cminchan.kim@gmail.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": "da066ad3570b88e7dee82e76a06ee9a7adffcf0d",
      "tree": "0587cac700f316f9d658e350c0ddf4b4331413a5",
      "parents": [
        "cc59850ef940e4ee6a765d28b439b9bafe07cf63"
      ],
      "author": {
        "name": "Konstantin Khlebnikov",
        "email": "khlebnikov@openvz.org",
        "time": "Tue Jan 10 15:07:06 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 16:30:41 2012 -0800"
      },
      "message": "mm: remove unused pagevec_free\n\nIt not exported and now nobody uses it.\n\nSigned-off-by: Konstantin Khlebnikov \u003ckhlebnikov@openvz.org\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nReviewed-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nAcked-by: Hugh Dickins \u003chughd@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "cc59850ef940e4ee6a765d28b439b9bafe07cf63",
      "tree": "03b666986e9cc7dfc113a14721c44aa9e149f871",
      "parents": [
        "c909e99364c8b6ca07864d752950b6b4ecf6bef4"
      ],
      "author": {
        "name": "Konstantin Khlebnikov",
        "email": "khlebnikov@openvz.org",
        "time": "Tue Jan 10 15:07:04 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 16:30:41 2012 -0800"
      },
      "message": "mm: add free_hot_cold_page_list() helper\n\nThis patch adds helper free_hot_cold_page_list() to free list of 0-order\npages.  It frees pages directly from list without temporary page-vector.\nIt also calls trace_mm_pagevec_free() to simulate pagevec_free()\nbehaviour.\n\nbloat-o-meter:\n\nadd/remove: 1/1 grow/shrink: 1/3 up/down: 267/-295 (-28)\nfunction                                     old     new   delta\nfree_hot_cold_page_list                        -     264    +264\nget_page_from_freelist                      2129    2132      +3\n__pagevec_free                               243     239      -4\nsplit_free_page                              380     373      -7\nrelease_pages                                606     510     -96\nfree_page_list                               188       -    -188\n\nSigned-off-by: Konstantin Khlebnikov \u003ckhlebnikov@openvz.org\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nAcked-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nAcked-by: Hugh Dickins \u003chughd@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c909e99364c8b6ca07864d752950b6b4ecf6bef4",
      "tree": "9942e7a9aeac9a334bb7b4a01c4add8e927b6218",
      "parents": [
        "34dbc67a644f11ab3475d822d72e25409911e760"
      ],
      "author": {
        "name": "Konstantin Khlebnikov",
        "email": "khlebnikov@openvz.org",
        "time": "Tue Jan 10 15:07:03 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 16:30:41 2012 -0800"
      },
      "message": "vmscan: activate executable pages after first usage\n\nLogic added in commit 8cab4754d24a0 (\"vmscan: make mapped executable pages\nthe first class citizen\") was noticeably weakened in commit\n645747462435d84 (\"vmscan: detect mapped file pages used only once\").\n\nCurrently these pages can become \"first class citizens\" only after second\nusage.  After this patch page_check_references() will activate they after\nfirst usage, and executable code gets yet better chance to stay in memory.\n\nSigned-off-by: Konstantin Khlebnikov \u003ckhlebnikov@openvz.org\u003e\nCc: Pekka Enberg \u003cpenberg@kernel.org\u003e\nCc: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Nick Piggin \u003cnpiggin@kernel.dk\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Shaohua Li \u003cshaohua.li@intel.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "34dbc67a644f11ab3475d822d72e25409911e760",
      "tree": "56673160df54f71d71bcf91ac5328ec225c28c98",
      "parents": [
        "1edf223485c42c99655dcd001db1e46ad5e5d2d7"
      ],
      "author": {
        "name": "Konstantin Khlebnikov",
        "email": "khlebnikov@openvz.org",
        "time": "Tue Jan 10 15:06:59 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 16:30:41 2012 -0800"
      },
      "message": "vmscan: promote shared file mapped pages\n\nCommit 645747462435 (\"vmscan: detect mapped file pages used only once\")\ngreatly decreases lifetime of single-used mapped file pages.\nUnfortunately it also decreases life time of all shared mapped file\npages.  Because after commit bf3f3bc5e7347 (\"mm: don\u0027t mark_page_accessed\nin fault path\") page-fault handler does not mark page active or even\nreferenced.\n\nThus page_check_references() activates file page only if it was used twice\nwhile it stays in inactive list, meanwhile it activates anon pages after\nfirst access.  Inactive list can be small enough, this way reclaimer can\naccidentally throw away any widely used page if it wasn\u0027t used twice in\nshort period.\n\nAfter this patch page_check_references() also activate file mapped page at\nfirst inactive list scan if this page is already used multiple times via\nseveral ptes.\n\nI found this while trying to fix degragation in rhel6 (~2.6.32) from rhel5\n(~2.6.18).  There a complete mess with \u003e100 web/mail/spam/ftp containers,\nthey share all their files but there a lot of anonymous pages: ~500mb\nshared file mapped memory and 15-20Gb non-shared anonymous memory.  In\nthis situation major-pagefaults are very costly, because all containers\nshare the same page.  In my load kernel created a disproportionate\npressure on the file memory, compared with the anonymous, they equaled\nonly if I raise swappiness up to 150 \u003d)\n\nThese patches actually wasn\u0027t helped a lot in my problem, but I saw\nnoticable (10-20 times) reduce in count and average time of\nmajor-pagefault in file-mapped areas.\n\nActually both patches are fixes for commit v2.6.33-5448-g6457474, because\nit was aimed at one scenario (singly used pages), but it breaks the logic\nin other scenarios (shared and/or executable pages)\n\nSigned-off-by: Konstantin Khlebnikov \u003ckhlebnikov@openvz.org\u003e\nAcked-by: Pekka Enberg \u003cpenberg@kernel.org\u003e\nAcked-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Nick Piggin \u003cnpiggin@kernel.dk\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Shaohua Li \u003cshaohua.li@intel.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1edf223485c42c99655dcd001db1e46ad5e5d2d7",
      "tree": "33b93dc8f2a249806150b5792ac1787688bf6b74",
      "parents": [
        "e4e11180dfa545233e5145919b75b7fac88638df"
      ],
      "author": {
        "name": "Johannes Weiner",
        "email": "hannes@cmpxchg.org",
        "time": "Tue Jan 10 15:06:57 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 16:30:41 2012 -0800"
      },
      "message": "mm/page-writeback.c: make determine_dirtyable_memory static again\n\nThe tracing ring-buffer used this function briefly, but not anymore.\nMake it local to the writeback code again.\n\nAlso, move the function so that no forward declaration needs to be\nreintroduced.\n\nSigned-off-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nAcked-by: Mel Gorman \u003cmgorman@suse.de\u003e\nReviewed-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    }
  ],
  "next": "e4e11180dfa545233e5145919b75b7fac88638df"
}
