)]}'
{
  "log": [
    {
      "commit": "5e549e989f94de0596b8149a90e0088e7d4d7c97",
      "tree": "2a20fdb475ea0320310a4a770da72cd54ea9347f",
      "parents": [
        "ff36b801624d02a876bb7deded6ab860ea3503f2"
      ],
      "author": {
        "name": "Andrea Arcangeli",
        "email": "aarcange@redhat.com",
        "time": "Mon Aug 09 17:19:07 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 09 20:44:58 2010 -0700"
      },
      "message": "mmap: remove unnecessary lock from __vma_link\n\nThere\u0027s no anon-vma related mangling happening inside __vma_link anymore\nso no need of anon_vma locking there.\n\nSigned-off-by: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nSigned-off-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": "ff36b801624d02a876bb7deded6ab860ea3503f2",
      "tree": "a3f44d01de629234d70ad6211b9fd73fd705a76c",
      "parents": [
        "7e496299d4d2ad8083effed6c5a18313a919edc6"
      ],
      "author": {
        "name": "Shaohua Li",
        "email": "shaohua.li@intel.com",
        "time": "Mon Aug 09 17:19:06 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 09 20:44:58 2010 -0700"
      },
      "message": "shmem: reduce pagefault lock contention\n\nI\u0027m running a shmem pagefault test case (see attached file) under a 64 CPU\nsystem.  Profile shows shmem_inode_info-\u003elock is heavily contented and\n100% CPUs time are trying to get the lock.  In the pagefault (no swap)\ncase, shmem_getpage gets the lock twice, the last one is avoidable if we\nprealloc a page so we could reduce one time of locking.  This is what\nbelow patch does.\n\nThe result of the test case:\n2.6.35-rc3: ~20s\n2.6.35-rc3 + patch: ~12s\nso this is 40% improvement.\n\nOne might argue if we could have better locking for shmem.  But even shmem\nis lockless, the pagefault will soon have pagecache lock heavily contented\nbecause shmem must add new page to pagecache.  So before we have better\nlocking for pagecache, improving shmem locking doesn\u0027t have too much\nimprovement.  I did a similar pagefault test against a ramfs file, the\ntest result is ~10.5s.\n\n[akpm@linux-foundation.org: fix comment, clean up code layout, elimintate code duplication]\nSigned-off-by: Shaohua Li \u003cshaohua.li@intel.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: \"Zhang, Yanmin\" \u003cyanmin.zhang@intel.com\u003e\nCc: Tim Chen \u003ctim.c.chen@linux.intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7e496299d4d2ad8083effed6c5a18313a919edc6",
      "tree": "8324a3fa378d28f6a63c8b5f5a86311e4eea3562",
      "parents": [
        "27f5e0f694fd0600274a76854636c0749e3bb1f6"
      ],
      "author": {
        "name": "Tim Chen",
        "email": "tim.c.chen@linux.intel.com",
        "time": "Mon Aug 09 17:19:05 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 09 20:44:58 2010 -0700"
      },
      "message": "tmpfs: make tmpfs scalable with percpu_counter for used blocks\n\nThe current implementation of tmpfs is not scalable.  We found that\nstat_lock is contended by multiple threads when we need to get a new page,\nleading to useless spinning inside this spin lock.\n\nThis patch makes use of the percpu_counter library to maintain local count\nof used blocks to speed up getting and returning of pages.  So the\nacquisition of stat_lock is unnecessary for getting and returning blocks,\nimproving the performance of tmpfs on system with large number of cpus.\nOn a 4 socket 32 core NHM-EX system, we saw improvement of 270%.\n\nThe implementation below has a slight chance of race between threads\ncausing a slight overshoot of the maximum configured blocks.  However, any\novershoot is small, and is bounded by the number of cpus.  This happens\nwhen the number of used blocks is slightly below the maximum configured\nblocks when a thread checks the used block count, and another thread\nallocates the last block before the current thread does.  This should not\nbe a problem for tmpfs, as the overshoot is most likely to be a few blocks\nand bounded.  If a strict limit is really desired, then configured the max\nblocks to be the limit less the number of cpus in system.\n\nSigned-off-by: Tim Chen \u003ctim.c.chen@linux.intel.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4e60c86bd9e5a7110ed28874d0b6592186550ae8",
      "tree": "9fb60e9f49b44b293a0c0c7d9f40e1a354a22b5a",
      "parents": [
        "627295e492638936e76f3d8fcb1e0a3367b88341"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "andi@firstfloor.org",
        "time": "Mon Aug 09 17:19:03 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 09 20:44:58 2010 -0700"
      },
      "message": "gcc-4.6: mm: fix unused but set warnings\n\nNo real bugs, just some dead code and some fixups.\n\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "596d7cfa2be6284512915609f01b7fe2f4df5d02",
      "tree": "7acfea30efdce5fb17da4302e567059bcae915eb",
      "parents": [
        "251060006003b79b788f8ce5a827ee5354a42910"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Mon Aug 09 17:19:01 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 09 20:44:58 2010 -0700"
      },
      "message": "mempolicy: reduce stack size of migrate_pages()\n\nmigrate_pages() is using \u003e500 bytes stack. Reduce it.\n\n   mm/mempolicy.c: In function \u0027sys_migrate_pages\u0027:\n   mm/mempolicy.c:1344: warning: the frame size of 528 bytes is larger than 512 bytes\n\n[akpm@linux-foundation.org: don\u0027t play with a might-be-NULL pointer]\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\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": "31f961a89bd1cb9baaf32af4bd8b571ace3447b1",
      "tree": "add1380e479ff92ad92da090e606857162b88e66",
      "parents": [
        "0aad4b3124850e85fe54e610802f0917ce46a1ae"
      ],
      "author": {
        "name": "Minchan Kim",
        "email": "minchan.kim@gmail.com",
        "time": "Mon Aug 09 17:18:59 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 09 20:44:57 2010 -0700"
      },
      "message": "mm: use for_each_online_cpu() in vmstat\n\nThe sum_vm_events passes cpumask for for_each_cpu().  But it\u0027s useless\nsince we have for_each_online_cpu.  Althougth it\u0027s tirival overhead, it\u0027s\nnot good about coding consistency.\n\nLet\u0027s use for_each_online_cpu instead of for_each_cpu with cpumask\nargument.\n\nSigned-off-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nAcked-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0aad4b3124850e85fe54e610802f0917ce46a1ae",
      "tree": "ebba56659dab4e285b87341d7639fda7a2db81e9",
      "parents": [
        "f44200320b10c76003101dee21c5f961e80faf0b"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Mon Aug 09 17:18:59 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 09 20:44:57 2010 -0700"
      },
      "message": "oom: fold __out_of_memory into out_of_memory\n\n__out_of_memory() only has a single caller, so fold it into\nout_of_memory() and add a comment about locking for its call to\noom_kill_process().\n\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.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": "f44200320b10c76003101dee21c5f961e80faf0b",
      "tree": "4c187867337cee9c02e08d926866669f27e4018c",
      "parents": [
        "ff321feac22313cf53ffceb69224b09ac19ff22b"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Mon Aug 09 17:18:58 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 09 20:44:57 2010 -0700"
      },
      "message": "oom: remove constraint argument from select_bad_process and __out_of_memory\n\nselect_bad_process() and __out_of_memory() doe not need their enum\noom_constraint arguments: it\u0027s possible to pass a NULL nodemask if\nconstraint \u003d\u003d CONSTRAINT_MEMORY_POLICY in the caller, out_of_memory().\n\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.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": "ff321feac22313cf53ffceb69224b09ac19ff22b",
      "tree": "101400fdee395944c2fa5f1f2b45cac54a5c1088",
      "parents": [
        "b940fd703572f7f9e5f894c682c91c3cbd84c11e"
      ],
      "author": {
        "name": "Minchan Kim",
        "email": "minchan.kim@gmail.com",
        "time": "Mon Aug 09 17:18:57 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 09 20:44:57 2010 -0700"
      },
      "message": "mm: rename try_set_zone_oom() to try_set_zonelist_oom()\n\nWe have been used naming try_set_zone_oom and clear_zonelist_oom.\nThe role of functions is to lock of zonelist for preventing parallel\nOOM. So clear_zonelist_oom makes sense but try_set_zone_oome is rather\nawkward and unmatched with clear_zonelist_oom.\n\nLet\u0027s change it with try_set_zonelist_oom.\n\nSigned-off-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nAcked-by: David Rientjes \u003crientjes@google.com\u003e\nReviewed-by: 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": "b940fd703572f7f9e5f894c682c91c3cbd84c11e",
      "tree": "cbb1f23073373ba1c425762f38f6f0bf9decf278",
      "parents": [
        "8e4228e1edb922afa83366803a1e5b3fa8e987c2"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Mon Aug 09 17:18:57 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 09 20:44:57 2010 -0700"
      },
      "message": "oom: remove unnecessary code and cleanup\n\nRemove the redundancy in __oom_kill_task() since:\n\n - init can never be passed to this function: it will never be PF_EXITING\n   or selectable from select_bad_process(), and\n\n - it will never be passed a task from oom_kill_task() without an -\u003emm\n   and we\u0027re unconcerned about detachment from exiting tasks, there\u0027s no\n   reason to protect them against SIGKILL or access to memory reserves.\n\nAlso moves the kernel log message to a higher level since the verbosity is\nnot always emitted here; we need not print an error message if an exiting\ntask is given a longer timeslice.\n\n__oom_kill_task() only has a single caller, so it can be merged into that\nfunction at the same time.\n\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@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": "e365893236ca78fa1fe2482ccbdc30e9abde6027",
      "tree": "36caf9177f592f0d3a93593b6a569be239aebf91",
      "parents": [
        "309ed882508cc471320ff79265e7340774d6746c"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Mon Aug 09 17:18:55 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 09 20:44:57 2010 -0700"
      },
      "message": "oom: remove special handling for pagefault ooms\n\nIt is possible to remove the special pagefault oom handler by simply oom\nlocking all system zones and then calling directly into out_of_memory().\n\nAll populated zones must have ZONE_OOM_LOCKED set, otherwise there is a\nparallel oom killing in progress that will lead to eventual memory freeing\nso it\u0027s not necessary to needlessly kill another task.  The context in\nwhich the pagefault is allocating memory is unknown to the oom killer, so\nthis is done on a system-wide level.\n\nIf a task has already been oom killed and hasn\u0027t fully exited yet, this\nwill be a no-op since select_bad_process() recognizes tasks across the\nsystem with TIF_MEMDIE set.\n\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nAcked-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nAcked-by: 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": "309ed882508cc471320ff79265e7340774d6746c",
      "tree": "28321b30bc420c62554ef6a705ec4bc70651b473",
      "parents": [
        "03668b3ceb0c7a95e09f1b6169f5270ffc1a19f6"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Mon Aug 09 17:18:54 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 09 20:44:57 2010 -0700"
      },
      "message": "oom: extract panic helper function\n\nThere are various points in the oom killer where the kernel must determine\nwhether to panic or not.  It\u0027s better to extract this to a helper function\nto remove all the confusion as to its semantics.\n\nAlso fix a call to dump_header() where tasklist_lock is not read- locked,\nas required.\n\nThere\u0027s no functional change with this patch.\n\nAcked-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: David Rientjes \u003crientjes@google.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": "03668b3ceb0c7a95e09f1b6169f5270ffc1a19f6",
      "tree": "755ea207b968af12e195f6fb3e3b52b4d68e8630",
      "parents": [
        "ad915c432eccb482427c1bbd77c74e6f7bfe60b3"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Mon Aug 09 17:18:54 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 09 20:44:56 2010 -0700"
      },
      "message": "oom: avoid oom killer for lowmem allocations\n\nIf memory has been depleted in lowmem zones even with the protection\nafforded to it by /proc/sys/vm/lowmem_reserve_ratio, it is unlikely that\nkilling current users will help.  The memory is either reclaimable (or\nmigratable) already, in which case we should not invoke the oom killer at\nall, or it is pinned by an application for I/O.  Killing such an\napplication may leave the hardware in an unspecified state and there is no\nguarantee that it will be able to make a timely exit.\n\nLowmem allocations are now failed in oom conditions when __GFP_NOFAIL is\nnot used so that the task can perhaps recover or try again later.\n\nPreviously, the heuristic provided some protection for those tasks with\nCAP_SYS_RAWIO, but this is no longer necessary since we will not be\nkilling tasks for the purposes of ISA allocations.\n\nhigh_zoneidx is gfp_zone(gfp_flags), meaning that ZONE_NORMAL will be the\ndefault for all allocations that are not __GFP_DMA, __GFP_DMA32,\n__GFP_HIGHMEM, and __GFP_MOVABLE on kernels configured to support those\nflags.  Testing for high_zoneidx being less than ZONE_NORMAL will only\nreturn true for allocations that have either __GFP_DMA or __GFP_DMA32.\n\nAcked-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: David Rientjes \u003crientjes@google.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": "ad915c432eccb482427c1bbd77c74e6f7bfe60b3",
      "tree": "d93b536c48773527c8ae0312d6dcf45d57dd1b89",
      "parents": [
        "6f48d0ebd907ae419387f27b602ee98870cfa7bb"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Mon Aug 09 17:18:53 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 09 20:44:56 2010 -0700"
      },
      "message": "oom: enable oom tasklist dump by default\n\nThe oom killer tasklist dump, enabled with the oom_dump_tasks sysctl, is\nvery helpful information in diagnosing why a user\u0027s task has been killed.\nIt emits useful information such as each eligible thread\u0027s memory usage\nthat can determine why the system is oom, so it should be enabled by\ndefault.\n\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nAcked-by: 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": "6f48d0ebd907ae419387f27b602ee98870cfa7bb",
      "tree": "355bd8b616f5a78d8adabe5b9631d7aad970dbaa",
      "parents": [
        "5e9d834a0e0c0485dfa487281ab9650fc37a3bb5"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Mon Aug 09 17:18:52 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 09 20:44:56 2010 -0700"
      },
      "message": "oom: select task from tasklist for mempolicy ooms\n\nThe oom killer presently kills current whenever there is no more memory\nfree or reclaimable on its mempolicy\u0027s nodes.  There is no guarantee that\ncurrent is a memory-hogging task or that killing it will free any\nsubstantial amount of memory, however.\n\nIn such situations, it is better to scan the tasklist for nodes that are\nallowed to allocate on current\u0027s set of nodes and kill the task with the\nhighest badness() score.  This ensures that the most memory-hogging task,\nor the one configured by the user with /proc/pid/oom_adj, is always\nselected in such scenarios.\n\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nReviewed-by: 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": "5e9d834a0e0c0485dfa487281ab9650fc37a3bb5",
      "tree": "b93cf4fd46b50b18f3fc118f1739a71dbdd8f340",
      "parents": [
        "6cf86ac6f36b638459a9a6c2576d5e655d41d451"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Mon Aug 09 17:18:51 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 09 20:44:56 2010 -0700"
      },
      "message": "oom: sacrifice child with highest badness score for parent\n\nWhen a task is chosen for oom kill, the oom killer first attempts to\nsacrifice a child not sharing its parent\u0027s memory instead.  Unfortunately,\nthis often kills in a seemingly random fashion based on the ordering of\nthe selected task\u0027s child list.  Additionally, it is not guaranteed at all\nto free a large amount of memory that we need to prevent additional oom\nkilling in the very near future.\n\nInstead, we now only attempt to sacrifice the worst child not sharing its\nparent\u0027s memory, if one exists.  The worst child is indicated with the\nhighest badness() score.  This serves two advantages: we kill a\nmemory-hogging task more often, and we allow the configurable\n/proc/pid/oom_adj value to be considered as a factor in which child to\nkill.\n\nReviewers may observe that the previous implementation would iterate\nthrough the children and attempt to kill each until one was successful and\nthen the parent if none were found while the new code simply kills the\nmost memory-hogging task or the parent.  Note that the only time\noom_kill_task() fails, however, is when a child does not have an mm or has\na /proc/pid/oom_adj of OOM_DISABLE.  badness() returns 0 for both cases,\nso the final oom_kill_task() will always succeed.\n\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nAcked-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nAcked-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6cf86ac6f36b638459a9a6c2576d5e655d41d451",
      "tree": "177ae58393bfbc5a87eb64178d426e2ba4c95871",
      "parents": [
        "4358997ae38a1901498d128d6508119d9f318b36"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Mon Aug 09 17:18:50 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 09 20:44:56 2010 -0700"
      },
      "message": "oom: filter tasks not sharing the same cpuset\n\nTasks that do not share the same set of allowed nodes with the task that\ntriggered the oom should not be considered as candidates for oom kill.\n\nTasks in other cpusets with a disjoint set of mems would be unfairly\npenalized otherwise because of oom conditions elsewhere; an extreme\nexample could unfairly kill all other applications on the system if a\nsingle task in a user\u0027s cpuset sets itself to OOM_DISABLE and then uses\nmore memory than allowed.\n\nKilling tasks outside of current\u0027s cpuset rarely would free memory for\ncurrent anyway.  To use a sane heuristic, we must ensure that killing a\ntask would likely free memory for current and avoid needlessly killing\nothers at all costs just because their potential memory freeing is\nunknown.  It is better to kill current than another task needlessly.\n\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nAcked-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nAcked-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4358997ae38a1901498d128d6508119d9f318b36",
      "tree": "0c5a47808790e80a754b44aebe82c5c683811788",
      "parents": [
        "7b98c2e402eaa1f2beec18b1bde17f74948a19db"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Mon Aug 09 17:18:49 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 09 20:44:56 2010 -0700"
      },
      "message": "oom: avoid sending exiting tasks a SIGKILL\n\nIt\u0027s unnecessary to SIGKILL a task that is already PF_EXITING and can\nactually cause a NULL pointer dereference of the sighand if it has already\nbeen detached.  Instead, simply set TIF_MEMDIE so it has access to memory\nreserves and can quickly exit as the comment implies.\n\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: David Rientjes \u003crientjes@google.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": "7b98c2e402eaa1f2beec18b1bde17f74948a19db",
      "tree": "a0d3920f84e981cca5be386e2cc5a6320c4d8bdc",
      "parents": [
        "c81fac5cb8c92b8b4795ac250a46c7514d1fce06"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Mon Aug 09 17:18:48 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 09 20:44:56 2010 -0700"
      },
      "message": "oom: give current access to memory reserves if it has been killed\n\nIt\u0027s possible to livelock the page allocator if a thread has mm-\u003emmap_sem\nand fails to make forward progress because the oom killer selects another\nthread sharing the same -\u003emm to kill that cannot exit until the semaphore\nis dropped.\n\nThe oom killer will not kill multiple tasks at the same time; each oom\nkilled task must exit before another task may be killed.  Thus, if one\nthread is holding mm-\u003emmap_sem and cannot allocate memory, all threads\nsharing the same -\u003emm are blocked from exiting as well.  In the oom kill\ncase, that means the thread holding mm-\u003emmap_sem will never free\nadditional memory since it cannot get access to memory reserves and the\nthread that depends on it with access to memory reserves cannot exit\nbecause it cannot acquire the semaphore.  Thus, the page allocators\nlivelocks.\n\nWhen the oom killer is called and current happens to have a pending\nSIGKILL, this patch automatically gives it access to memory reserves and\nreturns.  Upon returning to the page allocator, its allocation will\nhopefully succeed so it can quickly exit and free its memory.  If not, the\npage allocator will fail the allocation if it is not __GFP_NOFAIL.\n\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: David Rientjes \u003crientjes@google.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": "c81fac5cb8c92b8b4795ac250a46c7514d1fce06",
      "tree": "2f2577d6813d0472b23359bcda8223edf0d7b396",
      "parents": [
        "74ab7f1d3f22ccb02f8b14f1f2375416b1ab0adb"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Mon Aug 09 17:18:47 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 09 20:44:56 2010 -0700"
      },
      "message": "oom: dump_tasks use find_lock_task_mm too fix\n\nWhen find_lock_task_mm() returns a thread other than p in dump_tasks(),\nits name should be displayed instead.  This is the thread that will be\ntargeted by the oom killer, not its mm-less parent.\n\nThis also allows us to safely dereference task-\u003ecomm without needing\nget_task_comm().\n\nWhile we\u0027re here, remove the cast on task_cpu(task) as Andrew suggested.\n\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "74ab7f1d3f22ccb02f8b14f1f2375416b1ab0adb",
      "tree": "94f7e6b0e77fe11f200941f97d1fc895dc950fde",
      "parents": [
        "c55db95788a2a55a77f5a3ced1e59578710440b2"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Mon Aug 09 17:18:46 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 09 20:44:56 2010 -0700"
      },
      "message": "oom: improve commentary in dump_tasks()\n\nThe comments in dump_tasks() should be updated to be more clear about why\ntasks are filtered and how they are filtered by its argument.\n\nAn unnecessary comment concerning a check for is_global_init() is removed\nsince it isn\u0027t of importance.\n\nSuggested-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nAcked-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c55db95788a2a55a77f5a3ced1e59578710440b2",
      "tree": "275a0c97bfe408ea926dfe14864e476d719859e9",
      "parents": [
        "dd8e8f405ca386c7ce7cbb996ccd985d283b0e03"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Mon Aug 09 17:18:46 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 09 20:44:56 2010 -0700"
      },
      "message": "oom: dump_tasks use find_lock_task_mm too\n\ndump_task() should use find_lock_task_mm() too. It is necessary for\nprotecting task-exiting race.\n\ndump_tasks() currently filters any task that does not have an attached\n-\u003emm since it incorrectly assumes that it must either be in the process of\nexiting and has detached its memory or that it\u0027s a kernel thread;\nmultithreaded tasks may actually have subthreads that have a valid -\u003emm\npointer and thus those threads should actually be displayed.  This change\nfinds those threads, if they exist, and emit their information along with\nthe rest of the candidate tasks for kill.\n\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "dd8e8f405ca386c7ce7cbb996ccd985d283b0e03",
      "tree": "7863585871d44c0272eb0b93ee909392ee85eb99",
      "parents": [
        "b52279406e77be711c068f9a8e970ea6471e089c"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Mon Aug 09 17:18:45 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 09 20:44:55 2010 -0700"
      },
      "message": "oom: introduce find_lock_task_mm() to fix !mm false positives\n\nAlmost all -\u003emm \u003d\u003d NULL checks in oom_kill.c are wrong.\n\nThe current code assumes that the task without -\u003emm has already released\nits memory and ignores the process.  However this is not necessarily true\nwhen this process is multithreaded, other live sub-threads can use this\n-\u003emm.\n\n- Remove the \"if (!p-\u003emm)\" check in select_bad_process(), it is\n  just wrong.\n\n- Add the new helper, find_lock_task_mm(), which finds the live\n  thread which uses the memory and takes task_lock() to pin -\u003emm\n\n- change oom_badness() to use this helper instead of just checking\n  -\u003emm !\u003d NULL.\n\n- As David pointed out, select_bad_process() must never choose the\n  task without -\u003emm, but no matter what oom_badness() returns the\n  task can be chosen if nothing else has been found yet.\n\n  Change oom_badness() to return int, change it to return -1 if\n  find_lock_task_mm() fails, and change select_bad_process() to\n  check points \u003e\u003d 0.\n\nNote! This patch is not enough, we need more changes.\n\n\t- oom_badness() was fixed, but oom_kill_task() still ignores\n\t  the task without -\u003emm\n\n\t- oom_forkbomb_penalty() should use find_lock_task_mm() too,\n\t  and it also needs other changes to actually find the first\n\t  first-descendant children\n\nThis will be addressed later.\n\n[kosaki.motohiro@jp.fujitsu.com: use in badness(), __oom_kill_task()]\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-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": "b52279406e77be711c068f9a8e970ea6471e089c",
      "tree": "5f44a8af51ccc30847b1d969e0bd36205902d3fb",
      "parents": [
        "455c0e5fb03b67fa62bd12e3abe3fa484b9960c5"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Mon Aug 09 17:18:44 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 09 20:44:55 2010 -0700"
      },
      "message": "oom: PF_EXITING check should take mm into account\n\nselect_bad_process() checks PF_EXITING to detect the task which is going\nto release its memory, but the logic is very wrong.\n\n\t- a single process P with the dead group leader disables\n\t  select_bad_process() completely, it will always return\n\t  ERR_PTR() while P can live forever\n\n\t- if the PF_EXITING task has already released its -\u003emm\n\t  it doesn\u0027t make sense to expect it is goiing to free\n\t  more memory (except task_struct/etc)\n\nChange the code to ignore the PF_EXITING tasks without -\u003emm.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.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": "455c0e5fb03b67fa62bd12e3abe3fa484b9960c5",
      "tree": "082cbecb8927e1c8e0c2cea5d5639e9c8f62eafe",
      "parents": [
        "a9877cc2937889e5669114f28612b494384152a4"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Mon Aug 09 17:18:43 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 09 20:44:55 2010 -0700"
      },
      "message": "oom: check PF_KTHREAD instead of !mm to skip kthreads\n\nselect_bad_process() thinks a kernel thread can\u0027t have -\u003emm !\u003d NULL, this\nis not true due to use_mm().\n\nChange the code to check PF_KTHREAD.\n\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nAcked-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Balbir Singh \u003cbalbir@in.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": "76545066c8521f3e32c849744744842b4df25b79",
      "tree": "978b6b003f63e1e22618586b7d9c2dd8ef363614",
      "parents": [
        "012f18004da33ba672e3c60838cc4898126174d3"
      ],
      "author": {
        "name": "Rik van Riel",
        "email": "riel@redhat.com",
        "time": "Mon Aug 09 17:18:41 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 09 20:44:55 2010 -0700"
      },
      "message": "mm: extend KSM refcounts to the anon_vma root\n\nKSM reference counts can cause an anon_vma to exist after the processe it\nbelongs to have already exited.  Because the anon_vma lock now lives in\nthe root anon_vma, we need to ensure that the root anon_vma stays around\nuntil after all the \"child\" anon_vmas have been freed.\n\nThe obvious way to do this is to have a \"child\" anon_vma take a reference\nto the root in anon_vma_fork.  When the anon_vma is freed at munmap or\nprocess exit, we drop the refcount in anon_vma_unlink and possibly free\nthe root anon_vma.\n\nThe KSM anon_vma reference count function also needs to be modified to\ndeal with the possibility of freeing 2 levels of anon_vma.  The easiest\nway to do this is to break out the KSM magic and make it generic.\n\nWhen compiling without CONFIG_KSM, this code is compiled out.\n\nSigned-off-by: Rik van Riel \u003criel@redhat.com\u003e\nTested-by: Larry Woodman \u003clwoodman@redhat.com\u003e\nAcked-by: Larry Woodman \u003clwoodman@redhat.com\u003e\nReviewed-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nAcked-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nAcked-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nTested-by: Dave Young \u003chidave.darkstar@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": "012f18004da33ba672e3c60838cc4898126174d3",
      "tree": "990382f9f8c0d885463ac9195b8e9a18043f716d",
      "parents": [
        "5c341ee1dfc8fe69d66b1c8b19e463c6d7201ae1"
      ],
      "author": {
        "name": "Rik van Riel",
        "email": "riel@redhat.com",
        "time": "Mon Aug 09 17:18:40 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 09 20:44:55 2010 -0700"
      },
      "message": "mm: always lock the root (oldest) anon_vma\n\nAlways (and only) lock the root (oldest) anon_vma whenever we do something\nin an anon_vma.  The recently introduced anon_vma scalability is due to\nthe rmap code scanning only the VMAs that need to be scanned.  Many common\noperations still took the anon_vma lock on the root anon_vma, so always\ntaking that lock is not expected to introduce any scalability issues.\n\nHowever, always taking the same lock does mean we only need to take one\nlock, which means rmap_walk on pages from any anon_vma in the vma is\nexcluded from occurring during an munmap, expand_stack or other operation\nthat needs to exclude rmap_walk and similar functions.\n\nAlso add the proper locking to vma_adjust.\n\nSigned-off-by: Rik van Riel \u003criel@redhat.com\u003e\nTested-by: Larry Woodman \u003clwoodman@redhat.com\u003e\nAcked-by: Larry Woodman \u003clwoodman@redhat.com\u003e\nReviewed-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nAcked-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nAcked-by: Linus Torvalds \u003ctorvalds@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": "5c341ee1dfc8fe69d66b1c8b19e463c6d7201ae1",
      "tree": "41f05611f8b1d7562c2193ade8c089408f262a6b",
      "parents": [
        "cba48b98f2348c814316c4b4f411a07a0e4a2bf9"
      ],
      "author": {
        "name": "Rik van Riel",
        "email": "riel@redhat.com",
        "time": "Mon Aug 09 17:18:39 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 09 20:44:55 2010 -0700"
      },
      "message": "mm: track the root (oldest) anon_vma\n\nTrack the root (oldest) anon_vma in each anon_vma tree.  Because we only\ntake the lock on the root anon_vma, we cannot use the lock on higher-up\nanon_vmas to lock anything.  This makes it impossible to do an indirect\nlookup of the root anon_vma, since the data structures could go away from\nunder us.\n\nHowever, a direct pointer is safe because the root anon_vma is always the\nlast one that gets freed on munmap or exit, by virtue of the same_vma list\norder and unlink_anon_vmas walking the list forward.\n\n[akpm@linux-foundation.org: fix typo]\nSigned-off-by: Rik van Riel \u003criel@redhat.com\u003e\nAcked-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nTested-by: Larry Woodman \u003clwoodman@redhat.com\u003e\nAcked-by: Larry Woodman \u003clwoodman@redhat.com\u003e\nReviewed-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nAcked-by: Linus Torvalds \u003ctorvalds@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": "cba48b98f2348c814316c4b4f411a07a0e4a2bf9",
      "tree": "49c0426f8d41cb147722305c2c3495dd515c3253",
      "parents": [
        "bb4a340e075b7897ece109686bfa177f8518d2db"
      ],
      "author": {
        "name": "Rik van Riel",
        "email": "riel@redhat.com",
        "time": "Mon Aug 09 17:18:38 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 09 20:44:55 2010 -0700"
      },
      "message": "mm: change direct call of spin_lock(anon_vma-\u003elock) to inline function\n\nSubsitute a direct call of spin_lock(anon_vma-\u003elock) with an inline\nfunction doing exactly the same.\n\nThis makes it easier to do the substitution to the root anon_vma lock in a\nfollowing patch.\n\nWe will deal with the handful of special locks (nested, dec_and_lock, etc)\nseparately.\n\nSigned-off-by: Rik van Riel \u003criel@redhat.com\u003e\nAcked-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nTested-by: Larry Woodman \u003clwoodman@redhat.com\u003e\nAcked-by: Larry Woodman \u003clwoodman@redhat.com\u003e\nReviewed-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nAcked-by: Linus Torvalds \u003ctorvalds@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": "bb4a340e075b7897ece109686bfa177f8518d2db",
      "tree": "3cca938530a2367cfd66fcc8ca11809acb14b42b",
      "parents": [
        "597781f3e51f48ef8e67be772196d9e9673752c4"
      ],
      "author": {
        "name": "Rik van Riel",
        "email": "riel@redhat.com",
        "time": "Mon Aug 09 17:18:37 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 09 20:44:54 2010 -0700"
      },
      "message": "mm: rename anon_vma_lock to vma_lock_anon_vma\n\nRename anon_vma_lock to vma_lock_anon_vma.  This matches the naming style\nused in page_lock_anon_vma and will come in really handy further down in\nthis patch series.\n\nSigned-off-by: Rik van Riel \u003criel@redhat.com\u003e\nAcked-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nTested-by: Larry Woodman \u003clwoodman@redhat.com\u003e\nAcked-by: Larry Woodman \u003clwoodman@redhat.com\u003e\nReviewed-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nAcked-by: Linus Torvalds \u003ctorvalds@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": "3edd4fc9537d95e460d502987c63a90d6b9a7a82",
      "tree": "fe0563459b9d6104dcc7f7ab6f8945e815f09665",
      "parents": [
        "a1b200e27c0426ea98c1231a2b78c6094eb073e4"
      ],
      "author": {
        "name": "Doug Doan",
        "email": "dougd@cray.com",
        "time": "Mon Aug 09 17:18:30 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 09 20:44:54 2010 -0700"
      },
      "message": "hugetlb: call mmu notifiers on hugepage cow\n\nWhen a copy-on-write occurs, we take one of two paths in handle_mm_fault:\nthrough handle_pte_fault for normal pages, or through hugetlb_fault for\nhuge pages.\n\nIn the normal page case, we eventually get to do_wp_page and call mmu\nnotifiers via ptep_clear_flush_notify.  There is no callout to the mmmu\nnotifiers in the huge page case.  This patch fixes that.\n\nSigned-off-by: Doug Doan \u003cdougd@cray.com\u003e\nAcked-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a1b200e27c0426ea98c1231a2b78c6094eb073e4",
      "tree": "8091ed3f3451cbc230e9bf72cafc773ee253bbe8",
      "parents": [
        "e7d86340793e7162126926ec9d226c68f4e37f94"
      ],
      "author": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Mon Aug 09 17:18:28 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 09 20:44:54 2010 -0700"
      },
      "message": "mm: provide init_mm mm_context initializer\n\nProvide an INIT_MM_CONTEXT intializer macro which can be used to\nstatically initialize mm_struct:mm_context of init_mm.  This way we can\nget rid of code which will do the initialization at run time (on s390).\n\nIn addition the current code can be found at a place where it is not\nexpected.  So let\u0027s have a common initializer which architectures\ncan use if needed.\n\nThis is based on a patch from Suzuki Poulose.\n\nSigned-off-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Suzuki Poulose \u003csuzuki@in.ibm.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": "e7d86340793e7162126926ec9d226c68f4e37f94",
      "tree": "4cc90e5466a69b361f1a6eecc2d9fac77e2e1612",
      "parents": [
        "90d7404558fbe6f369d5e27b5ea3ef1e57562d3d"
      ],
      "author": {
        "name": "Julia Lawall",
        "email": "julia@diku.dk",
        "time": "Mon Aug 09 17:18:28 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 09 20:44:54 2010 -0700"
      },
      "message": "mm: use ERR_CAST\n\nUse ERR_CAST(x) rather than ERR_PTR(PTR_ERR(x)).  The former makes more\nclear what is the purpose of the operation, which otherwise looks like a\nno-op.\n\nThe semantic patch that makes this change is as follows:\n(http://coccinelle.lip6.fr/)\n\n// \u003csmpl\u003e\n@@\ntype T;\nT x;\nidentifier f;\n@@\n\nT f (...) { \u003c+...\n- ERR_PTR(PTR_ERR(x))\n+ x\n ...+\u003e }\n\n@@\nexpression x;\n@@\n\n- ERR_PTR(PTR_ERR(x))\n+ ERR_CAST(x)\n// \u003c/smpl\u003e\n\nSigned-off-by: Julia Lawall \u003cjulia@diku.dk\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": "90d7404558fbe6f369d5e27b5ea3ef1e57562d3d",
      "tree": "0dbd7ef38a1e9e95b6c9aeb03d8d549ea5cf6141",
      "parents": [
        "9e58143dc08123c22c5b9f782b2913bd3a07a03d"
      ],
      "author": {
        "name": "Julia Lawall",
        "email": "julia@diku.dk",
        "time": "Mon Aug 09 17:18:26 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 09 20:44:54 2010 -0700"
      },
      "message": "mm: use memdup_user\n\nUse memdup_user when user data is immediately copied into the\nallocated region.\n\nThe semantic patch that makes this change is as follows:\n(http://coccinelle.lip6.fr/)\n\n// \u003csmpl\u003e\n@@\nexpression from,to,size,flag;\nposition p;\nidentifier l1,l2;\n@@\n\n-  to \u003d \\(kmalloc@p\\|kzalloc@p\\)(size,flag);\n+  to \u003d memdup_user(from,size);\n   if (\n-      to\u003d\u003dNULL\n+      IS_ERR(to)\n                 || ...) {\n   \u003c+... when !\u003d goto l1;\n-  -ENOMEM\n+  PTR_ERR(to)\n   ...+\u003e\n   }\n-  if (copy_from_user(to, from, size) !\u003d 0) {\n-    \u003c+... when !\u003d goto l2;\n-    -EFAULT\n-    ...+\u003e\n-  }\n// \u003c/smpl\u003e\n\nSigned-off-by: Julia Lawall \u003cjulia@diku.dk\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": "b57bdda58cda0aaf6def042d101dd85977a286ed",
      "tree": "7f63afddb8275d67214d7a89cfc8a65815e79d42",
      "parents": [
        "cc41f5cede3c63836d1c0958204630b07f5b5ee7",
        "415cb47998c54195710d413c3d95e37a9339c1e8"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 06 11:44:08 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 06 11:44:08 2010 -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  slub: Allow removal of slab caches during boot\n  Revert \"slub: Allow removal of slab caches during boot\"\n  slub numa: Fix rare allocation from unexpected node\n  slab: use deferable timers for its periodic housekeeping\n  slub: Use kmem_cache flags to detect if slab is in debugging mode.\n  slub: Allow removal of slab caches during boot\n  slub: Check kasprintf results in kmem_cache_init()\n  SLUB: Constants need UL\n  slub: Use a constant for a unspecified node.\n  SLOB: Free objects to their own list\n  slab: fix caller tracking on !CONFIG_DEBUG_SLAB \u0026\u0026 CONFIG_TRACING\n"
    },
    {
      "commit": "9faa1e5942fd647b0dd2fbbdcc04988841cacaf3",
      "tree": "3a2e467b04b7e66c9ef233e8c8b286278ef79adf",
      "parents": [
        "d9a73c00161f3eaa4c8c035c62f45afd1549e38a",
        "3709c857350976408953831f0cf89d19951394a1"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 06 10:17:52 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 06 10:17:52 2010 -0700"
      },
      "message": "Merge branch \u0027x86-mm-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027x86-mm-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  x86: Ioremap: fix wrong physical address handling in PAT code\n  x86, tlb: Clean up and correct used type\n  x86, iomap: Fix wrong page aligned size calculation in ioremapping code\n  x86, mm: Create symbolic index into address_markers array\n  x86, ioremap: Fix normal ram range check\n  x86, ioremap: Fix incorrect physical address handling in PAE mode\n  x86-64, mm: Initialize VDSO earlier on 64 bits\n  x86, kmmio/mmiotrace: Fix double free of kmmio_fault_pages\n"
    },
    {
      "commit": "4aed2fd8e3181fea7c09ba79cf64e7e3f4413bf9",
      "tree": "1f69733e5daab4915a76a41de0e4d1dc61e12cfb",
      "parents": [
        "3a3527b6461b1298cc53ce72f336346739297ac8",
        "fc9ea5a1e53ee54f681e226d735008e2a6f8f470"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 06 09:30:52 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 06 09:30:52 2010 -0700"
      },
      "message": "Merge branch \u0027perf-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027perf-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (162 commits)\n  tracing/kprobes: unregister_trace_probe needs to be called under mutex\n  perf: expose event__process function\n  perf events: Fix mmap offset determination\n  perf, powerpc: fsl_emb: Restore setting perf_sample_data.period\n  perf, powerpc: Convert the FSL driver to use local64_t\n  perf tools: Don\u0027t keep unreferenced maps when unmaps are detected\n  perf session: Invalidate last_match when removing threads from rb_tree\n  perf session: Free the ref_reloc_sym memory at the right place\n  x86,mmiotrace: Add support for tracing STOS instruction\n  perf, sched migration: Librarize task states and event headers helpers\n  perf, sched migration: Librarize the GUI class\n  perf, sched migration: Make the GUI class client agnostic\n  perf, sched migration: Make it vertically scrollable\n  perf, sched migration: Parameterize cpu height and spacing\n  perf, sched migration: Fix key bindings\n  perf, sched migration: Ignore unhandled task states\n  perf, sched migration: Handle ignored migrate out events\n  perf: New migration tool overview\n  tracing: Drop cpparg() macro\n  perf: Use tracepoint_synchronize_unregister() to flush any pending tracepoint call\n  ...\n\nFix up trivial conflicts in Makefile and drivers/cpufreq/cpufreq.c\n"
    },
    {
      "commit": "3a3527b6461b1298cc53ce72f336346739297ac8",
      "tree": "30bea5dd7163f13d6c962888feaf53f50ead4cce",
      "parents": [
        "cc77b4db0017dab014ad7ea3d297e10f5b5bf028",
        "a53f4b61a76a7e95139b8e8abba02e9bfe87a58a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 06 09:23:07 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 06 09:23:07 2010 -0700"
      },
      "message": "Merge branch \u0027core-rcu-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027core-rcu-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  Revert \"net: Make accesses to -\u003ebr_port safe for sparse RCU\"\n  mce: convert to rcu_dereference_index_check()\n  net: Make accesses to -\u003ebr_port safe for sparse RCU\n  vfs: add fs.h to define struct file\n  lockdep: Add an in_workqueue_context() lockdep-based test function\n  rcu: add __rcu API for later sparse checking\n  rcu: add an rcu_dereference_index_check()\n  tree/tiny rcu: Add debug RCU head objects\n  mm: remove all rcu head initializations\n  fs: remove all rcu head initializations, except on_stack initializations\n  powerpc: remove all rcu head initializations\n"
    },
    {
      "commit": "89a6c8cb9e6e11b6e3671dce7e037789b8f7cf62",
      "tree": "12b16a8abe303fd86c156ddfbb86caa469e45a98",
      "parents": [
        "03c0c29aff7e56b722eb6c47eace222b140d0377",
        "3fa43aba08c5b5a4b407e402606fbe463239b14a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Aug 05 15:59:48 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Aug 05 15:59:48 2010 -0700"
      },
      "message": "Merge branch \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jwessel/linux-2.6-kgdb\n\n* \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jwessel/linux-2.6-kgdb:\n  debug_core,kdb: fix crash when arch does not have single step\n  kgdb,x86: use macro HBP_NUM to replace magic number 4\n  kgdb,mips: remove unused kgdb_cpu_doing_single_step operations\n  mm,kdb,kgdb: Add a debug reference for the kdb kmap usage\n  KGDB: Remove set but unused newPC\n  ftrace,kdb: Allow dumping a specific cpu\u0027s buffer with ftdump\n  ftrace,kdb: Extend kdb to be able to dump the ftrace buffer\n  kgdb,powerpc: Replace hardcoded offset by BREAK_INSTR_SIZE\n  arm,kgdb: Add ability to trap into debugger on notify_die\n  gdbstub: do not directly use dbg_reg_def[] in gdb_cmd_reg_set()\n  gdbstub: Implement gdbserial \u0027p\u0027 and \u0027P\u0027 packets\n  kgdb,arm: Individual register get/set for arm\n  kgdb,mips: Individual register get/set for mips\n  kgdb,x86: Individual register get/set for x86\n  kgdb,kdb: individual register set and and get API\n  gdbstub: Optimize kgdb\u0027s \"thread:\" response for the gdb serial protocol\n  kgdb: remove custom hex_to_bin()implementation\n"
    },
    {
      "commit": "eac790059b22883763759aeb468ff862bae4627e",
      "tree": "912fbcca1887a75b47c19020fb4acc79fb6ce3f9",
      "parents": [
        "9264b278be42c031dc76517a0d4bb154f5dcf470"
      ],
      "author": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Thu Aug 05 09:22:24 2010 -0500"
      },
      "committer": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Thu Aug 05 09:22:24 2010 -0500"
      },
      "message": "mm,kdb,kgdb: Add a debug reference for the kdb kmap usage\n\nThe kdb kmap should never get used outside of the kernel debugger\nexception context.\n\nSigned-off-by: Jason Wessel\u003cjason.wessel@windriver.com\u003e\nCC: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCC: Ingo Molnar \u003cmingo@elte.hu\u003e\nCC: linux-mm@kvack.org\n"
    },
    {
      "commit": "ffd386a9a8273dcfa61705d0b349eebc7525ef87",
      "tree": "3a555f07c0df5b21eb2ee49fe57f71a76d0342f7",
      "parents": [
        "03da30986793385af57eeca3296253c887b742e6",
        "099a19d91ca429944743d51bef8fee240e94d8e3"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Aug 04 15:17:52 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Aug 04 15:17:52 2010 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu:\n  percpu: allow limited allocation before slab is online\n  percpu: make @dyn_size always mean min dyn_size in first chunk init functions\n"
    },
    {
      "commit": "415cb47998c54195710d413c3d95e37a9339c1e8",
      "tree": "9435bce1a0c2b2f4fda1a7c721a927b089e005fd",
      "parents": [
        "9fe6206f400646a2322096b56c59891d530e8d51",
        "78b435368fcd615e695a06012cd963a556284e00",
        "d602dabaeba79df90cc67c32d5fe4ee0d5e2b73a",
        "2bce64858442149784f6c8803c9095a8556320a2",
        "bc6488e91078af0b42ee0d8335e0587f64550d7d"
      ],
      "author": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Wed Aug 04 22:04:43 2010 +0300"
      },
      "committer": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Wed Aug 04 22:04:43 2010 +0300"
      },
      "message": "Merge branches \u0027slab/fixes\u0027, \u0027slob/fixes\u0027, \u0027slub/cleanups\u0027 and \u0027slub/fixes\u0027 into for-linus\n"
    },
    {
      "commit": "5e83f6fbdb020b70c0e413312801424d13c58d68",
      "tree": "ca270178fa891813dbc47751c331fed975d3766c",
      "parents": [
        "fe445c6e2cb62a566e1a89f8798de11459975710",
        "3444d7da1839b851eefedd372978d8a982316c36"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Aug 04 10:43:01 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Aug 04 10:43:01 2010 -0700"
      },
      "message": "Merge branch \u0027kvm-updates/2.6.36\u0027 of git://git.kernel.org/pub/scm/virt/kvm/kvm\n\n* \u0027kvm-updates/2.6.36\u0027 of git://git.kernel.org/pub/scm/virt/kvm/kvm: (198 commits)\n  KVM: VMX: Fix host GDT.LIMIT corruption\n  KVM: MMU: using __xchg_spte more smarter\n  KVM: MMU: cleanup spte set and accssed/dirty tracking\n  KVM: MMU: don\u0027t atomicly set spte if it\u0027s not present\n  KVM: MMU: fix page dirty tracking lost while sync page\n  KVM: MMU: fix broken page accessed tracking with ept enabled\n  KVM: MMU: add missing reserved bits check in speculative path\n  KVM: MMU: fix mmu notifier invalidate handler for huge spte\n  KVM: x86 emulator: fix xchg instruction emulation\n  KVM: x86: Call mask notifiers from pic\n  KVM: x86: never re-execute instruction with enabled tdp\n  KVM: Document KVM_GET_SUPPORTED_CPUID2 ioctl\n  KVM: x86: emulator: inc/dec can have lock prefix\n  KVM: MMU: Eliminate redundant temporaries in FNAME(fetch)\n  KVM: MMU: Validate all gptes during fetch, not just those used for new pages\n  KVM: MMU: Simplify spte fetch() function\n  KVM: MMU: Add gpte_valid() helper\n  KVM: MMU: Add validate_direct_spte() helper\n  KVM: MMU: Add drop_large_spte() helper\n  KVM: MMU: Use __set_spte to link shadow pages\n  ...\n"
    },
    {
      "commit": "2bce64858442149784f6c8803c9095a8556320a2",
      "tree": "f9a097d8da73f33703622d8ef4237997248b6f39",
      "parents": [
        "e438444de82f354563d46ee5d991b5916dd19b01"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "cl@linux-foundation.org",
        "time": "Mon Jul 19 11:39:11 2010 -0500"
      },
      "committer": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Tue Aug 03 07:28:32 2010 +0300"
      },
      "message": "slub: Allow removal of slab caches during boot\n\nSerialize kmem_cache_create and kmem_cache_destroy using the slub_lock. Only\npossible after the use of the slub_lock during dynamic dma creation has been\nremoved.\n\nThen make sure that the setup of the slab sysfs entries does not race\nwith kmem_cache_create and kmem_cache destroy.\n\nIf a slab cache is removed before we have setup sysfs then simply skip over\nthe sysfs handling.\n\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Roland Dreier \u003crdreier@cisco.com\u003e\nSigned-off-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nSigned-off-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\n"
    },
    {
      "commit": "e438444de82f354563d46ee5d991b5916dd19b01",
      "tree": "090174e6d7ccda16859ac468053d879db768fbe1",
      "parents": [
        "af537b0a6c650ab6ff7104d8163e96866b31c835"
      ],
      "author": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Tue Aug 03 07:28:21 2010 +0300"
      },
      "committer": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Tue Aug 03 07:28:21 2010 +0300"
      },
      "message": "Revert \"slub: Allow removal of slab caches during boot\"\n\nThis reverts commit f5b801ac38a9612b380ee9a75ab1861f0594e79f.\n"
    },
    {
      "commit": "3772b734720e1a3f2dc1d95cfdfaa5332f4ccf01",
      "tree": "a1a8cc85948c086aa12a1d8014151a7ca7c04ea8",
      "parents": [
        "9fc3af467d0749989518a23f7289a6f44e5cb214",
        "9fe6206f400646a2322096b56c59891d530e8d51"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Aug 02 08:29:56 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Aug 02 08:31:54 2010 +0200"
      },
      "message": "Merge commit \u0027v2.6.35\u0027 into perf/core\n\nConflicts:\n\ttools/perf/Makefile\n\ttools/perf/util/hist.c\n\nMerge reason: Resolve the conflicts and update to latest upstream.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "bbeb34062fbad287c949a945a516a0c15b179993",
      "tree": "cf29b50e076ba1ddc07d5b1292f243653a2f67a9",
      "parents": [
        "6c3f6041172b78d5532c6bf3680d304e92ec2e66"
      ],
      "author": {
        "name": "Huang Ying",
        "email": "ying.huang@intel.com",
        "time": "Tue Jun 22 14:23:11 2010 +0800"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Sun Aug 01 10:47:11 2010 +0300"
      },
      "message": "KVM: Fix a race condition for usage of is_hwpoison_address()\n\nis_hwpoison_address accesses the page table, so the caller must hold\ncurrent-\u003emm-\u003emmap_sem in read mode. So fix its usage in hva_to_pfn of\nkvm accordingly.\n\nComment is_hwpoison_address to remind other users.\n\nReported-by: Avi Kivity \u003cavi@redhat.com\u003e\nSigned-off-by: Huang Ying \u003cying.huang@intel.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "bf998156d24bcb127318ad5bf531ac3bdfcd6449",
      "tree": "616c19474d7cb626ff9eebc54f6753563a4322cd",
      "parents": [
        "540ad6b62b3a188a53b51cac81d8a60d40e29fbd"
      ],
      "author": {
        "name": "Huang Ying",
        "email": "ying.huang@intel.com",
        "time": "Mon May 31 14:28:19 2010 +0800"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Sun Aug 01 10:35:26 2010 +0300"
      },
      "message": "KVM: Avoid killing userspace through guest SRAO MCE on unmapped pages\n\nIn common cases, guest SRAO MCE will cause corresponding poisoned page\nbe un-mapped and SIGBUS be sent to QEMU-KVM, then QEMU-KVM will relay\nthe MCE to guest OS.\n\nBut it is reported that if the poisoned page is accessed in guest\nafter unmapping and before MCE is relayed to guest OS, userspace will\nbe killed.\n\nThe reason is as follows. Because poisoned page has been un-mapped,\nguest access will cause guest exit and kvm_mmu_page_fault will be\ncalled. kvm_mmu_page_fault can not get the poisoned page for fault\naddress, so kernel and user space MMIO processing is tried in turn. In\nuser MMIO processing, poisoned page is accessed again, then userspace\nis killed by force_sig_info.\n\nTo fix the bug, kvm_mmu_page_fault send HWPOISON signal to QEMU-KVM\nand do not try kernel and user space MMIO processing for poisoned\npage.\n\n[xiao: fix warning introduced by avi]\n\nReported-by: Max Asbock \u003cmasbock@linux.vnet.ibm.com\u003e\nSigned-off-by: Huang Ying \u003cying.huang@intel.com\u003e\nSigned-off-by: Xiao Guangrong \u003cxiaoguangrong@cn.fujitsu.com\u003e\nSigned-off-by: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "de51257aa301652876ab6e8f13ea4eadbe4a3846",
      "tree": "388ee39bed1d7e362438d047b57399a28e2617f8",
      "parents": [
        "51c20fcced5badee0e2021c6c89f44aa3cbd72aa"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hughd@google.com",
        "time": "Fri Jul 30 10:58:26 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 30 18:56:09 2010 -0700"
      },
      "message": "mm: fix ia64 crash when gcore reads gate area\n\nDebian\u0027s ia64 autobuilders have been seeing kernel freeze or reboot\nwhen running the gdb testsuite (Debian bug 588574): dannf bisected to\n2.6.32 62eede62dafb4a6633eae7ffbeb34c60dba5e7b1 \"mm: ZERO_PAGE without\nPTE_SPECIAL\"; and reproduced it with gdb\u0027s gcore on a simple target.\n\nI\u0027d missed updating the gate_vma handling in __get_user_pages(): that\nhappens to use vm_normal_page() (nowadays failing on the zero page),\nyet reported success even when it failed to get a page - boom when\naccess_process_vm() tried to copy that to its intermediate buffer.\n\nFix this, resisting cleanups: in particular, leave it for now reporting\nsuccess when not asked to get any pages - very probably safe to change,\nbut let\u0027s not risk it without testing exposure.\n\nWhy did ia64 crash with 16kB pages, but succeed with 64kB pages?\nBecause setup_gate() pads each 64kB of its gate area with zero pages.\n\nReported-by: Andreas Barth \u003caba@not.so.argh.org\u003e\nBisected-by: dann frazier \u003cdannf@debian.org\u003e\nSigned-off-by: Hugh Dickins \u003chughd@google.com\u003e\nTested-by: dann frazier \u003cdannf@dannf.org\u003e\nCc: stable@kernel.org\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bc6488e91078af0b42ee0d8335e0587f64550d7d",
      "tree": "9adc2fc7fe0824054679ad273af8fe83be1f8269",
      "parents": [
        "7adde04a2f5a798f04a556dfb3b69bff388e5dc4"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "cl@linux-foundation.org",
        "time": "Mon Jul 26 10:41:14 2010 -0500"
      },
      "committer": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Thu Jul 29 12:59:00 2010 +0300"
      },
      "message": "slub numa: Fix rare allocation from unexpected node\n\nThe network developers have seen sporadic allocations resulting in objects\ncoming from unexpected NUMA nodes despite asking for objects from a\nspecific node.\n\nThis is due to get_partial() calling get_any_partial() if partial\nslabs are exhausted for a node even if a node was specified and therefore\none would expect allocations only from the specified node.\n\nget_any_partial() sporadically may return a slab from a foreign\nnode to gradually reduce the size of partial lists on remote nodes\nand thereby reduce total memory use for a slab cache.\n\nThe behavior is controlled by the remote_defrag_ratio of each cache.\n\nStrictly speaking this is permitted behavior since __GFP_THISNODE was\nnot specified for the allocation but it is certain surprising.\n\nThis patch makes sure that the remote defrag behavior only occurs\nif no node was specified.\n\nSigned-off-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nSigned-off-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\n"
    },
    {
      "commit": "9dcdbf7a33d9018ac5d45debcf261be648bdd56a",
      "tree": "bbcc1a018f11ff76cd7ce174ef3ffe2c02da07ee",
      "parents": [
        "cc5edb0eb9ce892b530e34a5d110382483587942",
        "cd5b8f8755a89a57fc8c408d284b8b613f090345"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jul 21 21:43:03 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jul 21 21:43:06 2010 +0200"
      },
      "message": "Merge branch \u0027linus\u0027 into perf/core\n\nMerge reason: Pick up the latest perf fixes.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "b8ab9f82025adea77864115da73e70026fa4f540",
      "tree": "37d83932b99efd4aac2fccb2075a76bf0a147769",
      "parents": [
        "9aebbdb637a73a6092e1456ebb4a2df32cc1f611"
      ],
      "author": {
        "name": "Yinghai Lu",
        "email": "yinghai@kernel.org",
        "time": "Tue Jul 20 13:24:31 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 20 16:25:40 2010 -0700"
      },
      "message": "x86,nobootmem: make alloc_bootmem_node fall back to other node when 32bit numa is used\n\nBorislav Petkov reported his 32bit numa system has problem:\n\n[    0.000000] Reserving total of 4c00 pages for numa KVA remap\n[    0.000000] kva_start_pfn ~ 32800 max_low_pfn ~ 375fe\n[    0.000000] max_pfn \u003d 238000\n[    0.000000] 8202MB HIGHMEM available.\n[    0.000000] 885MB LOWMEM available.\n[    0.000000]   mapped low ram: 0 - 375fe000\n[    0.000000]   low ram: 0 - 375fe000\n[    0.000000] alloc (nid\u003d8 100000 - 7ee00000) (1000000 - ffffffff) 1000 1000 \u003d\u003e 34e7000\n[    0.000000] alloc (nid\u003d8 100000 - 7ee00000) (1000000 - ffffffff) 200 40 \u003d\u003e 34c9d80\n[    0.000000] alloc (nid\u003d0 100000 - 7ee00000) (1000000 - ffffffffffffffff) 180 40 \u003d\u003e 34e6140\n[    0.000000] alloc (nid\u003d1 80000000 - c7e60000) (1000000 - ffffffffffffffff) 240 40 \u003d\u003e 80000000\n[    0.000000] BUG: unable to handle kernel paging request at 40000000\n[    0.000000] IP: [\u003cc2c8cff1\u003e] __alloc_memory_core_early+0x147/0x1d6\n[    0.000000] *pdpt \u003d 0000000000000000 *pde \u003d f000ff53f000ff00\n...\n[    0.000000] Call Trace:\n[    0.000000]  [\u003cc2c8b4f8\u003e] ? __alloc_bootmem_node+0x216/0x22f\n[    0.000000]  [\u003cc2c90c9b\u003e] ? sparse_early_usemaps_alloc_node+0x5a/0x10b\n[    0.000000]  [\u003cc2c9149e\u003e] ? sparse_init+0x1dc/0x499\n[    0.000000]  [\u003cc2c79118\u003e] ? paging_init+0x168/0x1df\n[    0.000000]  [\u003cc2c780ff\u003e] ? native_pagetable_setup_start+0xef/0x1bb\n\nlooks like it allocates too much high address for bootmem.\n\nTry to cut limit with get_max_mapped()\n\nReported-by: Borislav Petkov \u003cborislav.petkov@amd.com\u003e\nTested-by: Conny Seidel \u003cconny.seidel@amd.com\u003e\nSigned-off-by: Yinghai Lu \u003cyinghai@kernel.org\u003e\nCc: \u003cstable@kernel.org\u003e\t\t[2.6.34.x]\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a6aa62a0909b9ccb1f8b0d2653920ba071037972",
      "tree": "2df66e9a20cdb8fac10a1979c6b678e98ee67f0a",
      "parents": [
        "c61284e99191b2284fb74dae6961d4d09e4e59e8"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Tue Jul 20 13:24:25 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 20 16:25:40 2010 -0700"
      },
      "message": "mm/vmscan.c: fix mapping use after free\n\nWe need lock_page_nosync() here because we have no reference to the\nmapping when taking the page lock.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nReviewed-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "78b435368fcd615e695a06012cd963a556284e00",
      "tree": "3d844f8a6c4b58f60b6a97510a08d703b455c22e",
      "parents": [
        "1c5474a65bf15a4cb162dfff86d6d0b5a08a740c"
      ],
      "author": {
        "name": "Arjan van de Ven",
        "email": "arjan@linux.intel.com",
        "time": "Mon Jul 19 10:59:42 2010 -0700"
      },
      "committer": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Tue Jul 20 10:03:23 2010 +0300"
      },
      "message": "slab: use deferable timers for its periodic housekeeping\n\nslab has a \"once every 2 second\" timer for its housekeeping.\nAs the number of logical processors is growing, its more and more\ncommon that this 2 second timer becomes the primary wakeup source.\n\nThis patch turns this housekeeping timer into a deferable timer,\nwhich means that the timer does not interrupt idle, but just runs\nat the next event that wakes the cpu up.\n\nThe impact is that the timer likely runs a bit later, but during the\ndelay no code is running so there\u0027s not all that much reason for\na difference in housekeeping to occur because of this delay.\n\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nSigned-off-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\n"
    },
    {
      "commit": "7f8275d0d660c146de6ee3017e1e2e594c49e820",
      "tree": "884db927118b44102750b5168ee36ef4b8b5cb4e",
      "parents": [
        "d0c6f6258478e1dba532bf7c28e2cd6e1047d3a4"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Mon Jul 19 14:56:17 2010 +1000"
      },
      "committer": {
        "name": "Dave Chinner",
        "email": "david@fromorbit.com",
        "time": "Mon Jul 19 14:56:17 2010 +1000"
      },
      "message": "mm: add context argument to shrinker callback\n\nThe current shrinker implementation requires the registered callback\nto have global state to work from. This makes it difficult to shrink\ncaches that are not global (e.g. per-filesystem caches). Pass the shrinker\nstructure to the callback so that users can embed the shrinker structure\nin the context the shrinker needs to operate on and get back to it in the\ncallback via container_of().\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "46ac0cc92eedf92f7909e563ffcd2dbc4b914bc3",
      "tree": "25b9c293e4f9a33b8593f83c86f1db5ddf247ead",
      "parents": [
        "2decd5a7cea2c1dae6418fe778857d43680a91aa",
        "9078370c0d2cfe4a905aa34f398bbb0d65921a2b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 19 13:18:34 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 19 13:18:34 2010 -0700"
      },
      "message": "Merge branch \u0027kmemleak\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/cmarinas/linux-2.6-cm\n\n* \u0027kmemleak\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/cmarinas/linux-2.6-cm:\n  kmemleak: Add support for NO_BOOTMEM configurations\n  kmemleak: Annotate false positive in init_section_page_cgroup()\n"
    },
    {
      "commit": "9078370c0d2cfe4a905aa34f398bbb0d65921a2b",
      "tree": "0b0d3b1f2a9a6dd2f2deaae9fbf9c8c5509ac13c",
      "parents": [
        "7952f98818d561ed0e11434a7a16acd9a7bae859"
      ],
      "author": {
        "name": "Catalin Marinas",
        "email": "catalin.marinas@arm.com",
        "time": "Mon Jul 19 11:54:15 2010 +0100"
      },
      "committer": {
        "name": "Catalin Marinas",
        "email": "catalin.marinas@arm.com",
        "time": "Mon Jul 19 11:54:15 2010 +0100"
      },
      "message": "kmemleak: Add support for NO_BOOTMEM configurations\n\nWith commits 08677214 and 59be5a8e, alloc_bootmem()/free_bootmem() and\nfriends use the early_res functions for memory management when\nNO_BOOTMEM is enabled. This patch adds the kmemleak calls in the\ncorresponding code paths for bootmem allocations.\n\nSigned-off-by: Catalin Marinas \u003ccatalin.marinas@arm.com\u003e\nAcked-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nAcked-by: Yinghai Lu \u003cyinghai@kernel.org\u003e\nCc: H. Peter Anvin \u003chpa@zytor.com\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "7952f98818d561ed0e11434a7a16acd9a7bae859",
      "tree": "b8e74d8a3aa9ac6939889487b8c46ce098c7d9f3",
      "parents": [
        "815c4163b6c8ebf8152f42b0a5fd015cfdcedc78"
      ],
      "author": {
        "name": "Catalin Marinas",
        "email": "catalin.marinas@arm.com",
        "time": "Mon Jul 19 11:54:14 2010 +0100"
      },
      "committer": {
        "name": "Catalin Marinas",
        "email": "catalin.marinas@arm.com",
        "time": "Mon Jul 19 11:54:14 2010 +0100"
      },
      "message": "kmemleak: Annotate false positive in init_section_page_cgroup()\n\nThe pointer to the page_cgroup table allocated in\ninit_section_page_cgroup() is stored in section-\u003epage_cgroup as (base -\npfn). Since this value does not point to the beginning or inside the\nallocated memory block, kmemleak reports a false positive.\n\nThis was reported in bugzilla.kernel.org as #16297.\n\nSigned-off-by: Catalin Marinas \u003ccatalin.marinas@arm.com\u003e\nReported-by: Adrien Dessemond \u003cadrien.dessemond@gmail.com\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\n"
    },
    {
      "commit": "af537b0a6c650ab6ff7104d8163e96866b31c835",
      "tree": "31d756ebce6ac6613b42a1aa5b1f5a80a7d76fe7",
      "parents": [
        "f5b801ac38a9612b380ee9a75ab1861f0594e79f"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "cl@linux-foundation.org",
        "time": "Fri Jul 09 14:07:14 2010 -0500"
      },
      "committer": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Fri Jul 16 11:13:08 2010 +0300"
      },
      "message": "slub: Use kmem_cache flags to detect if slab is in debugging mode.\n\nThe cacheline with the flags is reachable from the hot paths after the\npercpu allocator changes went in. So there is no need anymore to put a\nflag into each slab page. Get rid of the SlubDebug flag and use\nthe flags in kmem_cache instead.\n\nAcked-by: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nSigned-off-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\n"
    },
    {
      "commit": "f5b801ac38a9612b380ee9a75ab1861f0594e79f",
      "tree": "c43a34bfec58e91f1aa46e95462977e24b390a37",
      "parents": [
        "d7278bd7d1aab5c6d35fd271eeb860548f0bd0bb"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "cl@linux-foundation.org",
        "time": "Fri Jul 09 14:07:13 2010 -0500"
      },
      "committer": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Fri Jul 16 11:13:07 2010 +0300"
      },
      "message": "slub: Allow removal of slab caches during boot\n\nIf a slab cache is removed before we have setup sysfs then simply skip over\nthe sysfs handling.\n\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Roland Dreier \u003crdreier@cisco.com\u003e\nAcked-by: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nSigned-off-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\n"
    },
    {
      "commit": "d7278bd7d1aab5c6d35fd271eeb860548f0bd0bb",
      "tree": "24f82cf0c312c69291b7f4ed4879a0a345558cac",
      "parents": [
        "f90ec390148fdbc0db38c477bc6dc94db721e7f1"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "cl@linux-foundation.org",
        "time": "Fri Jul 09 14:07:12 2010 -0500"
      },
      "committer": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Fri Jul 16 11:13:07 2010 +0300"
      },
      "message": "slub: Check kasprintf results in kmem_cache_init()\n\nSmall allocations may fail during slab bringup which is fatal. Add a BUG_ON()\nso that we fail immediately rather than failing later during sysfs\nprocessing.\n\nAcked-by: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nSigned-off-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\n"
    },
    {
      "commit": "f90ec390148fdbc0db38c477bc6dc94db721e7f1",
      "tree": "265f99b1be6c5dd5c5087d29eabd7fadcad4805f",
      "parents": [
        "2154a336381f85f5390d9a84c6cf4a7d2847b6ed"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "cl@linux-foundation.org",
        "time": "Fri Jul 09 14:07:11 2010 -0500"
      },
      "committer": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Fri Jul 16 11:13:07 2010 +0300"
      },
      "message": "SLUB: Constants need UL\n\nUL suffix is missing in some constants. Conform to how slab.h uses constants.\n\nAcked-by: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nSigned-off-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\n"
    },
    {
      "commit": "2154a336381f85f5390d9a84c6cf4a7d2847b6ed",
      "tree": "6b4f2136878a578e8675f042bd4a361a8ca253df",
      "parents": [
        "1c5474a65bf15a4cb162dfff86d6d0b5a08a740c"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "cl@linux-foundation.org",
        "time": "Fri Jul 09 14:07:10 2010 -0500"
      },
      "committer": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Fri Jul 16 11:13:06 2010 +0300"
      },
      "message": "slub: Use a constant for a unspecified node.\n\nkmalloc_node() and friends can be passed a constant -1 to indicate\nthat no choice was made for the node from which the object needs to\ncome.\n\nUse NUMA_NO_NODE instead of -1.\n\nCC: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nSigned-off-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\n"
    },
    {
      "commit": "d602dabaeba79df90cc67c32d5fe4ee0d5e2b73a",
      "tree": "7aa3b395f4c2934adde7b07a6678c347c84a7d35",
      "parents": [
        "1c5474a65bf15a4cb162dfff86d6d0b5a08a740c"
      ],
      "author": {
        "name": "Bob Liu",
        "email": "lliubbo@gmail.com",
        "time": "Sat Jul 10 18:05:33 2010 +0800"
      },
      "committer": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Fri Jul 16 11:03:20 2010 +0300"
      },
      "message": "SLOB: Free objects to their own list\n\nSLOB has alloced smaller objects from their own list in reduce overall external\nfragmentation and increase repeatability, free to their own list also.\n\nThis is /proc/meminfo result in my test machine:\n\n  without this patch:\n  \u003d\u003d\u003d\n  MemTotal:        1030720 kB\n  MemFree:          750012 kB\n  Buffers:           15496 kB\n  Cached:           160396 kB\n  SwapCached:            0 kB\n  Active:           105024 kB\n  Inactive:         145604 kB\n  Active(anon):      74816 kB\n  Inactive(anon):     2180 kB\n  Active(file):      30208 kB\n  Inactive(file):   143424 kB\n  Unevictable:          16 kB\n  ....\n\n  with this patch:\n  \u003d\u003d\u003d\n  MemTotal:        1030720 kB\n  MemFree:          751908 kB\n  Buffers:           15492 kB\n  Cached:           160280 kB\n  SwapCached:            0 kB\n  Active:           102720 kB\n  Inactive:         146140 kB\n  Active(anon):      73168 kB\n  Inactive(anon):     2180 kB\n  Active(file):      29552 kB\n  Inactive(file):   143960 kB\n  Unevictable:          16 kB\n  ...\n\nThe result shows an improvement of 1 MB!\n\nAnd when I tested it on a embeded system with 64 MB, I found this path is never\ncalled during kernel bootup.\n\nAcked-by: Matt Mackall \u003cmpm@selenic.com\u003e\nSigned-off-by: Bob Liu \u003clliubbo@gmail.com\u003e\nSigned-off-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\n"
    },
    {
      "commit": "95f72d1ed41a66f1c1c29c24d479de81a0bea36f",
      "tree": "bd92b3804ff0bea083d69af0ede52f99ab34c0af",
      "parents": [
        "1c5474a65bf15a4cb162dfff86d6d0b5a08a740c"
      ],
      "author": {
        "name": "Yinghai Lu",
        "email": "yinghai@kernel.org",
        "time": "Mon Jul 12 14:36:09 2010 +1000"
      },
      "committer": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Wed Jul 14 17:14:00 2010 +1000"
      },
      "message": "lmb: rename to memblock\n\nvia following scripts\n\n      FILES\u003d$(find * -type f | grep -vE \u0027oprofile|[^K]config\u0027)\n\n      sed -i \\\n        -e \u0027s/lmb/memblock/g\u0027 \\\n        -e \u0027s/LMB/MEMBLOCK/g\u0027 \\\n        $FILES\n\n      for N in $(find . -name lmb.[ch]); do\n        M\u003d$(echo $N | sed \u0027s/lmb/memblock/g\u0027)\n        mv $N $M\n      done\n\nand remove some wrong change like lmbench and dlmb etc.\n\nalso move memblock.c from lib/ to mm/\n\nSuggested-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nAcked-by: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nAcked-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nAcked-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nSigned-off-by: Yinghai Lu \u003cyinghai@kernel.org\u003e\nSigned-off-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\n"
    },
    {
      "commit": "ffa71f33a820d1ab3f2fc5723819ac60fb76080b",
      "tree": "fb7fb08c43a773f771a49ac765e9330e07d32eef",
      "parents": [
        "d7a0380dc3e6607d30ccdfc3cfc2ccee0d966716"
      ],
      "author": {
        "name": "Kenji Kaneshige",
        "email": "kaneshige.kenji@jp.fujitsu.com",
        "time": "Fri Jun 18 12:22:40 2010 +0900"
      },
      "committer": {
        "name": "H. Peter Anvin",
        "email": "hpa@linux.intel.com",
        "time": "Fri Jul 09 11:42:03 2010 -0700"
      },
      "message": "x86, ioremap: Fix incorrect physical address handling in PAE mode\n\nCurrent x86 ioremap() doesn\u0027t handle physical address higher than\n32-bit properly in X86_32 PAE mode. When physical address higher than\n32-bit is passed to ioremap(), higher 32-bits in physical address is\ncleared wrongly. Due to this bug, ioremap() can map wrong address to\nlinear address space.\n\nIn my case, 64-bit MMIO region was assigned to a PCI device (ioat\ndevice) on my system. Because of the ioremap()\u0027s bug, wrong physical\naddress (instead of MMIO region) was mapped to linear address space.\nBecause of this, loading ioatdma driver caused unexpected behavior\n(kernel panic, kernel hangup, ...).\n\nSigned-off-by: Kenji Kaneshige \u003ckaneshige.kenji@jp.fujitsu.com\u003e\nLKML-Reference: \u003c4C1AE680.7090408@jp.fujitsu.com\u003e\nSigned-off-by: H. Peter Anvin \u003chpa@linux.intel.com\u003e\n"
    },
    {
      "commit": "c77e9e68269bf50573ce130b5d95ff6e539dbcf8",
      "tree": "99edc1b070717e18f5958f934bc3921cfed2ce1f",
      "parents": [
        "31016e9941be85e8c487b1f3c45d253eda356715",
        "83ba7b071f30f7c01f72518ad72d5cd203c27502"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 08 08:06:40 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 08 08:06:40 2010 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.dk/linux-2.6-block\n\n* \u0027for-linus\u0027 of git://git.kernel.dk/linux-2.6-block:\n  writeback: simplify the write back thread queue\n  writeback: split writeback_inodes_wb\n  writeback: remove writeback_inodes_wbc\n  fs-writeback: fix kernel-doc warnings\n  splice: check f_mode for seekable file\n  splice: direct_splice_actor() should not use pos in sd\n"
    },
    {
      "commit": "83ba7b071f30f7c01f72518ad72d5cd203c27502",
      "tree": "4737320dcce72cfff4d87d835e4f78428eca7ef5",
      "parents": [
        "edadfb10ba35da7253541e4155aa92eff758ebe6"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Tue Jul 06 08:59:53 2010 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Tue Jul 06 08:59:53 2010 +0200"
      },
      "message": "writeback: simplify the write back thread queue\n\nFirst remove items from work_list as soon as we start working on them.  This\nmeans we don\u0027t have to track any pending or visited state and can get\nrid of all the RCU magic freeing the work items - we can simply free\nthem once the operation has finished.  Second use a real completion for\ntracking synchronous requests - if the caller sets the completion pointer\nwe complete it, otherwise use it as a boolean indicator that we can free\nthe work item directly.  Third unify struct wb_writeback_args and struct\nbdi_work into a single data structure, wb_writeback_work.  Previous we\nset all parameters into a struct wb_writeback_args, copied it into\nstruct bdi_work, copied it again on the stack to use it there.  Instead\nof just allocate one structure dynamically or on the stack and use it\nall the way through the stack.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "9c3a8ee8a1d72c5c0d7fbdf426d80e270ddfa54c",
      "tree": "fa131760a61f66afeede852622ede0d716965489",
      "parents": [
        "06d738fa9155ff16dba3d7e501ba4581d01a98cb"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Thu Jun 10 12:07:27 2010 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Tue Jul 06 08:54:03 2010 +0200"
      },
      "message": "writeback: remove writeback_inodes_wbc\n\nThis was just an odd wrapper around writeback_inodes_wb.  Removing this\nalso allows to get rid of the bdi member of struct writeback_control\nwhich was rather out of place there.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "08f8ba07998ab1b9efcdd3f28dadf6866a605ddb",
      "tree": "8e09855446f7b0312bb729d4b539090756e57927",
      "parents": [
        "0879b100f3c187257729f36cba33d96ec2875766",
        "815c4163b6c8ebf8152f42b0a5fd015cfdcedc78"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jul 05 08:30:55 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jul 05 08:30:58 2010 +0200"
      },
      "message": "Merge commit \u0027v2.6.35-rc4\u0027 into perf/core\n\nMerge reason: Pick up the latest perf fixes\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "0a54cec0c25cc49e3b68b14c205f1f6cff13f5e1",
      "tree": "eb4e63ee9ae1fcaf9aa53a1668e55c09516052d9",
      "parents": [
        "ec8c27e04f89a7575ca2c4facb99152e03d6a99c",
        "980019d74e4b2428362b36a0506519d6d9460800"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Jul 01 08:49:28 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Jul 01 09:31:25 2010 +0200"
      },
      "message": "Merge branch \u0027linus\u0027 into core/rcu\n\nConflicts:\n\tfs/fs-writeback.c\n\nMerge reason: Resolve the conflict\n\nNote, i picked the version from Linus\u0027s tree, which effectively reverts\nthe fs-writeback.c bits of:\n\n  b97181f: fs: remove all rcu head initializations, except on_stack initializations\n\nAs the upstream changes to this file changed this code heavily and the\nfirst attempt to resolve the conflict resulted in a non-booting kernel.\nIt\u0027s safer to re-try this portion of the commit cleanly.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "5c0c165490e763eddcbb0b6c8c41ab5cc11ddea0",
      "tree": "729ad93071eaf065e7dfb7c7d94b0207b2eced8e",
      "parents": [
        "56480287f9776adc5b1a7a335ef62a9b9879ad7f"
      ],
      "author": {
        "name": "Lee Schermerhorn",
        "email": "Lee.Schermerhorn@hp.com",
        "time": "Tue Jun 29 15:05:30 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 29 15:29:31 2010 -0700"
      },
      "message": "mempolicy: fix dangling reference to tmpfs superblock mpol\n\nMy patch to \"Factor out duplicate put/frees in mpol_shared_policy_init()\nto a common return path\"; and Dan Carpenter\u0027s fix thereto both left a\ndangling reference to the incoming tmpfs superblock mempolicy structure.\nA similar leak was introduced earlier when the nodemask was moved offstack\nto the scratch area despite the note in the comment block regarding the\nincoming ref.\n\nMove the remaining \u0027put of the incoming \"mpol\" to the common exit path to\ndrop the reference.\n\nSigned-off-by: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nAcked-by: Dan Carpenter \u003cerror27@gmail.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: 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": "4d845ebf4cf9e985b1704b1f08b37f744b4ede13",
      "tree": "d137f9220a1572c2e3b53ce38950314f5aeb82e4",
      "parents": [
        "3c26c9d9597f982973b9b3a32364230096ab0d78"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Tue Jun 29 15:05:18 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 29 15:29:30 2010 -0700"
      },
      "message": "memcg: fix wake up in oom wait queue\n\nOOM-waitqueue should be waken up when oom_disable is canceled.  This is a\nfix for 3c11ecf448eff8f1 (\"memcg: oom kill disable and oom status\").\n\nHow to test:\n Create a cgroup A...\n 1. set memory.limit and memory.memsw.limit to be small value\n 2. echo 1 \u003e /cgroup/A/memory.oom_control, this disables oom-kill.\n 3. run a program which must cause OOM.\n\nA program executed in 3 will sleep by oom_waiqueue in memcg.  Then, how to\nwake it up is problem.\n\n 1. echo 0 \u003e /cgroup/A/memory.oom_control (enable OOM-killer)\n 2. echo big mem \u003e /cgroup/A/memory.memsw.limit_in_bytes(allow more swap)\n\netc..\n\nWithout the patch, a task in slept can not be waken up.\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nAcked-by: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nCc: Balbir Singh \u003cbalbir@in.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": "984bc9601f64fd341b8573021d7c999f1f1499a9",
      "tree": "06c616a6285b00d1e577902face3e8a986370b34",
      "parents": [
        "57439f878afafefad8836ebf5c49da2a0a746105",
        "1b99973f1c82707e46e8cb9416865a1e955e8f8c"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 29 10:42:52 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 29 10:42:52 2010 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.dk/linux-2.6-block\n\n* \u0027for-linus\u0027 of git://git.kernel.dk/linux-2.6-block:\n  block: Don\u0027t count_vm_events for discard bio in submit_bio.\n  cfq: fix recursive call in cfq_blkiocg_update_completion_stats()\n  cfq-iosched: Fixed boot warning with BLK_CGROUP\u003dy and CFQ_GROUP_IOSCHED\u003dn\n  cfq: Don\u0027t allow queue merges for queues that have no process references\n  block: fix DISCARD_BARRIER requests\n  cciss: set SCSI max cmd len to 16, as default is wrong\n  cpqarray: fix two more wrong section type\n  cpqarray: fix wrong __init type on pci probe function\n  drbd: Fixed a race between disk-attach and unexpected state changes\n  writeback: fix pin_sb_for_writeback\n  writeback: add missing requeue_io in writeback_inodes_wb\n  writeback: simplify and split bdi_start_writeback\n  writeback: simplify wakeup_flusher_threads\n  writeback: fix writeback_inodes_wb from writeback_inodes_sb\n  writeback: enforce s_umount locking in writeback_inodes_sb\n  writeback: queue work on stack in writeback_inodes_sb\n  writeback: fix writeback completion notifications\n"
    },
    {
      "commit": "f384c954c9fe3d3c6fce5ae66b67f2ddd947d098",
      "tree": "a38541b8083a2304435e9a153d408bd7cd44116e",
      "parents": [
        "9a15a07fe2175dc25cd928a354b3839f562ac8cc",
        "5904b3b81d25166e5e39b9727645bb47937618e3"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Jun 28 22:33:13 2010 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Jun 28 22:33:24 2010 +0200"
      },
      "message": "Merge branch \u0027linus\u0027 into perf/core\n\nReason: Further changes conflict with upstream fixes\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "099a19d91ca429944743d51bef8fee240e94d8e3",
      "tree": "55bdc0f25ecbf38240782fb1d9a80d33c0100eb6",
      "parents": [
        "4ba6ce250e406b20bcd6f0f3aed6b3d80965e6c2"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Sun Jun 27 18:50:00 2010 +0200"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Sun Jun 27 18:50:00 2010 +0200"
      },
      "message": "percpu: allow limited allocation before slab is online\n\nThis patch updates percpu allocator such that it can serve limited\namount of allocation before slab comes online.  This is primarily to\nallow slab to depend on working percpu allocator.\n\nTwo parameters, PERCPU_DYNAMIC_EARLY_SIZE and SLOTS, determine how\nmuch memory space and allocation map slots are reserved.  If this\nreserved area is exhausted, WARN_ON_ONCE() will trigger and allocation\nwill fail till slab comes online.\n\nThe following changes are made to implement early alloc.\n\n* pcpu_mem_alloc() now checks slab_is_available()\n\n* Chunks are allocated using pcpu_mem_alloc()\n\n* Init paths make sure ai-\u003edyn_size is at least as large as\n  PERCPU_DYNAMIC_EARLY_SIZE.\n\n* Initial alloc maps are allocated in __initdata and copied to\n  kmalloc\u0027d areas once slab is online.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4ba6ce250e406b20bcd6f0f3aed6b3d80965e6c2",
      "tree": "3ae4cdd7c53626dca141bd32037a524a2bc3643c",
      "parents": [
        "9983b6f0cf8263e51bcf4c8a9dc0c1ef175b3c60"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Sun Jun 27 18:49:59 2010 +0200"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Sun Jun 27 18:49:59 2010 +0200"
      },
      "message": "percpu: make @dyn_size always mean min dyn_size in first chunk init functions\n\nIn pcpu_build_alloc_info() and pcpu_embed_first_chunk(), @dyn_size was\nssize_t, -1 meant auto-size, 0 forced 0 and positive meant minimum\nsize.  There\u0027s no use case for forcing 0 and the upcoming early alloc\nsupport always requires non-zero dynamic size.  Make @dyn_size always\nmean minimum dyn_size.\n\nWhile at it, make pcpu_build_alloc_info() static which doesn\u0027t have\nany external caller as suggested by David Rientjes.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\n"
    },
    {
      "commit": "9983b6f0cf8263e51bcf4c8a9dc0c1ef175b3c60",
      "tree": "a9b7bacbdf8e30b931c2ebd849104b04b157d48d",
      "parents": [
        "a92d3ff9e5dbd958d8008a3e7a573e988e370ca3"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Fri Jun 18 11:44:31 2010 +0200"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Fri Jun 18 15:07:23 2010 +0200"
      },
      "message": "percpu: fix first chunk match in per_cpu_ptr_to_phys()\n\nper_cpu_ptr_to_phys() determines whether the passed in @addr belongs\nto the first_chunk or not by just matching the address against the\naddress range of the base unit (unit0, used by cpu0).  When an adress\nfrom another cpu was passed in, it will always determine that the\naddress doesn\u0027t belong to the first chunk even when it does.  This\nmakes the function return a bogus physical address which may lead to\ncrash.\n\nThis problem was discovered by Cliff Wickman while investigating a\ncrash during kdump on a SGI UV system.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nReported-by: Cliff Wickman \u003ccpw@sgi.com\u003e\nTested-by: Cliff Wickman \u003ccpw@sgi.com\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "646b1db4956ba8bf748b835b5eba211133d91c2e",
      "tree": "061166d873d9da9cf83044a7593ad111787076c5",
      "parents": [
        "0f2c3de2ba110626515234d5d584fb1b0c0749a2",
        "7e27d6e778cd87b6f2415515d7127eba53fe5d02"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jun 18 10:53:12 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jun 18 10:53:19 2010 +0200"
      },
      "message": "Merge commit \u0027v2.6.35-rc3\u0027 into perf/core\n\nMerge reason: Go from -rc1 base to -rc3 base, merge in fixes.\n"
    },
    {
      "commit": "a92d3ff9e5dbd958d8008a3e7a573e988e370ca3",
      "tree": "1fe26978d5ef6bbee063c3fb7b4e6b78280ab551",
      "parents": [
        "7e27d6e778cd87b6f2415515d7127eba53fe5d02"
      ],
      "author": {
        "name": "Pavel V. Panteleev",
        "email": "pp_84@mail.ru",
        "time": "Thu Jun 17 10:07:25 2010 +0200"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Jun 17 10:07:25 2010 +0200"
      },
      "message": "percpu: fix trivial bugs in pcpu_build_alloc_info()\n\nFix the following two trivial bugs in pcpu_build_alloc_info()\n\n* we should memset group_cnt to 0 by size of group_cnt, not size of\n  group_map (both are of the same size, so the bug isn\u0027t dangerous)\n\n* we can delete useless variable group_cnt_max.\n\nSigned-off-by: Pavel V. Panteleev \u003cpp_84@mail.ru\u003e\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\n"
    },
    {
      "commit": "875352c94224c88f5aa28cb77206f993bd31b7a2",
      "tree": "945688f1860b157a2f09a2d8ef1e2ec5b91b18a3",
      "parents": [
        "b97181f24212f4c29197890ce1b2b9100bcc184d"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Mon May 10 17:14:24 2010 -0700"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Mon Jun 14 16:37:26 2010 -0700"
      },
      "message": "mm: remove all rcu head initializations\n\nRemove all rcu head inits. We don\u0027t care about the RCU head state before passing\nit to call_rcu() anyway. Only leave the \"on_stack\" variants so debugobjects can\nkeep track of objects on stack.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Mathieu Desnoyers \u003cmathieu.desnoyers@efficios.com\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: Matt Mackall \u003cmpm@selenic.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c5444198ca210498e8ac0ba121b4cd3537aa12f7",
      "tree": "c423d38fe1ac7f51a48e455a19ecbe2354811fca",
      "parents": [
        "b8c2f3474f1077599ec6e90c2f263f17055cc3d8"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Tue Jun 08 18:15:15 2010 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Fri Jun 11 12:58:08 2010 +0200"
      },
      "message": "writeback: simplify and split bdi_start_writeback\n\nbdi_start_writeback now never gets a superblock passed, so we can just remove\nthat case.  And to further untangle the code and flatten the call stack\nsplit it into two trivial helpers for it\u0027s two callers.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "c726b61c6a5acc54c55ed7a0e7638cc4c5a100a8",
      "tree": "3f44aa013d31d34951e9610e79ff14c1148ad6ac",
      "parents": [
        "7be7923633a142402266d642ccebf74f556a649b",
        "018378c55b03f88ff513aba4e0e93b8d4a9cf241"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jun 09 18:55:20 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jun 09 18:55:57 2010 +0200"
      },
      "message": "Merge branch \u0027perf/core\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/frederic/random-tracing into perf/core\n"
    },
    {
      "commit": "039ca4e74a1cf60bd7487324a564ecf5c981f254",
      "tree": "61c6fa8409961d2e22ef9d04ac54442734ebd41a",
      "parents": [
        "30dbb20e68e6f7df974b77d2350ebad5eb6f6c9e"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Wed May 26 17:22:17 2010 +0800"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Wed Jun 09 17:31:22 2010 +0200"
      },
      "message": "tracing: Remove kmemtrace ftrace plugin\n\nWe have been resisting new ftrace plugins and removing existing\nones, and kmemtrace has been superseded by kmem trace events\nand perf-kmem, so we remove it.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nAcked-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nAcked-by: Eduard - Gabriel Munteanu \u003ceduard.munteanu@linux360.ro\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\n[ remove kmemtrace from the makefile, handle slob too ]\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\n"
    },
    {
      "commit": "3af9e859281bda7eb7c20b51879cf43aa788ac2e",
      "tree": "cddb7fc788abc826551e12bba5892c6b26942392",
      "parents": [
        "8ed92280be013180e24c84456ab6babcb07037cc"
      ],
      "author": {
        "name": "Eric B Munson",
        "email": "ebmunson@us.ibm.com",
        "time": "Tue May 18 15:30:49 2010 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jun 09 11:12:34 2010 +0200"
      },
      "message": "perf: Add non-exec mmap() tracking\n\nAdd the capacility to track data mmap()s. This can be used together\nwith PERF_SAMPLE_ADDR for data profiling.\n\nSigned-off-by: Anton Blanchard \u003canton@samba.org\u003e\n[Updated code for stable perf ABI]\nSigned-off-by: Eric B Munson \u003cebmunson@us.ibm.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nLKML-Reference: \u003c1274193049-25997-1-git-send-email-ebmunson@us.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "d87815cb2090e07b0b0b2d73dc9740706e92c80c",
      "tree": "0e23b40fce5b09c94dab2bf773601b310d8d9b09",
      "parents": [
        "254c8c2dbf0e06a560a5814eb90cb628adb2de66"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Wed Jun 09 10:37:20 2010 +1000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 08 18:12:44 2010 -0700"
      },
      "message": "writeback: limit write_cache_pages integrity scanning to current EOF\n\nsync can currently take a really long time if a concurrent writer is\nextending a file. The problem is that the dirty pages on the address\nspace grow in the same direction as write_cache_pages scans, so if\nthe writer keeps ahead of writeback, the writeback will not\nterminate until the writer stops adding dirty pages.\n\nFor a data integrity sync, we only need to write the pages dirty at\nthe time we start the writeback, so we can stop scanning once we get\nto the page that was at the end of the file at the time the scan\nstarted.\n\nThis will prevent operations like copying a large file preventing\nsync from completing as it will not write back pages that were\ndirtied after the sync was started. This does not impact the\nexisting integrity guarantees, as any dirty page (old or new)\nwithin the EOF range at the start of the scan will still be\ncaptured.\n\nThis patch will not prevent sync from blocking on large writes into\nholes. That requires more complex intervention while this patch only\naddresses the common append-case of this sync holdoff.\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0b5649278e39a068aaf91399941bab1b4a4a3cc2",
      "tree": "3fd2c782385137f5b135c07149de772e207fdaf8",
      "parents": [
        "8d7458daea2a6809d32418bf489b949d23de99ea"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Wed Jun 09 10:37:18 2010 +1000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 08 18:12:44 2010 -0700"
      },
      "message": "writeback: pay attention to wbc-\u003enr_to_write in write_cache_pages\n\nIf a filesystem writes more than one page in -\u003ewritepage, write_cache_pages\nfails to notice this and continues to attempt writeback when wbc-\u003enr_to_write\nhas gone negative - this trace was captured from XFS:\n\n    wbc_writeback_start: towrt\u003d1024\n    wbc_writepage: towrt\u003d1024\n    wbc_writepage: towrt\u003d0\n    wbc_writepage: towrt\u003d-1\n    wbc_writepage: towrt\u003d-5\n    wbc_writepage: towrt\u003d-21\n    wbc_writepage: towrt\u003d-85\n\nThis has adverse effects on filesystem writeback behaviour. write_cache_pages()\nneeds to terminate after a certain number of pages are written, not after a\ncertain number of calls to -\u003ewritepage are made.  This is a regression\nintroduced by 17bc6c30cf6bfffd816bdc53682dd46fc34a2cf4 (\"vfs: Add\nno_nrwrite_index_update writeback control flag\"), but cannot be reverted\ndirectly due to subsequent bug fixes that have gone in on top of it.\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7f0d384cafabfbb56663ee6944c18fc0450fc5d6",
      "tree": "bf68721fb65b64392177f498a9ba61ef027b2b3d",
      "parents": [
        "90ec7819737d42a0ad1c2df1ff56016facae3c6e",
        "01afaf61983d08ed1c9e5e8f2fcf4f40e9008033"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jun 04 21:12:39 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jun 04 21:12:39 2010 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6:\n  Minix: Clean up left over label\n  fix truncate inode time modification breakage\n  fix setattr error handling in sysfs, configfs\n  fcntl: return -EFAULT if copy_to_user fails\n  wrong type for \u0027magic\u0027 argument in simple_fill_super()\n  fix the deadlock in qib_fs\n  mqueue doesn\u0027t need make_bad_inode()\n"
    },
    {
      "commit": "d2dd328b7f7bc6cebe167648289337755944ad2a",
      "tree": "5d664a2db1ac209f7537452ddc02597972f7aa37",
      "parents": [
        "c1518f12bab97a6d409a25aaccb02dc8895800f3",
        "1abec4fdbb142e3ccb6ce99832fae42129134a96"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jun 04 15:37:44 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jun 04 15:37:44 2010 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.dk/linux-2.6-block\n\n* \u0027for-linus\u0027 of git://git.kernel.dk/linux-2.6-block: (27 commits)\n  block: make blk_init_free_list and elevator_init idempotent\n  block: avoid unconditionally freeing previously allocated request_queue\n  pipe: change /proc/sys/fs/pipe-max-pages to byte sized interface\n  pipe: change the privilege required for growing a pipe beyond system max\n  pipe: adjust minimum pipe size to 1 page\n  block: disable preemption before using sched_clock()\n  cciss: call BUG() earlier\n  Preparing 8.3.8rc2\n  drbd: Reduce verbosity\n  drbd: use drbd specific ratelimit instead of global printk_ratelimit\n  drbd: fix hang on local read errors while disconnected\n  drbd: Removed the now empty w_io_error() function\n  drbd: removed duplicated #includes\n  drbd: improve usage of MSG_MORE\n  drbd: need to set socket bufsize early to take effect\n  drbd: improve network latency, TCP_QUICKACK\n  drbd: Revert \"drbd: Create new current UUID as late as possible\"\n  brd: support discard\n  Revert \"writeback: fix WB_SYNC_NONE writeback from umount\"\n  Revert \"writeback: ensure that WB_SYNC_NONE writeback with sb pinned is sync\"\n  ...\n"
    },
    {
      "commit": "bb21c7ce18eff8e6e7877ca1d06c6db719376e3c",
      "tree": "555edaded1e0a771df406ce2b6b63368df6de6cd",
      "parents": [
        "9e506f7adce8e6165a104d3d78fddd8ff0cdccf8"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Fri Jun 04 14:15:05 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jun 04 15:21:45 2010 -0700"
      },
      "message": "vmscan: fix do_try_to_free_pages() return value when priority\u003d\u003d0 reclaim failure\n\nGreg Thelen reported recent Johannes\u0027s stack diet patch makes kernel hang.\n His test is following.\n\n  mount -t cgroup none /cgroups -o memory\n  mkdir /cgroups/cg1\n  echo $$ \u003e /cgroups/cg1/tasks\n  dd bs\u003d1024 count\u003d1024 if\u003d/dev/null of\u003d/data/foo\n  echo $$ \u003e /cgroups/tasks\n  echo 1 \u003e /cgroups/cg1/memory.force_empty\n\nActually, This OOM hard to try logic have been corrupted since following\ntwo years old patch.\n\n\tcommit a41f24ea9fd6169b147c53c2392e2887cc1d9247\n\tAuthor: Nishanth Aravamudan \u003cnacc@us.ibm.com\u003e\n\tDate:   Tue Apr 29 00:58:25 2008 -0700\n\n\t    page allocator: smarter retry of costly-order allocations\n\nOriginal intention was \"return success if the system have shrinkable zones\nthough priority\u003d\u003d0 reclaim was failure\".  But the above patch changed to\n\"return nr_reclaimed if .....\".  Oh, That forgot nr_reclaimed may be 0 if\npriority\u003d\u003d0 reclaim failure.\n\nAnd Johannes\u0027s patch 0aeb2339e54e (\"vmscan: remove all_unreclaimable scan\ncontrol\") made it more corrupt.  Originally, priority\u003d\u003d0 reclaim failure\non memcg return 0, but this patch changed to return 1.  It totally\nconfused memcg.\n\nThis patch fixes it completely.\n\nReported-by: Greg Thelen \u003cgthelen@google.com\u003e\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nAcked-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nTested-by: Greg Thelen \u003cgthelen@google.com\u003e\nAcked-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": "af5a30d8cfcfc561336f982b06345d6b815e0bb3",
      "tree": "eb4e6fb6873355a2a96b698aeb371eb058a88c87",
      "parents": [
        "8718d36cf99f5acf0f37487557ec25aee54b930b"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Thu Jun 03 22:01:46 2010 +1000"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Jun 04 17:16:30 2010 -0400"
      },
      "message": "fix truncate inode time modification breakage\n\nmtime and ctime should be changed only if the file size has actually\nchanged. Patches changing ext2 and tmpfs from vmtruncate to new truncate\nsequence has caused regressions where they always update timestamps.\n\nThere is some strange cases in POSIX where truncate(2) must not update\ntimes unless the size has acutally changed, see 6e656be89.\n\nThis area is all still rather buggy in different ways in a lot of\nfilesystems and needs a cleanup and audit (ideally the vfs will provide\na simple attribute or call to direct all filesystems exactly which\nattributes to change). But coming up with the best solution will take a\nwhile and is not appropriate for rc anyway.\n\nSo fix recent regression for now.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "b4ca761577535b2b4d153689ee97342797dfff05",
      "tree": "29054d55508f1faa22ec32acf7c245751af03348",
      "parents": [
        "28f4197e5d4707311febeec8a0eb97cb5fd93c97",
        "67a3e12b05e055c0415c556a315a3d3eb637e29e"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Tue Jun 01 12:42:12 2010 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Tue Jun 01 12:42:12 2010 +0200"
      },
      "message": "Merge branch \u0027master\u0027 into for-linus\n\nConflicts:\n\tfs/pipe.c\n\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "0e3c9a2284f5417f196e327c254d0b84c9ee8929",
      "tree": "e3fb40ebe7d042b4b3c1042bc7f2edaf7fb6eee0",
      "parents": [
        "f17625b318d9b151e7bd41e31223e9d89b2aaa77"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Tue Jun 01 11:08:43 2010 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Tue Jun 01 11:08:43 2010 +0200"
      },
      "message": "Revert \"writeback: fix WB_SYNC_NONE writeback from umount\"\n\nThis reverts commit e913fc825dc685a444cb4c1d0f9d32f372f59861.\n\nWe are investigating a hang associated with the WB_SYNC_NONE changes,\nso revert them for now.\n\nConflicts:\n\n\tfs/fs-writeback.c\n\tmm/page-writeback.c\n\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "3b03117c5cfbb04175b688c79ea4155b8ef812d3",
      "tree": "5d2e3d0d7db98e2b47c7bb51be39bc4ced6a4d97",
      "parents": [
        "fa7eadab4b4aec0139d2429e6f8d13375ff8a658",
        "0f1f694260e0d35b5ce7d471f6e679c3dd4d7d94"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun May 30 12:46:17 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun May 30 12:46:17 2010 -0700"
      },
      "message": "Merge branch \u0027slub/urgent\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/penberg/slab-2.6\n\n* \u0027slub/urgent\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/penberg/slab-2.6:\n  SLUB: Allow full duplication of kmalloc array for 390\n  slub: move kmem_cache_node into it\u0027s own cacheline\n"
    },
    {
      "commit": "003386fff3e02e51cea882e60f7d28290113964c",
      "tree": "253001a9a0fc609b757362708edc2dcaab9e2a14",
      "parents": [
        "092405cdb66f060918160ae730640b449ed7b827",
        "51921cb746f56983db5a373ca68deb2b0d3ddf01"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun May 30 09:16:14 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun May 30 09:16:14 2010 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse:\n  mm: export generic_pipe_buf_*() to modules\n  fuse: support splice() reading from fuse device\n  fuse: allow splice to move pages\n  mm: export remove_from_page_cache() to modules\n  mm: export lru_cache_add_*() to modules\n  fuse: support splice() writing to fuse device\n  fuse: get page reference for readpages\n  fuse: use get_user_pages_fast()\n  fuse: remove unneeded variable\n"
    },
    {
      "commit": "3889e6e76f66b7de208a1709d0fe530b21a2d384",
      "tree": "c5eb8e299df1a32ff1f179f04aa0ced273dee899",
      "parents": [
        "3322e79a3860fd0d50e3c1879b2e98ac582c0ff6"
      ],
      "author": {
        "name": "npiggin@suse.de",
        "email": "npiggin@suse.de",
        "time": "Thu May 27 01:05:36 2010 +1000"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu May 27 22:15:51 2010 -0400"
      },
      "message": "tmpfs: convert to use the new truncate convention\n\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nAcked-by: Hugh Dickins \u003chugh.dickins@tiscali.co.uk\u003e\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "7bb46a6734a7e1ad4beaecc11cae7ed3ff81d30f",
      "tree": "e575d9c55e2a6ccc645dcb3ae2564de458b428f2",
      "parents": [
        "7000d3c424e5bb350e502a477fb0e1ed42f8b10e"
      ],
      "author": {
        "name": "npiggin@suse.de",
        "email": "npiggin@suse.de",
        "time": "Thu May 27 01:05:33 2010 +1000"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu May 27 22:15:33 2010 -0400"
      },
      "message": "fs: introduce new truncate sequence\n\nIntroduce a new truncate calling sequence into fs/mm subsystems. Rather than\nsetattr \u003e vmtruncate \u003e truncate, have filesystems call their truncate sequence\nfrom -\u003esetattr if filesystem specific operations are required. vmtruncate is\ndeprecated, and truncate_pagecache and inode_newsize_ok helpers introduced\npreviously should be used.\n\nsimple_setattr is introduced for simple in-ram filesystems to implement\nthe new truncate sequence. Eventually all filesystems should be converted\nto implement a setattr, and the default code in notify_change should go\naway.\n\nsimple_setsize is also introduced to perform just the ATTR_SIZE portion\nof simple_setattr (ie. changing i_size and trimming pagecache).\n\nTo implement the new truncate sequence:\n- filesystem specific manipulations (eg freeing blocks) must be done in\n  the setattr method rather than -\u003etruncate.\n- vmtruncate can not be used by core code to trim blocks past i_size in\n  the event of write failure after allocation, so this must be performed\n  in the fs code.\n- convert usage of helpers block_write_begin, nobh_write_begin,\n  cont_write_begin, and *blockdev_direct_IO* to use _newtrunc postfixed\n  variants. These avoid calling vmtruncate to trim blocks (see previous).\n- inode_setattr should not be used. generic_setattr is a new function\n  to be used to copy simple attributes into the generic inode.\n- make use of the better opportunity to handle errors with the new sequence.\n\nBig problem with the previous calling sequence: the filesystem is not called\nuntil i_size has already changed.  This means it is not allowed to fail the\ncall, and also it does not know what the previous i_size was. Also, generic\ncode calling vmtruncate to truncate allocated blocks in case of error had\nno good way to return a meaningful error (or, for example, atomically handle\nblock deallocation).\n\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nAcked-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "1b061d9247f71cd15edc4c4c4600191a903642c0",
      "tree": "30d92ca82d8286e7a45fba108230ecd23e61673b",
      "parents": [
        "7ea8085910ef3dd4f3cad6845aaa2b580d39b115"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Wed May 26 17:53:41 2010 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu May 27 22:06:06 2010 -0400"
      },
      "message": "rename the generic fsync implementations\n\nWe don\u0027t name our generic fsync implementations very well currently.\nThe no-op implementation for in-memory filesystems currently is called\nsimple_sync_file which doesn\u0027t make too much sense to start with,\nthe the generic one for simple filesystems is called simple_fsync\nwhich can lead to some confusion.\n\nThis patch renames the generic file fsync method to generic_file_fsync\nto match the other generic_file_* routines it is supposed to be used\nwith, and the no-op implementation to noop_fsync to make it obvious\nwhat to expect.  In addition add some documentation for both methods.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "105a048a4f35f7a74c7cc20b36dd83658b6ec232",
      "tree": "043b1110cda0042ba35d8aae59382bb094d0af3f",
      "parents": [
        "00b9b0af5887fed54e899e3b7f5c2ccf5e739def",
        "9aeead73782c4b8e2a91def36dbf95db28605c95"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 10:43:44 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 10:43:44 2010 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable: (27 commits)\n  Btrfs: add more error checking to btrfs_dirty_inode\n  Btrfs: allow unaligned DIO\n  Btrfs: drop verbose enospc printk\n  Btrfs: Fix block generation verification race\n  Btrfs: fix preallocation and nodatacow checks in O_DIRECT\n  Btrfs: avoid ENOSPC errors in btrfs_dirty_inode\n  Btrfs: move O_DIRECT space reservation to btrfs_direct_IO\n  Btrfs: rework O_DIRECT enospc handling\n  Btrfs: use async helpers for DIO write checksumming\n  Btrfs: don\u0027t walk around with task-\u003estate !\u003d TASK_RUNNING\n  Btrfs: do aio_write instead of write\n  Btrfs: add basic DIO read/write support\n  direct-io: do not merge logically non-contiguous requests\n  direct-io: add a hook for the fs to provide its own submit_bio function\n  fs: allow short direct-io reads to be completed via buffered IO\n  Btrfs: Metadata ENOSPC handling for balance\n  Btrfs: Pre-allocate space for data relocation\n  Btrfs: Metadata ENOSPC handling for tree log\n  Btrfs: Metadata reservation for orphan inodes\n  Btrfs: Introduce global metadata reservation\n  ...\n"
    },
    {
      "commit": "7d6e6d09de82cf6cff7fecdba55198b9f47b381c",
      "tree": "57b26da3bea0af63dd0b65cdcdde33fe5670a35f",
      "parents": [
        "fd1197f1131a1f1d8bc192f9cfbbe17e305f17f3"
      ],
      "author": {
        "name": "Lee Schermerhorn",
        "email": "lee.schermerhorn@hp.com",
        "time": "Wed May 26 14:45:03 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:57 2010 -0700"
      },
      "message": "numa: slab: use numa_mem_id() for slab local memory node\n\nExample usage of generic \"numa_mem_id()\":\n\nThe mainline slab code, since ~ 2.6.19, does not handle memoryless nodes\nwell.  Specifically, the \"fast path\"--____cache_alloc()--will never\nsucceed as slab doesn\u0027t cache offnode object on the per cpu queues, and\nfor memoryless nodes, all memory will be \"off node\" relative to\nnuma_node_id().  This adds significant overhead to all kmem cache\nallocations, incurring a significant regression relative to earlier\nkernels [from before slab.c was reorganized].\n\nThis patch uses the generic topology function \"numa_mem_id()\" to return\nthe \"effective local memory node\" for the calling context.  This is the\nfirst node in the local node\u0027s generic fallback zonelist-- the same node\nthat \"local\" mempolicy-based allocations would use.  This lets slab cache\nthese \"local\" allocations and avoid fallback/refill on every allocation.\n\nN.B.: Slab will need to handle node and memory hotplug events that could\nchange the value returned by numa_mem_id() for any given node if recent\nchanges to address memory hotplug don\u0027t already address this.  E.g., flush\nall per cpu slab queues before rebuilding the zonelists while the\n\"machine\" is held in the stopped state.\n\nPerformance impact on \"hackbench 400 process 200\"\n\n2.6.34-rc3-mmotm-100405-1609\t\tno-patch\tthis-patch\nia64 no memoryless nodes [avg of 10]:     11.713       11.637  ~0.65 diff\nia64 cpus all on memless nodes  [10]:    228.259       26.484  ~8.6x speedup\n\nThe slowdown of the patched kernel from ~12 sec to ~28 seconds when\nconfigured with memoryless nodes is the result of all cpus allocating from\na single node\u0027s mm pagepool.  The cache lines of the single node are\ndistributed/interleaved over the memory of the real physical nodes, but\nthe zone lock, list heads, ...  of the single node with memory still each\nlive in a single cache line that is accessed from all processors.\n\nx86_64 [8x6 AMD] [avg of 40]:\t\t2.883\t   2.845\n\nSigned-off-by: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Eric Whitney \u003ceric.whitney@hp.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nCc: \"Luck, Tony\" \u003ctony.luck@intel.com\u003e\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: \u003clinux-arch@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    }
  ],
  "next": "7aac789885512388a66d47280d7e7777ffba1e59"
}
