)]}'
{
  "log": [
    {
      "commit": "7764dcb53473e5665ab3cdc461ccfc510fce925e",
      "tree": "e839911d1d15cbd066477b13dfeea2e3f2ff1446",
      "parents": [
        "5af5bcb8d37f99ba415a1adc6da71051b84f93a5"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Tue Mar 22 16:34:24 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:13 2011 -0700"
      },
      "message": "get_maintainer.pl: allow \"K:\" pattern tests to match non-patch text\n\nExtend the usage of the K section in the MAINTAINERS file to support\nmatching regular expressions to any arbitrary text that may precede the\npatch itself.  For example, the commit message or mail headers generated\nby git-format-patch.\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nOriginal-patch-by: L. Alberto Giménez \u003cagimenez@sysvalve.es\u003e\nAcked-by: L. Alberto Giménez \u003cagimenez@sysvalve.es\u003e\n\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5af5bcb8d37f99ba415a1adc6da71051b84f93a5",
      "tree": "58ae14d126ef40cbc5a91538cfe04433d26510ae",
      "parents": [
        "9f36e2c448007b54851e7e4fa48da97d1477a175"
      ],
      "author": {
        "name": "Mandeep Singh Baines",
        "email": "msb@chromium.org",
        "time": "Tue Mar 22 16:34:23 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:13 2011 -0700"
      },
      "message": "printk: allow setting DEFAULT_MESSAGE_LEVEL via Kconfig\n\nWe\u0027ve been burned by regressions/bugs which we later realized could have\nbeen triaged quicker if only we\u0027d paid closer attention to dmesg.  To make\nit easier to audit dmesg, we\u0027d like to make DEFAULT_MESSAGE_LEVEL\nKconfig-settable.  That way we can set it to KERN_NOTICE and audit any\nmessages \u003c\u003d KERN_WARNING.\n\nSigned-off-by: Mandeep Singh Baines \u003cmsb@chromium.org\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Joe Perches \u003cjoe@perches.com\u003e\nCc: Olof Johansson \u003colofj@chromium.org\u003e\nCc: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9f36e2c448007b54851e7e4fa48da97d1477a175",
      "tree": "2fa0ad88c75184dc79b28c287c853e97f779bf1f",
      "parents": [
        "fe3d8ad31cf51b062bbb8a9609eeb1d0c41a7f30"
      ],
      "author": {
        "name": "Kees Cook",
        "email": "kees.cook@canonical.com",
        "time": "Tue Mar 22 16:34:22 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:12 2011 -0700"
      },
      "message": "printk: use %pK for /proc/kallsyms and /proc/modules\n\nIn an effort to reduce kernel address leaks that might be used to help\ntarget kernel privilege escalation exploits, this patch uses %pK when\ndisplaying addresses in /proc/kallsyms, /proc/modules, and\n/sys/module/*/sections/*.\n\nNote that this changes %x to %p, so some legitimately 0 values in\n/proc/kallsyms would have changed from 00000000 to \"(null)\".  To avoid\nthis, \"(null)\" is not used when using the \"K\" format.  Anything that was\nalready successfully parsing \"(null)\" in addition to full hex digits\nshould have no problem with this change.  (Thanks to Joe Perches for the\nsuggestion.) Due to the %x to %p, \"void *\" casts are needed since these\naddresses are already \"unsigned long\" everywhere internally, due to their\nstarting life as ELF section offsets.\n\nSigned-off-by: Kees Cook \u003ckees.cook@canonical.com\u003e\nCc: Eugene Teo \u003ceugene@redhat.com\u003e\nCc: Dan Rosenberg \u003cdrosenberg@vsecurity.com\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "fe3d8ad31cf51b062bbb8a9609eeb1d0c41a7f30",
      "tree": "f0e0f85582a695d0da7bae97897835ee51a0ab09",
      "parents": [
        "7bf693951a8e5f7e600a45b74d91d962a453146e"
      ],
      "author": {
        "name": "Feng Tang",
        "email": "feng.tang@intel.com",
        "time": "Tue Mar 22 16:34:21 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:12 2011 -0700"
      },
      "message": "console: prevent registered consoles from dumping old kernel message over again\n\nFor a platform with many consoles like:\n \"console\u003dtty1 console\u003dttyMFD2 console\u003dttyS0 earlyprintk\u003dmrst\"\n\nEach time when the non \"selected_console\" (tty1 and ttyMFD2 here) get\nregistered, the existing kernel message will be printed out on registered\nconsoles again, the \"mrst\" early console will get some same message for 3\ntimes, and \"tty1\" will get some for twice.\n\nAs suggested by Andrew Morton, every time a new console is registered, it\nwill be set as the \"exclusive\" console which will dump the already\nexisting kernel messages.\n\nSigned-off-by: Feng Tang \u003cfeng.tang@intel.com\u003e\nCc: Greg KH \u003cgregkh@suse.de\u003e\nCc: Alan Cox \u003calan@lxorguk.ukuu.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": "7bf693951a8e5f7e600a45b74d91d962a453146e",
      "tree": "d322e17d0d6b445d8332e210e01d3cce7ddfe5ca",
      "parents": [
        "26297607e09ca6c7e6f2a6b86a8bee2f23503bb8"
      ],
      "author": {
        "name": "Fabio M. Di Nitto",
        "email": "fdinitto@redhat.com",
        "time": "Tue Mar 22 16:34:20 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:12 2011 -0700"
      },
      "message": "console: allow to retain boot console via boot option keep_bootcon\n\nOn some architectures, the boot process involves de-registering the boot\nconsole (early boot), initialize drivers and then re-register the console.\n\nThis mechanism introduces a window in which no printk can happen on the\nconsole and messages are buffered and then printed once the new console is\navailable.\n\nIf a kernel crashes during this window, all it\u0027s left on the boot console\nis \"console [foo] enabled, bootconsole disabled\" making debug of the crash\nrather \u0027interesting\u0027.\n\nBy adding \"keep_bootcon\" option, do not unregister the boot console, that\nwill allow to printk everything that is happening up to the crash.\n\nThe option is clearly meant only for debugging purposes as it introduces\nlots of duplicated info printed on console, but will make bug report from\nusers easier as it doesn\u0027t require a kernel build just to figure out where\nwe crash.\n\nSigned-off-by: Fabio M. Di Nitto \u003cfabbione@fabbione.net\u003e\nAcked-by: David S. Miller \u003cdavem@davemloft.net\u003e\nCc: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nCc: Greg KH \u003cgregkh@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": "26297607e09ca6c7e6f2a6b86a8bee2f23503bb8",
      "tree": "b0fbb98f7d25c5aa18f972cbcddb1c81035e387c",
      "parents": [
        "3bb598fb23b6040e67b5e6db9a00b28cd26e5809"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Tue Mar 22 16:34:19 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:12 2011 -0700"
      },
      "message": "vsprintf: neaten %pK kptr_restrict, save a bit of code space\n\nIf kptr restrictions are on, just set the passed pointer to NULL.\n\n$ size lib/vsprintf.o.*\n   text\t   data\t    bss\t    dec\t    hex\tfilename\n   8247\t      4\t      2\t   8253\t   203d\tlib/vsprintf.o.new\n   8282\t      4\t      2\t   8288\t   2060\tlib/vsprintf.o.old\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nCc: Dan Rosenberg \u003cdrosenberg@vsecurity.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3bb598fb23b6040e67b5e6db9a00b28cd26e5809",
      "tree": "1e3fdd114128e0890a52afcf838cfe400a4a6002",
      "parents": [
        "f99a99330f85a84c346ddeb4adc72dbfad9b9e3e"
      ],
      "author": {
        "name": "Kirill A. Shutemov",
        "email": "kirill@shutemov.name",
        "time": "Tue Mar 22 16:34:18 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:12 2011 -0700"
      },
      "message": "drivers/dca/dca-core.c: use list_move() instead of list_del()/list_add() combination\n\nSigned-off-by: Kirill A. Shutemov \u003ckirill@shutemov.name\u003e\nCc: Maciej Sosnowski \u003cmaciej.sosnowski@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": "f99a99330f85a84c346ddeb4adc72dbfad9b9e3e",
      "tree": "4c72a3f2231e7c79f1afeaee5cd03ae7331d3b7a",
      "parents": [
        "fef2c9bc1b54c0261324a96e948c0b849796e896"
      ],
      "author": {
        "name": "Don Zickus",
        "email": "dzickus@redhat.com",
        "time": "Tue Mar 22 16:34:17 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:12 2011 -0700"
      },
      "message": "kernel/watchdog.c: always return NOTIFY_OK during cpu up/down events\n\nThis patch addresses a couple of problems.  One was the case when the\nhardlockup failed to start, it also failed to start the softlockup.  There\nwere valid cases when the hardlockup shouldn\u0027t start and that shouldn\u0027t\nblock the softlockup (no lapic, bios controls perf counters).\n\nThe second problem was when the hardlockup failed to start on boxes (from\na no lapic or bios controlled perf counter case), it reported failure to\nthe cpu notifier chain.  This blocked the notifier from continuing to\nstart other more critical pieces of cpu bring-up (in our case based on a\n2.6.32 fork, it was the mce).  As a result, during soft cpu online/offline\ntesting, the system would panic when a cpu was offlined because the cpu\nnotifier would succeed in processing a watchdog disable cpu event and\nwould panic in the mce case as a result of un-initialized variables from a\nnever executed cpu up event.\n\nI realized the hardlockup/softlockup cases are really just debugging aids\nand should never impede the progress of a cpu up/down event.  Therefore I\nmodified the code to always return NOTIFY_OK and instead rely on printks\nto inform the user of problems.\n\nSigned-off-by: Don Zickus \u003cdzickus@redhat.com\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nReviewed-by: WANG Cong \u003cxiyou.wangcong@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "fef2c9bc1b54c0261324a96e948c0b849796e896",
      "tree": "a4dd2733621d9fe1f8ec65d9ef30867ed09b640f",
      "parents": [
        "b1b5f65e53af770ede22c113e249de2f6fa53706"
      ],
      "author": {
        "name": "Don Zickus",
        "email": "dzickus@redhat.com",
        "time": "Tue Mar 22 16:34:16 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:12 2011 -0700"
      },
      "message": "kernel/watchdog.c: allow hardlockup to panic by default\n\nWhen a cpu is considered stuck, instead of limping along and just printing\na warning, it is sometimes preferred to just panic, let kdump capture the\nvmcore and reboot.  This gets the machine back into a stable state quickly\nwhile saving the info that got it into a stuck state to begin with.\n\nAdd a Kconfig option to allow users to set the hardlockup to panic\nby default.  Also add in a \u0027nmi_watchdog\u003dnopanic\u0027 to override this.\n\n[akpm@linux-foundation.org: fix strncmp length]\nSigned-off-by: Don Zickus \u003cdzickus@redhat.com\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nReviewed-by: WANG Cong \u003cxiyou.wangcong@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b1b5f65e53af770ede22c113e249de2f6fa53706",
      "tree": "2aaf103408e285c5413c973649c7dd3a111da800",
      "parents": [
        "191e56880a6a638ce931859317f37deb084b6433"
      ],
      "author": {
        "name": "Phil Carmody",
        "email": "ext-phil.2.carmody@nokia.com",
        "time": "Tue Mar 22 16:34:15 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:12 2011 -0700"
      },
      "message": "calibrate: retry with wider bounds when converge seems to fail\n\nSystems with unmaskable interrupts such as SMIs may massively\nunderestimate loops_per_jiffy, and fail to converge anywhere near the real\nvalue.  A case seen on x86_64 was an initial estimate of 256\u003c\u003c12, which\nconverged to 511\u003c\u003c12 where the real value should have been over 630\u003c\u003c12.\nThis admitedly requires bypassing the TSC calibration (lpj_fine), and a\nfailure to settle in the direct calibration too, but is physically\npossible.  This failure does not depend on my previous calibration\noptimisation, but by luck is easy to fix with the optimisation in place\nwith a trivial retry loop.\n\nIn the context of the optimised converging method, as we can no longer\ntrust the starting estimate, enlarge the search bounds exponentially so\nthat the number of retries is logarithmically bounded.\n\n[akpm@linux-foundation.org: mention x86_64 SMIs in comment]\nSigned-off-by: Phil Carmody \u003cext-phil.2.carmody@nokia.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nTested-by: Stephen Boyd \u003csboyd@codeaurora.org\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": "191e56880a6a638ce931859317f37deb084b6433",
      "tree": "26853fa62983f12b85badda6b9ee2197c2f10697",
      "parents": [
        "71c696b1d0310da3ab8033d743282959bd49d28b"
      ],
      "author": {
        "name": "Phil Carmody",
        "email": "ext-phil.2.carmody@nokia.com",
        "time": "Tue Mar 22 16:34:13 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:11 2011 -0700"
      },
      "message": "calibrate: home in on correct lpj value more quickly\n\nBinary chop with a jiffy-resync on each step to find an upper bound is\nslow, so just race in a tight-ish loop to find an underestimate.\n\nIf done with lots of individual steps, sometimes several hundreds of\niterations would be required, which would impose a significant overhead,\nand make the initial estimate very low.  By taking slowly increasing steps\nthere will be less overhead.\n\nE.g.  an x86_64 2.67GHz could have fitted in 613 individual small delays,\nbut in reality should have been able to fit in a single delay 644 times\nlonger, so underestimated by 31 steps.  To reach the equivalent of 644\nsmall delays with the accelerating scheme now requires about 130\niterations, so has \u003c1/4th of the overhead, and can therefore be expected\nto underestimate by only 7 steps.\n\nAs now we have a better initial estimate we can binary chop over a smaller\nrange.  With the loop overhead in the initial estimate kept low, and the\nstep sizes moderate, we won\u0027t have under-estimated by much, so chose as\ntight a range as we can.\n\nSigned-off-by: Phil Carmody \u003cext-phil.2.carmody@nokia.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nTested-by: Stephen Boyd \u003csboyd@codeaurora.org\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": "71c696b1d0310da3ab8033d743282959bd49d28b",
      "tree": "cf501760d1bb1e045c23bf5155742fa8aa221776",
      "parents": [
        "9bfb23fc4a481650e60d22dbe84c0fd5a9d49bba"
      ],
      "author": {
        "name": "Phil Carmody",
        "email": "ext-phil.2.carmody@nokia.com",
        "time": "Tue Mar 22 16:34:12 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:11 2011 -0700"
      },
      "message": "calibrate: extract fall-back calculation into own helper\n\nThe motivation for this patch series is that currently our OMAP calibrates\nitself using the trial-and-error binary chop fallback that some other\narchitectures no longer need to perform.  This is a lengthy process,\ntaking 0.2s in an environment where boot time is of great interest.\n\nPatch 2/4 has two optimisations.  Firstly, it replaces the initial\nrepeated- doubling to find the relevant power of 2 with a tight loop that\njust does as much as it can in a jiffy.  Secondly, it doesn\u0027t binary chop\nover an entire power of 2 range, it choses a much smaller range based on\nhow much it squeezed in, and failed to squeeze in, during the first stage.\n Both are significant optimisations, and bring our calibration down from\n23 jiffies to 5, and, in the process, often arrive at a more accurate lpj\nvalue.\n\nThe \u0027bands\u0027 and \u0027sub-logarithmic\u0027 growth may look over-engineered, but\nthey only cost a small level of inaccuracy in the initial guess (for all\narchitectures) in order to avoid the very large inaccuracies that appeared\nduring testing (on x86_64 architectures, and presumably others with less\nmetronomic operation).  Note that due to the existence of the TSC and\nother timers, the x86_64 will not typically use this fallback routine, but\nI wanted to code defensively, able to cope with all kinds of processor\nbehaviours and kernel command line options.\n\nPatch 3/4 is an additional trap for the nightmare scenario where the\ninitial estimate is very inaccurate, possibly due to things like SMIs.\nIt simply retries with a larger bound.\n\nStephen said:\n\nI tried this patch set out on an MSM7630.\n:\n: Before:\n:\n: Calibrating delay loop... 681.57 BogoMIPS (lpj\u003d3407872)\n:\n: After:\n:\n: Calibrating delay loop... 680.75 BogoMIPS (lpj\u003d3403776)\n:\n: But the really good news is calibration time dropped from ~247ms to ~56ms.\n:  Sadly we won\u0027t be able to benefit from this should my udelay patches make\n: it into ARM because we would be using calibrate_delay_direct() instead (at\n: least on machines who choose to).  Can we somehow reapply the logic behind\n: this to calibrate_delay_direct()?  That would be even better, but this is\n: definitely a boot time improvement.\n:\n: Or maybe we could just replace calibrate_delay_direct() with this fallback\n: calculation?  If __delay() is a thin wrapper around read_current_timer()\n: it should work just as well (plus patch 3 makes it handle SMIs).  I\u0027ll try\n: that out.\n\nThis patch:\n\n... so that it can be modified more clinically.\n\nThis is almost entirely cosmetic. The only change to the operation\nis that the global variable is only set once after the estimation is\ncompleted, rather than taking on all the intermediate values. However,\nthere are no readers of that variable, so this change is unimportant.\n\nSigned-off-by: Phil Carmody \u003cext-phil.2.carmody@nokia.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nTested-by: Stephen Boyd \u003csboyd@codeaurora.org\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": "9bfb23fc4a481650e60d22dbe84c0fd5a9d49bba",
      "tree": "a88488a871e6b765dede72ff28db00c71848201d",
      "parents": [
        "4d51985e484dd11d9047dfcd1278ec9ccfb435d5"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Tue Mar 22 16:34:09 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:11 2011 -0700"
      },
      "message": "sys_unshare: remove the dead CLONE_THREAD/SIGHAND/VM code\n\nCleanup: kill the dead code which does nothing but complicates the code\nand confuses the reader.\n\nsys_unshare(CLONE_THREAD/SIGHAND/VM) is not really implemented, and I\ndoubt very much it will ever work.  At least, nobody even tried since the\noriginal 99d1419d96d7df9cfa56 (\"unshare system call -v5: system call\nhandler function\") was applied more than 4 years ago.\n\nAnd the code is not consistent.  unshare_thread() always fails\nunconditionally, while unshare_sighand() and unshare_vm() pretend to work\nif there is nothing to unshare.\n\nRemove unshare_thread(), unshare_sighand(), unshare_vm() helpers and\nrelated variables and add a simple CLONE_THREAD | CLONE_SIGHAND| CLONE_VM\ncheck into check_unshare_flags().\n\nAlso, move the \"CLONE_NEWNS needs CLONE_FS\" check from\ncheck_unshare_flags() to sys_unshare().  This looks more consistent and\nmatches the similar do_sysvsem check in sys_unshare().\n\nNote: with or without this patch \"atomic_read(mm-\u003emm_users) \u003e 1\" can give\na false positive due to get_task_mm().\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Roland McGrath \u003croland@redhat.com\u003e\nCc: Janak Desai \u003cjanak@us.ibm.com\u003e\nCc: Daniel Lezcano \u003cdaniel.lezcano@free.fr\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nAcked-by: Serge Hallyn \u003cserge.hallyn@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": "4d51985e484dd11d9047dfcd1278ec9ccfb435d5",
      "tree": "6316b48bd1b99fcc793892a07f7bba56b1621b8f",
      "parents": [
        "34db18a054c600b6f81787165669dc572fe4de25"
      ],
      "author": {
        "name": "Michael Rodriguez",
        "email": "dkingston02@gmail.com",
        "time": "Tue Mar 22 16:34:07 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:11 2011 -0700"
      },
      "message": "kernel/cpu.c: fix many errors related to style.\n\nChange the printk() calls to have the KERN_INFO/KERN_ERROR stuff, and\nfixes other coding style errors.  Not _all_ of them are gone, though.\n\n[akpm@linux-foundation.org: revert the bits I disagree with]\nSigned-off-by: Michael Rodriguez \u003cdkingston02@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": "34db18a054c600b6f81787165669dc572fe4de25",
      "tree": "6a8a0abf4f64ccad677ea2468c3e8465ac4e0c29",
      "parents": [
        "fa9ee9c4b9885dfdf8eccac19b8b4fc8a7c53288"
      ],
      "author": {
        "name": "Amerigo Wang",
        "email": "amwang@redhat.com",
        "time": "Tue Mar 22 16:34:06 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:11 2011 -0700"
      },
      "message": "smp: move smp setup functions to kernel/smp.c\n\nMove setup_nr_cpu_ids(), smp_init() and some other SMP boot parameter\nsetup functions from init/main.c to kenrel/smp.c, saves some #ifdef\nCONFIG_SMP.\n\nSigned-off-by: WANG Cong \u003camwang@redhat.com\u003e\nCc: Rakib Mullick \u003crakib.mullick@gmail.com\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Arnd Bergmann \u003carnd@arndb.de\u003e\nCc: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "fa9ee9c4b9885dfdf8eccac19b8b4fc8a7c53288",
      "tree": "7fa3808a38b2d8f161d750156804e643288e4304",
      "parents": [
        "d404ab0a1133e95557bb7deab2a49b348dfeba85"
      ],
      "author": {
        "name": "Uwe Kleine-König",
        "email": "u.kleine-koenig@pengutronix.de",
        "time": "Tue Mar 22 16:34:05 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:11 2011 -0700"
      },
      "message": "include/linux/err.h: add a function to cast error-pointers to a return value\n\nPTR_RET() can be used if you have an error-pointer and are only interested\nin the eventual error value, but not the pointer.  Yields the usual 0 for\nno error, -ESOMETHING otherwise.\n\nSigned-off-by: Uwe Kleine-König \u003cu.kleine-koenig@pengutronix.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d404ab0a1133e95557bb7deab2a49b348dfeba85",
      "tree": "067815cd747a6998f76ff7bda2e9075f433459af",
      "parents": [
        "b259514282d54323aaadead3dac4823ea01f9b89"
      ],
      "author": {
        "name": "Olaf Hering",
        "email": "olaf@aepfle.de",
        "time": "Tue Mar 22 16:34:04 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:11 2011 -0700"
      },
      "message": "move x86 specific oops\u003dpanic to generic code\n\nThe oops\u003dpanic cmdline option is not x86 specific, move it to generic code.\nUpdate documentation.\n\nSigned-off-by: Olaf Hering \u003colaf@aepfle.de\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b259514282d54323aaadead3dac4823ea01f9b89",
      "tree": "4fdef306ba2578242f3feb8a7d97c8ea4cda2bbb",
      "parents": [
        "deb187e72470b0382d4f0cb859e76e1ebc3a1082"
      ],
      "author": {
        "name": "Axel Lin",
        "email": "axel.lin@gmail.com",
        "time": "Tue Mar 22 16:34:02 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:11 2011 -0700"
      },
      "message": "drivers/misc/pch_phub.c: add MODULE_DEVICE_TABLE\n\nThe device table is required to load modules based on modaliases.\n\nSigned-off-by: Axel Lin \u003caxel.lin@gmail.com\u003e\nCc: Masayuki Ohtak \u003cmasa-korg@dsn.okisemi.com\u003e\nCc: Greg Kroah-Hartman \u003cgregkh@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": "deb187e72470b0382d4f0cb859e76e1ebc3a1082",
      "tree": "649769a93dd56f821519df7417eadb9d7328007c",
      "parents": [
        "a844b43ca078d7dd8f0cd13c6f030ec62a996975"
      ],
      "author": {
        "name": "Vasiliy Kulikov",
        "email": "segoon@openwall.com",
        "time": "Tue Mar 22 16:34:01 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:11 2011 -0700"
      },
      "message": "drivers/misc/ep93xx_pwm.c: world-writable sysfs files\n\nDon\u0027t allow everybody to change device settings.\n\nSigned-off-by: Vasiliy Kulikov \u003csegoon@openwall.com\u003e\nAcked-by: Hartley Sweeten \u003chartleys@visionengravers.com\u003e\nCc: Matthieu Crapet \u003cmcrapet@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": "a844b43ca078d7dd8f0cd13c6f030ec62a996975",
      "tree": "c74c3ffe40ae31026e69e916ecaec29f5b239982",
      "parents": [
        "6f7d485e13c6c07348cf9cfd1b735fe1bcf3caa9"
      ],
      "author": {
        "name": "Axel Lin",
        "email": "axel.lin@gmail.com",
        "time": "Tue Mar 22 16:34:01 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:11 2011 -0700"
      },
      "message": "drivers/misc/atmel_tclib.c: fix a memory leak\n\nrequest_mem_region() will call kzalloc to allocate memory for struct\nresource.  release_resource() unregisters the resource but does not free\nthe allocated memory, thus use release_mem_region() instead to fix the\nmemory leak.\n\nSigned-off-by: Axel Lin \u003caxel.lin@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": "6f7d485e13c6c07348cf9cfd1b735fe1bcf3caa9",
      "tree": "e29567aa27363fc8072a355d89d951ef95c41920",
      "parents": [
        "4e6735992392ecd393674119aef9ec7bff9be5b0"
      ],
      "author": {
        "name": "Axel Lin",
        "email": "axel.lin@gmail.com",
        "time": "Tue Mar 22 16:34:00 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:10 2011 -0700"
      },
      "message": "drivers/misc/hmc6352.c: fix wrong return value checking for i2c_master_recv()\n\ni2c_master_recv() returns negative errno, or else the number of bytes\nread.  Thus i2c_master_recv(client, i2c_data, 2) returns 2 instead of 1 in\nsuccess case.\n\n[akpm@linux-foundation.org: make `ret\u0027 signed]\nSigned-off-by: Axel Lin \u003caxel.lin@gmail.com\u003e\nCc: Kalhan Trisal \u003ckalhan.trisal@intel.com\u003e\nCc: Alan Cox \u003calan@linux.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": "4e6735992392ecd393674119aef9ec7bff9be5b0",
      "tree": "555ff9df99dcea4db2b82a8d3718475be1626f11",
      "parents": [
        "b9500546d5f85b56359657e1f78334db8de851fd"
      ],
      "author": {
        "name": "Hong Liu",
        "email": "hong.liu@intel.com",
        "time": "Tue Mar 22 16:33:59 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:10 2011 -0700"
      },
      "message": "drivers/misc/apds9802als.c: put the device into runtime suspend after resume()/probe() is handled\n\nPut the device into runtime suspend after resume()/probe() is handled by\nthe PM core and the device core code.  No need to manually add them in\neach single driver.  And correct the runtime state in remove().\n\nSigned-off-by: Hong Liu \u003chong.liu@intel.com\u003e\nSigned-off-by: Alan Cox \u003calan@linux.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": "b9500546d5f85b56359657e1f78334db8de851fd",
      "tree": "545f8152e70737587b06f940209cad6b5e273447",
      "parents": [
        "45bff2ea4285cac5b4438c65216e114d3619f123"
      ],
      "author": {
        "name": "Pratyush Anand",
        "email": "pratyush.anand@st.com",
        "time": "Tue Mar 22 16:33:58 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:10 2011 -0700"
      },
      "message": "ST SPEAr: PCIE gadget suppport\n\nThis is a configurable gadget.  can be configured by configfs interface.\nAny IP available at PCIE bus can be programmed to be used by host\ncontroller.It supoorts both INTX and MSI.\n\nBy default, the gadget is configured for INTX and SYSRAM1 is mapped to\nBAR0 with size 0x1000\n\nSigned-off-by: Pratyush Anand \u003cpratyush.anand@st.com\u003e\nCc: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nCc: Jesse Barnes \u003cjbarnes@virtuousgeek.org\u003e\nCc: Viresh Kumar \u003cviresh.kumar@st.com\u003e\nCc: Shiraz Hashim \u003cshiraz.hashim@st.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "45bff2ea4285cac5b4438c65216e114d3619f123",
      "tree": "5e835484c87156feeb51bb50887156e2d9635e72",
      "parents": [
        "4a7de634f0316080cae5dd4a994112049a7d8462"
      ],
      "author": {
        "name": "Shubhrajyoti Datta",
        "email": "shubhrajyoti@ti.com",
        "time": "Tue Mar 22 16:33:57 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:10 2011 -0700"
      },
      "message": "drivers/misc/bmp085.c: free initmem memory\n\nFree the memory that is used only at init\n\nSigned-off-by: Shubhrajyoti Datta \u003cshubhrajyoti@ti.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4a7de634f0316080cae5dd4a994112049a7d8462",
      "tree": "15b12ff69791706839d1f4a3353379ef9e43feca",
      "parents": [
        "f3ccfcdaf3986f8c541886606e950de52cab7ad3"
      ],
      "author": {
        "name": "Shubhrajyoti Datta",
        "email": "shubhrajyoti@ti.com",
        "time": "Tue Mar 22 16:33:57 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:10 2011 -0700"
      },
      "message": "bh1780gli: convert to dev pm ops\n\nSigned-off-by: Shubhrajyoti Datta \u003cshubhrajyoti@ti.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f3ccfcdaf3986f8c541886606e950de52cab7ad3",
      "tree": "3433cd58adfe51db1f466e6033040ac9a512ffd2",
      "parents": [
        "c837fb37a60aa642b9ad423462e32b851a03020a"
      ],
      "author": {
        "name": "Richard Kennedy",
        "email": "richard@rsk.demon.co.uk",
        "time": "Tue Mar 22 16:33:56 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:10 2011 -0700"
      },
      "message": "fs.h: remove 8 bytes of padding from block_device on 64bit builds\n\nRe-ordering struct block_inode to remove 8 bytes of padding on 64 bit\nbuilds, which also shrinks bdev_inode by 8 bytes (776 -\u003e 768) allowing it\nto fit into one fewer cache lines.\n\nSigned-off-by: Richard Kennedy \u003crichard@rsk.demon.co.uk\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Jens Axboe \u003caxboe@kernel.dk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c837fb37a60aa642b9ad423462e32b851a03020a",
      "tree": "88d6fdd520219fa5700bd618a3fe4dff9d1c4c6f",
      "parents": [
        "80cdc6dae76ea67d2b21bdca8df17ef47251eb8b"
      ],
      "author": {
        "name": "Borislav Petkov",
        "email": "borislav.petkov@amd.com",
        "time": "Tue Mar 22 16:33:55 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:10 2011 -0700"
      },
      "message": "include/linux/compiler-gcc*.h: unify macro definitions\n\nUnify identical gcc3.x and gcc4.x macros.\n\nSigned-off-by: Borislav Petkov \u003cborislav.petkov@amd.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "80cdc6dae76ea67d2b21bdca8df17ef47251eb8b",
      "tree": "b776fd2d32f4262526de9f4ed907c1b9406bce91",
      "parents": [
        "3e50594e8e72932ad4cfcb0b3cbdf58fc3bce416"
      ],
      "author": {
        "name": "Mandeep Singh Baines",
        "email": "msb@chromium.org",
        "time": "Tue Mar 22 16:33:54 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:10 2011 -0700"
      },
      "message": "fs: use appropriate printk priority levels\n\nprintk()s without a priority level default to KERN_WARNING.  To reduce\nnoise at KERN_WARNING, this patch set the priority level appriopriately\nfor unleveled printks()s.  This should be useful to folks that look at\ndmesg warnings closely.\n\nSigned-off-by: Mandeep Singh Baines \u003cmsb@chromium.org\u003e\nCc: Jens Axboe \u003caxboe@kernel.dk\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3e50594e8e72932ad4cfcb0b3cbdf58fc3bce416",
      "tree": "c33044290a9161e73ac5eded5d10a27c47bbfd5f",
      "parents": [
        "8a06dc4d52458e4a909b652ee9fe8f82d2cd87a2"
      ],
      "author": {
        "name": "FUJITA Tomonori",
        "email": "fujita.tomonori@lab.ntt.co.jp",
        "time": "Tue Mar 22 16:33:50 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:09 2011 -0700"
      },
      "message": "add the common dma_addr_t typedef to include/linux/types.h\n\nAll architectures can use the common dma_addr_t typedef now. We can\nremove the arch specific dma_addr_t.\n\nSigned-off-by: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nAcked-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nCc: Ivan Kokshaysky \u003cink@jurassic.park.msu.ru\u003e\nCc: Richard Henderson \u003crth@twiddle.net\u003e\nCc: Matt Turner \u003cmattst88@gmail.com\u003e\nCc: \"Luck, Tony\" \u003ctony.luck@intel.com\u003e\nCc: Ralf Baechle \u003cralf@linux-mips.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Chris Metcalf \u003ccmetcalf@tilera.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8a06dc4d52458e4a909b652ee9fe8f82d2cd87a2",
      "tree": "94cb701af633cc4ff7522a0f0eb559cd56afd537",
      "parents": [
        "13e165baf6ada9f427c319bd41a1c7a9c7b4f0a6"
      ],
      "author": {
        "name": "Richard Weinberger",
        "email": "richard@nod.at",
        "time": "Tue Mar 22 16:33:48 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:09 2011 -0700"
      },
      "message": "um: remove file pointer from ioctl\n\nCommit 6caa76b (\"tty: now phase out the ioctl file pointer for good\")\nremoved the ioctl file pointer.  User Mode Linux\u0027s line driver uses this\nioctl and needs a signature update too.\n\nSigned-off-by: Richard Weinberger \u003crichard@nod.at\u003e\nCc: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nCc: Greg KH \u003cgreg@kroah.com\u003e\nCc: Jeff Dike \u003cjdike@addtoit.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "13e165baf6ada9f427c319bd41a1c7a9c7b4f0a6",
      "tree": "8ff1d630ca686f6f1ad6c2a5931f731a2d1140c7",
      "parents": [
        "3dd7ae8ec0ef399bfea347f297d2a95504d35571"
      ],
      "author": {
        "name": "Paul Pluzhnikov",
        "email": "ppluzhnikov@google.com",
        "time": "Tue Mar 22 16:33:46 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:09 2011 -0700"
      },
      "message": "uml: kernels on {i386,x86_64} produce bad coredumps\n\nOne of our users reported that when a user-level program SIGSEGVs under\nUML kernel, the resulting core dump is not very usable.\n\nI have reproduced that with the latest kernel:\n\n  make ARCH\u003dum defconfig; make ARCH\u003dum\n\nRun the resulting kernel, then \"inside\" run this program:\n\n#include \u003cpthread.h\u003e\n\nvoid *fn(void *p)\n{\n abort();\n}\n\nint main()\n{\n pthread_t tid;\n pthread_create(\u0026tid, 0, fn, 0);\n pthread_join(tid, 0);\n return 0;\n}\n\nAnalyze the coredump with GDB. Here is what you\u0027ll see:\n\nsudo gdb -q -ex \u0027set solib-absolute-prefix ../root_fs\u0027 -ex \u0027file ../root_fs/var/tmp/mt-abort\u0027 -ex \u0027core ../root_fs/var/tmp/core.762\u0027\nReading symbols from /usr/local/google/root_fs/var/tmp/mt-abort...done.\n[New Thread 763]\n[New Thread 762]\nCore was generated by `./mt-abort\u0027.\nProgram terminated with signal 6, Aborted.\n#0  0x0000000040255250 in raise () from ../root_fs/lib64/libc.so.6\n(gdb) info thread\n  2 Thread 762  0x0000000000000000 in ?? ()\n* 1 Thread 763  0x0000000040255250 in raise () from ../root_fs/lib64/libc.so.6\n\nNote that thread#2 looks funny.\n\n(gdb) thread 2\n[Switching to thread 2 (Thread 762)]#0  0x0000000000000000 in ?? ()\n(gdb) info reg\nrax            0x0      0\nrbx            0x0      0\nrcx            0x0      0\nrdx            0x0      0\nrsi            0x0      0\nrdi            0x0      0\nrbp            0x0      0x0\nrsp            0x0      0x0\nr8             0x0      0\nr9             0x0      0\nr10            0x0      0\nr11            0x0      0\nr12            0x0      0\nr13            0x0      0\nr14            0x0      0\nr15            0x0      0\nrip            0x0      0\neflags         0x0      [ ]\ncs             0x0      0\nss             0x0      0\nds             0x0      0\nes             0x0      0\nfs             0x0      0\ngs             0x0      0\n\nExamining the core shows that NT_PRSTATUS notes for all threads other than\nthe one that crashed are zeroed out.\n\nI believe this is happening because neither ELF_CORE_COPY_TASK_REGS nor\ntask_pt_regs are defined under ARCH\u003dum, and so elf_core_copy_task_regs()\nbecomes a no-op.\n\nAttached patch fixes this for SUBARCH\u003d{x86_64,i386}.\n\nSigned-off-by: Paul Pluzhnikov \u003cppluzhnikov@google.com\u003e\nCc: Jeff Dike \u003cjdike@addtoit.com\u003e\nAcked-by: WANG Cong \u003cxiyou.wangcong@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3dd7ae8ec0ef399bfea347f297d2a95504d35571",
      "tree": "6e049499c7502e55d45fbbf2ed83075ed2fbc481",
      "parents": [
        "bee4c36a5cf5c9f63ce1d7372aa62045fbd16d47"
      ],
      "author": {
        "name": "Shaohua Li",
        "email": "shaohua.li@intel.com",
        "time": "Tue Mar 22 16:33:45 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:09 2011 -0700"
      },
      "message": "mm: simplify code of swap.c\n\nClean up code and remove duplicate code. Next patch will use\npagevec_lru_move_fn introduced here too.\n\nSigned-off-by: Shaohua Li \u003cshaohua.li@intel.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Hiroyuki Kamezawa \u003ckamezawa.hiroyuki@gmail.com\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nReviewed-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bee4c36a5cf5c9f63ce1d7372aa62045fbd16d47",
      "tree": "d2c95aab9b12874d6675d529c3f8dd5cd2a35e10",
      "parents": [
        "8f7a66051b7523108c5aefb08c6a637e54aedc47"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hughd@google.com",
        "time": "Tue Mar 22 16:33:43 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:09 2011 -0700"
      },
      "message": "shmem: let shared anonymous be nonlinear again\n\nUp to 2.6.22, you could use remap_file_pages(2) on a tmpfs file or a\nshared mapping of /dev/zero or a shared anonymous mapping.  In 2.6.23 we\ndisabled it by default, but set VM_CAN_NONLINEAR to enable it on safe\nmappings.  We made sure to set it in shmem_mmap() for tmpfs files, but\nmissed it in shmem_zero_setup() for the others.  Fix that at last.\n\nReported-by: Kenny Simpson \u003ctheonetruekenny@yahoo.com\u003e\nSigned-off-by: Hugh Dickins \u003chughd@google.com\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8f7a66051b7523108c5aefb08c6a637e54aedc47",
      "tree": "212611c9ac7c4d9f0918e431043b3fc3f9fd43b6",
      "parents": [
        "84be48d84a53044e13aa8816aab201ab5480815d"
      ],
      "author": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Tue Mar 22 16:33:43 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:09 2011 -0700"
      },
      "message": "mm/memblock: properly handle overlaps and fix error path\n\nCurrently memblock_reserve() or memblock_free() don\u0027t handle overlaps of\nany kind.  There is some special casing for coalescing exactly adjacent\nregions but that\u0027s about it.\n\nThis is annoying because typically memblock_reserve() is used to mark\nregions passed by the firmware as reserved and we all know how much we can\ntrust our firmwares...\n\nAlso, with the current code, if we do something it doesn\u0027t handle right\nsuch as trying to memblock_reserve() a large range spanning multiple\nexisting smaller reserved regions for example, or doing overlapping\nreservations, it can silently corrupt the internal region array, causing\nodd errors much later on, such as allocations returning reserved regions\netc...\n\nThis patch rewrites the underlying functions that add or remove a region\nto the arrays.  The new code is a lot more robust as it fully handles\noverlapping regions.  It\u0027s also, imho, simpler than the previous\nimplementation.\n\nIn addition, while doing so, I found a bug where if we fail to double the\narray while adding a region, we would remove the last region of the array\nrather than the region we just allocated.  This fixes it too.\n\nSigned-off-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nAcked-by: Yinghai Lu \u003cyinghai@kernel.org\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "84be48d84a53044e13aa8816aab201ab5480815d",
      "tree": "5b4208fee6bb357112e764e5f778adc8529d1b1b",
      "parents": [
        "a42931bf9c02fbf3628a27a2a5c55d2b83e4ff20"
      ],
      "author": {
        "name": "Kirill A. Shutemov",
        "email": "kirill@shutemov.name",
        "time": "Tue Mar 22 16:33:41 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:09 2011 -0700"
      },
      "message": "mm/page_alloc.c: use list_move() instead of list_del()/list_add() combination\n\nSigned-off-by: Kirill A. Shutemov \u003ckirill@shutemov.name\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nReviewed-by: Christoph Lameter \u003ccl@linux.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a42931bf9c02fbf3628a27a2a5c55d2b83e4ff20",
      "tree": "be75612386f472db6d70e7ecc105ee2246a4810a",
      "parents": [
        "cf15b07cf448e19dcb31a19f0cbaf898b08ce975"
      ],
      "author": {
        "name": "Namhyung Kim",
        "email": "namhyung@gmail.com",
        "time": "Tue Mar 22 16:33:41 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:09 2011 -0700"
      },
      "message": "vmalloc: remove confusing comment on vwrite()\n\nKM_USER1 is never used for vwrite() path so the caller doesn\u0027t need to\nguarantee it is not used.  Only the caller should guarantee is KM_USER0\nand it is commented already.\n\nSigned-off-by: Namhyung Kim \u003cnamhyung@gmail.com\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "cf15b07cf448e19dcb31a19f0cbaf898b08ce975",
      "tree": "78c377875ae4ee60181a205b6f01c4b52c49e03d",
      "parents": [
        "24b8ff7c27d9e975540656e377de44a2a181a01f"
      ],
      "author": {
        "name": "Jun\u0027ichi Nomura",
        "email": "j-nomura@ce.jp.nec.com",
        "time": "Tue Mar 22 16:33:40 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:09 2011 -0700"
      },
      "message": "writeback: make mapping-\u003ewriteback_index to point to the last written page\n\nFor range-cyclic writeback (e.g.  kupdate), the writeback code sets a\ncontinuation point of the next writeback to mapping-\u003ewriteback_index which\nis set the page after the last written page.  This happens so that we\nevenly write the whole file even if pages in it get continuously\nredirtied.\n\nHowever, in some cases, sequential writer is writing in the middle of the\npage and it just redirties the last written page by continuing from that.\nFor example with an application which uses a file as a big ring buffer we\nsee:\n\n[1st writeback session]\n       ...\n       flush-8:0-2743  4571: block_bio_queue: 8,0 W 94898514 + 8\n       flush-8:0-2743  4571: block_bio_queue: 8,0 W 94898522 + 8\n       flush-8:0-2743  4571: block_bio_queue: 8,0 W 94898530 + 8\n       flush-8:0-2743  4571: block_bio_queue: 8,0 W 94898538 + 8\n       flush-8:0-2743  4571: block_bio_queue: 8,0 W 94898546 + 8\n     kworker/0:1-11    4571: block_rq_issue: 8,0 W 0 () 94898514 + 40\n\u003e\u003e     flush-8:0-2743  4571: block_bio_queue: 8,0 W 94898554 + 8\n\u003e\u003e     flush-8:0-2743  4571: block_rq_issue: 8,0 W 0 () 94898554 + 8\n\n[2nd writeback session after 35sec]\n       flush-8:0-2743  4606: block_bio_queue: 8,0 W 94898562 + 8\n       flush-8:0-2743  4606: block_bio_queue: 8,0 W 94898570 + 8\n       flush-8:0-2743  4606: block_bio_queue: 8,0 W 94898578 + 8\n       ...\n     kworker/0:1-11    4606: block_rq_issue: 8,0 W 0 () 94898562 + 640\n     kworker/0:1-11    4606: block_rq_issue: 8,0 W 0 () 94899202 + 72\n       ...\n       flush-8:0-2743  4606: block_bio_queue: 8,0 W 94899962 + 8\n       flush-8:0-2743  4606: block_bio_queue: 8,0 W 94899970 + 8\n       flush-8:0-2743  4606: block_bio_queue: 8,0 W 94899978 + 8\n       flush-8:0-2743  4606: block_bio_queue: 8,0 W 94899986 + 8\n       flush-8:0-2743  4606: block_bio_queue: 8,0 W 94899994 + 8\n     kworker/0:1-11    4606: block_rq_issue: 8,0 W 0 () 94899962 + 40\n\u003e\u003e     flush-8:0-2743  4606: block_bio_queue: 8,0 W 94898554 + 8\n\u003e\u003e     flush-8:0-2743  4606: block_rq_issue: 8,0 W 0 () 94898554 + 8\n\nSo we seeked back to 94898554 after we wrote all the pages at the end of\nthe file.\n\nThis extra seek seems unnecessary.  If we continue writeback from the last\nwritten page, we can avoid it and do not cause harm to other cases.  The\noriginal intent of even writeout over the whole file is preserved and if\nthe page does not get redirtied pagevec_lookup_tag() just skips it.\n\nAs an exceptional case, when I/O error happens, set done_index to the next\npage as the comment in the code suggests.\n\nTested-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nSigned-off-by: Jun\u0027ichi Nomura \u003cj-nomura@ce.jp.nec.com\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "24b8ff7c27d9e975540656e377de44a2a181a01f",
      "tree": "cab32a01878ce32b46f41b71317421e894f183ea",
      "parents": [
        "40531542e2832419566c997af0808513f6f2815d"
      ],
      "author": {
        "name": "Cesar Eduardo Barros",
        "email": "cesarb@cesarb.net",
        "time": "Tue Mar 22 16:33:38 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:09 2011 -0700"
      },
      "message": "mm: remove inline from scan_swap_map()\n\nscan_swap_map() is a large function (224 lines), with several loops and a\ncomplex control flow involving several gotos.\n\nGiven all that, it is a bit silly that it is marked as inline.  The\ncompiler agrees with me: on a x86-64 compile, it did not inline the\nfunction.\n\nRemove the \"inline\" and let the compiler decide instead.\n\nSigned-off-by: Cesar Eduardo Barros \u003ccesarb@cesarb.net\u003e\nReviewed-by: Pekka Enberg \u003cpenberg@kernel.org\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nReviewed-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "40531542e2832419566c997af0808513f6f2815d",
      "tree": "06e0bb32e53447f58a1821af1c4e960edbd97b0d",
      "parents": [
        "c6a2b64ba5d09a1e281e85988ffd650655fa0f39"
      ],
      "author": {
        "name": "Cesar Eduardo Barros",
        "email": "cesarb@cesarb.net",
        "time": "Tue Mar 22 16:33:37 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:08 2011 -0700"
      },
      "message": "sys_swapon: separate final enabling of the swapfile\n\nThe block in sys_swapon which does the final adjustments to the\nswap_info_struct and to swap_list is the same as the block which\nre-inserts it again at sys_swapoff on failure of try_to_unuse(). Move\nthis code to a separate function, and use it both in sys_swapon and\nsys_swapoff.\n\nSigned-off-by: Cesar Eduardo Barros \u003ccesarb@cesarb.net\u003e\nTested-by: Eric B Munson \u003cemunson@mgebm.net\u003e\nAcked-by: Eric B Munson \u003cemunson@mgebm.net\u003e\nReviewed-by: Pekka Enberg \u003cpenberg@kernel.org\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c6a2b64ba5d09a1e281e85988ffd650655fa0f39",
      "tree": "5d3787b45e2e4ad7377c47cd601a1fcb1fec0bde",
      "parents": [
        "c69dbfb84e88503468b6c481aecdb48d76ad5bc6"
      ],
      "author": {
        "name": "Cesar Eduardo Barros",
        "email": "cesarb@cesarb.net",
        "time": "Tue Mar 22 16:33:36 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:08 2011 -0700"
      },
      "message": "sys_swapoff: change order to match sys_swapon\n\nThe block in sys_swapon which does the final adjustments to the\nswap_info_struct and to swap_list is the same as the block which\nre-inserts it again at sys_swapoff on failure of try_to_unuse(), except\nfor the order of the operations within the lock. Since the order should\nnot matter, arbitrarily change sys_swapoff to match sys_swapon, in\npreparation to making both share the same code.\n\nSigned-off-by: Cesar Eduardo Barros \u003ccesarb@cesarb.net\u003e\nTested-by: Eric B Munson \u003cemunson@mgebm.net\u003e\nAcked-by: Eric B Munson \u003cemunson@mgebm.net\u003e\nReviewed-by: Pekka Enberg \u003cpenberg@kernel.org\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c69dbfb84e88503468b6c481aecdb48d76ad5bc6",
      "tree": "ade74b75b80a0481ae6309c9cb0bc7298db13ad7",
      "parents": [
        "9c8100ef26ba9012b8677a383179a0cf169fc7f3"
      ],
      "author": {
        "name": "Cesar Eduardo Barros",
        "email": "cesarb@cesarb.net",
        "time": "Tue Mar 22 16:33:35 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:08 2011 -0700"
      },
      "message": "sys_swapon: move printk outside lock\n\nThe block in sys_swapon which does the final adjustments to the\nswap_info_struct and to swap_list is the same as the block which\nre-inserts it again at sys_swapoff on failure of try_to_unuse(). To be\nable to make both share the same code, move the printk() call in the\nmiddle of it to just after it.\n\nSigned-off-by: Cesar Eduardo Barros \u003ccesarb@cesarb.net\u003e\nTested-by: Eric B Munson \u003cemunson@mgebm.net\u003e\nAcked-by: Eric B Munson \u003cemunson@mgebm.net\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9c8100ef26ba9012b8677a383179a0cf169fc7f3",
      "tree": "6ff570c8373dbb90b47345b2adc0b0c9c9b11001",
      "parents": [
        "bdb8e3f68320f897de3f3a4c363fe2802037f21d"
      ],
      "author": {
        "name": "Cesar Eduardo Barros",
        "email": "cesarb@cesarb.net",
        "time": "Tue Mar 22 16:33:34 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:08 2011 -0700"
      },
      "message": "sys_swapon: remove nr_good_pages variable\n\nIt still exists within setup_swap_map_and_extents(), but after it\nnr_good_pages \u003d\u003d p-\u003epages.\n\nSigned-off-by: Cesar Eduardo Barros \u003ccesarb@cesarb.net\u003e\nTested-by: Eric B Munson \u003cemunson@mgebm.net\u003e\nAcked-by: Eric B Munson \u003cemunson@mgebm.net\u003e\nReviewed-by: Pekka Enberg \u003cpenberg@kernel.org\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bdb8e3f68320f897de3f3a4c363fe2802037f21d",
      "tree": "0eeb4907e05daa418ec8e98c2492b4177ab67e3c",
      "parents": [
        "915d4d7bc0d719f2f0907273c01967d38751c625"
      ],
      "author": {
        "name": "Cesar Eduardo Barros",
        "email": "cesarb@cesarb.net",
        "time": "Tue Mar 22 16:33:33 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:08 2011 -0700"
      },
      "message": "sys_swapon: simplify error flow in setup_swap_map_and_extents()\n\nSince there is no cleanup to do, there is no reason to jump to a label.\nReturn directly instead.\n\nSigned-off-by: Cesar Eduardo Barros \u003ccesarb@cesarb.net\u003e\nTested-by: Eric B Munson \u003cemunson@mgebm.net\u003e\nAcked-by: Eric B Munson \u003cemunson@mgebm.net\u003e\nReviewed-by: Pekka Enberg \u003cpenberg@kernel.org\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "915d4d7bc0d719f2f0907273c01967d38751c625",
      "tree": "deeab9a10407fa37dedb24d1adc5a83626f740f6",
      "parents": [
        "1421ef3cd15b87ef949e965efeb1e527479d3f75"
      ],
      "author": {
        "name": "Cesar Eduardo Barros",
        "email": "cesarb@cesarb.net",
        "time": "Tue Mar 22 16:33:32 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:08 2011 -0700"
      },
      "message": "sys_swapon: separate parsing of bad blocks and extents\n\nMove the code which parses the bad block list and the extents to a\nseparate function. Only code movement, no functional changes.\n\nThis change uses the fact that, after the success path, nr_good_pages \u003d\u003d\np-\u003epages.\n\nSigned-off-by: Cesar Eduardo Barros \u003ccesarb@cesarb.net\u003e\nTested-by: Eric B Munson \u003cemunson@mgebm.net\u003e\nAcked-by: Eric B Munson \u003cemunson@mgebm.net\u003e\nReviewed-by: Pekka Enberg \u003cpenberg@kernel.org\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1421ef3cd15b87ef949e965efeb1e527479d3f75",
      "tree": "8bcc6d1047905b205a7061c00bda40197fad2328",
      "parents": [
        "38719025384cf7121331bd6d41c062d3c5f7bb91"
      ],
      "author": {
        "name": "Cesar Eduardo Barros",
        "email": "cesarb@cesarb.net",
        "time": "Tue Mar 22 16:33:31 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:08 2011 -0700"
      },
      "message": "sys_swapon: call swap_cgroup_swapon() earlier\n\nThe call to swap_cgroup_swapon is in the middle of loading the swap map\nand extents. As it only does memory allocation and does not depend on\nthe swapfile layout (map/extents), it can be called earlier (or later).\n\nMove it to just after the allocation of swap_map, since it is\nconceptually similar (allocates a map).\n\nSigned-off-by: Cesar Eduardo Barros \u003ccesarb@cesarb.net\u003e\nTested-by: Eric B Munson \u003cemunson@mgebm.net\u003e\nAcked-by: Eric B Munson \u003cemunson@mgebm.net\u003e\nReviewed-by: Pekka Enberg \u003cpenberg@kernel.org\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "38719025384cf7121331bd6d41c062d3c5f7bb91",
      "tree": "8848283db6cd61b426491f17de38d9bc15697514",
      "parents": [
        "ca8bd38bf6f05481c4155fc444178151884f65d0"
      ],
      "author": {
        "name": "Cesar Eduardo Barros",
        "email": "cesarb@cesarb.net",
        "time": "Tue Mar 22 16:33:30 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:08 2011 -0700"
      },
      "message": "sys_swapon: simplify error flow in read_swap_header()\n\nSince there is no cleanup to do, there is no reason to jump to a label.\nReturn directly instead.\n\nSigned-off-by: Cesar Eduardo Barros \u003ccesarb@cesarb.net\u003e\nTested-by: Eric B Munson \u003cemunson@mgebm.net\u003e\nAcked-by: Eric B Munson \u003cemunson@mgebm.net\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ca8bd38bf6f05481c4155fc444178151884f65d0",
      "tree": "efb917f23834153878a8f9f4c5f784e9cb900f66",
      "parents": [
        "5de771e41f0fc2243c39585357b73f0ff757b280"
      ],
      "author": {
        "name": "Cesar Eduardo Barros",
        "email": "cesarb@cesarb.net",
        "time": "Tue Mar 22 16:33:29 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:07 2011 -0700"
      },
      "message": "sys_swapon: separate parsing of swapfile header\n\nMove the code which parses and checks the swapfile header (except for\nthe bad block list) to a separate function. Only code movement, no\nfunctional changes.\n\nSigned-off-by: Cesar Eduardo Barros \u003ccesarb@cesarb.net\u003e\nTested-by: Eric B Munson \u003cemunson@mgebm.net\u003e\nAcked-by: Eric B Munson \u003cemunson@mgebm.net\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5de771e41f0fc2243c39585357b73f0ff757b280",
      "tree": "a807bb46f4334b6697c0dba7dc80075e8dccae5f",
      "parents": [
        "87ade72a799a9a895b4a60918c32b43d3dfc3324"
      ],
      "author": {
        "name": "Cesar Eduardo Barros",
        "email": "cesarb@cesarb.net",
        "time": "Tue Mar 22 16:33:28 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:07 2011 -0700"
      },
      "message": "sys_swapon: move setting of swapfilepages near use\n\nThere is no reason I can see to read inode-\u003ei_size long before it is\nneeded. Move its read to just before it is needed, to reduce the\nvariable lifetime.\n\nSigned-off-by: Cesar Eduardo Barros \u003ccesarb@cesarb.net\u003e\nTested-by: Eric B Munson \u003cemunson@mgebm.net\u003e\nAcked-by: Eric B Munson \u003cemunson@mgebm.net\u003e\nReviewed-by: Jesper Juhl \u003cjj@chaosbits.net\u003e\nReviewed-by: Pekka Enberg \u003cpenberg@kernel.org\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "87ade72a799a9a895b4a60918c32b43d3dfc3324",
      "tree": "3110f7526fc3581962232b39567fee2fb95c44aa",
      "parents": [
        "4d0e1e10752ca487d83d1ab2a1d4ae6d664e1cc0"
      ],
      "author": {
        "name": "Cesar Eduardo Barros",
        "email": "cesarb@cesarb.net",
        "time": "Tue Mar 22 16:33:27 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:07 2011 -0700"
      },
      "message": "sys_swapon: simplify error flow in claim_swapfile()\n\nSince there is no cleanup to do, there is no reason to jump to a label.\nReturn directly instead.\n\nSigned-off-by: Cesar Eduardo Barros \u003ccesarb@cesarb.net\u003e\nTested-by: Eric B Munson \u003cemunson@mgebm.net\u003e\nAcked-by: Eric B Munson \u003cemunson@mgebm.net\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4d0e1e10752ca487d83d1ab2a1d4ae6d664e1cc0",
      "tree": "57f0c09fd4e61a02e4ad5cd86b1dbda7029b2806",
      "parents": [
        "bd69010b042a60ca41a890df1b10019e94746c2f"
      ],
      "author": {
        "name": "Cesar Eduardo Barros",
        "email": "cesarb@cesarb.net",
        "time": "Tue Mar 22 16:33:26 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:07 2011 -0700"
      },
      "message": "sys_swapon: separate bdev claim and inode lock\n\nMove the code which claims the bdev (S_ISBLK) or locks the inode\n(S_ISREG) to a separate function. Only code movement, no functional\nchanges.\n\nSigned-off-by: Cesar Eduardo Barros \u003ccesarb@cesarb.net\u003e\nTested-by: Eric B Munson \u003cemunson@mgebm.net\u003e\nAcked-by: Eric B Munson \u003cemunson@mgebm.net\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bd69010b042a60ca41a890df1b10019e94746c2f",
      "tree": "4064703903170911b09919f89b74a5bbe0d5ebfe",
      "parents": [
        "9b01c350af4fb00fe2ab66ff9bf16058c50b69bd"
      ],
      "author": {
        "name": "Cesar Eduardo Barros",
        "email": "cesarb@cesarb.net",
        "time": "Tue Mar 22 16:33:25 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:07 2011 -0700"
      },
      "message": "sys_swapon: use a single error label\n\nsys_swapon currently has two error labels, bad_swap and bad_swap_2.\nbad_swap does the same as bad_swap_2 plus destroy_swap_extents() and\nswap_cgroup_swapoff(); both are noops in the places where bad_swap_2 is\njumped to. With a single extra test for inode (matching the one in the\nS_ISREG case below), all the error paths in the function can go to\nbad_swap.\n\nSigned-off-by: Cesar Eduardo Barros \u003ccesarb@cesarb.net\u003e\nTested-by: Eric B Munson \u003cemunson@mgebm.net\u003e\nAcked-by: Eric B Munson \u003cemunson@mgebm.net\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9b01c350af4fb00fe2ab66ff9bf16058c50b69bd",
      "tree": "246a4e93384acaca2ae91826448bfed5da08cb07",
      "parents": [
        "f2090d2df51d7cdb2f952dcfdcd8baaac0aec444"
      ],
      "author": {
        "name": "Cesar Eduardo Barros",
        "email": "cesarb@cesarb.net",
        "time": "Tue Mar 22 16:33:24 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:07 2011 -0700"
      },
      "message": "sys_swapon: do only cleanup in the cleanup blocks\n\nThe only way error is 0 in the cleanup blocks is when the function is\nreturning successfully. In this case, the cleanup blocks were setting\nS_SWAPFILE in the S_ISREG case. But this is not a cleanup.\n\nMove the setting of S_SWAPFILE to just before the \"goto out;\" to make\nthis more clear. At this point, we do not need to test for inode because\nit will never be NULL.\n\nSigned-off-by: Cesar Eduardo Barros \u003ccesarb@cesarb.net\u003e\nTested-by: Eric B Munson \u003cemunson@mgebm.net\u003e\nAcked-by: Eric B Munson \u003cemunson@mgebm.net\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f2090d2df51d7cdb2f952dcfdcd8baaac0aec444",
      "tree": "474daba281f890d44ee22b23137d99cb5021f381",
      "parents": [
        "7de7fb6b3422e6d1dac00666a992834085e745dc"
      ],
      "author": {
        "name": "Cesar Eduardo Barros",
        "email": "cesarb@cesarb.net",
        "time": "Tue Mar 22 16:33:23 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:07 2011 -0700"
      },
      "message": "sys_swapon: remove bdev variable\n\nThe bdev variable is always equivalent to (S_ISBLK(inode-\u003ei_mode) ?\np-\u003ebdev : NULL), as long as it being set is moved to a bit earlier. Use\nthis fact to remove the bdev variable.\n\nSigned-off-by: Cesar Eduardo Barros \u003ccesarb@cesarb.net\u003e\nTested-by: Eric B Munson \u003cemunson@mgebm.net\u003e\nAcked-by: Eric B Munson \u003cemunson@mgebm.net\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7de7fb6b3422e6d1dac00666a992834085e745dc",
      "tree": "4dd93f9871c1ff05212652a1e4709414a4881f1d",
      "parents": [
        "83ef99befc324803a54cf2a5fab5a322df3a99d6"
      ],
      "author": {
        "name": "Cesar Eduardo Barros",
        "email": "cesarb@cesarb.net",
        "time": "Tue Mar 22 16:33:22 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:07 2011 -0700"
      },
      "message": "sys_swapon: move setting of error nearer use\n\nMove the setting of the error variable nearer the goto in a few places.\n\nAvoids calling PTR_ERR() if not IS_ERR() in two places, and makes the\nerror condition more explicit in two other places.\n\nSigned-off-by: Cesar Eduardo Barros \u003ccesarb@cesarb.net\u003e\nTested-by: Eric B Munson \u003cemunson@mgebm.net\u003e\nAcked-by: Eric B Munson \u003cemunson@mgebm.net\u003e\nReviewed-by: Jesper Juhl \u003cjj@chaosbits.net\u003e\nReviewed-by: Pekka Enberg \u003cpenberg@kernel.org\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "83ef99befc324803a54cf2a5fab5a322df3a99d6",
      "tree": "d56035f4683a387ac8bf0d37b21b15f7d04de672",
      "parents": [
        "28b36bd741bd44db30e12b1048a659aa346e9b76"
      ],
      "author": {
        "name": "Cesar Eduardo Barros",
        "email": "cesarb@cesarb.net",
        "time": "Tue Mar 22 16:33:21 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:07 2011 -0700"
      },
      "message": "sys_swapon: remove did_down variable\n\nSince mutex_lock(\u0026inode-\u003ei_mutex) is called just after setting inode,\ndid_down is always equivalent to (inode \u0026\u0026 S_ISREG(inode-\u003ei_mode)).\n\nUse this fact to remove the did_down variable.\n\nSigned-off-by: Cesar Eduardo Barros \u003ccesarb@cesarb.net\u003e\nTested-by: Eric B Munson \u003cemunson@mgebm.net\u003e\nAcked-by: Eric B Munson \u003cemunson@mgebm.net\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "28b36bd741bd44db30e12b1048a659aa346e9b76",
      "tree": "7843ec3dd5f4db132c4808b08daf98d795074dea",
      "parents": [
        "730c0581c82dbc5be2f41a2d85bde6bad11bc8a4"
      ],
      "author": {
        "name": "Cesar Eduardo Barros",
        "email": "cesarb@cesarb.net",
        "time": "Tue Mar 22 16:33:20 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:07 2011 -0700"
      },
      "message": "sys_swapon: remove initial value of name variable\n\nNow there is nothing which jumps to the cleanup blocks before the name\nvariable is set. There is no need to set it initially to NULL anymore.\n\nSigned-off-by: Cesar Eduardo Barros \u003ccesarb@cesarb.net\u003e\nTested-by: Eric B Munson \u003cemunson@mgebm.net\u003e\nAcked-by: Eric B Munson \u003cemunson@mgebm.net\u003e\nReviewed-by: Pekka Enberg \u003cpenberg@kernel.org\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "730c0581c82dbc5be2f41a2d85bde6bad11bc8a4",
      "tree": "de06f9f0e12ec8fe963a0bca3835ef0a72dd9191",
      "parents": [
        "2542e5134d2c19a9e6a4e641ef78cac6bccebd9b"
      ],
      "author": {
        "name": "Cesar Eduardo Barros",
        "email": "cesarb@cesarb.net",
        "time": "Tue Mar 22 16:33:19 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:06 2011 -0700"
      },
      "message": "sys_swapon: simplify error flow in alloc_swap_info()\n\nSince there is no cleanup to do, there is no reason to jump to a label.\nReturn directly instead.\n\nSigned-off-by: Cesar Eduardo Barros \u003ccesarb@cesarb.net\u003e\nTested-by: Eric B Munson \u003cemunson@mgebm.net\u003e\nAcked-by: Eric B Munson \u003cemunson@mgebm.net\u003e\nReviewed-by: Pekka Enberg \u003cpenberg@kernel.org\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2542e5134d2c19a9e6a4e641ef78cac6bccebd9b",
      "tree": "bcab086064e082d2b2275766327bb5518b81318f",
      "parents": [
        "53cbb2435f161f2a8b36af8f6d2c46dc59d0d757"
      ],
      "author": {
        "name": "Cesar Eduardo Barros",
        "email": "cesarb@cesarb.net",
        "time": "Tue Mar 22 16:33:18 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:06 2011 -0700"
      },
      "message": "sys_swapon: simplify error return from swap_info allocation\n\nAt this point in sys_swapon, there is nothing to free. Return directly\ninstead of jumping to the cleanup block at the end of the function.\n\nSigned-off-by: Cesar Eduardo Barros \u003ccesarb@cesarb.net\u003e\nTested-by: Eric B Munson \u003cemunson@mgebm.net\u003e\nAcked-by: Eric B Munson \u003cemunson@mgebm.net\u003e\nReviewed-by: Pekka Enberg \u003cpenberg@kernel.org\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "53cbb2435f161f2a8b36af8f6d2c46dc59d0d757",
      "tree": "e32652c07e3a65bbe29d04df8daf3cc753945c51",
      "parents": [
        "e8e6c2ec403ecfaa226857d8204344c98fe12b7b"
      ],
      "author": {
        "name": "Cesar Eduardo Barros",
        "email": "cesarb@cesarb.net",
        "time": "Tue Mar 22 16:33:17 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:06 2011 -0700"
      },
      "message": "sys_swapon: separate swap_info allocation\n\nMove the swap_info allocation to its own function. Only code movement,\nno functional changes.\n\nSigned-off-by: Cesar Eduardo Barros \u003ccesarb@cesarb.net\u003e\nTested-by: Eric B Munson \u003cemunson@mgebm.net\u003e\nAcked-by: Eric B Munson \u003cemunson@mgebm.net\u003e\nReviewed-by: Pekka Enberg \u003cpenberg@kernel.org\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e8e6c2ec403ecfaa226857d8204344c98fe12b7b",
      "tree": "93a3cdaf385c72ba1f98add399b34ba65608efff",
      "parents": [
        "80b0df12b808bf8e8391afae1b43f5e529f76d89"
      ],
      "author": {
        "name": "Cesar Eduardo Barros",
        "email": "cesarb@cesarb.net",
        "time": "Tue Mar 22 16:33:16 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:06 2011 -0700"
      },
      "message": "sys_swapon: do not depend on \"type\" after allocation\n\nWithin sys_swapon, after the swap_info entry has been allocated, we\nalways have type \u003d\u003d p-\u003etype and swap_info[type] \u003d\u003d p. Use this fact to\nreduce the dependency on the \"type\" local variable within the function,\nas a preparation to move the allocation of the swap_info entry to a\nseparate function.\n\nSigned-off-by: Cesar Eduardo Barros \u003ccesarb@cesarb.net\u003e\nTested-by: Eric B Munson \u003cemunson@mgebm.net\u003e\nAcked-by: Eric B Munson \u003cemunson@mgebm.net\u003e\nReviewed-by: Pekka Enberg \u003cpenberg@kernel.org\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujisu.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "80b0df12b808bf8e8391afae1b43f5e529f76d89",
      "tree": "1d71923d9e693f3dfb9dbc28b3ddcec80e6b2eff",
      "parents": [
        "803d0c8351b47b72b8b018457a33b342557b90a2"
      ],
      "author": {
        "name": "Cesar Eduardo Barros",
        "email": "cesarb@cesarb.net",
        "time": "Tue Mar 22 16:33:15 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:05 2011 -0700"
      },
      "message": "sys_swapon: remove changelog from function comment\n\nChangelogs belong in the git history instead of in the source code.\n\nAlso, \"The swapon system call\" is redundant with\n\"SYSCALL_DEFINE2(swapon, ...)\".\n\nSigned-off-by: Cesar Eduardo Barros \u003ccesarb@cesarb.net\u003e\nTested-by: Eric B Munson \u003cemunson@mgebm.net\u003e\nAcked-by: Eric B Munson \u003cemunson@mgebm.net\u003e\nReviewed-by: Pekka Enberg \u003cpenberg@kernel.org\u003e\nReviewed-by: Jesper Juhl \u003cjj@chaosbits.net\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\n[ Gaah. That\u0027s a _historical_ comment. But the patch-series depends on removal ]\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "803d0c8351b47b72b8b018457a33b342557b90a2",
      "tree": "feb660ed5b7b6fd3dfba9ec3e6f121c777ba6252",
      "parents": [
        "cc5d462f7777c06c5cf0b55d736be325cda747b3"
      ],
      "author": {
        "name": "Cesar Eduardo Barros",
        "email": "cesarb@cesarb.net",
        "time": "Tue Mar 22 16:33:14 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:05 2011 -0700"
      },
      "message": "sys_swapon: use vzalloc() instead of vmalloc/memset\n\nThis patch series refactors the sys_swapon function.\n\nsys_swapon is currently a very large function, with 313 lines (more than\n12 25-line screens), which can make it a bit hard to read. This patch\nseries reduces this size by half, by extracting large chunks of related\ncode to new helper functions.\n\nOne of these chunks of code was nearly identical to the part of\nsys_swapoff which is used in case of a failure return from\ntry_to_unuse(), so this patch series also makes both share the same\ncode.\n\nAs a side effect of all this refactoring, the compiled code gets a bit\nsmaller (from v1 of this patch series):\n\n   text       data        bss        dec        hex    filename\n  14012        944        276      15232       3b80    mm/swapfile.o.before\n  13941        944        276      15161       3b39    mm/swapfile.o.after\n\nThis patch:\n\nUse vzalloc() instead of vmalloc/memset.\n\nSigned-off-by: Cesar Eduardo Barros \u003ccesarb@cesarb.net\u003e\nTested-by: Eric B Munson \u003cemunson@mgebm.net\u003e\nAcked-by: Eric B Munson \u003cemunson@mgebm.net\u003e\nReviewed-by: Pekka Enberg \u003cpenberg@kernel.org\u003e\nReviewed-by: Jesper Juhl \u003cjj@chaosbits.net\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "cc5d462f7777c06c5cf0b55d736be325cda747b3",
      "tree": "3b0fc1539e85c0357ab0ae8a718b69b39377ede5",
      "parents": [
        "78afd5612deb8268bafc8b6507d72341d5ed9aac"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "ak@linux.intel.com",
        "time": "Tue Mar 22 16:33:13 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:05 2011 -0700"
      },
      "message": "mm: use __GFP_OTHER_NODE for transparent huge pages\n\nPass __GFP_OTHER_NODE for transparent hugepages NUMA allocations done by the\nhugepages daemon.  This way the low level accounting for local versus\nremote pages works correctly.\n\nContains improvements from Andrea Arcangeli\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "78afd5612deb8268bafc8b6507d72341d5ed9aac",
      "tree": "b96131d6f237b9ce6848d95c8eccdd1f7855365c",
      "parents": [
        "11bc82d67d1150767901bca54a24466621d763d7"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "ak@linux.intel.com",
        "time": "Tue Mar 22 16:33:12 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:05 2011 -0700"
      },
      "message": "mm: add __GFP_OTHER_NODE flag\n\nAdd a new __GFP_OTHER_NODE flag to tell the low level numa statistics in\nzone_statistics() that an allocation is on behalf of another thread.  This\nway the local and remote counters can be still correct, even when\nbackground daemons like khugepaged are changing memory mappings.\n\nThis only affects the accounting, but I think it\u0027s worth doing that right\nto avoid confusing users.\n\nI first tried to just pass down the right node, but this required a lot of\nchanges to pass down this parameter and at least one addition of a 10th\nargument to a 9 argument function.  Using the flag is a lot less\nintrusive.\n\nOpen: should be also used for migration?\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "11bc82d67d1150767901bca54a24466621d763d7",
      "tree": "119442c599a82b35c553c6f54626c870e885ee50",
      "parents": [
        "b2eef8c0d09101bbbff2531c097543aedde0b525"
      ],
      "author": {
        "name": "Andrea Arcangeli",
        "email": "aarcange@redhat.com",
        "time": "Tue Mar 22 16:33:11 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:05 2011 -0700"
      },
      "message": "mm: compaction: Use async migration for __GFP_NO_KSWAPD and enforce no writeback\n\n__GFP_NO_KSWAPD allocations are usually very expensive and not mandatory\nto succeed as they have graceful fallback.  Waiting for I/O in those,\ntends to be overkill in terms of latencies, so we can reduce their latency\nby disabling sync migrate.\n\nUnfortunately, even with async migration it\u0027s still possible for the\nprocess to be blocked waiting for a request slot (e.g.  get_request_wait\nin the block layer) when -\u003ewritepage is called.  To prevent\n__GFP_NO_KSWAPD blocking, this patch prevents -\u003ewritepage being called on\ndirty page cache for asynchronous migration.\n\nAddresses https://bugzilla.kernel.org/show_bug.cgi?id\u003d31142\n\n[mel@csn.ul.ie: Avoid writebacks for NFS, retry locked pages, use bool]\nSigned-off-by: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Arthur Marsh \u003carthur.marsh@internode.on.net\u003e\nCc: Clemens Ladisch \u003ccladisch@googlemail.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nReported-by: Alex Villacis Lasso \u003cavillaci@ceibo.fiec.espol.edu.ec\u003e\nTested-by: Alex Villacis Lasso \u003cavillaci@ceibo.fiec.espol.edu.ec\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b2eef8c0d09101bbbff2531c097543aedde0b525",
      "tree": "ba0cbc88a8f66dc53c915509d90b3c4eeae8e7f1",
      "parents": [
        "602605a42ea4c299aeed4d806c49fb9dd18cd204"
      ],
      "author": {
        "name": "Andrea Arcangeli",
        "email": "aarcange@redhat.com",
        "time": "Tue Mar 22 16:33:10 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:05 2011 -0700"
      },
      "message": "mm: compaction: minimise the time IRQs are disabled while isolating pages for migration\n\ncompaction_alloc() isolates pages for migration in isolate_migratepages.\nWhile it\u0027s scanning, IRQs are disabled on the mistaken assumption the\nscanning should be short.  Tests show this to be true for the most part\nbut contention times on the LRU lock can be increased.  Before this patch,\nthe IRQ disabled times for a simple test looked like\n\n  Total sampled time IRQs off (not real total time): 5493\n  Event shrink_inactive_list..shrink_zone                  1596 us count 1\n  Event shrink_inactive_list..shrink_zone                  1530 us count 1\n  Event shrink_inactive_list..shrink_zone                   956 us count 1\n  Event shrink_inactive_list..shrink_zone                   541 us count 1\n  Event shrink_inactive_list..shrink_zone                   531 us count 1\n  Event split_huge_page..add_to_swap                        232 us count 1\n  Event save_args..call_softirq                              36 us count 1\n  Event save_args..call_softirq                              35 us count 2\n  Event __wake_up..__wake_up                                  1 us count 1\n\nThis patch reduces the worst-case IRQs-disabled latencies by releasing the\nlock every SWAP_CLUSTER_MAX pages that are scanned and releasing the CPU if\nnecessary. The cost of this is that the processing performing compaction will\nbe slower but IRQs being disabled for too long a time has worse consequences\nas the following report shows;\n\n  Total sampled time IRQs off (not real total time): 4367\n  Event shrink_inactive_list..shrink_zone                   881 us count 1\n  Event shrink_inactive_list..shrink_zone                   875 us count 1\n  Event shrink_inactive_list..shrink_zone                   868 us count 1\n  Event shrink_inactive_list..shrink_zone                   555 us count 1\n  Event split_huge_page..add_to_swap                        495 us count 1\n  Event compact_zone..compact_zone_order                    269 us count 1\n  Event split_huge_page..add_to_swap                        266 us count 1\n  Event shrink_inactive_list..shrink_zone                    85 us count 1\n  Event save_args..call_softirq                              36 us count 2\n  Event __wake_up..__wake_up                                  1 us count 1\n\n[akpm@linux-foundation.org: simplify with s/unlocked/locked/]\nSigned-off-by: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Arthur Marsh \u003carthur.marsh@internode.on.net\u003e\nCc: Clemens Ladisch \u003ccladisch@googlemail.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "602605a42ea4c299aeed4d806c49fb9dd18cd204",
      "tree": "55e98c0f8d1418248ec06b9f059d2713422e596a",
      "parents": [
        "5b280c0cc70062967bb9d630b216375b18db3a0b"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mel@csn.ul.ie",
        "time": "Tue Mar 22 16:33:08 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:05 2011 -0700"
      },
      "message": "mm: compaction: minimise the time IRQs are disabled while isolating free pages\n\ncompaction_alloc() isolates free pages to be used as migration targets.\nWhile its scanning, IRQs are disabled on the mistaken assumption the\nscanning should be short.  Analysis showed that IRQs were in fact being\ndisabled for substantial time.  A simple test was run using large\nanonymous mappings with transparent hugepage support enabled to trigger\nfrequent compactions.  A monitor sampled what the worst IRQ-off latencies\nwere and a post-processing tool found the following;\n\n  Total sampled time IRQs off (not real total time): 22355\n  Event compaction_alloc..compaction_alloc                 8409 us count 1\n  Event compaction_alloc..compaction_alloc                 7341 us count 1\n  Event compaction_alloc..compaction_alloc                 2463 us count 1\n  Event compaction_alloc..compaction_alloc                 2054 us count 1\n  Event shrink_inactive_list..shrink_zone                  1864 us count 1\n  Event shrink_inactive_list..shrink_zone                    88 us count 1\n  Event save_args..call_softirq                              36 us count 1\n  Event save_args..call_softirq                              35 us count 2\n  Event __make_request..__blk_run_queue                      24 us count 1\n  Event __alloc_pages_nodemask..__alloc_pages_nodemask        6 us count 1\n\ni.e.  compaction is disabled IRQs for a prolonged period of time - 8ms in\none instance.  The full report generated by the tool can be found at\n\n http://www.csn.ul.ie/~mel/postings/minfree-20110225/irqsoff-vanilla-micro.report\n\nThis patch reduces the time IRQs are disabled by simply disabling IRQs at\nthe last possible minute.  An updated IRQs-off summary report then looks\nlike;\n\n  Total sampled time IRQs off (not real total time): 5493\n  Event shrink_inactive_list..shrink_zone                  1596 us count 1\n  Event shrink_inactive_list..shrink_zone                  1530 us count 1\n  Event shrink_inactive_list..shrink_zone                   956 us count 1\n  Event shrink_inactive_list..shrink_zone                   541 us count 1\n  Event shrink_inactive_list..shrink_zone                   531 us count 1\n  Event split_huge_page..add_to_swap                        232 us count 1\n  Event save_args..call_softirq                              36 us count 1\n  Event save_args..call_softirq                              35 us count 2\n  Event __wake_up..__wake_up                                  1 us count 1\n\nA full report is again available at\n\n  http://www.csn.ul.ie/~mel/postings/minfree-20110225/irqsoff-minimiseirq-free-v1r4-micro.report\n\nAs should be obvious, IRQ disabled latencies due to compaction are\nalmost elimimnated for this particular test.\n\n[aarcange@redhat.com: Fix initialisation of isolated]\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nAcked-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujisu.com\u003e\nReviewed-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nAcked-by: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Arthur Marsh \u003carthur.marsh@internode.on.net\u003e\nCc: Clemens Ladisch \u003ccladisch@googlemail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5b280c0cc70062967bb9d630b216375b18db3a0b",
      "tree": "6242d234d08fdd433b99c425e25f6562cd51cd0f",
      "parents": [
        "9d8aa4ea855e0d64bb6926acb5618e6d1e2ed344"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hughd@google.com",
        "time": "Tue Mar 22 16:33:07 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:04 2011 -0700"
      },
      "message": "mm: don\u0027t return 0 too early from find_get_pages()\n\nCallers of find_get_pages(), or its wrapper pagevec_lookup() - notably\ntruncate_inode_pages_range() - stop looking further when it returns 0.\n\nBut if an interrupt comes just after its radix_tree_gang_lookup_slot(),\nespecially if we have preemptible RCU enabled, isn\u0027t it conceivable that\nall 14 pages returned could be removed from the page cache by\nshrink_page_list(), before find_get_pages() gets to process them?  So\ncausing it to return 0 although there may be plenty more pages beyond.\n\nMake find_get_pages() and find_get_pages_tag() check for this unlikely\ncase, and restart should it occur; but callers of find_get_pages_contig()\nhave no such expectation, it\u0027s okay for that to return 0 early.\n\nI have not seen this in practice, just worried by the possibility.\n\nSigned-off-by: Hugh Dickins \u003chughd@google.com\u003e\nCc: Nick Piggin \u003cnpiggin@kernel.dk\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nCc: Salman Qazi \u003csqazi@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9d8aa4ea855e0d64bb6926acb5618e6d1e2ed344",
      "tree": "a21357f21084169e0a322f8fa8ce8abe343d4f06",
      "parents": [
        "c033a93c0d961fc7ec5b0872649143e061d97dd4"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hughd@google.com",
        "time": "Tue Mar 22 16:33:06 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:04 2011 -0700"
      },
      "message": "mm: remove worrying dead code from find_get_pages()\n\nThe radix_tree_deref_retry() case in find_get_pages() has a strange little\nexcrescence, not seen in the other gang lookups: it looks like the start\nof an abandoned attempt to guarantee forward progress in a case that\ncannot arise.\n\nret should always be 0 here: if it isn\u0027t, then going back to restart will\nleak references to pages already gotten.  There used to be a comment\nsaying nr_found is necessarily 1 here: that\u0027s not quite true, but the\nradix_tree_deref_retry() case is peculiar to the entry at index 0, when we\nrace with it being moved out of the radix_tree root or back.\n\nRemove the worrisome two lines, add a brief comment here and in\nfind_get_pages_contig() and find_get_pages_tag(), and a WARN_ON in\nfind_get_pages() should it ever be seen elsewhere than at 0.\n\nSigned-off-by: Hugh Dickins \u003chughd@google.com\u003e\nCc: Nick Piggin \u003cnpiggin@kernel.dk\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nCc: Salman Qazi \u003csqazi@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c033a93c0d961fc7ec5b0872649143e061d97dd4",
      "tree": "06d037d837bb493b08e306a605b393c9f67d175f",
      "parents": [
        "8afdcece4911e51cfff2b50a269418914cab8a3f"
      ],
      "author": {
        "name": "Petr Holasek",
        "email": "pholasek@redhat.com",
        "time": "Tue Mar 22 16:33:05 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:04 2011 -0700"
      },
      "message": "hugetlbfs: correct handling of negative input to /proc/sys/vm/nr_hugepages\n\nWhen the user inserts a negative value into /proc/sys/vm/nr_hugepages it\nwill cause the kernel to allocate as many hugepages as possible and to\nthen update /proc/meminfo to reflect this.\n\nThis changes the behavior so that the negative input will result in\nnr_hugepages value being unchanged.\n\nSigned-off-by: Petr Holasek \u003cpholasek@redhat.com\u003e\nSigned-off-by: Anton Arapov \u003canton@redhat.com\u003e\nReviewed-by: Naoya Horiguchi \u003cn-horiguchi@ah.jp.nec.com\u003e\nAcked-by: David Rientjes \u003crientjes@google.com\u003e\nAcked-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nAcked-by: Eric B Munson \u003cemunson@mgebm.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8afdcece4911e51cfff2b50a269418914cab8a3f",
      "tree": "fcfb966822f0f6c128c754f3876a80106c9cc654",
      "parents": [
        "7571966189e54adf0a8bc1384d6f13f44052ba63"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mel@csn.ul.ie",
        "time": "Tue Mar 22 16:33:04 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:04 2011 -0700"
      },
      "message": "mm: vmscan: kswapd should not free an excessive number of pages when balancing small zones\n\nWhen reclaiming for order-0 pages, kswapd requires that all zones be\nbalanced.  Each cycle through balance_pgdat() does background ageing on\nall zones if necessary and applies equal pressure on the inactive zone\nunless a lot of pages are free already.\n\nA \"lot of free pages\" is defined as a \"balance gap\" above the high\nwatermark which is currently 7*high_watermark.  Historically this was\nreasonable as min_free_kbytes was small.  However, on systems using huge\npages, it is recommended that min_free_kbytes is higher and it is tuned\nwith hugeadm --set-recommended-min_free_kbytes.  With the introduction of\ntransparent huge page support, this recommended value is also applied.  On\nX86-64 with 4G of memory, min_free_kbytes becomes 67584 so one would\nexpect around 68M of memory to be free.  The Normal zone is approximately\n35000 pages so under even normal memory pressure such as copying a large\nfile, it gets exhausted quickly.  As it is getting exhausted, kswapd\napplies pressure equally to all zones, including the DMA32 zone.  DMA32 is\napproximately 700,000 pages with a high watermark of around 23,000 pages.\nIn this situation, kswapd will reclaim around (23000*8 where 8 is the high\nwatermark + balance gap of 7 * high watermark) pages or 718M of pages\nbefore the zone is ignored.  What the user sees is that free memory far\nhigher than it should be.\n\nTo avoid an excessive number of pages being reclaimed from the larger\nzones, explicitely defines the \"balance gap\" to be either 1% of the zone\nor the low watermark for the zone, whichever is smaller.  While kswapd\nwill check all zones to apply pressure, it\u0027ll ignore zones that meets the\n(high_wmark + balance_gap) watermark.\n\nTo test this, 80G were copied from a partition and the amount of memory\nbeing used was recorded.  A comparison of a patch and unpatched kernel can\nbe seen at\nhttp://www.csn.ul.ie/~mel/postings/minfree-20110222/memory-usage-hydra.ps\nand shows that kswapd is not reclaiming as much memory with the patch\napplied.\n\nSigned-off-by: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nCc: Shaohua Li \u003cshaohua.li@intel.com\u003e\nCc: \"Chen, Tim C\" \u003ctim.c.chen@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7571966189e54adf0a8bc1384d6f13f44052ba63",
      "tree": "51f421e135905399751eaf78b19cd184dddf9387",
      "parents": [
        "4031a219d8913da40ade5a6e5b538cc61e975cc8"
      ],
      "author": {
        "name": "Namhyung Kim",
        "email": "namhyung@gmail.com",
        "time": "Tue Mar 22 16:33:02 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:04 2011 -0700"
      },
      "message": "mempolicy: remove redundant check in __mpol_equal()\n\nThe \u0027flags\u0027 field is already checked, no need to do it again.\n\nSigned-off-by: Namhyung Kim \u003cnamhyung@gmail.com\u003e\nCc: Bob Liu \u003clliubbo@gmail.com\u003e\nCc: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nReviewed-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4031a219d8913da40ade5a6e5b538cc61e975cc8",
      "tree": "ead7acfa743ef31f5be6dc9cae1fc70cefd72bf0",
      "parents": [
        "22e057c5923e60debad318cbeaee33033b110bc8"
      ],
      "author": {
        "name": "Dave Hansen",
        "email": "dave@linux.vnet.ibm.com",
        "time": "Tue Mar 22 16:33:01 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:04 2011 -0700"
      },
      "message": "smaps: have smaps show transparent huge pages\n\nNow that the mere act of _looking_ at /proc/$pid/smaps will not destroy\ntransparent huge pages, tell how much of the VMA is actually mapped with\nthem.\n\nThis way, we can make sure that we\u0027re getting THPs where we\nexpect to see them.\n\nSigned-off-by: Dave Hansen \u003cdave@linux.vnet.ibm.com\u003e\nAcked-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nAcked-by: David Rientjes \u003crientjes@google.com\u003e\nReviewed-by: Eric B Munson \u003cemunson@mgebm.net\u003e\nTested-by: Eric B Munson \u003cemunson@mgebm.net\u003e\nCc: Michael J Wolf \u003cmjwolf@us.ibm.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Matt Mackall \u003cmpm@selenic.com\u003e\nCc: Jeremy Fitzhardinge \u003cjeremy@goop.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "22e057c5923e60debad318cbeaee33033b110bc8",
      "tree": "7dd6d7b5ed93974263377cd458384b85b2847041",
      "parents": [
        "3c9acc7849b1eab7ffc75e933404c5f32865d9a2"
      ],
      "author": {
        "name": "Dave Hansen",
        "email": "dave@linux.vnet.ibm.com",
        "time": "Tue Mar 22 16:33:00 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:04 2011 -0700"
      },
      "message": "smaps: teach smaps_pte_range() about THP pmds\n\nThis adds code to explicitly detect and handle pmd_trans_huge() pmds.  It\nthen passes HPAGE_SIZE units in to the smap_pte_entry() function instead\nof PAGE_SIZE.\n\nThis means that using /proc/$pid/smaps now will no longer cause THPs to be\nbroken down in to small pages.\n\nSigned-off-by: Dave Hansen \u003cdave@linux.vnet.ibm.com\u003e\nReviewed-by: Eric B Munson \u003cemunson@mgebm.net\u003e\nTested-by: Eric B Munson \u003cemunson@mgebm.net\u003e\nAcked-by: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nAcked-by: David Rientjes \u003crientjes@google.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Michael J Wolf \u003cmjwolf@us.ibm.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Matt Mackall \u003cmpm@selenic.com\u003e\nCc: Jeremy Fitzhardinge \u003cjeremy@goop.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3c9acc7849b1eab7ffc75e933404c5f32865d9a2",
      "tree": "7137eca693cd83bf89d30b354665ec9cf7b5f431",
      "parents": [
        "ae11c4d9f646064cf086e2f8cd4b3c475df7739c"
      ],
      "author": {
        "name": "Dave Hansen",
        "email": "dave@linux.vnet.ibm.com",
        "time": "Tue Mar 22 16:32:59 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:04 2011 -0700"
      },
      "message": "smaps: pass pte size argument in to smaps_pte_entry()\n\nAdd an argument to the new smaps_pte_entry() function to let it account in\nthings other than PAGE_SIZE units.  I changed all of the PAGE_SIZE sites,\neven though not all of them can be reached for transparent huge pages,\njust so this will continue to work without changes as THPs are improved.\n\nSigned-off-by: Dave Hansen \u003cdave@linux.vnet.ibm.com\u003e\nAcked-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nAcked-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nAcked-by: David Rientjes \u003crientjes@google.com\u003e\nReviewed-by: Eric B Munson \u003cemunson@mgebm.net\u003e\nTested-by: Eric B Munson \u003cemunson@mgebm.net\u003e\nCc: Michael J Wolf \u003cmjwolf@us.ibm.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Matt Mackall \u003cmpm@selenic.com\u003e\nCc: Jeremy Fitzhardinge \u003cjeremy@goop.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ae11c4d9f646064cf086e2f8cd4b3c475df7739c",
      "tree": "5c565c6250749daa757852a629b25815a6919476",
      "parents": [
        "033193275b3ffcfe7f3fde7b569f3d207f6cd6a0"
      ],
      "author": {
        "name": "Dave Hansen",
        "email": "dave@linux.vnet.ibm.com",
        "time": "Tue Mar 22 16:32:58 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:04 2011 -0700"
      },
      "message": "smaps: break out smaps_pte_entry() from smaps_pte_range()\n\nWe will use smaps_pte_entry() in a moment to handle both small and\ntransparent large pages.  But, we must break it out of smaps_pte_range()\nfirst.\n\nSigned-off-by: Dave Hansen \u003cdave@linux.vnet.ibm.com\u003e\nAcked-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nAcked-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nAcked-by: David Rientjes \u003crientjes@google.com\u003e\nReviewed-by: Eric B Munson \u003cemunson@mgebm.net\u003e\nTested-by: Eric B Munson \u003cemunson@mgebm.net\u003e\nCc: Michael J Wolf \u003cmjwolf@us.ibm.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Matt Mackall \u003cmpm@selenic.com\u003e\nCc: Jeremy Fitzhardinge \u003cjeremy@goop.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "033193275b3ffcfe7f3fde7b569f3d207f6cd6a0",
      "tree": "fc65fa02248f855f0f63e087f35a507b6abb5617",
      "parents": [
        "278df9f451dc71dcd002246be48358a473504ad0"
      ],
      "author": {
        "name": "Dave Hansen",
        "email": "dave@linux.vnet.ibm.com",
        "time": "Tue Mar 22 16:32:56 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:04 2011 -0700"
      },
      "message": "pagewalk: only split huge pages when necessary\n\nRight now, if a mm_walk has either -\u003epte_entry or -\u003epmd_entry set, it will\nunconditionally split any transparent huge pages it runs in to.  In\npractice, that means that anyone doing a\n\n\tcat /proc/$pid/smaps\n\nwill unconditionally break down every huge page in the process and depend\non khugepaged to re-collapse it later.  This is fairly suboptimal.\n\nThis patch changes that behavior.  It teaches each -\u003epmd_entry handler\n(there are five) that they must break down the THPs themselves.  Also, the\n_generic_ code will never break down a THP unless a -\u003epte_entry handler is\nactually set.\n\nThis means that the -\u003epmd_entry handlers can now choose to deal with THPs\nwithout breaking them down.\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: Dave Hansen \u003cdave@linux.vnet.ibm.com\u003e\nAcked-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nAcked-by: David Rientjes \u003crientjes@google.com\u003e\nReviewed-by: Eric B Munson \u003cemunson@mgebm.net\u003e\nTested-by: Eric B Munson \u003cemunson@mgebm.net\u003e\nCc: Michael J Wolf \u003cmjwolf@us.ibm.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Matt Mackall \u003cmpm@selenic.com\u003e\nCc: Jeremy Fitzhardinge \u003cjeremy@goop.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "278df9f451dc71dcd002246be48358a473504ad0",
      "tree": "3b79e956f2f0b9381f62518ff2fcf94df4ff9c3f",
      "parents": [
        "3f58a82943337fb6e79acfa5346719a97d3c0b98"
      ],
      "author": {
        "name": "Minchan Kim",
        "email": "minchan.kim@gmail.com",
        "time": "Tue Mar 22 16:32:54 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:04 2011 -0700"
      },
      "message": "mm: reclaim invalidated page ASAP\n\ninvalidate_mapping_pages is very big hint to reclaimer.  It means user\ndoesn\u0027t want to use the page any more.  So in order to prevent working set\npage eviction, this patch move the page into tail of inactive list by\nPG_reclaim.\n\nPlease, remember that pages in inactive list are working set as well as\nactive list.  If we don\u0027t move pages into inactive list\u0027s tail, pages near\nby tail of inactive list can be evicted although we have a big clue about\nuseless pages.  It\u0027s totally bad.\n\nNow PG_readahead/PG_reclaim is shared.  fe3cba17 added ClearPageReclaim\ninto clear_page_dirty_for_io for preventing fast reclaiming readahead\nmarker page.\n\nIn this series, PG_reclaim is used by invalidated page, too.  If VM find\nthe page is invalidated and it\u0027s dirty, it sets PG_reclaim to reclaim\nasap.  Then, when the dirty page will be writeback,\nclear_page_dirty_for_io will clear PG_reclaim unconditionally.  It\ndisturbs this serie\u0027s goal.\n\nI think it\u0027s okay to clear PG_readahead when the page is dirty, not\nwriteback time.  So this patch moves ClearPageReadahead.  In v4,\nClearPageReadahead in set_page_dirty has a problem which is reported by\nSteven Barrett.  It\u0027s due to compound page.  Some driver(ex, audio) calls\nset_page_dirty with compound page which isn\u0027t on LRU.  but my patch does\nClearPageRelcaim on compound page.  In non-CONFIG_PAGEFLAGS_EXTENDED, it\nbreaks PageTail flag.\n\nI think it doesn\u0027t affect THP and pass my test with THP enabling but Cced\nAndrea for double check.\n\nSigned-off-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nReported-by: Steven Barrett \u003cdamentz@liquorix.net\u003e\nReviewed-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nAcked-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Nick Piggin \u003cnpiggin@kernel.dk\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3f58a82943337fb6e79acfa5346719a97d3c0b98",
      "tree": "667441ac13c845edac93c937d0baba03a2021ea8",
      "parents": [
        "315601809d124d046abd6c3ffa346d0dbd7aa29d"
      ],
      "author": {
        "name": "Minchan Kim",
        "email": "minchan.kim@gmail.com",
        "time": "Tue Mar 22 16:32:53 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:03 2011 -0700"
      },
      "message": "memcg: move memcg reclaimable page into tail of inactive list\n\nThe rotate_reclaimable_page function moves just written out pages, which\nthe VM wanted to reclaim, to the end of the inactive list.  That way the\nVM will find those pages first next time it needs to free memory.\n\nThis patch applies the rule in memcg.  It can help to prevent unnecessary\nworking page eviction of memcg.\n\nSigned-off-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nAcked-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nReviewed-by: Rik van Riel \u003criel@redhat.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nAcked-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "315601809d124d046abd6c3ffa346d0dbd7aa29d",
      "tree": "be48e1a0053e3ada3a5c25561923f1b87f8e1719",
      "parents": [
        "481b4bb5e370aa69c1dc276bd08871ec01b41d2a"
      ],
      "author": {
        "name": "Minchan Kim",
        "email": "minchan.kim@gmail.com",
        "time": "Tue Mar 22 16:32:52 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:03 2011 -0700"
      },
      "message": "mm: deactivate invalidated pages\n\nRecently, there are reported problem about thrashing.\n(http://marc.info/?l\u003drsync\u0026m\u003d128885034930933\u0026w\u003d2) It happens by backup\nworkloads(ex, nightly rsync).  That\u0027s because the workload makes just\nuse-once pages and touches pages twice.  It promotes the page into active\nlist so that it results in working set page eviction.\n\nSome app developer want to support POSIX_FADV_NOREUSE.  But other OSes\ndon\u0027t support it, either.\n(http://marc.info/?l\u003dlinux-mm\u0026m\u003d128928979512086\u0026w\u003d2)\n\nBy other approach, app developers use POSIX_FADV_DONTNEED.  But it has a\nproblem.  If kernel meets page is writing during invalidate_mapping_pages,\nit can\u0027t work.  It makes for application programmer to use it since they\nalways have to sync data before calling fadivse(..POSIX_FADV_DONTNEED) to\nmake sure the pages could be discardable.  At last, they can\u0027t use\ndeferred write of kernel so that they could see performance loss.\n(http://insights.oetiker.ch/linux/fadvise.html)\n\nIn fact, invalidation is very big hint to reclaimer.  It means we don\u0027t\nuse the page any more.  So let\u0027s move the writing page into inactive\nlist\u0027s head if we can\u0027t truncate it right now.\n\nWhy I move page to head of lru on this patch, Dirty/Writeback page would\nbe flushed sooner or later.  It can prevent writeout of pageout which is\nless effective than flusher\u0027s writeout.\n\nOriginally, I reused lru_demote of Peter with some change so added his\nSigned-off-by.\n\nSigned-off-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nReported-by: Ben Gamari \u003cbgamari.foss@gmail.com\u003e\nSigned-off-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nAcked-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nAcked-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Nick Piggin \u003cnpiggin@kernel.dk\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "481b4bb5e370aa69c1dc276bd08871ec01b41d2a",
      "tree": "11a276bc58c2eb9b0a00fe751c3bf81bc3240382",
      "parents": [
        "cb240452bfc2ae9de7c840dd0fb3f5b33ce03c31"
      ],
      "author": {
        "name": "Richard Kennedy",
        "email": "richard@rsk.demon.co.uk",
        "time": "Tue Mar 22 16:32:50 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:03 2011 -0700"
      },
      "message": "mm: mm_struct: remove 16 bytes of alignment padding on 64 bit builds\n\nReorder mm_struct to remove 16 bytes of alignment padding on 64 bit\nbuilds.  On my config this shrinks mm_struct by enough to fit in one\nfewer cache lines and allows more objects per slab in mm_struct\nkmem_cache under SLUB.\n\nslabinfo before patch :-\n    Sizes (bytes)     Slabs\n    --------------------------------\n    Object :     848  Total  :       9\n    SlabObj:     896  Full   :       2\n    SlabSiz:   16384  Partial:       5\n    Loss   :      48  CpuSlab:       2\n    Align  :      64  Objects:      18\n\n slabinfo after :-\n    Sizes (bytes)     Slabs\n    --------------------------------\n    Object :     832  Total  :       7\n    SlabObj:     832  Full   :       2\n    SlabSiz:   16384  Partial:       3\n    Loss   :       0  CpuSlab:       2\n    Align  :      64  Objects:      19\n\nSigned-off-by: Richard Kennedy \u003crichard@rsk.demon.co.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "cb240452bfc2ae9de7c840dd0fb3f5b33ce03c31",
      "tree": "2c8542adfcae3dfe3e57b48a71abd50765e69fee",
      "parents": [
        "01d8b20dec5f4019283e244aba50ba86fe6ead6e"
      ],
      "author": {
        "name": "Michel Lespinasse",
        "email": "walken@google.com",
        "time": "Tue Mar 22 16:32:49 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:03 2011 -0700"
      },
      "message": "mm: remove unused TestSetPageLocked() interface\n\nTestSetPageLocked() isn\u0027t being used anywhere.  Also, using it would\nlikely be an error, since the proper interface trylock_page() provides\nstronger ordering guarantees.\n\nSigned-off-by: Michel Lespinasse \u003cwalken@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "01d8b20dec5f4019283e244aba50ba86fe6ead6e",
      "tree": "738a2e675547de61f74d6f4019dd5830c40446dd",
      "parents": [
        "83813267c699ab11cc65a6d9d0f42db42f0862b3"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue Mar 22 16:32:49 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:03 2011 -0700"
      },
      "message": "mm: simplify anon_vma refcounts\n\nThis patch changes the anon_vma refcount to be 0 when the object is free.\nIt does this by adding 1 ref to being in use in the anon_vma structure\n(iow.  the anon_vma-\u003ehead list is not empty).\n\nThis allows a simpler release scheme without having to check both the\nrefcount and the list as well as avoids taking a ref for each entry on the\nlist.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nAcked-by: Hugh Dickins \u003chughd@google.com\u003e\nAcked-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "83813267c699ab11cc65a6d9d0f42db42f0862b3",
      "tree": "8a3257ae177ba0f1bb0aebd4a503357c26472908",
      "parents": [
        "9e60109f125013b6c571f399a15a8b0fe1ffa4e6"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue Mar 22 16:32:48 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:03 2011 -0700"
      },
      "message": "mm: move anon_vma ref out from under CONFIG_foo\n\nWe need the anon_vma refcount unconditionally to simplify the anon_vma\nlifetime rules.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nAcked-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nAcked-by: Hugh Dickins \u003chughd@google.com\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9e60109f125013b6c571f399a15a8b0fe1ffa4e6",
      "tree": "52d34958e82e5649b737e21e453516a3ecd365d3",
      "parents": [
        "7bc32f6f90dae67730645da67bfd44304f810f93"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue Mar 22 16:32:46 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:03 2011 -0700"
      },
      "message": "mm: rename drop_anon_vma() to put_anon_vma()\n\nThe normal code pattern used in the kernel is: get/put.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nAcked-by: Hugh Dickins \u003chughd@google.com\u003e\nReviewed-by: Rik van Riel \u003criel@redhat.com\u003e\nAcked-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7bc32f6f90dae67730645da67bfd44304f810f93",
      "tree": "caefa40b2b5563d0e54686b40cb6f6375c2015cb",
      "parents": [
        "1d16871d8c96deadc5f9753b6b096074f2cbcbe1"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Tue Mar 22 16:32:46 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:02 2011 -0700"
      },
      "message": "mm: debug-pagealloc: fix kconfig dependency warning\n\nFix kconfig dependency warning to satisfy dependencies:\n\nwarning: (PAGE_POISONING) selects DEBUG_PAGEALLOC which has unmet\ndirect dependencies (DEBUG_KERNEL \u0026\u0026 ARCH_SUPPORTS_DEBUG_PAGEALLOC \u0026\u0026\n(!HIBERNATION || !PPC \u0026\u0026 !SPARC) \u0026\u0026 !KMEMCHECK)\n\nSigned-off-by: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nCc: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1d16871d8c96deadc5f9753b6b096074f2cbcbe1",
      "tree": "9f3f0c5a60e7a5bf4bfa9f2bd4c9492db36cecfe",
      "parents": [
        "e64a782fec684c29a8204c51b3cb554dce588592"
      ],
      "author": {
        "name": "Namhyung Kim",
        "email": "namhyung@gmail.com",
        "time": "Tue Mar 22 16:32:45 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:02 2011 -0700"
      },
      "message": "mm: batch-free pcp list if possible\n\nfree_pcppages_bulk() frees pages from pcp lists in a round-robin fashion\nby keeping batch_free counter.  But it doesn\u0027t need to spin if there is\nonly one non-empty list.  This can be checked by batch_free \u003d\u003d\nMIGRATE_PCPTYPES.\n\n[akpm@linux-foundation.org: fix comment]\nSigned-off-by: Namhyung Kim \u003cnamhyung@gmail.com\u003e\nAcked-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e64a782fec684c29a8204c51b3cb554dce588592",
      "tree": "5ff0beb21b973f1ad0edc1e31b6a1c2ee4406bdc",
      "parents": [
        "702cfbf93aaf3a091b0c64c8766c1ade0a820c38"
      ],
      "author": {
        "name": "Minchan Kim",
        "email": "minchan.kim@gmail.com",
        "time": "Tue Mar 22 16:32:44 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:02 2011 -0700"
      },
      "message": "mm: change __remove_from_page_cache()\n\nNow we renamed remove_from_page_cache with delete_from_page_cache.  As\nconsistency of __remove_from_swap_cache and remove_from_swap_cache, we\nchange internal page cache handling function name, too.\n\nSigned-off-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nAcked-by: Hugh Dickins \u003chughd@google.com\u003e\nAcked-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nReviewed-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "702cfbf93aaf3a091b0c64c8766c1ade0a820c38",
      "tree": "05416ad8133cbe64cb3b0ae475f486dd6ade8457",
      "parents": [
        "5adc7b518b54f7af2b8395d2035898340d96b1d5"
      ],
      "author": {
        "name": "Minchan Kim",
        "email": "minchan.kim@gmail.com",
        "time": "Tue Mar 22 16:32:43 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:02 2011 -0700"
      },
      "message": "mm: goodbye remove_from_page_cache()\n\nNow delete_from_page_cache() replaces remove_from_page_cache().  So we\nremove remove_from_page_cache so fs or something out of mainline will\nnotice it when compile time and can fix it.\n\nSigned-off-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nAcked-by: Hugh Dickins \u003chughd@google.com\u003e\nAcked-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nReviewed-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5adc7b518b54f7af2b8395d2035898340d96b1d5",
      "tree": "a1ef2db7e2a41333861ca067bb1c6f16589044eb",
      "parents": [
        "4c73b1bc6bb14aab7888ebe6bffe957cf7c07fa0"
      ],
      "author": {
        "name": "Minchan Kim",
        "email": "minchan.kim@gmail.com",
        "time": "Tue Mar 22 16:32:41 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:02 2011 -0700"
      },
      "message": "mm: truncate: change remove_from_page_cache\n\nThis patch series changes remove_from_page_cache()\u0027s page ref counting\nrule.  Page cache ref count is decreased in delete_from_page_cache().  So\nwe don\u0027t need to decrease the page reference in callers.\n\nSigned-off-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: Dan Magenheimer \u003cdan.magenheimer@oracle.com\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nCc: Nick Piggin \u003cnpiggin@kernel.dk\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nAcked-by: Hugh Dickins \u003chughd@google.com\u003e\nAcked-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nReviewed-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4c73b1bc6bb14aab7888ebe6bffe957cf7c07fa0",
      "tree": "152bc82ac08f59cdec1d7d3d4312f90e8aea124a",
      "parents": [
        "bd65cb86c98a79bc61afd0d80166005f125e9064"
      ],
      "author": {
        "name": "Minchan Kim",
        "email": "minchan.kim@gmail.com",
        "time": "Tue Mar 22 16:32:40 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:02 2011 -0700"
      },
      "message": "mm: shmem: change remove_from_page_cache\n\nThis patch series changes remove_from_page_cache()\u0027s page ref counting\nrule.  Page cache ref count is decreased in delete_from_page_cache().  So\nwe don\u0027t need to decrease the page reference in callers.\n\nSigned-off-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nAcked-by: Hugh Dickins \u003chughd@google.com\u003e\nAcked-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nReviewed-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bd65cb86c98a79bc61afd0d80166005f125e9064",
      "tree": "7980a38792c6855346e6d3b8c15a876dca9b50f8",
      "parents": [
        "97cecb5a254fec22d28ef32235d888bfbfd7c783"
      ],
      "author": {
        "name": "Minchan Kim",
        "email": "minchan.kim@gmail.com",
        "time": "Tue Mar 22 16:30:54 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:02 2011 -0700"
      },
      "message": "mm: hugetlbfs: change remove_from_page_cache\n\nThis patch series changes remove_from_page_cache()\u0027s page ref counting\nrule.  Page cache ref count is decreased in delete_from_page_cache().  So\nwe don\u0027t need to decrease the page reference in callers.\n\nSigned-off-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: William Irwin \u003cwli@holomorphy.com\u003e\nAcked-by: Hugh Dickins \u003chughd@google.com\u003e\nAcked-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nReviewed-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "97cecb5a254fec22d28ef32235d888bfbfd7c783",
      "tree": "186c6bb9c1f999f807e2ec68dc6a0cf16c9d0d73",
      "parents": [
        "ef6a3c63112e865d632ff7c478ba7c7160cad0d1"
      ],
      "author": {
        "name": "Minchan Kim",
        "email": "minchan.kim@gmail.com",
        "time": "Tue Mar 22 16:30:53 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:02 2011 -0700"
      },
      "message": "mm: introduce delete_from_page_cache()\n\nPresently we increase the page refcount in add_to_page_cache() but don\u0027t\ndecrease it in remove_from_page_cache().  Such asymmetry adds confusion,\nrequiring that callers notice it and a comment explaining why they release\na page reference.  It\u0027s not a good API.\n\nA long time ago, Hugh tried it (http://lkml.org/lkml/2004/10/24/140) but\ngave up because reiser4\u0027s drop_page() had to unlock the page between\nremoving it from page cache and doing the page_cache_release().  But now\nthe situation is changed.  I think at least things in current mainline\ndon\u0027t have any obstacles.  The problem is for out-of-mainline filesystems\n- if they have done such things as reiser4, this patch could be a problem\nbut they will discover this at compile time since we remove\nremove_from_page_cache().\n\nThis patch:\n\nThis function works as just wrapper remove_from_page_cache().  The\ndifference is that it decreases page references in itself.  So caller have\nto make sure it has a page reference before calling.\n\nThis patch is ready for removing remove_from_page_cache().\n\nSigned-off-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nAcked-by: Hugh Dickins \u003chughd@google.com\u003e\nAcked-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nReviewed-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Edward Shishkin \u003cedward.shishkin@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ef6a3c63112e865d632ff7c478ba7c7160cad0d1",
      "tree": "d0bd3ee2b79674e22b8dd3f318814cd4789697b8",
      "parents": [
        "318b275fbca1ab9ec0862de71420e0e92c3d1aa7"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Tue Mar 22 16:30:52 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:02 2011 -0700"
      },
      "message": "mm: add replace_page_cache_page() function\n\nThis function basically does:\n\n     remove_from_page_cache(old);\n     page_cache_release(old);\n     add_to_page_cache_locked(new);\n\nExcept it does this atomically, so there\u0027s no possibility for the \"add\" to\nfail because of a race.\n\nIf memory cgroups are enabled, then the memory cgroup charge is also moved\nfrom the old page to the new.\n\nThis function is currently used by fuse to move pages into the page cache\non read, instead of copying the page contents.\n\n[minchan.kim@gmail.com: add freepage() hook to replace_page_cache_page()]\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nSigned-off-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "318b275fbca1ab9ec0862de71420e0e92c3d1aa7",
      "tree": "aa4984469443ed53b4e7fa23d3f91966e536a803",
      "parents": [
        "5fda1bd5b8869574dad8e1f9f71e23bf0c186274"
      ],
      "author": {
        "name": "Gleb Natapov",
        "email": "gleb@redhat.com",
        "time": "Tue Mar 22 16:30:51 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:02 2011 -0700"
      },
      "message": "mm: allow GUP to fail instead of waiting on a page\n\nGUP user may want to try to acquire a reference to a page if it is already\nin memory, but not if IO, to bring it in, is needed.  For example KVM may\ntell vcpu to schedule another guest process if current one is trying to\naccess swapped out page.  Meanwhile, the page will be swapped in and the\nguest process, that depends on it, will be able to run again.\n\nThis patch adds FAULT_FLAG_RETRY_NOWAIT (suggested by Linus) and\nFOLL_NOWAIT follow_page flags.  FAULT_FLAG_RETRY_NOWAIT, when used in\nconjunction with VM_FAULT_ALLOW_RETRY, indicates to handle_mm_fault that\nit shouldn\u0027t drop mmap_sem and wait on a page, but return VM_FAULT_RETRY\ninstead.\n\n[akpm@linux-foundation.org: improve FOLL_NOWAIT comment]\nSigned-off-by: Gleb Natapov \u003cgleb@redhat.com\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nCc: Michel Lespinasse \u003cwalken@google.com\u003e\nCc: Avi Kivity \u003cavi@redhat.com\u003e\nCc: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5fda1bd5b8869574dad8e1f9f71e23bf0c186274",
      "tree": "a714e0d153622bd89cf9f775e04763ccbd6c4ca5",
      "parents": [
        "cbf978bfb12d7deca97d7333f65eda0381a072de"
      ],
      "author": {
        "name": "Prarit Bhargava",
        "email": "prarit@redhat.com",
        "time": "Tue Mar 22 16:30:49 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:01 2011 -0700"
      },
      "message": "mm: notifier_from_errno() cleanup\n\nWhile looking at some other notifier callbacks I noticed this code could\nuse a simple cleanup.\n\nnotifier_from_errno() no longer needs the if (ret)/else conditional.  That\nsame conditional is now done in notifier_from_errno().\n\nSigned-off-by: Prarit Bhargava \u003cprarit@redhat.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nAcked-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "cbf978bfb12d7deca97d7333f65eda0381a072de",
      "tree": "75a415ec997606460c0c851f43e29d008476f231",
      "parents": [
        "29423e77c06cee7d4e335ef4a7cbd949da978c91"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Tue Mar 22 16:30:48 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:01 2011 -0700"
      },
      "message": "oom: suppress nodes that are not allowed from meminfo on page alloc failure\n\nDisplaying extremely verbose meminfo for all nodes on the system is\noverkill for page allocation failures when the context restricts that\nallocation to only a subset of nodes.  We don\u0027t particularly care about\nthe state of all nodes when some are not allowed in the current context,\nthey can have an abundance of memory but we can\u0027t allocate from that part\nof memory.\n\nThis patch suppresses disallowed nodes from the meminfo dump on a page\nallocation failure if the context requires it.\n\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "29423e77c06cee7d4e335ef4a7cbd949da978c91",
      "tree": "4020036f36a8fb93d4c1010f59caa36742ff5c25",
      "parents": [
        "ddd588b5dd55f14320379961e47683db4e4c1d90"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Tue Mar 22 16:30:47 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:01 2011 -0700"
      },
      "message": "oom: suppress show_mem() for many nodes in irq context on page alloc failure\n\nWhen a page allocation failure occurs, show_mem() is called to dump the\nstate of the VM so users may understand what happened to get into that\ncondition.\n\nThis output, however, can be extremely verbose.  In irq context, it may\nresult in significant delays that incur NMI watchdog timeouts when the\nmachine is large (we use CONFIG_NODES_SHIFT \u003e 8 here to define a \"large\"\nmachine since the length of the show_mem() output is proportional to the\nnumber of possible nodes).\n\nThis patch suppresses the show_mem() call in irq context when the kernel\nhas CONFIG_NODES_SHIFT \u003e 8.\n\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ddd588b5dd55f14320379961e47683db4e4c1d90",
      "tree": "09de73c51c8c5e701e644236890a5d205ec3cdc9",
      "parents": [
        "94dcf29a11b3d20a28790598d701f98484a969da"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Tue Mar 22 16:30:46 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:01 2011 -0700"
      },
      "message": "oom: suppress nodes that are not allowed from meminfo on oom kill\n\nThe oom killer is extremely verbose for machines with a large number of\ncpus and/or nodes.  This verbosity can often be harmful if it causes other\nimportant messages to be scrolled from the kernel log and incurs a\nsignicant time delay, specifically for kernels with CONFIG_NODES_SHIFT \u003e\n8.\n\nThis patch causes only memory information to be displayed for nodes that\nare allowed by current\u0027s cpuset when dumping the VM state.  Information\nfor all other nodes is irrelevant to the oom condition; we don\u0027t care if\nthere\u0027s an abundance of memory elsewhere if we can\u0027t access it.\n\nThis only affects the behavior of dumping memory information when an oom\nis triggered.  Other dumps, such as for sysrq+m, still display the\nunfiltered form when using the existing show_mem() interface.\n\nAdditionally, the per-cpu pageset statistics are extremely verbose in oom\nkiller output, so it is now suppressed.  This removes\n\n\tnodes_weight(current-\u003emems_allowed) * (1 + nr_cpus)\n\nlines from the oom killer output.\n\nCallers may use __show_mem(SHOW_MEM_FILTER_NODES) to filter disallowed\nnodes.\n\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "94dcf29a11b3d20a28790598d701f98484a969da",
      "tree": "21c65f6634dcde739bb85cbc019ee273f1427f90",
      "parents": [
        "207205a2ba2655652fe46a60b49838af6c16a919"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Tue Mar 22 16:30:45 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:01 2011 -0700"
      },
      "message": "kthread: use kthread_create_on_node()\n\nksoftirqd, kworker, migration, and pktgend kthreads can be created with\nkthread_create_on_node(), to get proper NUMA affinities for their stack and\ntask_struct.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nAcked-by: David S. Miller \u003cdavem@davemloft.net\u003e\nReviewed-by: Andi Kleen \u003cak@linux.intel.com\u003e\nAcked-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nAcked-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Tony Luck \u003ctony.luck@intel.com\u003e\nCc: Fenghua Yu \u003cfenghua.yu@intel.com\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: \u003clinux-arch@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    }
  ],
  "next": "207205a2ba2655652fe46a60b49838af6c16a919"
}
