)]}'
{
  "log": [
    {
      "commit": "2e2e425989080cc534fc0fca154cae515f971cf5",
      "tree": "c4acbd403164d1d210e3bc274b7d93487071153e",
      "parents": [
        "55e5750b3e979bac853c0809ad0ef75b7cebd18c"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Tue Apr 21 12:24:57 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 21 13:41:51 2009 -0700"
      },
      "message": "vmscan,memcg: reintroduce sc-\u003emay_swap\n\nCommit a6dc60f8975ad96d162915e07703a4439c80dcf0 (\"vmscan: rename\nsc.may_swap to may_unmap\") removed the may_swap flag, but memcg had used\nit as a flag for \"we need to use swap?\", as the name indicate.\n\nAnd in the current implementation, memcg cannot reclaim mapped file\ncaches when mem+swap hits the limit.\n\nre-introduce may_swap flag and handle it at get_scan_ratio().  This\npatch doesn\u0027t influence any scan_control users other than memcg.\n\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nAcked-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a21e25536169432cf9174d631972bc1cd4c75062",
      "tree": "5414335eae4b34be3e0cc0374b81d8303c6a95af",
      "parents": [
        "aefe6475720bd5eb8aacbc881488f3aa65618562"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sat Apr 18 17:23:41 2009 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Apr 18 11:36:58 2009 -0700"
      },
      "message": "PM/Hibernate: Fix memory shrinking\n\nCommit d979677c4c0 (\"mm: shrink_all_memory(): use sc.nr_reclaimed\")\nbroke the memory shrinking used by hibernation, becuse it did not update\nshrink_all_zones() in accordance with the other changes it made.\n\nFix this by making shrink_all_zones() update sc-\u003enr_reclaimed instead of\noverwriting its value.\n\nThis fixes http://bugzilla.kernel.org/show_bug.cgi?id\u003d13058\n\nReported-and-tested-by: Alan Jenkins \u003calan-jenkins@tuffmail.co.uk\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "05fa199d45c54a9bda7aa3ae6537253d6f097aa9",
      "tree": "cfdcdd04bfcef7d0dcb47fad93ba8fa676349dd3",
      "parents": [
        "05f54c13cd0c33694eec39a265475c5d6cf223cf"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Thu Apr 16 21:58:12 2009 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 16 14:41:25 2009 -0700"
      },
      "message": "mm: pass correct mm when growing stack\n\nTetsuo Handa reports seeing the WARN_ON(current-\u003emm \u003d\u003d NULL) in\nsecurity_vm_enough_memory(), when do_execve() is touching the\ntarget mm\u0027s stack, to set up its args and environment.\n\nYes, a UMH_NO_WAIT or UMH_WAIT_PROC call_usermodehelper() spawns\nan mm-less kernel thread to do the exec.  And in any case, that\nvm_enough_memory check when growing stack ought to be done on the\ntarget mm, not on the execer\u0027s mm (though apart from the warning,\nit only makes a slight tweak to OVERCOMMIT_NEVER behaviour).\n\nReported-by: Tetsuo Handa \u003cpenguin-kernel@i-love.sakura.ne.jp\u003e\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: stable@kernel.org\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f69955855eac55a048d26a1618f50dfaa160a006",
      "tree": "b43b2d49ca568c4c591415d0f4a69812ca1a781f",
      "parents": [
        "cd97824994042b809493807ea644ba26c0c23290"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed Apr 15 13:22:37 2009 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 16 07:47:49 2009 -0700"
      },
      "message": "Export filemap_write_and_wait_range\n\nThis wasn\u0027t exported before and is useful (used by the experimental ext3\ndata\u003dguarded code)\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\nAcked-by: Theodore Tso \u003ctytso@mit.edu\u003e\nAcked-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "caefba1740d8016e6dfe8fda84f85bdcb8f8c85d",
      "tree": "78a74e7a42b94ac83c736849c46767b7efeb8ef1",
      "parents": [
        "61609d01cbb3ab865c8cccaf85e6837c47096480"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Mon Apr 13 14:40:12 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 13 15:04:33 2009 -0700"
      },
      "message": "shmem: respect MAX_LFS_FILESIZE\n\nSHMEM_MAX_BYTES was derived from the maximum size of its triple-indirect\nswap vector, forgetting to take the MAX_LFS_FILESIZE limit into account.\nNever mind 256kB pages, even 8kB pages on 32-bit kernels allowed files to\ngrow slightly bigger than that supposed maximum.\n\nFix this by using the min of both (at build time not run time).  And it\nhappens that this calculation is good as far as 8MB pages on 32-bit or\n16MB pages on 64-bit: though SHMSWP_MAX_INDEX gets truncated before that,\nit\u0027s truncated to such large numbers that we don\u0027t need to care.\n\n[akpm@linux-foundation.org: it needs pagemap.h]\n[akpm@linux-foundation.org: fix sparc64 min() warnings]\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: Yuri Tikhonov \u003cyur@emcraft.com\u003e\nCc: Paul Mackerras \u003cpaulus@samba.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": "61609d01cbb3ab865c8cccaf85e6837c47096480",
      "tree": "144e176568328a6fcd9c01853c3f88fd6bc1a08e",
      "parents": [
        "347486bb108fa6e0fd2753c1be3519d6be2516ed"
      ],
      "author": {
        "name": "Yuri Tikhonov",
        "email": "yur@emcraft.com",
        "time": "Mon Apr 13 14:40:11 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 13 15:04:32 2009 -0700"
      },
      "message": "shmem: fix division by zero\n\nFix a division by zero which we have in shmem_truncate_range() and\nshmem_unuse_inode() when using big PAGE_SIZE values (e.g.  256kB on\nppc44x).\n\nWith 256kB PAGE_SIZE, the ENTRIES_PER_PAGEPAGE constant becomes too large\n(0x1.0000.0000) on a 32-bit kernel, so this patch just changes its type\nfrom \u0027unsigned long\u0027 to \u0027unsigned long long\u0027.\n\nHugh: reverted its unsigned long longs in shmem_truncate_range() and\nshmem_getpage(): the pagecache index cannot be more than an unsigned long,\nso the divisions by zero occurred in unreached code.  It\u0027s a pity we need\nany ULL arithmetic here, but I found no pretty way to avoid it.\n\nSigned-off-by: Yuri Tikhonov \u003cyur@emcraft.com\u003e\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a8031cb00e286600ea08bd00a6812dbfec412376",
      "tree": "9b3708cbb048af00c152a311e0c5db841cb7f82a",
      "parents": [
        "3d26dcf7679c5cc6c9f3b95ffdb2152fba2b7fae"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Mon Apr 13 14:40:08 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 13 15:04:32 2009 -0700"
      },
      "message": "memcg: remove warning when CONFIG_DEBUG_VM\u003dn\n\nmm/memcontrol.c:318: warning: `mem_cgroup_is_obsolete\u0027 defined but not used\n\n[akpm@linux-foundation.org: simplify as suggested by Balbir]\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nReviewed-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9de100d001564f58c3fb2ec1bd03e540ac0aa357",
      "tree": "ee7d599718821e0d272d3d63325ad940fc982e0e",
      "parents": [
        "d20d5a7456d57d8affa88f45f27ae96ea49c29e4"
      ],
      "author": {
        "name": "Andy Grover",
        "email": "andy.grover@oracle.com",
        "time": "Mon Apr 13 14:40:05 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 13 15:04:32 2009 -0700"
      },
      "message": "mm: document get_user_pages_fast()\n\nWhile better than get_user_pages(), the usage of gupf(), especially the\nreturn values and the fact that it can potentially only partially pin the\nrange, warranted some documentation.\n\nSigned-off-by: Andy Grover \u003candy.grover@oracle.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5a52edded382c2f436721d5a044ed16c290c5750",
      "tree": "9ec58a67c2c2df7b5e8a5400b8acb588ddaff0c5",
      "parents": [
        "267b01fe8345098b9459f5bac3d97cbba3264ec4"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Mon Apr 13 14:40:01 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 13 15:04:31 2009 -0700"
      },
      "message": "mm: point the UNEVICTABLE_LRU config option at the documentation\n\nPoint the UNEVICTABLE_LRU config option at the documentation describing\nthe option.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nCc: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nCc: Rik van Riel \u003criel@redhat.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": "697f619fc87aa9bf5b6c8c756f7ea54e950d5cd5",
      "tree": "54ab6110a9e9d497ed21bf7423ff21e070d6bbb4",
      "parents": [
        "5dec8bfbdd4921522565a7b0e0c8760ae042ef6d"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Mon Apr 13 14:39:54 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 13 15:04:30 2009 -0700"
      },
      "message": "filemap: fix kernel-doc warnings\n\nFix filemap.c kernel-doc warnings:\n\nWarning(mm/filemap.c:575): No description found for parameter \u0027page\u0027\nWarning(mm/filemap.c:575): No description found for parameter \u0027waiter\u0027\n\nSigned-off-by: 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": "fafd688e4c0c34da0f3de909881117d374e4c7af",
      "tree": "5c61d499b96d78f5b56507a5d34af0ccd7c69060",
      "parents": [
        "a56ed663047fc9927ec8b35750d23ece54f85dc7"
      ],
      "author": {
        "name": "Peter W Morreale",
        "email": "pmorreale@novell.com",
        "time": "Mon Apr 06 19:00:29 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 07 08:31:03 2009 -0700"
      },
      "message": "mm: add /proc controls for pdflush threads\n\nAdd /proc entries to give the admin the ability to control the minimum and\nmaximum number of pdflush threads.  This allows finer control of pdflush\non both large and small machines.\n\nThe rationale is simply one size does not fit all.  Admins on large and/or\nsmall systems may want to tune the min/max pdflush thread count to best\nsuit their needs.  Right now the min/max is hardcoded to 2/8.  While\nprobably a fair estimate for smaller machines, large machines with large\nnumbers of CPUs and large numbers of filesystems/block devices may benefit\nfrom larger numbers of threads working on different block devices.\n\nEven if the background flushing algorithm is radically changed, it is\nstill likely that multiple threads will be involved and admins would still\ndesire finer control on the min/max other than to have to recompile the\nkernel.\n\nThe patch adds \u0027/proc/sys/vm/nr_pdflush_threads_min\u0027 and\n\u0027/proc/sys/vm/nr_pdflush_threads_max\u0027 with r/w permissions.\n\nThe minimum value for nr_pdflush_threads_min is 1 and the maximum value is\nthe current value of nr_pdflush_threads_max.  This minimum is required\nsince additional thread creation is performed in a pdflush thread itself.\n\nThe minimum value for nr_pdflush_threads_max is the current value of\nnr_pdflush_threads_min and the maximum value can be 1000.\n\nDocumentation/sysctl/vm.txt is also updated.\n\n[akpm@linux-foundation.org: fix comment, fix whitespace, use __read_mostly]\nSigned-off-by: Peter W Morreale \u003cpmorreale@novell.com\u003e\nReviewed-by: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a56ed663047fc9927ec8b35750d23ece54f85dc7",
      "tree": "b992006bf34124f746f01530113803b175177782",
      "parents": [
        "9133df726fdd3df0ca9efcaaae22442198851d65"
      ],
      "author": {
        "name": "Peter W Morreale",
        "email": "pmorreale@novell.com",
        "time": "Mon Apr 06 19:00:28 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 07 08:31:03 2009 -0700"
      },
      "message": "mm: fix pdflush thread creation upper bound\n\nFix a race on creating pdflush threads.  Without the patch, it is possible\nto create more than MAX_PDFLUSH_THREADS threads, and this has been\nobserved in practice on IO loaded SMP machines.\n\nThe fix involves moving the lock around to protect the check against the\nthread count and correctly dealing with thread creation failure.\n\nThis fix also _mostly_ repairs a race condition on how quickly the threads\nare created.  The original intent was to create a pdflush thread (up to\nthe max allowed) every second.  Without this patch is is possible to\ncreate NCPUS pdflush threads concurrently.  The \u0027mostly\u0027 caveat is because\nan assumption is made that thread creation will be successful.  If we fail\nto create the thread, the miss is not considered fatal.  (we will try\nagain in 1 second)\n\nSigned-off-by: Peter W Morreale \u003cpmorreale@novell.com\u003e\nReviewed-by: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5d6700ea7bfb4704a8d5d10c6ebf0e947410f9ce",
      "tree": "5328df485bd4dc08af6e78d862ba2f79bb9501a6",
      "parents": [
        "0cb55ad2ad5513f55304d026bb4319a9311163d0"
      ],
      "author": {
        "name": "Stephen Rothwell",
        "email": "sfr@canb.auug.org.au",
        "time": "Mon Apr 06 15:08:29 2009 +1000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 06 13:44:15 2009 -0700"
      },
      "message": "percpu: __percpu_depopulate_mask can take a const mask\n\nThis eliminates a compiler warning:\n\n  mm/allocpercpu.c: In function \u0027free_percpu\u0027:\n  mm/allocpercpu.c:146: warning: passing argument 2 of \u0027__percpu_depopulate_mask\u0027 discards qualifiers from pointer target type\n\nSigned-off-by: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "12fe32e4f942ac5c71a4ab70b039fee65c0dc29d",
      "tree": "b0878e49e9fab1fd154fde1dd57057391831b668",
      "parents": [
        "a63856252d2112e7c452696037a86ceb12f47f80",
        "2121db74ba0fd2259f0e2265511684fadda9ac49"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 06 13:30:00 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 06 13:30:00 2009 -0700"
      },
      "message": "Merge branch \u0027kmemtrace-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027kmemtrace-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  kmemtrace: trace kfree() calls with NULL or zero-length objects\n  kmemtrace: small cleanups\n  kmemtrace: restore original tracing data binary format, improve ABI\n  kmemtrace: kmemtrace_alloc() must fill type_id\n  kmemtrace: use tracepoints\n  kmemtrace, rcu: don\u0027t include unnecessary headers, allow kmemtrace w/ tracepoints\n  kmemtrace, rcu: fix rcupreempt.c data structure dependencies\n  kmemtrace, rcu: fix rcu_tree_trace.c data structure dependencies\n  kmemtrace, rcu: fix linux/rcutree.h and linux/rcuclassic.h dependencies\n  kmemtrace, mm: fix slab.h dependency problem in mm/failslab.c\n  kmemtrace, kbuild: fix slab.h dependency problem in lib/decompress_unlzma.c\n  kmemtrace, kbuild: fix slab.h dependency problem in lib/decompress_bunzip2.c\n  kmemtrace, kbuild: fix slab.h dependency problem in lib/decompress_inflate.c\n  kmemtrace, squashfs: fix slab.h dependency problem in squasfs\n  kmemtrace, befs: fix slab.h dependency problem\n  kmemtrace, security: fix linux/key.h header file dependencies\n  kmemtrace, fs: fix linux/fdtable.h header file dependencies\n  kmemtrace, fs: uninline simple_transaction_set()\n  kmemtrace, fs, security: move alloc_secdata() and free_secdata() to linux/security.h\n"
    },
    {
      "commit": "1faa16d22877f4839bd433547d770c676d1d964c",
      "tree": "9a0d50be1ef0358c1f53d7107413100904e7d526",
      "parents": [
        "0221c81b1b8eb0cbb6b30a0ced52ead32d2b4e4c"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Mon Apr 06 14:48:01 2009 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 06 08:04:53 2009 -0700"
      },
      "message": "block: change the request allocation/congestion logic to be sync/async based\n\nThis makes sure that we never wait on async IO for sync requests, instead\nof doing the split on writes vs reads.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3516c6a8dc0b1153c611c4cf0dc4a51631f052bb",
      "tree": "c54a5fc916cbe73e43dee20902642f367f44a551",
      "parents": [
        "714f83d5d9f7c785f622259dad1f4fad12d64664",
        "ba0e1ebb7ea0616eebc29d2077355bacea62a9d8"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Apr 05 11:06:45 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Apr 05 11:06:45 2009 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging-2.6: (714 commits)\n  Staging: sxg: slicoss: Specify the license for Sahara SXG and Slicoss drivers\n  Staging: serqt_usb: fix build due to proc tty changes\n  Staging: serqt_usb: fix checkpatch errors\n  Staging: serqt_usb: add TODO file\n  Staging: serqt_usb: Lindent the code\n  Staging: add USB serial Quatech driver\n  staging: document that the wifi staging drivers a bit better\n  Staging: echo cleanup\n  Staging: BUG to BUG_ON changes\n  Staging: remove some pointless conditionals before kfree_skb()\n  Staging: line6: fix build error, select SND_RAWMIDI\n  Staging: line6: fix checkpatch errors in variax.c\n  Staging: line6: fix checkpatch errors in toneport.c\n  Staging: line6: fix checkpatch errors in pcm.c\n  Staging: line6: fix checkpatch errors in midibuf.c\n  Staging: line6: fix checkpatch errors in midi.c\n  Staging: line6: fix checkpatch errors in dumprequest.c\n  Staging: line6: fix checkpatch errors in driver.c\n  Staging: line6: fix checkpatch errors in audio.c\n  Staging: line6: fix checkpatch errors in pod.c\n  ...\n"
    },
    {
      "commit": "714f83d5d9f7c785f622259dad1f4fad12d64664",
      "tree": "20563541ae438e11d686b4d629074eb002a481b7",
      "parents": [
        "8901e7ffc2fa78ede7ce9826dbad68a3a25dc2dc",
        "645dae969c3b8651c5bc7c54a1835ec03820f85f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Apr 05 11:04:19 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Apr 05 11:04:19 2009 -0700"
      },
      "message": "Merge branch \u0027tracing-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027tracing-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (413 commits)\n  tracing, net: fix net tree and tracing tree merge interaction\n  tracing, powerpc: fix powerpc tree and tracing tree interaction\n  ring-buffer: do not remove reader page from list on ring buffer free\n  function-graph: allow unregistering twice\n  trace: make argument \u0027mem\u0027 of trace_seq_putmem() const\n  tracing: add missing \u0027extern\u0027 keywords to trace_output.h\n  tracing: provide trace_seq_reserve()\n  blktrace: print out BLK_TN_MESSAGE properly\n  blktrace: extract duplidate code\n  blktrace: fix memory leak when freeing struct blk_io_trace\n  blktrace: fix blk_probes_ref chaos\n  blktrace: make classic output more classic\n  blktrace: fix off-by-one bug\n  blktrace: fix the original blktrace\n  blktrace: fix a race when creating blk_tree_root in debugfs\n  blktrace: fix timestamp in binary output\n  tracing, Text Edit Lock: cleanup\n  tracing: filter fix for TRACE_EVENT_FORMAT events\n  ftrace: Using FTRACE_WARN_ON() to check \"freed record\" in ftrace_release()\n  x86: kretprobe-booster interrupt emulation code fix\n  ...\n\nFix up trivial conflicts in\n arch/parisc/include/asm/ftrace.h\n include/linux/memory.h\n kernel/extable.c\n kernel/module.c\n"
    },
    {
      "commit": "90975ef71246c5c688ead04e8ff6f36dc92d28b3",
      "tree": "eda44b2efe91509719b0e62219c2efec13a9e762",
      "parents": [
        "cab4e4c43f92582a2bfc026137b3d8a175bd0360",
        "558f6ab9106e6be701acb0257e7171df1bbccf04"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Apr 05 10:33:07 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Apr 05 10:33:07 2009 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-cpumask\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-cpumask: (36 commits)\n  cpumask: remove cpumask allocation from idle_balance, fix\n  numa, cpumask: move numa_node_id default implementation to topology.h, fix\n  cpumask: remove cpumask allocation from idle_balance\n  x86: cpumask: x86 mmio-mod.c use cpumask_var_t for downed_cpus\n  x86: cpumask: update 32-bit APM not to mug current-\u003ecpus_allowed\n  x86: microcode: cleanup\n  x86: cpumask: use work_on_cpu in arch/x86/kernel/microcode_core.c\n  cpumask: fix CONFIG_CPUMASK_OFFSTACK\u003dy cpu hotunplug crash\n  numa, cpumask: move numa_node_id default implementation to topology.h\n  cpumask: convert node_to_cpumask_map[] to cpumask_var_t\n  cpumask: remove x86 cpumask_t uses.\n  cpumask: use cpumask_var_t in uv_flush_tlb_others.\n  cpumask: remove cpumask_t assignment from vector_allocation_domain()\n  cpumask: make Xen use the new operators.\n  cpumask: clean up summit\u0027s send_IPI functions\n  cpumask: use new cpumask functions throughout x86\n  x86: unify cpu_callin_mask/cpu_callout_mask/cpu_initialized_mask/cpu_sibling_setup_mask\n  cpumask: convert struct cpuinfo_x86\u0027s llc_shared_map to cpumask_var_t\n  cpumask: convert node_to_cpumask_map[] to cpumask_var_t\n  x86: unify 32 and 64-bit node_to_cpumask_map\n  ...\n"
    },
    {
      "commit": "811158b147a503fbdf9773224004ffd32002d1fe",
      "tree": "0a11dcfefe721bfc38ea9f1f4a238822dbae0dda",
      "parents": [
        "4e76c5ccd5ac9bd003467d3bb0f49b18572dd4cd",
        "b26e0ed4936b743b693a4cc1413561fa3e4eaf65"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Apr 03 15:24:35 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Apr 03 15:24:35 2009 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (28 commits)\n  trivial: Update my email address\n  trivial: NULL noise: drivers/mtd/tests/mtd_*test.c\n  trivial: NULL noise: drivers/media/dvb/frontends/drx397xD_fw.h\n  trivial: Fix misspelling of \"Celsius\".\n  trivial: remove unused variable \u0027path\u0027 in alloc_file()\n  trivial: fix a pdlfush -\u003e pdflush typo in comment\n  trivial: jbd header comment typo fix for JBD_PARANOID_IOFAIL\n  trivial: wusb: Storage class should be before const qualifier\n  trivial: drivers/char/bsr.c: Storage class should be before const qualifier\n  trivial: h8300: Storage class should be before const qualifier\n  trivial: fix where cgroup documentation is not correctly referred to\n  trivial: Give the right path in Documentation example\n  trivial: MTD: remove EOL from MODULE_DESCRIPTION\n  trivial: Fix typo in bio_split()\u0027s documentation\n  trivial: PWM: fix of #endif comment\n  trivial: fix typos/grammar errors in Kconfig texts\n  trivial: Fix misspelling of firmware\n  trivial: cgroups: documentation typo and spelling corrections\n  trivial: Update contact info for Jochen Hein\n  trivial: fix typo \"resgister\" -\u003e \"register\"\n  ...\n"
    },
    {
      "commit": "18bc0bbd162e3eb3e7ea2953c315ad4113a57164",
      "tree": "6c46e99774772b8ac0ef92633377f4328bd87dbf",
      "parents": [
        "c09ee9d206994655d55de60222a3024702ad2055"
      ],
      "author": {
        "name": "Evgeniy Polyakov",
        "email": "zbr@ioremap.net",
        "time": "Mon Feb 09 17:02:42 2009 +0300"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Fri Apr 03 14:53:36 2009 -0700"
      },
      "message": "Staging: pohmelfs: kconfig/makefile and vfs changes.\n\nThis patch adds Kconfig and Makefile entries and exports to\nVFS functions to be used by POHMELFS.\n\nSigned-off-by: Evgeniy Polyakov \u003czbr@ioremap.net\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "385e1ca5f21c4680ad6a46a3aa2ea8af99e99c92",
      "tree": "7d887b59d943c5dd62c9604b7ea37fd2d650df71",
      "parents": [
        "b510882281d56873e1194021643b7c325336f84f"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Apr 03 16:42:39 2009 +0100"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Apr 03 16:42:39 2009 +0100"
      },
      "message": "CacheFiles: Permit the page lock state to be monitored\n\nAdd a function to install a monitor on the page lock waitqueue for a particular\npage, thus allowing the page being unlocked to be detected.\n\nThis is used by CacheFiles to detect read completion on a page in the backing\nfilesystem so that it can then copy the data to the waiting netfs page.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: Steve Dickson \u003csteved@redhat.com\u003e\nAcked-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nAcked-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nTested-by: Daire Byrne \u003cDaire.Byrne@framestore.com\u003e\n"
    },
    {
      "commit": "266cf658efcf6ac33541a46740f74f50c79d2b6b",
      "tree": "5c83b0879892d509e598dfd54be3ba3679ecd348",
      "parents": [
        "03fb3d2af96c2783c3a5bc03f3d984cf422f0e69"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Apr 03 16:42:36 2009 +0100"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Apr 03 16:42:36 2009 +0100"
      },
      "message": "FS-Cache: Recruit a page flags for cache management\n\nRecruit a page flag to aid in cache management.  The following extra flag is\ndefined:\n\n (1) PG_fscache (PG_private_2)\n\n     The marked page is backed by a local cache and is pinning resources in the\n     cache driver.\n\nIf PG_fscache is set, then things that checked for PG_private will now also\ncheck for that.  This includes things like truncation and page invalidation.\nThe function page_has_private() had been added to make the checks for both\nPG_private and PG_private_2 at the same time.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: Steve Dickson \u003csteved@redhat.com\u003e\nAcked-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nAcked-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nTested-by: Daire Byrne \u003cDaire.Byrne@framestore.com\u003e\n"
    },
    {
      "commit": "03fb3d2af96c2783c3a5bc03f3d984cf422f0e69",
      "tree": "6618f82f8be26ba2c7ac38d6e6e16befc8e1140f",
      "parents": [
        "8f0aa2f25b31ba27db84259141e52ee6ec0d2820"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Apr 03 16:42:35 2009 +0100"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Apr 03 16:42:35 2009 +0100"
      },
      "message": "FS-Cache: Release page-\u003eprivate after failed readahead\n\nThe attached patch causes read_cache_pages() to release page-private data on a\npage for which add_to_page_cache() fails.  If the filler function fails, then\nthe problematic page is left attached to the pagecache (with appropriate flags\nset, one presumes) and the remaining to-be-attached pages are invalidated and\ndiscarded.  This permits pages with caching references associated with them to\nbe cleaned up.\n\nThe invalidatepage() address space op is called (indirectly) to do the honours.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: Steve Dickson \u003csteved@redhat.com\u003e\nAcked-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nAcked-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nTested-by: Daire Byrne \u003cDaire.Byrne@framestore.com\u003e\n"
    },
    {
      "commit": "2121db74ba0fd2259f0e2265511684fadda9ac49",
      "tree": "823401f3bce7018535ceea69103a28accd5794f7",
      "parents": [
        "c826e3cd0c931d60d548f2468122da570d145556"
      ],
      "author": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Wed Mar 25 11:05:57 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Apr 03 12:23:10 2009 +0200"
      },
      "message": "kmemtrace: trace kfree() calls with NULL or zero-length objects\n\nImpact: also output kfree(NULL) entries\n\nThis patch moves the trace_kfree() calls before the ZERO_OR_NULL_PTR\ncheck so that we can trace call-sites that call kfree() with NULL many\ntimes which might be an indication of a bug.\n\nSigned-off-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: Eduard - Gabriel Munteanu \u003ceduard.munteanu@linux360.ro\u003e\nLKML-Reference: \u003c1237971957.30175.18.camel@penberg-laptop\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "ca2b84cb3c4a0d4d2143b46ec072cdff5d1b3b87",
      "tree": "7163bac040f11c444b24cab53c4a784df73fa4f3",
      "parents": [
        "ac44021fccd8f1f2b267b004f23a2e8d7ef05f7b"
      ],
      "author": {
        "name": "Eduard - Gabriel Munteanu",
        "email": "eduard.munteanu@linux360.ro",
        "time": "Mon Mar 23 15:12:24 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Apr 03 12:23:06 2009 +0200"
      },
      "message": "kmemtrace: use tracepoints\n\nkmemtrace now uses tracepoints instead of markers. We no longer need to\nuse format specifiers to pass arguments.\n\nSigned-off-by: Eduard - Gabriel Munteanu \u003ceduard.munteanu@linux360.ro\u003e\n[ folded: Use the new TP_PROTO and TP_ARGS to fix the build.     ]\n[ folded: fix build when CONFIG_KMEMTRACE is disabled.           ]\n[ folded: define tracepoints when CONFIG_TRACEPOINTS is enabled. ]\nSigned-off-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nLKML-Reference: \u003cae61c0f37156db8ec8dc0d5778018edde60a92e3.1237813499.git.eduard.munteanu@linux360.ro\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "255d11bc910fd38153156a0c5ebb256657290882",
      "tree": "e9ead95073fdd4d9be6be8ce17316b3039187c8b",
      "parents": [
        "e65a1b7c390a72fbcefb2639e255fb7f145538d3"
      ],
      "author": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Tue Mar 24 11:59:21 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Apr 03 12:23:01 2009 +0200"
      },
      "message": "kmemtrace, mm: fix slab.h dependency problem in mm/failslab.c\n\nImpact: cleanup\n\nmm/failslab.c depends on slab.h without including it:\n\n    CC      mm/failslab.o\n  mm/failslab.c: In function ‘should_failslab’:\n  mm/failslab.c:16: error: ‘__GFP_NOFAIL’ undeclared (first use in this function)\n  mm/failslab.c:16: error: (Each undeclared identifier is reported only once\n  mm/failslab.c:16: error: for each function it appears in.)\n  mm/failslab.c:19: error: ‘__GFP_WAIT’ undeclared (first use in this function)\n  make[1]: *** [mm/failslab.o] Error 1\n  make: *** [mm] Error 2\n\nIt gets included implicitly currently - but this will not be the\ncase with upcoming kmemtrace changes.\n\nSigned-off-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: Eduard - Gabriel Munteanu \u003ceduard.munteanu@linux360.ro\u003e\nLKML-Reference: \u003c1237888761.25315.69.camel@penberg-laptop\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "83aae4c737866da3280f51fd15da58eddd788397",
      "tree": "a4fdabfb02949e0d44743850b7f37ae52eaed757",
      "parents": [
        "627991a20b3f4d504d20466ab405fe035cb1a20a"
      ],
      "author": {
        "name": "Daisuke Nishimura",
        "email": "nishimura@mxp.nes.nec.co.jp",
        "time": "Thu Apr 02 16:57:48 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:56 2009 -0700"
      },
      "message": "memcg: cleanup cache_charge\n\nCurrent mem_cgroup_cache_charge is a bit complicated especially\nin the case of shmem\u0027s swap-in.\n\nThis patch cleans it up by using try_charge_swapin and commit_charge_swapin.\n\nSigned-off-by: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\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": "627991a20b3f4d504d20466ab405fe035cb1a20a",
      "tree": "ac1d7e0bc0881cf31c72ab1f830de904d52ef13e",
      "parents": [
        "a3b2d692690aef228e493b1beaafe5364cab3237"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Thu Apr 02 16:57:47 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:56 2009 -0700"
      },
      "message": "memcg: remove redundant message at swapon\n\nIt\u0027s pointed out that swap_cgroup\u0027s message at swapon() is nonsense.\nBecause\n\n  * It can be calculated very easily if all necessary information is\n    written in Kconfig.\n\n  * It\u0027s not necessary to annoying people at every swapon().\n\nIn other view, now, memory usage per swp_entry is reduced to 2bytes from\n8bytes(64bit) and I think it\u0027s reasonably small.\n\nReported-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-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": "a3b2d692690aef228e493b1beaafe5364cab3237",
      "tree": "d3ad99c5370462861a1b918b4136e7bd7ad78e52",
      "parents": [
        "3c776e64660028236313f0e54f3a9945764422df"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Thu Apr 02 16:57:45 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:56 2009 -0700"
      },
      "message": "cgroups: use css id in swap cgroup for saving memory v5\n\nTry to use CSS ID for records in swap_cgroup.  By this, on 64bit machine,\nsize of swap_cgroup goes down to 2 bytes from 8bytes.\n\nThis means, when 2GB of swap is equipped, (assume the page size is 4096bytes)\n\n\tFrom size of swap_cgroup \u003d 2G/4k * 8 \u003d 4Mbytes.\n\tTo   size of swap_cgroup \u003d 2G/4k * 2 \u003d 1Mbytes.\n\nReduction is large.  Of course, there are trade-offs.  This CSS ID will\nadd overhead to swap-in/swap-out/swap-free.\n\nBut in general,\n  - swap is a resource which the user tend to avoid use.\n  - If swap is never used, swap_cgroup area is not used.\n  - Reading traditional manuals, size of swap should be proportional to\n    size of memory. Memory size of machine is increasing now.\n\nI think reducing size of swap_cgroup makes sense.\n\nNote:\n  - ID-\u003eCSS lookup routine has no locks, it\u0027s under RCU-Read-Side.\n  - memcg can be obsolete at rmdir() but not freed while refcnt from\n    swap_cgroup is available.\n\nChangelog v4-\u003ev5:\n - reworked on to memcg-charge-swapcache-to-proper-memcg.patch\nChanglog -\u003ev4:\n - fixed not configured case.\n - deleted unnecessary comments.\n - fixed NULL pointer bug.\n - fixed message in dmesg.\n\n[nishimura@mxp.nes.nec.co.jp: css_tryget can be called twice in !PageCgroupUsed case]\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3c776e64660028236313f0e54f3a9945764422df",
      "tree": "4268ca55283e572ab0e6570cd05030d64048af34",
      "parents": [
        "3918b96e03b2b8dd05889320623f6870e81d35ec"
      ],
      "author": {
        "name": "Daisuke Nishimura",
        "email": "nishimura@mxp.nes.nec.co.jp",
        "time": "Thu Apr 02 16:57:43 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:56 2009 -0700"
      },
      "message": "memcg: charge swapcache to proper memcg\n\nmemcg_test.txt says at 4.1:\n\n\tThis swap-in is one of the most complicated work. In do_swap_page(),\n\tfollowing events occur when pte is unchanged.\n\n\t(1) the page (SwapCache) is looked up.\n\t(2) lock_page()\n\t(3) try_charge_swapin()\n\t(4) reuse_swap_page() (may call delete_swap_cache())\n\t(5) commit_charge_swapin()\n\t(6) swap_free().\n\n\tConsidering following situation for example.\n\n\t(A) The page has not been charged before (2) and reuse_swap_page()\n\t    doesn\u0027t call delete_from_swap_cache().\n\t(B) The page has not been charged before (2) and reuse_swap_page()\n\t    calls delete_from_swap_cache().\n\t(C) The page has been charged before (2) and reuse_swap_page() doesn\u0027t\n\t    call delete_from_swap_cache().\n\t(D) The page has been charged before (2) and reuse_swap_page() calls\n\t    delete_from_swap_cache().\n\n\t    memory.usage/memsw.usage changes to this page/swp_entry will be\n\t Case          (A)      (B)       (C)     (D)\n         Event\n       Before (2)     0/ 1     0/ 1      1/ 1    1/ 1\n          \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n          (3)        +1/+1    +1/+1     +1/+1   +1/+1\n          (4)          -       0/ 0       -     -1/ 0\n          (5)         0/-1     0/ 0     -1/-1    0/ 0\n          (6)          -       0/-1       -      0/-1\n          \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n       Result         1/ 1     1/ 1      1/ 1    1/ 1\n\n       In any cases, charges to this page should be 1/ 1.\n\nIn case of (D), mem_cgroup_try_get_from_swapcache() returns NULL\n(because lookup_swap_cgroup() returns NULL), so \"+1/+1\" at (3) means\ncharges to the memcg(\"foo\") to which the \"current\" belongs.\nOTOH, \"-1/0\" at (4) and \"0/-1\" at (6) means uncharges from the memcg(\"baa\")\nto which the page has been charged.\n\nSo, if the \"foo\" and \"baa\" is different(for example because of task move),\nthis charge will be moved from \"baa\" to \"foo\".\n\nI think this is an unexpected behavior.\n\nThis patch fixes this by modifying mem_cgroup_try_get_from_swapcache()\nto return the memcg to which the swapcache has been charged if PCG_USED bit\nis set.\nIIUC, checking PCG_USED bit of swapcache is safe under page lock.\n\nSigned-off-by: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c137b5ece4b111e46981aae7da77315b9909809f",
      "tree": "99677d3ae0f9016e83f257743ff04d5886a6e998",
      "parents": [
        "e222432bfa7dcf6ec008622a978c9f284ed5e3a9"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Thu Apr 02 16:57:40 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:55 2009 -0700"
      },
      "message": "memcg: remove mem_cgroup_calc_mapped_ratio()\n\nCurrently, mem_cgroup_calc_mapped_ratio() is unused at all.  it can be\nremoved and KAMEZAWA-san suggested it.\n\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nAcked-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.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": "e222432bfa7dcf6ec008622a978c9f284ed5e3a9",
      "tree": "b006f569cb66523a5644ad0ef1669b051ccda907",
      "parents": [
        "0b7f569e45bb6be142d87017030669a6a7d327a1"
      ],
      "author": {
        "name": "Balbir Singh",
        "email": "balbir@linux.vnet.ibm.com",
        "time": "Thu Apr 02 16:57:39 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:55 2009 -0700"
      },
      "message": "memcg: show memcg information during OOM\n\nAdd RSS and swap to OOM output from memcg\n\nDisplay memcg values like failcnt, usage and limit when an OOM occurs due\nto memcg.\n\nThanks to Johannes Weiner, Li Zefan, David Rientjes, Kamezawa Hiroyuki,\nDaisuke Nishimura and KOSAKI Motohiro for review.\n\nSample output\n-------------\n\nTask in /a/x killed as a result of limit of /a\nmemory: usage 1048576kB, limit 1048576kB, failcnt 4183\nmemory+swap: usage 1400964kB, limit 9007199254740991kB, failcnt 0\n\n[akpm@linux-foundation.org: compilation fix]\n[akpm@linux-foundation.org: fix kerneldoc and whitespace]\n[akpm@linux-foundation.org: add printk facility level]\nSigned-off-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0b7f569e45bb6be142d87017030669a6a7d327a1",
      "tree": "8df7877b95c093ebf4cb4e1006cea16f75fc79b7",
      "parents": [
        "81d39c20f5ee2437d71709beb82597e2a38efbbc"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Thu Apr 02 16:57:38 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:55 2009 -0700"
      },
      "message": "memcg: fix OOM killer under memcg\n\nThis patch tries to fix OOM Killer problems caused by hierarchy.\nNow, memcg itself has OOM KILL function (in oom_kill.c) and tries to\nkill a task in memcg.\n\nBut, when hierarchy is used, it\u0027s broken and correct task cannot\nbe killed. For example, in following cgroup\n\n\t/groupA/\thierarchy\u003d1, limit\u003d1G,\n\t\t01\tnolimit\n\t\t02\tnolimit\nAll tasks\u0027 memory usage under /groupA, /groupA/01, groupA/02 is limited to\ngroupA\u0027s 1Gbytes but OOM Killer just kills tasks in groupA.\n\nThis patch provides makes the bad process be selected from all tasks\nunder hierarchy. BTW, currently, oom_jiffies is updated against groupA\nin above case. oom_jiffies of tree should be updated.\n\nTo see how oom_jiffies is used, please check mem_cgroup_oom_called()\ncallers.\n\n[akpm@linux-foundation.org: build fix]\n[akpm@linux-foundation.org: const fix]\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "81d39c20f5ee2437d71709beb82597e2a38efbbc",
      "tree": "56297eb00cfa2bc251b2c5e0e0330becafd39e33",
      "parents": [
        "14067bb3e24b96d92e22d19c18c0119edf5575e5"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Thu Apr 02 16:57:36 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:55 2009 -0700"
      },
      "message": "memcg: fix shrinking memory to return -EBUSY by fixing retry algorithm\n\nAs pointed out, shrinking memcg\u0027s limit should return -EBUSY after\nreasonable retries.  This patch tries to fix the current behavior of\nshrink_usage.\n\nBefore looking into \"shrink should return -EBUSY\" problem, we should fix\nhierarchical reclaim code.  It compares current usage and current limit,\nbut it only makes sense when the kernel reclaims memory because hit\nlimits.  This is also a problem.\n\nWhat this patch does are.\n\n  1. add new argument \"shrink\" to hierarchical reclaim. If \"shrink\u003d\u003dtrue\",\n     hierarchical reclaim returns immediately and the caller checks the kernel\n     should shrink more or not.\n     (At shrinking memory, usage is always smaller than limit. So check for\n      usage \u003c limit is useless.)\n\n  2. For adjusting to above change, 2 changes in \"shrink\"\u0027s retry path.\n     2-a. retry_count depends on # of children because the kernel visits\n\t  the children under hierarchy one by one.\n     2-b. rather than checking return value of hierarchical_reclaim\u0027s progress,\n\t  compares usage-before-shrink and usage-after-shrink.\n\t  If usage-before-shrink \u003c\u003d usage-after-shrink, retry_count is\n\t  decremented.\n\nReported-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "14067bb3e24b96d92e22d19c18c0119edf5575e5",
      "tree": "54af97e899bf4253b170938f6711097824b7364f",
      "parents": [
        "04046e1a0a34286382e913f8fc461440c21d88e8"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamzawa.hiroyu@jp.fujitsu.com",
        "time": "Thu Apr 02 16:57:35 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:55 2009 -0700"
      },
      "message": "memcg: hierarchical stat\n\nClean up memory.stat file routine and show \"total\" hierarchical stat.\n\nThis patch does\n  - renamed get_all_zonestat to be get_local_zonestat.\n  - remove old mem_cgroup_stat_desc, which is only for per-cpu stat.\n  - add mcs_stat to cover both of per-cpu/per-lru stat.\n  - add \"total\" stat of hierarchy (*)\n  - add a callback system to scan all memcg under a root.\n\u003d\u003d \"total\" is added.\n[kamezawa@localhost ~]$ cat /opt/cgroup/xxx/memory.stat\ncache 0\nrss 0\npgpgin 0\npgpgout 0\ninactive_anon 0\nactive_anon 0\ninactive_file 0\nactive_file 0\nunevictable 0\nhierarchical_memory_limit 50331648\nhierarchical_memsw_limit 9223372036854775807\ntotal_cache 65536\ntotal_rss 192512\ntotal_pgpgin 218\ntotal_pgpgout 155\ntotal_inactive_anon 0\ntotal_active_anon 135168\ntotal_inactive_file 61440\ntotal_active_file 4096\ntotal_unevictable 0\n\u003d\u003d\n(*) maybe the user can do calc hierarchical stat by his own program\n   in userland but if it can be written in clean way, it\u0027s worth to be\n   shown, I think.\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "04046e1a0a34286382e913f8fc461440c21d88e8",
      "tree": "cab2b8a61e7474d509fbd3ea02e38b7c4137ce4b",
      "parents": [
        "b4046f00ee7c1e5615261b496cf7309683275b29"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Thu Apr 02 16:57:33 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:55 2009 -0700"
      },
      "message": "memcg: use CSS ID\n\nAssigning CSS ID for each memcg and use css_get_next() for scanning hierarchy.\n\n\tAssume folloing tree.\n\n\tgroup_A (ID\u003d3)\n\t\t/01 (ID\u003d4)\n\t\t   /0A (ID\u003d7)\n\t\t/02 (ID\u003d10)\n\tgroup_B (ID\u003d5)\n\tand task in group_A/01/0A hits limit at group_A.\n\n\treclaim will be done in following order (round-robin).\n\tgroup_A(3) -\u003e group_A/01 (4) -\u003e group_A/01/0A (7) -\u003e group_A/02(10)\n\t-\u003e group_A -\u003e .....\n\n\tRound robin by ID. The last visited cgroup is recorded and restart\n\tfrom it when it start reclaim again.\n\t(More smart algorithm can be implemented..)\n\n\tNo cgroup_mutex or hierarchy_mutex is required.\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ec64f51545fffbc4cb968f0cea56341a4b07e85a",
      "tree": "575d890a6759d81f3324fa2a22ca6ab14a41eefc",
      "parents": [
        "38460b48d06440de46b34cb778bd6c4855030754"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Thu Apr 02 16:57:26 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:54 2009 -0700"
      },
      "message": "cgroup: fix frequent -EBUSY at rmdir\n\nIn following situation, with memory subsystem,\n\n\t/groupA use_hierarchy\u003d\u003d1\n\t\t/01 some tasks\n\t\t/02 some tasks\n\t\t/03 some tasks\n\t\t/04 empty\n\nWhen tasks under 01/02/03 hit limit on /groupA, hierarchical reclaim\nis triggered and the kernel walks tree under groupA. In this case,\nrmdir /groupA/04 fails with -EBUSY frequently because of temporal\nrefcnt from the kernel.\n\nIn general. cgroup can be rmdir\u0027d if there are no children groups and\nno tasks. Frequent fails of rmdir() is not useful to users.\n(And the reason for -EBUSY is unknown to users.....in most cases)\n\nThis patch tries to modify above behavior, by\n\t- retries if css_refcnt is got by someone.\n\t- add \"return value\" to pre_destroy() and allows subsystem to\n\t  say \"we\u0027re really busy!\"\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bf6aede712334d7338d5c47a5ee5ba3883c82a61",
      "tree": "153483c5ef1de41f8dd3d233ba46117d0676c303",
      "parents": [
        "e4c2ff1cf2d7fc65d0fc6f88bc98338e0212ad52"
      ],
      "author": {
        "name": "Jean Delvare",
        "email": "khali@linux-fr.org",
        "time": "Thu Apr 02 16:56:54 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:50 2009 -0700"
      },
      "message": "workqueue: add to_delayed_work() helper function\n\nIt is a fairly common operation to have a pointer to a work and to need a\npointer to the delayed work it is contained in.  In particular, all\ndelayed works which want to rearm themselves will have to do that.  So it\nwould seem fair to offer a helper function for this operation.\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: Jean Delvare \u003ckhali@linux-fr.org\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Greg KH \u003cgreg@kroah.com\u003e\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "58984ce21d315b70df1a43644df7416ea7c9bfd8",
      "tree": "7a434bbd8866ba762e143582020e8537f27cdce0",
      "parents": [
        "417b43d4b728619e9bcc2da4fa246a6350d46667"
      ],
      "author": {
        "name": "Martin Schwidefsky",
        "email": "schwidefsky@de.ibm.com",
        "time": "Thu Apr 02 16:56:42 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:49 2009 -0700"
      },
      "message": "mm: do_xip_mapping_read: fix length calculation\n\nThe calculation of the value nr in do_xip_mapping_read is incorrect.  If\nthe copy required more than one iteration in the do while loop the copies\nvariable will be non-zero.  The maximum length that may be passed to the\ncall to copy_to_user(buf+copied, xip_mem+offset, nr) is len-copied but the\ncheck only compares against (nr \u003e len).\n\nThis bug is the cause for the heap corruption Carsten has been chasing\nfor so long:\n\n*** glibc detected *** /bin/bash: free(): invalid next size (normal): 0x00000000800e39f0 ***\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d Backtrace: \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n/lib64/libc.so.6[0x200000b9b44]\n/lib64/libc.so.6(cfree+0x8e)[0x200000bdade]\n/bin/bash(free_buffered_stream+0x32)[0x80050e4e]\n/bin/bash(close_buffered_stream+0x1c)[0x80050ea4]\n/bin/bash(unset_bash_input+0x2a)[0x8001c366]\n/bin/bash(make_child+0x1d4)[0x8004115c]\n/bin/bash[0x8002fc3c]\n/bin/bash(execute_command_internal+0x656)[0x8003048e]\n/bin/bash(execute_command+0x5e)[0x80031e1e]\n/bin/bash(execute_command_internal+0x79a)[0x800305d2]\n/bin/bash(execute_command+0x5e)[0x80031e1e]\n/bin/bash(reader_loop+0x270)[0x8001efe0]\n/bin/bash(main+0x1328)[0x8001e960]\n/lib64/libc.so.6(__libc_start_main+0x100)[0x200000592a8]\n/bin/bash(clearerr+0x5e)[0x8001c092]\n\nWith this bug fix the commit 0e4a9b59282914fe057ab17027f55123964bc2e2\n\"ext2/xip: refuse to change xip flag during remount with busy inodes\" can\nbe removed again.\n\nCc: Carsten Otte \u003ccotte@de.ibm.com\u003e\nCc: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Jared Hulbert \u003cjaredeh@gmail.com\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "98f4ebb290a7dca8c48f27ec1d2cab8fa7982dad",
      "tree": "4bad1464ee372de6789e95cb18b56ce54dd3ef27",
      "parents": [
        "d2caa3c549c74d6476e2c29e13bd4d0e7d21c7fe"
      ],
      "author": {
        "name": "Anton Blanchard",
        "email": "anton@samba.org",
        "time": "Thu Apr 02 16:56:39 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:48 2009 -0700"
      },
      "message": "mm: align vmstat_work\u0027s timer\n\nEven though vmstat_work is marked deferrable, there are still benefits to\naligning it.  For certain applications we want to keep OS jitter as low as\npossible and aligning timers and work so they occur together can reduce\ntheir overall impact.\n\nSigned-off-by: Anton Blanchard \u003canton@samba.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "33e5d76979cf01e3834814fe0aea569d1d602c1a",
      "tree": "58a03e5da59db203245da10db144a4f6f61a83ba",
      "parents": [
        "5482415a5ecc0cd791a5d885cc3db8281401078f"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Apr 02 16:56:32 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:48 2009 -0700"
      },
      "message": "nommu: fix a number of issues with the per-MM VMA patch\n\nFix a number of issues with the per-MM VMA patch:\n\n (1) Make mmap_pages_allocated an atomic_long_t, just in case this is used on\n     a NOMMU system with more than 2G pages.  Makes no difference on a 32-bit\n     system.\n\n (2) Report vma-\u003evm_pgoff * PAGE_SIZE as a 64-bit value, not a 32-bit value,\n     lest it overflow.\n\n (3) Move the allocation of the vm_area_struct slab back for fork.c.\n\n (4) Use KMEM_CACHE() for both vm_area_struct and vm_region slabs.\n\n (5) Use BUG_ON() rather than if () BUG().\n\n (6) Make the default validate_nommu_regions() a static inline rather than a\n     #define.\n\n (7) Make free_page_series()\u0027s objection to pages with a refcount !\u003d 1 more\n     informative.\n\n (8) Adjust the __put_nommu_region() banner comment to indicate that the\n     semaphore must be held for writing.\n\n (9) Limit the number of warnings about munmaps of non-mmapped regions.\n\nReported-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nCc: Greg Ungerer \u003cgerg@snapgear.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ee3b4290aec03022cfb67c9adba9f1b3215245f0",
      "tree": "37130f5de4d5ccd2be4902dc3dec9ec6a371c2ed",
      "parents": [
        "833bb3046b6cb320e775ea2160ddca87d53260d5"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Thu Apr 02 16:56:30 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:48 2009 -0700"
      },
      "message": "generic debug pagealloc: build fix\n\nThis fixes a build failure with generic debug pagealloc:\n\n  mm/debug-pagealloc.c: In function \u0027set_page_poison\u0027:\n  mm/debug-pagealloc.c:8: error: \u0027struct page\u0027 has no member named \u0027debug_flags\u0027\n  mm/debug-pagealloc.c: In function \u0027clear_page_poison\u0027:\n  mm/debug-pagealloc.c:13: error: \u0027struct page\u0027 has no member named \u0027debug_flags\u0027\n  mm/debug-pagealloc.c: In function \u0027page_poison\u0027:\n  mm/debug-pagealloc.c:18: error: \u0027struct page\u0027 has no member named \u0027debug_flags\u0027\n  mm/debug-pagealloc.c: At top level:\n  mm/debug-pagealloc.c:120: error: redefinition of \u0027kernel_map_pages\u0027\n  include/linux/mm.h:1278: error: previous definition of \u0027kernel_map_pages\u0027 was here\n  mm/debug-pagealloc.c: In function \u0027kernel_map_pages\u0027:\n  mm/debug-pagealloc.c:122: error: \u0027debug_pagealloc_enabled\u0027 undeclared (first use in this function)\n\nby fixing\n\n - debug_flags should be in struct page\n - define DEBUG_PAGEALLOC config option for all architectures\n\nSigned-off-by: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nReported-by: Alexander Beregalov \u003ca.beregalov@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": "8302294f43250dc337108c51882a6007f2b1e2e0",
      "tree": "85acd4440799c46a372df9cad170fa0c21e59096",
      "parents": [
        "4fe70410d9a219dabb47328effccae7e7f2a6e26",
        "2e572895bf3203e881356a4039ab0fa428ed2639"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Apr 01 21:54:19 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Apr 02 00:49:02 2009 +0200"
      },
      "message": "Merge branch \u0027tracing/core-v2\u0027 into tracing-for-linus\n\nConflicts:\n\tinclude/linux/slub_def.h\n\tlib/Kconfig.debug\n\tmm/slob.c\n\tmm/slub.c\n"
    },
    {
      "commit": "9fab5619bdd7f84cdd22cc760778f759f9819a33",
      "tree": "4a7010f3ba43896c266032f8b287d6bd55b72c85",
      "parents": [
        "327c0e968645f2601a43f5ea7c19c7b3a5fa0a34"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Tue Mar 31 15:23:33 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 01 08:59:15 2009 -0700"
      },
      "message": "shmem: writepage directly to swap\n\nSynopsis: if shmem_writepage calls swap_writepage directly, most shmem\nswap loads benefit, and a catastrophic interaction between SLUB and some\nflash storage is avoided.\n\nshmem_writepage() has always been peculiar in making no attempt to write:\nit has just transferred a shmem page from file cache to swap cache, then\nlet that page make its way around the LRU again before being written and\nfreed.\n\nThe idea was that people use tmpfs because they want those pages to stay\nin RAM; so although we give it an overflow to swap, we should resist\nwriting too soon, giving those pages a second chance before they can be\nreclaimed.\n\nThat was always questionable, and I\u0027ve toyed with this patch for years;\nbut never had a clear justification to depart from the original design.\n\nIt became more questionable in 2.6.28, when the split LRU patches classed\nshmem and tmpfs pages as SwapBacked rather than as file_cache: that in\nitself gives them more resistance to reclaim than normal file pages.  I\nprepared this patch for 2.6.29, but the merge window arrived before I\u0027d\ncompleted gathering statistics to justify sending it in.\n\nThen while comparing SLQB against SLUB, running SLUB on a laptop I\u0027d\nhabitually used with SLAB, I found SLUB to run my tmpfs kbuild swapping\ntests five times slower than SLAB or SLQB - other machines slower too, but\nnowhere near so bad.  Simpler \"cp -a\" swapping tests showed the same.\n\nslub_max_order\u003d0 brings sanity to all, but heavy swapping is too far from\nnormal to justify such a tuning.  The crucial factor on that laptop turns\nout to be that I\u0027m using an SD card for swap.  What happens is this:\n\nBy default, SLUB uses order-2 pages for shmem_inode_cache (and many other\nfs inodes), so creating tmpfs files under memory pressure brings lumpy\nreclaim into play.  One subpage of the order is chosen from the bottom of\nthe LRU as usual, then the other three picked out from their random\npositions on the LRUs.\n\nIn a tmpfs load, many of these pages will be ones which already passed\nthrough shmem_writepage, so already have swap allocated.  And though their\noffsets on swap were probably allocated sequentially, now that the pages\nare picked off at random, their swap offsets are scattered.\n\nBut the flash storage on the SD card is very sensitive to having its\nwrites merged: once swap is written at scattered offsets, performance\nfalls apart.  Rotating disk seeks increase too, but less disastrously.\n\nSo: stop giving shmem/tmpfs pages a second pass around the LRU, write them\nout to swap as soon as their swap has been allocated.\n\nIt\u0027s surely possible to devise an artificial load which runs faster the\nold way, one whose sizing is such that the tmpfs pages on their second\npass are the ones that are wanted again, and other pages not.\n\nBut I\u0027ve not yet found such a load: on all machines, under the loads I\u0027ve\ntried, immediate swap_writepage speeds up shmem swapping: especially when\nusing the SLUB allocator (and more effectively than slub_max_order\u003d0), but\nalso with the others; and it also reduces the variance between runs.  How\nmuch faster varies widely: a factor of five is rare, 5% is common.\n\nOne load which might have suffered: imagine a swapping shmem load in a\nlimited mem_cgroup on a machine with plenty of memory.  Before 2.6.29 the\nswapcache was not charged, and such a load would have run quickest with\nthe shmem swapcache never written to swap.  But now swapcache is charged,\nso even this load benefits from shmem_writepage directly to swap.\n\nApologies for the #ifndef CONFIG_SWAP swap_writepage() stub in swap.h:\nit\u0027s silly because that will never get called; but refactoring shmem.c\nsensibly according to CONFIG_SWAP will be a separate task.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nAcked-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\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": "327c0e968645f2601a43f5ea7c19c7b3a5fa0a34",
      "tree": "acc6789c120a6d5000ceebf51e690d14c6cfcacb",
      "parents": [
        "2678958e1225f350806d90f211a3b475f64aee80"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Tue Mar 31 15:23:31 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 01 08:59:15 2009 -0700"
      },
      "message": "vmscan: fix it to take care of nodemask\n\ntry_to_free_pages() is used for the direct reclaim of up to\nSWAP_CLUSTER_MAX pages when watermarks are low.  The caller to\nalloc_pages_nodemask() can specify a nodemask of nodes that are allowed to\nbe used but this is not passed to try_to_free_pages().  This can lead to\nunnecessary reclaim of pages that are unusable by the caller and int the\nworst case lead to allocation failure as progress was not been make where\nit is needed.\n\nThis patch passes the nodemask used for alloc_pages_nodemask() to\ntry_to_free_pages().\n\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nAcked-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "88c3bd707c2552bcef93cc3724647903aece159d",
      "tree": "68c104f559854b1f5fea01ed8568584e535ac597",
      "parents": [
        "71aa653c6bfa6743d838342105ebc067145394e4"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Tue Mar 31 15:23:29 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 01 08:59:15 2009 -0700"
      },
      "message": "vmscan: print shrink_slab symbol name on negative shrinker objects\n\nWhen a shrinker has a negative number of objects to delete, the symbol\nname of the shrinker should be printed, not shrink_slab.  This also makes\nthe error message slightly more informative.\n\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "71aa653c6bfa6743d838342105ebc067145394e4",
      "tree": "9e5cadbcc897301cf3af2ebe45d44d574274a054",
      "parents": [
        "33925b25d2c00a29664f1994ab350a9bff70f7a2"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Tue Mar 31 15:23:28 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 01 08:59:15 2009 -0700"
      },
      "message": "nommu: make CONFIG_UNEVICTABLE_LRU available when CONFIG_MMU\u003dn\n\nMake CONFIG_UNEVICTABLE_LRU available when CONFIG_MMU\u003dn.  There\u0027s no logical\nreason it shouldn\u0027t be available, and it can be used for ramfs.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Greg Ungerer \u003cgerg@snapgear.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nCc: Enrik Berkhan \u003cEnrik.Berkhan@ge.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "33925b25d2c00a29664f1994ab350a9bff70f7a2",
      "tree": "fe1a0ef5cceba27664eae8f38f9e4e2a27bf1b36",
      "parents": [
        "7ca43e7564679604d86e9ed834e7bbcffd8a4a3f"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Tue Mar 31 15:23:26 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 01 08:59:14 2009 -0700"
      },
      "message": "nommu: there is no mlock() for NOMMU, so don\u0027t provide the bits\n\nThe mlock() facility does not exist for NOMMU since all mappings are\neffectively locked anyway, so we don\u0027t make the bits available when\nthey\u0027re not useful.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Greg Ungerer \u003cgerg@snapgear.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nCc: Enrik Berkhan \u003cEnrik.Berkhan@ge.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f4112de6b679d84bd9b9681c7504be7bdfb7c7d5",
      "tree": "c9a5665b31e751e1d4255b8c35a6245d5abfa3eb",
      "parents": [
        "851a039cc547b33b8139fe6d7c2bbfb158e2724e"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Tue Mar 31 15:23:25 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 01 08:59:14 2009 -0700"
      },
      "message": "mm: introduce debug_kmap_atomic\n\nx86 has debug_kmap_atomic_prot() which is error checking function for\nkmap_atomic.  It is usefull for the other architectures, although it needs\nCONFIG_TRACE_IRQFLAGS_SUPPORT.\n\nThis patch exposes it to the other architectures.\n\nSigned-off-by: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nCc: \u003clinux-arch@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c2ec175c39f62949438354f603f4aa170846aabb",
      "tree": "f2c9bf1bec2deabe2d3a5092405b027637b6ead3",
      "parents": [
        "c2fdf3a9b2d52842808a8e551b53b55dd9b45030"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Tue Mar 31 15:23:21 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 01 08:59:14 2009 -0700"
      },
      "message": "mm: page_mkwrite change prototype to match fault\n\nChange the page_mkwrite prototype to take a struct vm_fault, and return\nVM_FAULT_xxx flags.  There should be no functional change.\n\nThis makes it possible to return much more detailed error information to\nthe VM (and also can provide more information eg.  virtual_address to the\ndriver, which might be important in some special cases).\n\nThis is required for a subsequent fix.  And will also make it easier to\nmerge page_mkwrite() with fault() in future.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Chris Mason \u003cchris.mason@oracle.com\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nCc: Miklos Szeredi \u003cmiklos@szeredi.hu\u003e\nCc: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nCc: Mark Fasheh \u003cmfasheh@suse.com\u003e\nCc: Joel Becker \u003cjoel.becker@oracle.com\u003e\nCc: Artem Bityutskiy \u003cdedekind@infradead.org\u003e\nCc: Felix Blyakher \u003cfelixb@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "704503d836042d4a4c7685b7036e7de0418fbc0f",
      "tree": "218bea088f0b286981221e44d5247dab98020d30",
      "parents": [
        "6a11f75b6a17b5d9ac5025f8d048382fd1f47377"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Tue Mar 31 15:23:18 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 01 08:59:13 2009 -0700"
      },
      "message": "mm: fix proc_dointvec_userhz_jiffies \"breakage\"\n\nAddresses http://bugzilla.kernel.org/show_bug.cgi?id\u003d9838\n\nOn i386, HZ\u003d1000, jiffies_to_clock_t() converts time in a somewhat strange\nway from the user\u0027s point of view:\n\n\t# echo 500 \u003e/proc/sys/vm/dirty_writeback_centisecs\n\t# cat /proc/sys/vm/dirty_writeback_centisecs\n\t499\n\nSo, we have 5000 jiffies converted to only 499 clock ticks and reported\nback.\n\nTICK_NSEC \u003d 999848\nACTHZ \u003d 256039\n\nKeeping in-kernel variable in units passed from userspace will fix issue\nof course, but this probably won\u0027t be right for every sysctl.\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6a11f75b6a17b5d9ac5025f8d048382fd1f47377",
      "tree": "a3415cd897823975b927f89a233d2703bf97ba2b",
      "parents": [
        "610a77e04a8d9fe8764dc484e2182fa251ce1cc2"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Tue Mar 31 15:23:17 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 01 08:59:13 2009 -0700"
      },
      "message": "generic debug pagealloc\n\nCONFIG_DEBUG_PAGEALLOC is now supported by x86, powerpc, sparc64, and\ns390.  This patch implements it for the rest of the architectures by\nfilling the pages with poison byte patterns after free_pages() and\nverifying the poison patterns before alloc_pages().\n\nThis generic one cannot detect invalid page accesses immediately but\ninvalid read access may cause invalid dereference by poisoned memory and\ninvalid write access can be detected after a long delay.\n\nSigned-off-by: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nCc: \u003clinux-arch@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "610a77e04a8d9fe8764dc484e2182fa251ce1cc2",
      "tree": "ec55b9b3698321c3e85cd649fa927554027c75d0",
      "parents": [
        "e2f17d9459aeccf4e013e31cbd741d6b1858eec4"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Tue Mar 31 15:23:16 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 01 08:59:13 2009 -0700"
      },
      "message": "memdup_user(): introduce\n\nI notice there are many places doing copy_from_user() which follows\nkmalloc():\n\n        dst \u003d kmalloc(len, GFP_KERNEL);\n        if (!dst)\n                return -ENOMEM;\n        if (copy_from_user(dst, src, len)) {\n\t\tkfree(dst);\n\t\treturn -EFAULT\n\t}\n\nmemdup_user() is a wrapper of the above code.  With this new function, we\ndon\u0027t have to write \u0027len\u0027 twice, which can lead to typos/mistakes.  It\nalso produces smaller code and kernel text.\n\nA quick grep shows 250+ places where memdup_user() *may* be used.  I\u0027ll\nprepare a patchset to do this conversion.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Americo Wang \u003cxiyou.wangcong@gmail.com\u003e\nCc: Alexey Dobriyan \u003cadobriyan@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": "e2f17d9459aeccf4e013e31cbd741d6b1858eec4",
      "tree": "919fb245d700a04d253247e19db0b084454b20cc",
      "parents": [
        "d1d7487173eab8352125cf6cc271940f24254bd4"
      ],
      "author": {
        "name": "Roel Kluin",
        "email": "roel.kluin@gmail.com",
        "time": "Tue Mar 31 15:23:15 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 01 08:59:13 2009 -0700"
      },
      "message": "hugetlb: chg cannot become less than 0\n\nchg is unsigned, so it cannot be less than 0.\n\nAlso, since region_chg returns long, let vma_needs_reservation() forward\nthis to alloc_huge_page().  Store it as long as well.  all callers cast it\nto long anyway.\n\nSigned-off-by: Roel Kluin \u003croel.kluin@gmail.com\u003e\nCc: Andy Whitcroft \u003capw@shadowen.org\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Adam Litke \u003cagl@us.ibm.com\u003e\nCc: Johannes Weiner \u003channes@saeurebad.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d1d7487173eab8352125cf6cc271940f24254bd4",
      "tree": "07de142c03385f05beac342ee1c4b93b236445c5",
      "parents": [
        "ad1c3544d0a85da7738ce8cff6f8a148da57935c"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Tue Mar 31 15:23:14 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 01 08:59:13 2009 -0700"
      },
      "message": "mm: remove pagevec_swap_free()\n\npagevec_swap_free() is now unused.\n\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nAcked-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ad1c3544d0a85da7738ce8cff6f8a148da57935c",
      "tree": "f1ac66e22e172945f200f1b2fd9a2ece23a0880b",
      "parents": [
        "2443462b0a04ef0f82ad48f4fd0ef4ac5b24c4b7"
      ],
      "author": {
        "name": "Johannes Weiner",
        "email": "hannes@cmpxchg.org",
        "time": "Tue Mar 31 15:23:13 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 01 08:59:13 2009 -0700"
      },
      "message": "mm: don\u0027t free swap slots on page deactivation\n\nThe pagevec_swap_free() at the end of shrink_active_list() was introduced\nin 68a22394 \"vmscan: free swap space on swap-in/activation\" when\nshrink_active_list() was still rotating referenced active pages.\n\nIn 7e9cd48 \"vmscan: fix pagecache reclaim referenced bit check\" this was\nchanged, the rotating removed but the pagevec_swap_free() after the\nrotation loop was forgotten, applying now to the pagevec of the\ndeactivation loop instead.\n\nNow swap space is freed for deactivated pages.  And only for those that\nhappen to be on the pagevec after the deactivation loop.\n\nComplete 7e9cd48 and remove the rest of the swap freeing.\n\nSigned-off-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2443462b0a04ef0f82ad48f4fd0ef4ac5b24c4b7",
      "tree": "3be4cdc338bf004f7b8c6c70baf7fb78ad252844",
      "parents": [
        "2584e517320bd48dc8d20e38a2621a2dbe58fade"
      ],
      "author": {
        "name": "Johannes Weiner",
        "email": "hannes@cmpxchg.org",
        "time": "Tue Mar 31 15:23:12 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 01 08:59:13 2009 -0700"
      },
      "message": "mm: move pagevec stripping to save unlock-relock\n\nIn shrink_active_list() after the deactivation loop, we strip buffer heads\nfrom the potentially remaining pages in the pagevec.\n\nCurrently, this drops the zone\u0027s lru lock for stripping, only to reacquire\nit again afterwards to update statistics.\n\nIt is not necessary to strip the pages before updating the stats, so move\nthe whole thing out of the protected region and save the extra locking.\n\nSigned-off-by: Johannes Weiner \u003channes@cmpxchg.org\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": "e3a7cca1ef4c1af9b0acef9bd66eff6582a737b5",
      "tree": "717097ec82ce0de55e44b2fe3e35fa041e5169b2",
      "parents": [
        "bd2f6199cf9af472aeefa1b642c9f504f19e6008"
      ],
      "author": {
        "name": "Edward Shishkin",
        "email": "edward.shishkin@gmail.com",
        "time": "Tue Mar 31 15:19:39 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 01 08:59:12 2009 -0700"
      },
      "message": "vfs: add/use account_page_dirtied()\n\nAdd a helper function account_page_dirtied().  Use that from two\ncallsites.  reiser4 adds a function which adds a third callsite.\n\nSigned-off-by: Edward Shishkin\u003cedward.shishkin@gmail.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bd2f6199cf9af472aeefa1b642c9f504f19e6008",
      "tree": "ba8cd5e7d940bcac161e28872998f86a2910362b",
      "parents": [
        "bd775c42ea5f7c766d03a287083837cf05e7e738"
      ],
      "author": {
        "name": "Johannes Weiner",
        "email": "hannes@cmpxchg.org",
        "time": "Tue Mar 31 15:19:38 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 01 08:59:12 2009 -0700"
      },
      "message": "vmscan: respect higher order in zone_reclaim()\n\nDuring page allocation, there are two stages of direct reclaim that are\napplied to each zone in the preferred list.  The first stage using\nzone_reclaim() reclaims unmapped file backed pages and slab pages if over\ndefined limits as these are cheaper to reclaim.  The caller specifies the\norder of the target allocation but the scan control is not being correctly\ninitialised.\n\nThe impact is that the correct number of pages are being reclaimed but\nthat lumpy reclaim is not being applied.  This increases the chances of a\nfull direct reclaim via try_to_free_pages() is required.\n\nThis patch initialises the order field of the scan control as requested by\nthe caller.\n\n[mel@csn.ul.ie: rewrote changelog]\nSigned-off-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nAcked-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Andy Whitcroft \u003capw@shadowen.org\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bd775c42ea5f7c766d03a287083837cf05e7e738",
      "tree": "40084f399068bed56c3061afd5e1175c679160df",
      "parents": [
        "9786bf841da57fac3457a1dac41acb4c1f2eced6"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Tue Mar 31 15:19:37 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 01 08:59:12 2009 -0700"
      },
      "message": "mm: add comment why mark_page_accessed() would be better than pte_mkyoung() in follow_page()\n\nAt first look, mark_page_accessed() in follow_page() seems a bit strange.\nIt seems pte_mkyoung() would be better consistent with other kernel code.\n\nHowever, it is intentional. The commit log said:\n\n    ------------------------------------------------\n    commit 9e45f61d69be9024a2e6bef3831fb04d90fac7a8\n    Author: akpm \u003cakpm\u003e\n    Date:   Fri Aug 15 07:24:59 2003 +0000\n\n    [PATCH] Use mark_page_accessed() in follow_page()\n\n    Touching a page via follow_page() counts as a reference so we should be\n    either setting the referenced bit in the pte or running mark_page_accessed().\n\n    Altering the pte is tricky because we haven\u0027t implemented an atomic\n    pte_mkyoung().  And mark_page_accessed() is better anyway because it has more\n    aging state: it can move the page onto the active list.\n\n    BKrev: 3f3c8acbplT8FbwBVGtth7QmnqWkIw\n    ------------------------------------------------\n\nThe atomic issue is still true nowadays. adding comment help to understand\ncode intention and it would be better.\n\n[akpm@linux-foundation.org: clarify text]\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: Nick Piggin \u003cnpiggin@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": "9786bf841da57fac3457a1dac41acb4c1f2eced6",
      "tree": "763cb1dd3f6a3c4faf1c31b44ad2e7bef0d206d2",
      "parents": [
        "d979677c4c02f0a72db5a03ecd8184bd9d6695c8"
      ],
      "author": {
        "name": "Johannes Weiner",
        "email": "hannes@cmpxchg.org",
        "time": "Tue Mar 31 15:19:35 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 01 08:59:12 2009 -0700"
      },
      "message": "vmscan: clip swap_cluster_max in shrink_all_memory()\n\nshrink_inactive_list() scans in sc-\u003eswap_cluster_max chunks until it hits\nthe scan limit it was passed.\n\nshrink_inactive_list()\n{\n\tdo {\n\t\tisolate_pages(swap_cluster_max)\n\t\tshrink_page_list()\n\t} while (nr_scanned \u003c max_scan);\n}\n\nThis assumes that swap_cluster_max is not bigger than the scan limit\nbecause the latter is checked only after at least one iteration.\n\nIn shrink_all_memory() sc-\u003eswap_cluster_max is initialized to the overall\nreclaim goal in the beginning but not decreased while reclaim is making\nprogress which leads to subsequent calls to shrink_inactive_list()\nreclaiming way too much in the one iteration that is done unconditionally.\n\nSet sc-\u003eswap_cluster_max always to the proper goal before doing\n  shrink_all_zones()\n    shrink_list()\n      shrink_inactive_list().\n\nWhile the current shrink_all_memory() happily reclaims more than actually\nrequested, this patch fixes it to never exceed the goal:\n\nunpatched\n   wanted\u003d10000 reclaimed\u003d13356\n   wanted\u003d10000 reclaimed\u003d19711\n   wanted\u003d10000 reclaimed\u003d10289\n   wanted\u003d10000 reclaimed\u003d17306\n   wanted\u003d10000 reclaimed\u003d10700\n   wanted\u003d10000 reclaimed\u003d10004\n   wanted\u003d10000 reclaimed\u003d13301\n   wanted\u003d10000 reclaimed\u003d10976\n   wanted\u003d10000 reclaimed\u003d10605\n   wanted\u003d10000 reclaimed\u003d10088\n   wanted\u003d10000 reclaimed\u003d15000\n\npatched\n   wanted\u003d10000 reclaimed\u003d10000\n   wanted\u003d10000 reclaimed\u003d9599\n   wanted\u003d10000 reclaimed\u003d8476\n   wanted\u003d10000 reclaimed\u003d8326\n   wanted\u003d10000 reclaimed\u003d10000\n   wanted\u003d10000 reclaimed\u003d10000\n   wanted\u003d10000 reclaimed\u003d9919\n   wanted\u003d10000 reclaimed\u003d10000\n   wanted\u003d10000 reclaimed\u003d10000\n   wanted\u003d10000 reclaimed\u003d10000\n   wanted\u003d10000 reclaimed\u003d10000\n   wanted\u003d10000 reclaimed\u003d9624\n   wanted\u003d10000 reclaimed\u003d10000\n   wanted\u003d10000 reclaimed\u003d10000\n   wanted\u003d8500 reclaimed\u003d8092\n   wanted\u003d316 reclaimed\u003d316\n\nSigned-off-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nReviewed-by: MinChan Kim \u003cminchan.kim@gmail.com\u003e\nAcked-by: Nigel Cunningham \u003cncunningham@crca.org.au\u003e\nAcked-by: \"Rafael J. Wysocki\" \u003crjw@sisk.pl\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d979677c4c02f0a72db5a03ecd8184bd9d6695c8",
      "tree": "370c936bb17210db0db80df0e9b488c6ee5c11a1",
      "parents": [
        "0a0dd05dd7e1a800241888cbf515bf8d3dc2e59c"
      ],
      "author": {
        "name": "MinChan Kim",
        "email": "minchan.kim@gmail.com",
        "time": "Tue Mar 31 15:19:34 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 01 08:59:12 2009 -0700"
      },
      "message": "mm: shrink_all_memory(): use sc.nr_reclaimed\n\nCommit a79311c14eae4bb946a97af25f3e1b17d625985d \"vmscan: bail out of\ndirect reclaim after swap_cluster_max pages\" moved the nr_reclaimed\ncounter into the scan control to accumulate the number of all reclaimed\npages in a reclaim invocation.\n\nshrink_all_memory() can use the same mechanism. it increase code\nconsistency and redability.\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: MinChan Kim \u003cminchan.kim@gmail.com\u003e\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: \"Rafael J. Wysocki\" \u003crjw@sisk.pl\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0a0dd05dd7e1a800241888cbf515bf8d3dc2e59c",
      "tree": "1b6a4bb52465330fd106eb810f25bb631deed6c6",
      "parents": [
        "ee99c71c59f897436ec65debb99372b3146f9985"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Tue Mar 31 15:19:33 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 01 08:59:11 2009 -0700"
      },
      "message": "mm: don\u0027t call mark_page_accessed() in do_swap_page()\n\ncommit bf3f3bc5e734706730c12a323f9b2068052aa1f0 (mm: don\u0027t\nmark_page_accessed in fault path) only remove the mark_page_accessed() in\nfilemap_fault().\n\nTherefore, swap-backed pages and file-backed pages have inconsistent\nbehavior.  mark_page_accessed() should be removed from do_swap_page().\n\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ee99c71c59f897436ec65debb99372b3146f9985",
      "tree": "051f1c43b7c7658689d4b2c23b3d8585d6464a89",
      "parents": [
        "a6dc60f8975ad96d162915e07703a4439c80dcf0"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Tue Mar 31 15:19:31 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 01 08:59:11 2009 -0700"
      },
      "message": "mm: introduce for_each_populated_zone() macro\n\nImpact: cleanup\n\nIn almost cases, for_each_zone() is used with populated_zone().  It\u0027s\nbecause almost function doesn\u0027t need memoryless node information.\nTherefore, for_each_populated_zone() can help to make code simplify.\n\nThis patch has no functional change.\n\n[akpm@linux-foundation.org: small cleanup]\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nReviewed-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a6dc60f8975ad96d162915e07703a4439c80dcf0",
      "tree": "b28cae1e69e85e87d6991dbbb199bfe73fb433af",
      "parents": [
        "9de1581e75ba9d7979766d4ab6d56f0f2d87f7c6"
      ],
      "author": {
        "name": "Johannes Weiner",
        "email": "hannes@cmpxchg.org",
        "time": "Tue Mar 31 15:19:30 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 01 08:59:11 2009 -0700"
      },
      "message": "vmscan: rename sc.may_swap to may_unmap\n\nsc.may_swap does not only influence reclaiming of anon pages but pages\nmapped into pagetables in general, which also includes mapped file pages.\n\nIn shrink_page_list():\n\n\t\tif (!sc-\u003emay_swap \u0026\u0026 page_mapped(page))\n\t\t\tgoto keep_locked;\n\nFor anon pages, this makes sense as they are always mapped and reclaiming\nthem always requires swapping.\n\nBut mapped file pages are skipped here as well and it has nothing to do\nwith swapping.\n\nThe real effect of the knob is whether mapped pages are unmapped and\nreclaimed or not.  Rename it to `may_unmap\u0027 to have its name match its\nactual meaning more precisely.\n\nSigned-off-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nReviewed-by: MinChan Kim \u003cminchan.kim@gmail.com\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a12888f772dab4bf5e6f73668dc4f5f6026a7014",
      "tree": "6a6113899ff39e58993280bb831a813a43a8e1e1",
      "parents": [
        "d086817dc0d42f1be8db4138233d33e1dd16a956"
      ],
      "author": {
        "name": "Cyrill Gorcunov",
        "email": "gorcunov@gmail.com",
        "time": "Tue Mar 31 15:19:27 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 01 08:59:11 2009 -0700"
      },
      "message": "oom_kill: don\u0027t call for int_sqrt(0)\n\nThere is no need to call for int_sqrt if argument is 0.\n\nSigned-off-by: Cyrill Gorcunov \u003cgorcunov@openvz.org\u003e\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nAcked-by: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d086817dc0d42f1be8db4138233d33e1dd16a956",
      "tree": "de5dfc0e262b78e625d88309b0ab5c8f94ed8320",
      "parents": [
        "ef161a9863b045909142daea9490b067997f3dc5"
      ],
      "author": {
        "name": "MinChan Kim",
        "email": "minchan.kim@gmail.com",
        "time": "Tue Mar 31 15:19:26 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 01 08:59:11 2009 -0700"
      },
      "message": "vmap: remove needless lock and list in vmap\n\nvmap\u0027s dirty_list is unused.  It\u0027s for optimizing flushing.  but Nick\ndidn\u0027t write the code yet.  so, we don\u0027t need it until time as it is\nneeded.\n\nThis patch removes vmap_block\u0027s dirty_list and codes related to it.\n\nSigned-off-by: MinChan Kim \u003cminchan.kim@gmail.com\u003e\nAcked-by: Nick Piggin \u003cnpiggin@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": "ef161a9863b045909142daea9490b067997f3dc5",
      "tree": "2cf6aa8a617110c7680978b8aaceea87ec6d2a3d",
      "parents": [
        "0f043a81ebe84be3576667f04fdda481609e3816"
      ],
      "author": {
        "name": "Cyrill Gorcunov",
        "email": "gorcunov@gmail.com",
        "time": "Tue Mar 31 15:19:25 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 01 08:59:11 2009 -0700"
      },
      "message": "mm: mminit_validate_memmodel_limits(): remove redundant test\n\nIn case if start_pfn overlap the upper bound no need to test end_pfn again\nsince we have it already trimmed.\n\nSigned-off-by: Cyrill Gorcunov \u003cgorcunov@openvz.org\u003e\nReviewed-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "558f6ab9106e6be701acb0257e7171df1bbccf04",
      "tree": "6e811633baeb676693c493f6c82bf785cab2771d",
      "parents": [
        "15f7176eb1cccec0a332541285ee752b935c1c85",
        "65fb0d23fcddd8697c871047b700c78817bdaa43"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Mar 31 13:33:50 2009 +1030"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Mar 31 13:33:50 2009 +1030"
      },
      "message": "Merge branch \u0027cpumask-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\nConflicts:\n\n\tarch/x86/include/asm/topology.h\n\tdrivers/oprofile/buffer_sync.c\n(Both cases: changed in Linus\u0027 tree, removed in Ingo\u0027s).\n"
    },
    {
      "commit": "d17abcd5417d84cfa8a225160481203a37dc81d4",
      "tree": "74ce2c425c5c6550acec90bc92c8a3f735f0d257",
      "parents": [
        "db6f204019380c788f1de06ee937bdbccd60e5c0",
        "bb75efddeaca89f8a67fd82cdcbaaf436cf17ca9"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 30 18:00:26 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 30 18:00:26 2009 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-cpumask\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-cpumask:\n  oprofile: Thou shalt not call __exit functions from __init functions\n  cpumask: remove the now-obsoleted pcibus_to_cpumask(): generic\n  cpumask: remove cpumask_t from core\n  cpumask: convert rcutorture.c\n  cpumask: use new cpumask_ functions in core code.\n  cpumask: remove references to struct irqaction\u0027s mask field.\n  cpumask: use mm_cpumask() wrapper: kernel/fork.c\n  cpumask: use set_cpu_active in init/main.c\n  cpumask: remove node_to_first_cpu\n  cpumask: fix seq_bitmap_*() functions.\n  cpumask: remove dangerous CPU_MASK_ALL_PTR, \u0026CPU_MASK_ALL\n"
    },
    {
      "commit": "c4e1aa67ed9e4e542a064bc271ddbf152b677e91",
      "tree": "2a2ca00bed0fc22b4eb83db092c9178868d8f76b",
      "parents": [
        "cf2f7d7c90279cdbc12429de278f3d27ac2050ae",
        "2f8501815256af8498904e68bd0984b1afffd6f8"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 30 17:17:35 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 30 17:17:35 2009 -0700"
      },
      "message": "Merge branch \u0027locking-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027locking-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (33 commits)\n  lockdep: fix deadlock in lockdep_trace_alloc\n  lockdep: annotate reclaim context (__GFP_NOFS), fix SLOB\n  lockdep: annotate reclaim context (__GFP_NOFS), fix\n  lockdep: build fix for !PROVE_LOCKING\n  lockstat: warn about disabled lock debugging\n  lockdep: use stringify.h\n  lockdep: simplify check_prev_add_irq()\n  lockdep: get_user_chars() redo\n  lockdep: simplify get_user_chars()\n  lockdep: add comments to mark_lock_irq()\n  lockdep: remove macro usage from mark_held_locks()\n  lockdep: fully reduce mark_lock_irq()\n  lockdep: merge the !_READ mark_lock_irq() helpers\n  lockdep: merge the _READ mark_lock_irq() helpers\n  lockdep: simplify mark_lock_irq() helpers #3\n  lockdep: further simplify mark_lock_irq() helpers\n  lockdep: simplify the mark_lock_irq() helpers\n  lockdep: split up mark_lock_irq()\n  lockdep: generate usage strings\n  lockdep: generate the state bit definitions\n  ...\n"
    },
    {
      "commit": "548c316137901cc81dea35e26362a9d5ba0b89b6",
      "tree": "cc344e2c3edbb83d20e303c803d0a7289e81cd0f",
      "parents": [
        "f80d2d7725b04f8225b11b55e43bb2c77c819926"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Mar 31 00:25:23 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Mar 31 00:25:23 2009 +0200"
      },
      "message": "tracing, Text Edit Lock: cleanup\n\nRemove incorrectly introduced headers.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "65fb0d23fcddd8697c871047b700c78817bdaa43",
      "tree": "119e6e5f276622c4c862f6c9b6d795264ba1603a",
      "parents": [
        "8c083f081d0014057901c68a0a3e0f8ca7ac8d23",
        "dfbbe89e197a77f2c8046a51c74e33e35f878080"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Mar 30 23:53:32 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Mar 30 23:53:32 2009 +0200"
      },
      "message": "Merge branch \u0027linus\u0027 into cpumask-for-linus\n\nConflicts:\n\tarch/x86/kernel/cpu/common.c\n"
    },
    {
      "commit": "19cefdffbfe0f7e280f21e80875937e8700e99e2",
      "tree": "7a82d84609af22469d3f96d371d14b7dcf65d1f2",
      "parents": [
        "6700ec65c207068a81a535e9dca616fefac21671"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Mar 15 06:03:11 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Mar 30 22:59:44 2009 +0200"
      },
      "message": "lockdep: annotate reclaim context (__GFP_NOFS), fix SLOB\n\nImpact: build fix\n\nfix typo in mm/slob.c:\n\n mm/slob.c:469: error: ‘flags’ undeclared (first use in this function)\n mm/slob.c:469: error: (Each undeclared identifier is reported only once\n mm/slob.c:469: error: for each function it appears in.)\n\nCc: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c20090128135457.350751756@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "019abbc87025a030fd25008612afd4eff8a375f7",
      "tree": "6d745dedcf90ceff8f5b7b996a17f666b7c574e3",
      "parents": [
        "2d25ee36c84d5b2d6be8bfaf80256ecad69a06ca",
        "5a3c8fe7353f78b73b9636353c6f7b881f19ebea"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 30 11:38:31 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 30 11:38:31 2009 -0700"
      },
      "message": "Merge branch \u0027x86-stage-3-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027x86-stage-3-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (190 commits)\n  Revert \"cpuacct: reduce one NULL check in fast-path\"\n  Revert \"x86: don\u0027t compile vsmp_64 for 32bit\"\n  x86: Correct behaviour of irq affinity\n  x86: early_ioremap_init(), use __fix_to_virt(), because we are sure it\u0027s safe\n  x86: use default_cpu_mask_to_apicid for 64bit\n  x86: fix set_extra_move_desc calling\n  x86, PAT, PCI: Change vma prot in pci_mmap to reflect inherited prot\n  x86/dmi: fix dmi_alloc() section mismatches\n  x86: e820 fix various signedness issues in setup.c and e820.c\n  x86: apic/io_apic.c define msi_ir_chip and ir_ioapic_chip all the time\n  x86: irq.c keep CONFIG_X86_LOCAL_APIC interrupts together\n  x86: irq.c use same path for show_interrupts\n  x86: cpu/cpu.h cleanup\n  x86: Fix a couple of sparse warnings in arch/x86/kernel/apic/io_apic.c\n  Revert \"x86: create a non-zero sized bm_pte only when needed\"\n  x86: pci-nommu.c cleanup\n  x86: io_delay.c cleanup\n  x86: rtc.c cleanup\n  x86: i8253 cleanup\n  x86: kdebugfs.c cleanup\n  ...\n"
    },
    {
      "commit": "e713a21d8251a4c91772f592af46407dfb0b2e4f",
      "tree": "a1e0140bd094ba94b964a8a8ade9396522079d61",
      "parents": [
        "e3375ac767b847127df57d186a26abf83d055982"
      ],
      "author": {
        "name": "Alexey Zaytsev",
        "email": "alexey.zaytsev@gmail.com",
        "time": "Sat Jan 10 02:47:57 2009 +0300"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Mon Mar 30 15:21:56 2009 +0200"
      },
      "message": "trivial: Fix dubious bitwise \u0027or\u0027 usage spotted by sparse.\n\nIt doesn\u0027t change the semantics, but it looks like\nthe logical \u0027or\u0027 was meant to be used here.\n\nSigned-off-by: Alexey Zaytsev \u003calexey.zaytsev@gmail.com\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "aa85ea5b89c36c51200d795dd788139bd9b8cf50",
      "tree": "0b68a35b691417d927127376beb0541d96c9cc64",
      "parents": [
        "1a8a51004a18b627ea81444201f7867875212f46"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Mon Mar 30 22:05:15 2009 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Mon Mar 30 22:05:16 2009 +1030"
      },
      "message": "cpumask: use new cpumask_ functions in core code.\n\nImpact: cleanup\n\nTime to clean up remaining laggards using the old cpu_ functions.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Trond.Myklebust@netapp.com\n"
    },
    {
      "commit": "1a2142afa5646ad5af44bbe1febaa5e0b7e71156",
      "tree": "1c76670c82adb46a7726421ad0fcba2994758964",
      "parents": [
        "0d34fb8e93ceba7b6dad0062dbb4a0813bacd75b"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Mon Mar 30 22:05:10 2009 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Mon Mar 30 22:05:11 2009 +1030"
      },
      "message": "cpumask: remove dangerous CPU_MASK_ALL_PTR, \u0026CPU_MASK_ALL\n\nImpact: cleanup\n\n(Thanks to Al Viro for reminding me of this, via Ingo)\n\nCPU_MASK_ALL is the (deprecated) \"all bits set\" cpumask, defined as so:\n\n\t#define CPU_MASK_ALL (cpumask_t) { { ... } }\n\nTaking the address of such a temporary is questionable at best,\nunfortunately 321a8e9d (cpumask: add CPU_MASK_ALL_PTR macro) added\nCPU_MASK_ALL_PTR:\n\n\t#define CPU_MASK_ALL_PTR (\u0026CPU_MASK_ALL)\n\nWhich formalizes this practice.  One day gcc could bite us over this\nusage (though we seem to have gotten away with it so far).\n\nSo replace everywhere which used \u0026CPU_MASK_ALL or CPU_MASK_ALL_PTR\nwith the modern \"cpu_all_mask\" (a real const struct cpumask *).\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nReported-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Mike Travis \u003ctravis@sgi.com\u003e\n"
    },
    {
      "commit": "3fab191002b184e4390aa07c7149c6cc7b638ec7",
      "tree": "821382d49e47c19531bfc3bb9e1f8922486374d4",
      "parents": [
        "93394a761d78503f11d05b1a7b23d5a9ccc8dad2",
        "7c730ccdc1188b97f5c8cb690906242c7ed75c22"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Mar 28 22:27:45 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Mar 28 22:27:45 2009 +0100"
      },
      "message": "Merge branch \u0027linus\u0027 into x86/core\n"
    },
    {
      "commit": "0fe41b8982001cd14ee2c77cd776735a5024e98b",
      "tree": "83e65d595c413d55259ea14fb97748ce5efe5707",
      "parents": [
        "eedf2c5296a8dfaaf9aec1a938c1d3bd73159a30",
        "9759d22c8348343b0da4e25d6150c41712686c14"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 28 14:03:14 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 28 14:03:14 2009 -0700"
      },
      "message": "Merge branch \u0027devel\u0027 of master.kernel.org:/home/rmk/linux-2.6-arm\n\n* \u0027devel\u0027 of master.kernel.org:/home/rmk/linux-2.6-arm: (422 commits)\n  [ARM] 5435/1: fix compile warning in sanity_check_meminfo()\n  [ARM] 5434/1: ARM: OMAP: Fix mailbox compile for 24xx\n  [ARM] pxa: fix the bad assumption that PCMCIA sockets always start with 0\n  [ARM] pxa: fix Colibri PXA300 and PXA320 LCD backlight pins\n  imxfb: Fix TFT mode\n  i.MX21/27: remove ifdef CONFIG_FB_IMX\n  imxfb: add clock support\n  mxc: add arch_reset() function\n  clkdev: add possibility to get a clock based on the device name\n  i.MX1: remove fb support from mach-imx\n  [ARM] pxa: build arch/arm/plat-pxa/mfp.c only when PXA3xx or ARCH_MMP defined\n  Gemini: Add support for Teltonika RUT100\n  Gemini: gpiolib based GPIO support v2\n  MAINTAINERS: add myself as Gemini architecture maintainer\n  ARM: Add Gemini architecture v3\n  [ARM] OMAP: Fix compile for omap2_init_common_hw()\n  MAINTAINERS: Add myself as Faraday ARM core variant maintainer\n  ARM: Add support for FA526 v2\n  [ARM] acorn,ebsa110,footbridge,integrator,sa1100: Convert asm/io.h to linux/io.h\n  [ARM] collie: fix two minor formatting nits\n  ...\n"
    },
    {
      "commit": "ed40d0c472b136682b2fcba05f89762859c7374f",
      "tree": "076b83a26bcd63d6158463735dd34c10bbc591dc",
      "parents": [
        "9e495834e59ca9b29f1a1f63b9f5533bb022ac49",
        "5d80f8e5a9dc9c9a94d4aeaa567e219a808b8a4a"
      ],
      "author": {
        "name": "Russell King",
        "email": "rmk@dyn-67.arm.linux.org.uk",
        "time": "Sat Mar 28 20:29:51 2009 +0000"
      },
      "committer": {
        "name": "Russell King",
        "email": "rmk+kernel@arm.linux.org.uk",
        "time": "Sat Mar 28 20:29:51 2009 +0000"
      },
      "message": "Merge branch \u0027origin\u0027 into devel\n\nConflicts:\n\tsound/soc/pxa/pxa2xx-i2s.c\n"
    },
    {
      "commit": "6e15cf04860074ad032e88c306bea656bbdd0f22",
      "tree": "c346383bb7563e8d66b2f4a502f875b259c34870",
      "parents": [
        "be0ea69674ed95e1e98cb3687a241badc756d228",
        "60db56422043aaa455ac7f858ce23c273220f9d9"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Mar 26 21:39:17 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Mar 27 17:28:43 2009 +0100"
      },
      "message": "Merge branch \u0027core/percpu\u0027 into percpu-cpumask-x86-for-linus-2\n\nConflicts:\n\tarch/parisc/kernel/irq.c\n\tarch/x86/include/asm/fixmap_64.h\n\tarch/x86/include/asm/setup.h\n\tkernel/irq/handle.c\n\nSemantic merge:\n        arch/x86/include/asm/fixmap.h\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "be0ea69674ed95e1e98cb3687a241badc756d228",
      "tree": "36d0db8fe389d65bbc8c7aa5be0e61b066f9536a",
      "parents": [
        "4496d937a518fde0d0e1980e4ab470cedb4b50cd",
        "15a5b0a4912d98a9615ef457c7bde8d08195a771"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 26 16:18:17 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 26 16:18:17 2009 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/penberg/slab-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/penberg/slab-2.6:\n  slob: fix lockup in slob_free()\n  slub: use get_track()\n  slub: rename calculate_min_partial() to set_min_partial()\n  slub: add min_partial sysfs tunable\n  slub: move min_partial to struct kmem_cache\n  SLUB: Fix default slab order for big object sizes\n  SLUB: Do not pass 8k objects through to the page allocator\n  SLUB: Introduce and use SLUB_MAX_SIZE and SLUB_PAGE_SHIFT constants\n  slob: clean up the code\n  SLUB: Use -\u003eobjsize from struct kmem_cache_cpu in slab_free()\n"
    },
    {
      "commit": "86d9c070175de65890794fa227b68297da6206d8",
      "tree": "1aa4f1d1ecf397bd0d745a67b9d828420a99a8b4",
      "parents": [
        "413e3376485e6cf81f4cf6a4dbc0de0326535093",
        "a2a9537ac0b37a5da6fbe7e1e9cb06c524d2a9c4"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 26 16:03:04 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 26 16:03:04 2009 -0700"
      },
      "message": "Merge branch \u0027for-2.6.30\u0027 of git://git.kernel.dk/linux-2.6-block\n\n* \u0027for-2.6.30\u0027 of git://git.kernel.dk/linux-2.6-block:\n  Get rid of pdflush_operation() in emergency sync and remount\n  btrfs: get rid of current_is_pdflush() in btrfs_btree_balance_dirty\n  Move the default_backing_dev_info out of readahead.c and into backing-dev.c\n  block: Repeated lines in switching-sched.txt\n  bsg: Remove bogus check against request_queue-\u003emax_sectors\n  block: WARN in __blk_put_request() for potential bio leak\n  loop: fix circular locking in loop_clr_fd()\n  loop: support barrier writes\n  bsg: add support for tail queuing\n  cpqarray: enable bus mastering\n  block: genhd.h cleanup patch\n  block: add private bio_set for bio integrity allocations\n  block: genhd.h comment needs updating\n  block: get rid of unused blkdev_free_rq() define\n  block: remove various blk_queue_*() setting functions in blk_init_queue_node()\n  cciss: add BUILD_BUG_ON() for catching bad CommandList_struct alignment\n  block: don\u0027t create bio_vec slabs of less than the inline number\n  block: cleanup bio_alloc_bioset()\n"
    },
    {
      "commit": "8d80ce80e1d58ba9cd3e3972b112cccd6b4008f4",
      "tree": "16d3cca8d260c731d02a4e5e1ea5b9817c9c3626",
      "parents": [
        "1646df40bb111715a90ce0b86448dabbcc5b3f3d",
        "703a3cd72817e99201cef84a8a7aecc60b2b3581"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 26 11:03:39 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 26 11:03:39 2009 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/security-testing-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/security-testing-2.6: (71 commits)\n  SELinux: inode_doinit_with_dentry drop no dentry printk\n  SELinux: new permission between tty audit and audit socket\n  SELinux: open perm for sock files\n  smack: fixes for unlabeled host support\n  keys: make procfiles per-user-namespace\n  keys: skip keys from another user namespace\n  keys: consider user namespace in key_permission\n  keys: distinguish per-uid keys in different namespaces\n  integrity: ima iint radix_tree_lookup locking fix\n  TOMOYO: Do not call tomoyo_realpath_init unless registered.\n  integrity: ima scatterlist bug fix\n  smack: fix lots of kernel-doc notation\n  TOMOYO: Don\u0027t create securityfs entries unless registered.\n  TOMOYO: Fix exception policy read failure.\n  SELinux: convert the avc cache hash list to an hlist\n  SELinux: code readability with avc_cache\n  SELinux: remove unused av.decided field\n  SELinux: more careful use of avd in avc_has_perm_noaudit\n  SELinux: remove the unused ae.used\n  SELinux: check seqno when updating an avc_node\n  ...\n"
    },
    {
      "commit": "1b5e62b42b55c509eea04c3c0f25e42c8b35b564",
      "tree": "be5d783ec67610445828e496706f1e02c74671c1",
      "parents": [
        "0a1c01c9477602ee8b44548a9405b2c1d587b5a2"
      ],
      "author": {
        "name": "Wu Fengguang",
        "email": "fengguang.wu@intel.com",
        "time": "Mon Mar 23 08:57:38 2009 +0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 26 11:01:11 2009 -0700"
      },
      "message": "writeback: double the dirty thresholds\n\nEnlarge default dirty ratios from 5/10 to 10/20.  This fixes [Bug\n#12809] iozone regression with 2.6.29-rc6.\n\nThe iozone benchmarks are performed on a 1200M file, with 8GB ram.\n\n  iozone -i 0 -i 1 -i 2 -i 3 -i 4 -r 4k -s 64k -s 512m -s 1200m -b tmp.xls\n  iozone -B -r 4k -s 64k -s 512m -s 1200m -b tmp.xls\n\nThe performance regression is triggered by commit 1cf6e7d83bf3(mm: task\ndirty accounting fix), which makes more correct/thorough dirty\naccounting.\n\nThe default 5/10 dirty ratios were picked (a) with the old dirty logic\nand (b) largely at random and (c) designed to be aggressive.  In\nparticular, that (a) means that having fixed some of the dirty\naccounting, maybe the real bug is now that it was always too aggressive,\njust hidden by an accounting issue.\n\nThe enlarged 10/20 dirty ratios are just about enough to fix the regression.\n\n[ We will have to look at how this affects the old fsync() latency issue,\n  but that probably will need independent work.  - Linus ]\n\nCc: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nReported-by: \"Lin, Ming M\" \u003cming.m.lin@intel.com\u003e\nTested-by: \"Lin, Ming M\" \u003cming.m.lin@intel.com\u003e\nSigned-off-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "26160158d3d3df548f4ee046cc6147fe048cfa9c",
      "tree": "19affc0b08f00ac22e8881d6ec73061a8764cc5d",
      "parents": [
        "07e86f405addc6436eb969b8279bb14a6dcacce4"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Mar 17 09:35:06 2009 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Mar 26 11:01:33 2009 +0100"
      },
      "message": "Move the default_backing_dev_info out of readahead.c and into backing-dev.c\n\nIt really makes no sense to have it in readahead.c, so move it where\nit belongs.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "8937b7349ca9e25a02b2a72ccb7fba404ddedc5b",
      "tree": "434ffe23d318f8af55850a26c3431ce8b82ab6f4",
      "parents": [
        "997302259f386bca8fe1db67c50296ca426c438f",
        "ffe7f95bb1a4d1e9ca5d252445dc38476e1a208e"
      ],
      "author": {
        "name": "Russell King",
        "email": "rmk@dyn-67.arm.linux.org.uk",
        "time": "Wed Mar 25 18:31:35 2009 +0000"
      },
      "committer": {
        "name": "Russell King",
        "email": "rmk+kernel@arm.linux.org.uk",
        "time": "Wed Mar 25 18:31:35 2009 +0000"
      },
      "message": "Merge branch \u0027for-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap-2.6 into devel\n"
    },
    {
      "commit": "15a5b0a4912d98a9615ef457c7bde8d08195a771",
      "tree": "8a1b974d95acdc5a5c9cc96b9a5772f6b20bafda",
      "parents": [
        "8e0ee43bc2c3e19db56a4adaa9a9b04ce885cd84",
        "6e9ed0cc4b963fde66ab47d9fb19147631e44555",
        "6fb8f424393025674fde7869b59f485d1e352182",
        "c0bdb232b23b51c23e551041510ad6bea5ce5a92",
        "1a00df4a2cc001dd9f45890e690548c24b2fa2d9",
        "e8120ff1ffc51102ead1f4c98a3fd5d26fefc722"
      ],
      "author": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Tue Mar 24 10:25:21 2009 +0200"
      },
      "committer": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Tue Mar 24 10:25:21 2009 +0200"
      },
      "message": "Merge branches \u0027topic/slob/cleanups\u0027, \u0027topic/slob/fixes\u0027, \u0027topic/slub/core\u0027, \u0027topic/slub/cleanups\u0027 and \u0027topic/slub/perf\u0027 into for-linus\n"
    },
    {
      "commit": "703a3cd72817e99201cef84a8a7aecc60b2b3581",
      "tree": "3e943755178ff410694722bb031f523136fbc432",
      "parents": [
        "df7f54c012b92ec93d56b68547351dcdf8a163d3",
        "8e0ee43bc2c3e19db56a4adaa9a9b04ce885cd84"
      ],
      "author": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Tue Mar 24 10:52:46 2009 +1100"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Tue Mar 24 10:52:46 2009 +1100"
      },
      "message": "Merge branch \u0027master\u0027 into next\n"
    },
    {
      "commit": "6fb8f424393025674fde7869b59f485d1e352182",
      "tree": "1ba7de5a6c9cba9cf3c3e57b2355b56cb5eb670f",
      "parents": [
        "b578f3fcca1e78624dfb5f358776e63711d7fda2"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "nickpiggin@yahoo.com.au",
        "time": "Mon Mar 16 21:00:28 2009 +1100"
      },
      "committer": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Mon Mar 23 10:40:45 2009 +0200"
      },
      "message": "slob: fix lockup in slob_free()\n\nDon\u0027t hold SLOB lock when freeing the page. Reduces lock hold width. See\nthe following thread for discussion of the bug:\n\n  http://marc.info/?l\u003dlinux-kernel\u0026m\u003d123709983214143\u0026w\u003d2\n\nReported-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nAcked-by: Matt Mackall \u003cmpm@selenic.com\u003e\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\n"
    },
    {
      "commit": "1a00df4a2cc001dd9f45890e690548c24b2fa2d9",
      "tree": "40137bca1657f6a9e9e10ff004d8ec6b3d6b39f2",
      "parents": [
        "6047a007d0f6b7395cd158f3bdda34ab39a48821"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Sat Mar 07 00:36:21 2009 +0900"
      },
      "committer": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Mon Mar 23 09:43:52 2009 +0200"
      },
      "message": "slub: use get_track()\n\nUse get_track() in set_track()\n\nSigned-off-by: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nSigned-off-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\n"
    },
    {
      "commit": "505f2b970b2269ce4cb669b3ff4f6479d379cec2",
      "tree": "741b9ed4752d852eb8b01dd4b4be765c9f37015e",
      "parents": [
        "22de89b371a18086162eacd9f8c960299334ab01"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Mar 20 11:05:04 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Mar 20 11:09:27 2009 +0100"
      },
      "message": "tracing, Text Edit Lock - kprobes architecture independent support, nommu fix\n\nImpact: build fix on SH !CONFIG_MMU\n\nStephen Rothwell reported this linux-next build failure on the SH\narchitecture:\n\n  kernel/built-in.o: In function `disable_all_kprobes\u0027:\n  kernel/kprobes.c:1382: undefined reference to `text_mutex\u0027\n  [...]\n\nAnd observed:\n\n| Introduced by commit 4460fdad85becd569f11501ad5b91814814335ff (\"tracing,\n| Text Edit Lock - kprobes architecture independent support\") from the\n| tracing tree.  text_mutex is defined in mm/memory.c which is only built\n| if CONFIG_MMU is defined, which is not true for sh allmodconfig.\n\nMove this lock to kernel/extable.c (which is already home to various\nkernel text related routines), which file is always built-in.\n\nReported-by: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: Mathieu Desnoyers \u003cmathieu.desnoyers@polymtl.ca\u003e\nLKML-Reference: \u003c20090320110602.86351a91.sfr@canb.auug.org.au\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "705bb9dc72b2464a7e421ee45d5e4a3f206d5c75",
      "tree": "4ca54c86d3661b3a4ae2b63aa9ead20835a422d1",
      "parents": [
        "250981e6e1ef04947eccaa55e8c25ddcaa47a02e",
        "48f4c485c275e9550fa1a1191768689cc3ae0037",
        "f4c3c4cdb1de232ff37cf4339eb2f36c84e20da6",
        "a6b6a14e0c60561f2902b078bd28d0e61defad70",
        "0920dce7d5889634faa336f65833ee44f3b7651e",
        "4e16c888754468a58d4829c2eba2c6aa3a065e2b",
        "be721696cac9d66566d59b205ee573ecb2f7c35b",
        "0a699af8e613a670be50245366fa18cb19ac5172",
        "42854dc0a6320ff36722749acafa0697522d9556",
        "2c74d66624ddbda8101d54d1e184cf9229b378bc",
        "ce4e240c279a31096f74afa6584a62d64a1ba8c8",
        "ee568b25ee9e160b32d1aef73d8b2ee9c05d34db"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Mar 18 13:19:49 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Mar 18 13:19:49 2009 +0100"
      },
      "message": "Merge branches \u0027x86/cleanups\u0027, \u0027x86/cpu\u0027, \u0027x86/debug\u0027, \u0027x86/mce2\u0027, \u0027x86/mm\u0027, \u0027x86/mtrr\u0027, \u0027x86/setup\u0027, \u0027x86/setup-memory\u0027, \u0027x86/urgent\u0027, \u0027x86/uv\u0027, \u0027x86/x2apic\u0027 and \u0027linus\u0027 into x86/core\n\nConflicts:\n\tarch/parisc/kernel/irq.c\n"
    },
    {
      "commit": "7243f2145a9b06e5cf9a49fc9b8b9a4fff6fb42e",
      "tree": "50b73e168e0e8b711d5e1ca8878389464d6c905c",
      "parents": [
        "b478b782e110fdb4135caa3062b6d687e989d994",
        "62395efdb0ef42e664ca81677901268c403a6286",
        "5bee17f18b595937e6beafeee5197868a3f74a06"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Mar 16 09:12:42 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Mar 16 09:12:42 2009 +0100"
      },
      "message": "Merge branches \u0027tracing/ftrace\u0027, \u0027tracing/syscalls\u0027 and \u0027linus\u0027 into tracing/core\n\nConflicts:\n\tarch/parisc/kernel/irq.c\n"
    },
    {
      "commit": "3297e760776af18a26bf30046cbaaae2e730c5c2",
      "tree": "2ccbafb9aade478d6ad351cd6ecb80298f5a7e8a",
      "parents": [
        "3835f6cb645bdb9a58aa6e062fe1d5777f1a9748"
      ],
      "author": {
        "name": "Nicolas Pitre",
        "email": "nico@cam.org",
        "time": "Wed Mar 04 22:49:41 2009 -0500"
      },
      "committer": {
        "name": "Nicolas Pitre",
        "email": "nico@cam.org",
        "time": "Sun Mar 15 21:01:21 2009 -0400"
      },
      "message": "highmem: atomic highmem kmap page pinning\n\nMost ARM machines have a non IO coherent cache, meaning that the\ndma_map_*() set of functions must clean and/or invalidate the affected\nmemory manually before DMA occurs.  And because the majority of those\nmachines have a VIVT cache, the cache maintenance operations must be\nperformed using virtual\naddresses.\n\nWhen a highmem page is kunmap\u0027d, its mapping (and cache) remains in place\nin case it is kmap\u0027d again. However if dma_map_page() is then called with\nsuch a page, some cache maintenance on the remaining mapping must be\nperformed. In that case, page_address(page) is non null and we can use\nthat to synchronize the cache.\n\nIt is unlikely but still possible for kmap() to race and recycle the\nvirtual address obtained above, and use it for another page before some\non-going cache invalidation loop in dma_map_page() is done. In that case,\nthe new mapping could end up with dirty cache lines for another page,\nand the unsuspecting cache invalidation loop in dma_map_page() might\nsimply discard those dirty cache lines resulting in data loss.\n\nFor example, let\u0027s consider this sequence of events:\n\n\t- dma_map_page(..., DMA_FROM_DEVICE) is called on a highmem page.\n\n\t--\u003e\t- vaddr \u003d page_address(page) is non null. In this case\n\t\tit is likely that the page has valid cache lines\n\t\tassociated with vaddr. Remember that the cache is VIVT.\n\n\t\t--\u003e\tfor (i \u003d vaddr; i \u003c vaddr + PAGE_SIZE; i +\u003d 32)\n\t\t\t\tinvalidate_cache_line(i);\n\n\t*** preemption occurs in the middle of the loop above ***\n\n\t- kmap_high() is called for a different page.\n\n\t--\u003e\t- last_pkmap_nr wraps to zero and flush_all_zero_pkmaps()\n\t\t  is called.  The pkmap_count value for the page passed\n\t\t  to dma_map_page() above happens to be 1, so the page\n\t\t  is unmapped.  But prior to that, flush_cache_kmaps()\n\t\t  cleared the cache for it.  So far so good.\n\n\t\t- A fresh pkmap entry is assigned for this kmap request.\n\t\t  The Murphy law says this pkmap entry will eventually\n\t\t  happen to use the same vaddr as the one which used to\n\t\t  belong to the other page being processed by\n\t\t  dma_map_page() in the preempted thread above.\n\n\t- The kmap_high() caller start dirtying the cache using the\n\t  just assigned virtual mapping for its page.\n\n\t*** the first thread is rescheduled ***\n\n\t\t\t- The for(...) loop is resumed, but now cached\n\t\t\t  data belonging to a different physical page is\n\t\t\t  being discarded !\n\nAnd this is not only a preemption issue as ARM can be SMP as well,\nmaking the above scenario just as likely. Hence the need for some kind\nof pkmap page pinning which can be used in any context, primarily for\nthe benefit of dma_map_page() on ARM.\n\nThis provides the necessary interface to cope with the above issue if\nARCH_NEEDS_KMAP_HIGH_GET is defined, otherwise the resulting code is\nunchanged.\n\nSigned-off-by: Nicolas Pitre \u003cnico@marvell.com\u003e\nReviewed-by: MinChan Kim \u003cminchan.kim@gmail.com\u003e\nAcked-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1d885526f2f3fffacee2ecb541270bd00168adff",
      "tree": "0f87c5d264361fd75c628b4485ef5bf91eb0c95d",
      "parents": [
        "84814d642a4f1f294bd675ab11aae1ca54c6cedb"
      ],
      "author": {
        "name": "Daisuke Nishimura",
        "email": "nishimura@mxp.nes.nec.co.jp",
        "time": "Fri Mar 13 13:52:00 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 14 11:57:22 2009 -0700"
      },
      "message": "vmscan: pgmoved should be cleared after updating recent_rotated\n\npgmoved should be cleared after updating recent_rotated.\n\nSigned-off-by: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Lee Schermerhorn \u003cLee.Schermerhorn@hp.com\u003e\nAcked-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0ca0f16fd17c5d880dd0abbe03595b0c7c5b3c95",
      "tree": "c626c4777255f06f3035719946a3460a9bf6cb3a",
      "parents": [
        "c550033ced484d8d333bc1edc0a482728680e689",
        "7a81d9a7da03d2f27840d659f97ef140d032f609",
        "88200bc28da38bcda1cb1bd218216e83b426d8a8",
        "0f3fa48a7eaf5d1118cfda1650e8c759b2a116e4",
        "91219bcbdcccc1686b0ecce09e28825c93619c07",
        "063402356280a7b262952d6351d21315336f657b",
        "773e673de27297d07d852e7e9bfd1a695cae1da2",
        "5a8ac9d28dae5330c70562c7d7785f5104059c17",
        "16a6791934a1077609482dd6c091aa8b4c39a834",
        "895791dac6946d535991edd11341046f8e85ea77"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Mar 14 16:25:40 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Mar 14 16:25:40 2009 +0100"
      },
      "message": "Merge branches \u0027x86/apic\u0027, \u0027x86/asm\u0027, \u0027x86/cleanups\u0027, \u0027x86/debug\u0027, \u0027x86/kconfig\u0027, \u0027x86/mm\u0027, \u0027x86/ptrace\u0027, \u0027x86/setup\u0027 and \u0027x86/urgent\u0027; commit \u0027v2.6.29-rc8\u0027 into x86/core\n"
    },
    {
      "commit": "895791dac6946d535991edd11341046f8e85ea77",
      "tree": "4ad589460b0d7c039f5d5a42666c6bd572255049",
      "parents": [
        "4bb9c5c02153dfc89a6c73a6f32091413805ad7d"
      ],
      "author": {
        "name": "Pallipadi, Venkatesh",
        "email": "venkatesh.pallipadi@intel.com",
        "time": "Fri Mar 13 16:35:44 2009 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Mar 14 09:47:44 2009 +0100"
      },
      "message": "VM, x86, PAT: add a new vm flag to track full pfnmap at mmap\n\nImpact: cleanup\n\nAdd a new vm flag VM_PFN_AT_MMAP to identify a PFNMAP that is\nfully mapped with remap_pfn_range. Patch removes the overloading\nof VM_INSERTPAGE from the earlier patch.\n\nSigned-off-by: Venkatesh Pallipadi \u003cvenkatesh.pallipadi@intel.com\u003e\nSigned-off-by: Suresh Siddha \u003csuresh.b.siddha@intel.com\u003e\nAcked-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nLKML-Reference: \u003c20090313233543.GA19909@linux-os.sc.intel.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "063402356280a7b262952d6351d21315336f657b",
      "tree": "e6fae7db15d0f4cbb9b9b7aa2b5bc176b4bf60f5",
      "parents": [
        "f9a36fa5413f1b2694841c410a6fdb4666e78f16",
        "a98fe7f3425c6b4e90de16f8da63b0429a8fed08"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Mar 13 17:08:30 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Mar 13 17:08:30 2009 +0100"
      },
      "message": "Merge branch \u0027x86/core\u0027 into x86/kconfig\n"
    }
  ],
  "next": "238a5b4bff2e0929a9ceb41f340137f36a6a75d9"
}
