)]}'
{
  "log": [
    {
      "commit": "52cf25d0ab7f78eeecc59ac652ed5090f69b619e",
      "tree": "031d1ffb3890bd69c0260c864c512e0be62ac05c",
      "parents": [
        "6c1733aca0b48db4d0e660d54976a1cca25b5eaf"
      ],
      "author": {
        "name": "Emese Revfy",
        "email": "re.emese@gmail.com",
        "time": "Tue Jan 19 02:58:23 2010 +0100"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Sun Mar 07 17:04:49 2010 -0800"
      },
      "message": "Driver core: Constify struct sysfs_ops in struct kobj_type\n\nConstify struct sysfs_ops.\n\nThis is part of the ops structure constification\neffort started by Arjan van de Ven et al.\n\nBenefits of this constification:\n\n * prevents modification of data that is shared\n   (referenced) by many other structure instances\n   at runtime\n\n * detects/prevents accidental (but not intentional)\n   modification attempts on archs that enforce\n   read-only kernel data at runtime\n\n * potentially better optimized code as the compiler\n   can assume that the const data cannot be changed\n\n * the compiler/linker move const data into .rodata\n   and therefore exclude them from false sharing\n\nSigned-off-by: Emese Revfy \u003cre.emese@gmail.com\u003e\nAcked-by: David Teigland \u003cteigland@redhat.com\u003e\nAcked-by: Matt Domsch \u003cMatt_Domsch@dell.com\u003e\nAcked-by: Maciej Sosnowski \u003cmaciej.sosnowski@intel.com\u003e\nAcked-by: Hans J. Koch \u003chjk@linutronix.de\u003e\nAcked-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nAcked-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nAcked-by: Stephen Hemminger \u003cshemminger@vyatta.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "9cd43611ccfb46632bfa7d19f688924ea93f1613",
      "tree": "e11ecee403235ba9d8855892fa7ad55d9b63e221",
      "parents": [
        "985fc176a6c03836454629be2f2a611ccc7c7002"
      ],
      "author": {
        "name": "Emese Revfy",
        "email": "re.emese@gmail.com",
        "time": "Thu Dec 31 14:52:51 2009 +0100"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Sun Mar 07 17:04:49 2010 -0800"
      },
      "message": "kobject: Constify struct kset_uevent_ops\n\nConstify struct kset_uevent_ops.\n\nThis is part of the ops structure constification\neffort started by Arjan van de Ven et al.\n\nBenefits of this constification:\n\n * prevents modification of data that is shared\n   (referenced) by many other structure instances\n   at runtime\n\n * detects/prevents accidental (but not intentional)\n   modification attempts on archs that enforce\n   read-only kernel data at runtime\n\n * potentially better optimized code as the compiler\n   can assume that the const data cannot be changed\n\n * the compiler/linker move const data into .rodata\n   and therefore exclude them from false sharing\n\nSigned-off-by: Emese Revfy \u003cre.emese@gmail.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "08259d58e4fa12ceaece82193c5816152f638cca",
      "tree": "8c032914139c5aec362a73b8316cf81f020f9f8f",
      "parents": [
        "c08c6e1f54c85fc299cf9f88cf330d6dd28a9a1d"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh.dickins@tiscali.co.uk",
        "time": "Fri Mar 05 13:42:25 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 06 11:26:27 2010 -0800"
      },
      "message": "mm: add comment on swap_duplicate\u0027s error code\n\nswap_duplicate()\u0027s loop appears to miss out on returning the error code\nfrom __swap_duplicate(), except when that\u0027s -ENOMEM.  In fact this is\nintentional: prior to -ENOMEM for swap_count_continuation,\nswap_duplicate() was void (and the case only occurs when copy_one_pte()\nhits a corrupt pte).  But that\u0027s surprising behaviour, which certainly\ndeserves a comment.\n\nSigned-off-by: Hugh Dickins \u003chughd@google.com\u003e\nReported-by: Huang Shijie \u003cshijie8@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": "c08c6e1f54c85fc299cf9f88cf330d6dd28a9a1d",
      "tree": "b03659b467641e445b9f4a96423fd20ff806b7fb",
      "parents": [
        "f047f4f3792344901e1ea18a180515d7d5349e02"
      ],
      "author": {
        "name": "Steven J. Magnani",
        "email": "steve@digidescorp.com",
        "time": "Fri Mar 05 13:42:24 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 06 11:26:27 2010 -0800"
      },
      "message": "nommu: get_user_pages(): pin last page on non-page-aligned start\n\nThe noMMU version of get_user_pages() fails to pin the last page when the\nstart address isn\u0027t page-aligned.  The patch fixes this in a way that\nmakes find_extend_vma() congruent to its MMU cousin.\n\nSigned-off-by: Steven J. Magnani \u003csteve@digidescorp.com\u003e\nAcked-by: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "645747462435d84c6c6a64269ed49cc3015f753d",
      "tree": "4cbbddcddd429704dd4f205f6371bb329dcb0ff1",
      "parents": [
        "31c0569c3b0b6cc8a867ac6665ca081553f7984c"
      ],
      "author": {
        "name": "Johannes Weiner",
        "email": "hannes@cmpxchg.org",
        "time": "Fri Mar 05 13:42:22 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 06 11:26:27 2010 -0800"
      },
      "message": "vmscan: detect mapped file pages used only once\n\nThe VM currently assumes that an inactive, mapped and referenced file page\nis in use and promotes it to the active list.\n\nHowever, every mapped file page starts out like this and thus a problem\narises when workloads create a stream of such pages that are used only for\na short time.  By flooding the active list with those pages, the VM\nquickly gets into trouble finding eligible reclaim canditates.  The result\nis long allocation latencies and eviction of the wrong pages.\n\nThis patch reuses the PG_referenced page flag (used for unmapped file\npages) to implement a usage detection that scales with the speed of LRU\nlist cycling (i.e.  memory pressure).\n\nIf the scanner encounters those pages, the flag is set and the page cycled\nagain on the inactive list.  Only if it returns with another page table\nreference it is activated.  Otherwise it is reclaimed as \u0027not recently\nused cache\u0027.\n\nThis effectively changes the minimum lifetime of a used-once mapped file\npage from a full memory cycle to an inactive list cycle, which allows it\nto occur in linear streams without affecting the stable working set of the\nsystem.\n\nSigned-off-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nReviewed-by: Rik van Riel \u003criel@redhat.com\u003e\nCc: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: OSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "31c0569c3b0b6cc8a867ac6665ca081553f7984c",
      "tree": "c3d3e02f941fed0f91981d55d93540d2acaaecbd",
      "parents": [
        "dfc8d636cdb95f7b792d5ba8c9f3b295809c125d"
      ],
      "author": {
        "name": "Johannes Weiner",
        "email": "hannes@cmpxchg.org",
        "time": "Fri Mar 05 13:42:21 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 06 11:26:27 2010 -0800"
      },
      "message": "vmscan: drop page_mapping_inuse()\n\npage_mapping_inuse() is a historic predicate function for pages that are\nabout to be reclaimed or deactivated.\n\nAccording to it, a page is in use when it is mapped into page tables OR\npart of swap cache OR backing an mmapped file.\n\nThis function is used in combination with page_referenced(), which checks\nfor young bits in ptes and the page descriptor itself for the\nPG_referenced bit.  Thus, checking for unmapped swap cache pages is\nmeaningless as PG_referenced is not set for anonymous pages and unmapped\npages do not have young ptes.  The test makes no difference.\n\nProtecting file pages that are not by themselves mapped but are part of a\nmapped file is also a historic leftover for short-lived things like the\nexec() code in libc.  However, the VM now does reference accounting and\nactivation of pages at unmap time and thus the special treatment on\nreclaim is obsolete.\n\nThis patch drops page_mapping_inuse() and switches the two callsites to\nuse page_mapped() directly.\n\nSigned-off-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nReviewed-by: Rik van Riel \u003criel@redhat.com\u003e\nCc: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: OSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "dfc8d636cdb95f7b792d5ba8c9f3b295809c125d",
      "tree": "90070c49adb5a8833d8fc034bc94cc696797e22e",
      "parents": [
        "e7c84ee22b8321fa0130a53d4c9806474d62eff0"
      ],
      "author": {
        "name": "Johannes Weiner",
        "email": "hannes@cmpxchg.org",
        "time": "Fri Mar 05 13:42:19 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 06 11:26:27 2010 -0800"
      },
      "message": "vmscan: factor out page reference checks\n\nThe used-once mapped file page detection patchset.\n\nIt is meant to help workloads with large amounts of shortly used file\nmappings, like rtorrent hashing a file or git when dealing with loose\nobjects (git gc on a bigger site?).\n\nRight now, the VM activates referenced mapped file pages on first\nencounter on the inactive list and it takes a full memory cycle to\nreclaim them again.  When those pages dominate memory, the system\nno longer has a meaningful notion of \u0027working set\u0027 and is required\nto give up the active list to make reclaim progress.  Obviously,\nthis results in rather bad scanning latencies and the wrong pages\nbeing reclaimed.\n\nThis patch makes the VM be more careful about activating mapped file\npages in the first place.  The minimum granted lifetime without\nanother memory access becomes an inactive list cycle instead of the\nfull memory cycle, which is more natural given the mentioned loads.\n\nThis test resembles a hashing rtorrent process.  Sequentially, 32MB\nchunks of a file are mapped into memory, hashed (sha1) and unmapped\nagain.  While this happens, every 5 seconds a process is launched and\nits execution time taken:\n\n\tpython2.4 -c \u0027import pydoc\u0027\n\told: max\u003d2.31s mean\u003d1.26s (0.34)\n\tnew: max\u003d1.25s mean\u003d0.32s (0.32)\n\n\tfind /etc -type f\n\told: max\u003d2.52s mean\u003d1.44s (0.43)\n\tnew: max\u003d1.92s mean\u003d0.12s (0.17)\n\n\tvim -c \u0027:quit\u0027\n\told: max\u003d6.14s mean\u003d4.03s (0.49)\n\tnew: max\u003d3.48s mean\u003d2.41s (0.25)\n\n\tmplayer --help\n\told: max\u003d8.08s mean\u003d5.74s (1.02)\n\tnew: max\u003d3.79s mean\u003d1.32s (0.81)\n\n\toverall hash time (stdev):\n\told: time\u003d1192.30 (12.85) thruput\u003d25.78mb/s (0.27)\n\tnew: time\u003d1060.27 (32.58) thruput\u003d29.02mb/s (0.88) (-11%)\n\nI also tested kernbench with regular IO streaming in the background to\nsee whether the delayed activation of frequently used mapped file\npages had a negative impact on performance in the presence of pressure\non the inactive list.  The patch made no significant difference in\ntiming, neither for kernbench nor for the streaming IO throughput.\n\nThe first patch submission raised concerns about the cost of the extra\nfaults for actually activated pages on machines that have no hardware\nsupport for young page table entries.\n\nI created an artificial worst case scenario on an ARM machine with\naround 300MHz and 64MB of memory to figure out the dimensions\ninvolved.  The test would mmap a file of 20MB, then\n\n  1. touch all its pages to fault them in\n  2. force one full scan cycle on the inactive file LRU\n  -- old: mapping pages activated\n  -- new: mapping pages inactive\n  3. touch the mapping pages again\n  -- old and new: fault exceptions to set the young bits\n  4. force another full scan cycle on the inactive file LRU\n  5. touch the mapping pages one last time\n  -- new: fault exceptions to set the young bits\n\nThe test showed an overall increase of 6% in time over 100 iterations\nof the above (old: ~212sec, new: ~225sec).  13 secs total overhead /\n(100 * 5k pages), ignoring the execution time of the test itself,\nmakes for about 25us overhead for every page that gets actually\nactivated.  Note:\n\n  1. File mapping the size of one third of main memory, _completely_\n  in active use across memory pressure - i.e., most pages referenced\n  within one LRU cycle.  This should be rare to non-existant,\n  especially on such embedded setups.\n\n  2. Many huge activation batches.  Those batches only occur when the\n  working set fluctuates.  If it changes completely between every full\n  LRU cycle, you have problematic reclaim overhead anyway.\n\n  3. Access of activated pages at maximum speed: sequential loads from\n  every single page without doing anything in between.  In reality,\n  the extra faults will get distributed between actual operations on\n  the data.\n\nSo even if a workload manages to get the VM into the situation of\nactivating a third of memory in one go on such a setup, it will take\n2.2 seconds instead 2.1 without the patch.\n\nComparing the numbers (and my user-experience over several months),\nI think this change is an overall improvement to the VM.\n\nPatch 1 is only refactoring to break up that ugly compound conditional\nin shrink_page_list() and make it easy to document and add new checks\nin a readable fashion.\n\nPatch 2 gets rid of the obsolete page_mapping_inuse().  It\u0027s not\nstrictly related to #3, but it was in the original submission and is a\nnet simplification, so I kept it.\n\nPatch 3 implements used-once detection of mapped file pages.\n\nThis patch:\n\nMoving the big conditional into its own predicate function makes the code\na bit easier to read and allows for better commenting on the checks\none-by-one.\n\nThis is just cleaning up, no semantics should have been changed.\n\nSigned-off-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nReviewed-by: Rik van Riel \u003criel@redhat.com\u003e\nCc: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: OSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "72f0ba0252e7177965255ed2c663be126b6b5f91",
      "tree": "2da83e883742ef4bf2d32b53805869f0ea7b3ac2",
      "parents": [
        "452aa6999e6703ffbddd7f6ea124d3968915f3e3"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Fri Mar 05 13:42:14 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 06 11:26:26 2010 -0800"
      },
      "message": "mm: suppress pfn range output for zones without pages\n\nfree_area_init_nodes() emits pfn ranges for all zones on the system.\nThere may be no pages on a higher zone, however, due to memory limitations\nor the use of the mem\u003d kernel parameter.  For example:\n\nZone PFN ranges:\n  DMA      0x00000001 -\u003e 0x00001000\n  DMA32    0x00001000 -\u003e 0x00100000\n  Normal   0x00100000 -\u003e 0x00100000\n\nThe implementation copies the previous zone\u0027s highest pfn, if any, as the\nnext zone\u0027s lowest pfn.  If its highest pfn is then greater than the\namount of addressable memory, the upper memory limit is used instead.\nThus, both the lowest and highest possible pfn for higher zones without\nmemory may be the same.\n\nThe pfn range for zones without memory is now shown as \"empty\" instead.\n\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\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": "452aa6999e6703ffbddd7f6ea124d3968915f3e3",
      "tree": "48e375fdb60920675f68b444b462903ad8bb6940",
      "parents": [
        "ad2bd7e0e9647cd48593a6b3a2be07dc2c2d28ed"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Fri Mar 05 13:42:13 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 06 11:26:26 2010 -0800"
      },
      "message": "mm/pm: force GFP_NOIO during suspend/hibernation and resume\n\nThere are quite a few GFP_KERNEL memory allocations made during\nsuspend/hibernation and resume that may cause the system to hang, because\nthe I/O operations they depend on cannot be completed due to the\nunderlying devices being suspended.\n\nAvoid this problem by clearing the __GFP_IO and __GFP_FS bits in\ngfp_allowed_mask before suspend/hibernation and restoring the original\nvalues of these bits in gfp_allowed_mask durig the subsequent resume.\n\n[akpm@linux-foundation.org: fix CONFIG_PM\u003dn linkage]\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nReported-by: Maxim Levitsky \u003cmaximlevitsky@gmail.com\u003e\nCc: Sebastian Ott \u003csebott@linux.vnet.ibm.com\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\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": "ad2bd7e0e9647cd48593a6b3a2be07dc2c2d28ed",
      "tree": "247c1c46e4c6948d482878f1c85c99cf180ff024",
      "parents": [
        "fc148a5f7e0532750c312385c7ee9fa3e9311f34"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh.dickins@tiscali.co.uk",
        "time": "Fri Mar 05 13:42:12 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 06 11:26:26 2010 -0800"
      },
      "message": "mm/swapfile.c: fix swapon size off-by-one\n\nThere\u0027s an off-by-one disagreement between mkswap and swapon about the\nmeaning of swap_header last_page: mkswap (in all versions I\u0027ve looked at:\nutil-linux-ng and BusyBox and old util-linux; probably as far back as\n1999) consistently means the offset (in page units) of the last page of\nthe swap area, whereas kernel sys_swapon (as far back as 2.2 and 2.3)\nstrangely takes it to mean the size (in page units) of the swap area.\n\nThis disagreement is the safe way round; but it\u0027s worrying people, and\nloses us one page of swap.\n\nThe fix is not just to add one to nr_good_pages: we need to get maxpages\n(the size of the swap_map array) right before that; and though that is an\nunsigned long, be careful not to overflow the unsigned int p-\u003emax which\nlater holds it (probably why header uses __u32 last_page instead of size).\n\nWhy did we subtract one from the maximum swp_offset to calculate maxpages?\n Though it was probably me who made that change in 2.4.10, I don\u0027t get it:\nand now we should be adding one (without risk of overflow in this case).\n\nFix the handling of swap_header badpages: it could have overrun the\nswap_map when very large swap area used on a more limited architecture.\n\nRemove pre-initializations of swap_header, nr_good_pages and maxpages:\nthose date from when sys_swapon was supporting other versions of header.\n\nReported-by: Nitin Gupta \u003cngupta@vflare.org\u003e\nReported-by: Jarkko Lavinen \u003cjarkko.lavinen@nokia.com\u003e\nSigned-off-by: Hugh Dickins \u003chugh.dickins@tiscali.co.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "fc148a5f7e0532750c312385c7ee9fa3e9311f34",
      "tree": "dfd132ed225a113f73c61f5e2018e5644bb3f677",
      "parents": [
        "c44b674323f4a2480dbeb65d4b487fa5f06f49e0"
      ],
      "author": {
        "name": "Rik van Riel",
        "email": "riel@redhat.com",
        "time": "Fri Mar 05 13:42:10 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 06 11:26:26 2010 -0800"
      },
      "message": "mm: remove VM_LOCK_RMAP code\n\nWhen a VMA is in an inconsistent state during setup or teardown, the worst\nthat can happen is that the rmap code will not be able to find the page.\n\nThe mapping is in the process of being torn down (PTEs just got\ninvalidated by munmap), or set up (no PTEs have been instantiated yet).\n\nIt is also impossible for the rmap code to follow a pointer to an already\nfreed VMA, because the rmap code holds the anon_vma-\u003elock, which the VMA\nteardown code needs to take before the VMA is removed from the anon_vma\nchain.\n\nHence, we should not need the VM_LOCK_RMAP locking at all.\n\nSigned-off-by: Rik van Riel \u003criel@redhat.com\u003e\nCc: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Larry Woodman \u003clwoodman@redhat.com\u003e\nCc: Lee Schermerhorn \u003cLee.Schermerhorn@hp.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c44b674323f4a2480dbeb65d4b487fa5f06f49e0",
      "tree": "b753050e6752eb2fc961ad3ea5dfdf88ef88364d",
      "parents": [
        "033a64b56aed798991de18d226085dfb1ccd858d"
      ],
      "author": {
        "name": "Rik van Riel",
        "email": "riel@redhat.com",
        "time": "Fri Mar 05 13:42:09 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 06 11:26:26 2010 -0800"
      },
      "message": "rmap: move exclusively owned pages to own anon_vma in do_wp_page()\n\nWhen the parent process breaks the COW on a page, both the original which\nis mapped at child and the new page which is mapped parent end up in that\nsame anon_vma.  Generally this won\u0027t be a problem, but for some workloads\nit could preserve the O(N) rmap scanning complexity.\n\nA simple fix is to ensure that, when a page which is mapped child gets\nreused in do_wp_page, because we already are the exclusive owner, the page\ngets moved to our own exclusive child\u0027s anon_vma.\n\nSigned-off-by: Rik van Riel \u003criel@redhat.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Larry Woodman \u003clwoodman@redhat.com\u003e\nCc: Lee Schermerhorn \u003cLee.Schermerhorn@hp.com\u003e\nReviewed-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Hugh Dickins \u003chugh.dickins@tiscali.co.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "033a64b56aed798991de18d226085dfb1ccd858d",
      "tree": "edf27f0868d1b16e0d1e1e41876b668d4a2f215d",
      "parents": [
        "5beb49305251e5669852ed541e8e2f2f7696c53e"
      ],
      "author": {
        "name": "Rik van Riel",
        "email": "riel@redhat.com",
        "time": "Fri Mar 05 13:42:08 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 06 11:26:26 2010 -0800"
      },
      "message": "rmap: remove obsolete check from __page_check_anon_rmap()\n\nWhen an anonymous page is inherited from a parent process, the\nvma-\u003eanon_vma can differ from the page anon_vma.  This can trip up\n__page_check_anon_rmap, which is indirectly called from do_swap_page().\n\nRemove that obsolete check to prevent an oops.\n\nSigned-off-by: Rik van Riel \u003criel@redhat.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Larry Woodman \u003clwoodman@redhat.com\u003e\nCc: Lee Schermerhorn \u003cLee.Schermerhorn@hp.com\u003e\nReviewed-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Hugh Dickins \u003chugh.dickins@tiscali.co.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5beb49305251e5669852ed541e8e2f2f7696c53e",
      "tree": "46457450a22f23938b24904aeba5d4ada2f53b20",
      "parents": [
        "648bcc771145172a14bc35eeb849ed08f6aa4f1e"
      ],
      "author": {
        "name": "Rik van Riel",
        "email": "riel@redhat.com",
        "time": "Fri Mar 05 13:42:07 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 06 11:26:26 2010 -0800"
      },
      "message": "mm: change anon_vma linking to fix multi-process server scalability issue\n\nThe old anon_vma code can lead to scalability issues with heavily forking\nworkloads.  Specifically, each anon_vma will be shared between the parent\nprocess and all its child processes.\n\nIn a workload with 1000 child processes and a VMA with 1000 anonymous\npages per process that get COWed, this leads to a system with a million\nanonymous pages in the same anon_vma, each of which is mapped in just one\nof the 1000 processes.  However, the current rmap code needs to walk them\nall, leading to O(N) scanning complexity for each page.\n\nThis can result in systems where one CPU is walking the page tables of\n1000 processes in page_referenced_one, while all other CPUs are stuck on\nthe anon_vma lock.  This leads to catastrophic failure for a benchmark\nlike AIM7, where the total number of processes can reach in the tens of\nthousands.  Real workloads are still a factor 10 less process intensive\nthan AIM7, but they are catching up.\n\nThis patch changes the way anon_vmas and VMAs are linked, which allows us\nto associate multiple anon_vmas with a VMA.  At fork time, each child\nprocess gets its own anon_vmas, in which its COWed pages will be\ninstantiated.  The parents\u0027 anon_vma is also linked to the VMA, because\nnon-COWed pages could be present in any of the children.\n\nThis reduces rmap scanning complexity to O(1) for the pages of the 1000\nchild processes, with O(N) complexity for at most 1/N pages in the system.\n This reduces the average scanning cost in heavily forking workloads from\nO(N) to 2.\n\nThe only real complexity in this patch stems from the fact that linking a\nVMA to anon_vmas now involves memory allocations.  This means vma_adjust\ncan fail, if it needs to attach a VMA to anon_vma structures.  This in\nturn means error handling needs to be added to the calling functions.\n\nA second source of complexity is that, because there can be multiple\nanon_vmas, the anon_vma linking in vma_adjust can no longer be done under\n\"the\" anon_vma lock.  To prevent the rmap code from walking up an\nincomplete VMA, this patch introduces the VM_LOCK_RMAP VMA flag.  This bit\nflag uses the same slot as the NOMMU VM_MAPPED_COPY, with an ifdef in mm.h\nto make sure it is impossible to compile a kernel that needs both symbolic\nvalues for the same bitflag.\n\nSome test results:\n\nWithout the anon_vma changes, when AIM7 hits around 9.7k users (on a test\nbox with 16GB RAM and not quite enough IO), the system ends up running\n\u003e99% in system time, with every CPU on the same anon_vma lock in the\npageout code.\n\nWith these changes, AIM7 hits the cross-over point around 29.7k users.\nThis happens with ~99% IO wait time, there never seems to be any spike in\nsystem time.  The anon_vma lock contention appears to be resolved.\n\n[akpm@linux-foundation.org: cleanups]\nSigned-off-by: Rik van Riel \u003criel@redhat.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Larry Woodman \u003clwoodman@redhat.com\u003e\nCc: Lee Schermerhorn \u003cLee.Schermerhorn@hp.com\u003e\nCc: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Hugh Dickins \u003chugh.dickins@tiscali.co.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "648bcc771145172a14bc35eeb849ed08f6aa4f1e",
      "tree": "3cc7da55d1ca18b46cb0518b3b35c276adc0aad1",
      "parents": [
        "19adf9c5d5793657118f2002237c0ee49c3b6185"
      ],
      "author": {
        "name": "Thiago Farina",
        "email": "tfransosi@gmail.com",
        "time": "Fri Mar 05 13:42:04 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 06 11:26:26 2010 -0800"
      },
      "message": "mm/memcontrol.c: fix \"integer as NULL pointer\" sparse warning\n\nmm/memcontrol.c:2548:32: warning: Using plain integer as NULL pointer\n\nSigned-off-by: Thiago Farina \u003ctfransosi@gmail.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": "0141450f66c3c12a3aaa869748caa64241885cdf",
      "tree": "cab5f621dafd1f133d915e5c60aea160438a2e11",
      "parents": [
        "42e49608683ab25fbbbf9c40edb944601e543882"
      ],
      "author": {
        "name": "Wu Fengguang",
        "email": "fengguang.wu@intel.com",
        "time": "Fri Mar 05 13:42:03 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 06 11:26:25 2010 -0800"
      },
      "message": "readahead: introduce FMODE_RANDOM for POSIX_FADV_RANDOM\n\nThis fixes inefficient page-by-page reads on POSIX_FADV_RANDOM.\n\nPOSIX_FADV_RANDOM used to set ra_pages\u003d0, which leads to poor performance:\na 16K read will be carried out in 4 _sync_ 1-page reads.\n\nIn other places, ra_pages\u003d\u003d0 means\n- it\u0027s ramfs/tmpfs/hugetlbfs/sysfs/configfs\n- some IO error happened\nwhere multi-page read IO won\u0027t help or should be avoided.\n\nPOSIX_FADV_RANDOM actually want a different semantics: to disable the\n*heuristic* readahead algorithm, and to use a dumb one which faithfully\nsubmit read IO for whatever application requests.\n\nSo introduce a flag FMODE_RANDOM for POSIX_FADV_RANDOM.\n\nNote that the random hint is not likely to help random reads performance\nnoticeably.  And it may be too permissive on huge request size (its IO\nsize is not limited by read_ahead_kb).\n\nIn Quentin\u0027s report (http://lkml.org/lkml/2009/12/24/145), the overall\n(NFS read) performance of the application increased by 313%!\n\nTested-by: Quentin Barnes \u003cqbarnes+nfs@yahoo-inc.com\u003e\nSigned-off-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nCc: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nCc: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: Jonathan Corbet \u003ccorbet@lwn.net\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nCc: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nCc: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nCc: \u003cstable@kernel.org\u003e\t\t\t[2.6.33.x]\nCc: \u003cqbarnes+nfs@yahoo-inc.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "85f1fb72fa76eabc4481dc79f42d2b011df54762",
      "tree": "04dbf3b20c3ecb6959b0591027529d89de633a8d",
      "parents": [
        "da0aa138944311e6745a00ac3d88f03e8d9a46c4"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Fri Mar 05 13:42:00 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 06 11:26:25 2010 -0800"
      },
      "message": "mm/migrate.c: kill anon local variable from migrate_page_copy\n\ncommit 01b1ae63c2 (\"memcg: simple migration handling\") removed\nmem_cgroup_uncharge_cache_page() call from migrate_page_copy.  Local\nvariable `anon\u0027 is now unused.\n\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "da0aa138944311e6745a00ac3d88f03e8d9a46c4",
      "tree": "f8a88b12652fb2e4ed6775b0cc32da837ca2d949",
      "parents": [
        "d96ae5309165d9ed7c008a178238977b73595cd9"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Fri Mar 05 13:41:59 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 06 11:26:25 2010 -0800"
      },
      "message": "mm/mempolicy.c: fix indentation of the comments of do_migrate_pages\n\nCurrently, do_migrate_pages() have very long comment and this is not\nindent properly.  I often misunderstand it is function starting commnents\nand confused it.\n\nthis patch fixes it.\n\nnote: this patch doesn\u0027t break 80 column rule. I guess original\n      author intended this indentaion, but an accident corrupted it.\n\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@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": "d96ae5309165d9ed7c008a178238977b73595cd9",
      "tree": "78b169102b718a9489fcc41ad4829a646492d2fb",
      "parents": [
        "9d8cebd4bcd7c3878462fdfda34bbcdeb4df7ef4"
      ],
      "author": {
        "name": "akpm@linux-foundation.org",
        "email": "akpm@linux-foundation.org",
        "time": "Fri Mar 05 13:41:58 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 06 11:26:25 2010 -0800"
      },
      "message": "memory-hotplug: create /sys/firmware/memmap entry for new memory\n\nA memmap is a directory in sysfs which includes 3 text files: start, end\nand type.  For example:\n\nstart: \t0x100000\nend:\t0x7e7b1cff\ntype:\tSystem RAM\n\nInterface firmware_map_add was not called explicitly.  Remove it and add\nfunction firmware_map_add_hotplug as hotplug interface of memmap.\n\nEach memory entry has a memmap in sysfs, When we hot-add new memory, sysfs\ndoes not export memmap entry for it.  We add a call in function add_memory\nto function firmware_map_add_hotplug.\n\nAdd a new function add_sysfs_fw_map_entry() to create memmap entry, it\nwill be called when initialize memmap and hot-add memory.\n\n[akpm@linux-foundation.org: un-kernedoc a no longer kerneldoc comment]\nSigned-off-by: Shaohui Zheng \u003cshaohui.zheng@intel.com\u003e\nAcked-by: Andi Kleen \u003cak@linux.intel.com\u003e\nAcked-by: Yasunori Goto \u003cy-goto@jp.fujitsu.com\u003e\nReviewed-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nCc: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9d8cebd4bcd7c3878462fdfda34bbcdeb4df7ef4",
      "tree": "0f0a6dadb4430aef18f1491003d70d9351d7b619",
      "parents": [
        "93e4a89a8c987189b168a530a331ef6d0fcf07a7"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Fri Mar 05 13:41:57 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 06 11:26:25 2010 -0800"
      },
      "message": "mm: fix mbind vma merge problem\n\nStrangely, current mbind() doesn\u0027t merge vma with neighbor vma although it\u0027s possible.\nUnfortunately, many vma can reduce performance...\n\nThis patch fixes it.\n\n    reproduced program\n    ----------------------------------------------------------------\n     #include \u003cnumaif.h\u003e\n     #include \u003cnuma.h\u003e\n     #include \u003csys/mman.h\u003e\n     #include \u003cstdio.h\u003e\n     #include \u003cunistd.h\u003e\n     #include \u003cstdlib.h\u003e\n     #include \u003cstring.h\u003e\n\n    static unsigned long pagesize;\n\n    int main(int argc, char** argv)\n    {\n    \tvoid* addr;\n    \tint ch;\n    \tint node;\n    \tstruct bitmask *nmask \u003d numa_allocate_nodemask();\n    \tint err;\n    \tint node_set \u003d 0;\n    \tchar buf[128];\n\n    \twhile ((ch \u003d getopt(argc, argv, \"n:\")) !\u003d -1){\n    \t\tswitch (ch){\n    \t\tcase \u0027n\u0027:\n    \t\t\tnode \u003d strtol(optarg, NULL, 0);\n    \t\t\tnuma_bitmask_setbit(nmask, node);\n    \t\t\tnode_set \u003d 1;\n    \t\t\tbreak;\n    \t\tdefault:\n    \t\t\t;\n    \t\t}\n    \t}\n    \targc -\u003d optind;\n    \targv +\u003d optind;\n\n    \tif (!node_set)\n    \t\tnuma_bitmask_setbit(nmask, 0);\n\n    \tpagesize \u003d getpagesize();\n\n    \taddr \u003d mmap(NULL, pagesize*3, PROT_READ|PROT_WRITE,\n    \t\t    MAP_ANON|MAP_PRIVATE, 0, 0);\n    \tif (addr \u003d\u003d MAP_FAILED)\n    \t\tperror(\"mmap \"), exit(1);\n\n    \tfprintf(stderr, \"pid \u003d %d \\n\" \"addr \u003d %p\\n\", getpid(), addr);\n\n    \t/* make page populate */\n    \tmemset(addr, 0, pagesize*3);\n\n    \t/* first mbind */\n    \terr \u003d mbind(addr+pagesize, pagesize, MPOL_BIND, nmask-\u003emaskp,\n    \t\t    nmask-\u003esize, MPOL_MF_MOVE_ALL);\n    \tif (err)\n    \t\terror(\"mbind1 \");\n\n    \t/* second mbind */\n    \terr \u003d mbind(addr, pagesize*3, MPOL_DEFAULT, NULL, 0, 0);\n    \tif (err)\n    \t\terror(\"mbind2 \");\n\n    \tsprintf(buf, \"cat /proc/%d/maps\", getpid());\n    \tsystem(buf);\n\n    \treturn 0;\n    }\n    ----------------------------------------------------------------\n\nresult without this patch\n\n\taddr \u003d 0x7fe26ef09000\n\t[snip]\n\t7fe26ef09000-7fe26ef0a000 rw-p 00000000 00:00 0\n\t7fe26ef0a000-7fe26ef0b000 rw-p 00000000 00:00 0\n\t7fe26ef0b000-7fe26ef0c000 rw-p 00000000 00:00 0\n\t7fe26ef0c000-7fe26ef0d000 rw-p 00000000 00:00 0\n\n\t\u003d\u003e 0x7fe26ef09000-0x7fe26ef0c000 have three vmas.\n\nresult with this patch\n\n\taddr \u003d 0x7fc9ebc76000\n\t[snip]\n\t7fc9ebc76000-7fc9ebc7a000 rw-p 00000000 00:00 0\n\t7fffbe690000-7fffbe6a5000 rw-p 00000000\t00:00 0\t[stack]\n\n\t\u003d\u003e 0x7fc9ebc76000-0x7fc9ebc7a000 have only one vma.\n\n[minchan.kim@gmail.com: fix file offset passed to vma_merge()]\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nReviewed-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Hugh Dickins \u003chugh.dickins@tiscali.co.uk\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nSigned-off-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "93e4a89a8c987189b168a530a331ef6d0fcf07a7",
      "tree": "deb08017c0e4874539549d3ea9bf2d7b447a43be",
      "parents": [
        "fc91668eaf9e7ba61e867fc2218b7e9fb67faa4f"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Fri Mar 05 13:41:55 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 06 11:26:25 2010 -0800"
      },
      "message": "mm: restore zone-\u003eall_unreclaimable to independence word\n\ncommit e815af95 (\"change all_unreclaimable zone member to flags\") changed\nall_unreclaimable member to bit flag.  But it had an undesireble side\neffect.  free_one_page() is one of most hot path in linux kernel and\nincreasing atomic ops in it can reduce kernel performance a bit.\n\nThus, this patch revert such commit partially. at least\nall_unreclaimable shouldn\u0027t share memory word with other zone flags.\n\n[akpm@linux-foundation.org: fix patch interaction]\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: Huang Shijie \u003cshijie8@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": "fc91668eaf9e7ba61e867fc2218b7e9fb67faa4f",
      "tree": "08d443d76255e8d60ae6ba07d52cdc295172ded8",
      "parents": [
        "c475dab63ae798d81fb597a6a1859986b296d9d0"
      ],
      "author": {
        "name": "Li Hong",
        "email": "lihong.hi@gmail.com",
        "time": "Fri Mar 05 13:41:54 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 06 11:26:25 2010 -0800"
      },
      "message": "mm: remove free_hot_page()\n\nfree_hot_page() is just a wrapper around free_hot_cold_page() with\nparameter \u0027cold \u003d 0\u0027.  After adding a clear comment for\nfree_hot_cold_page(), it is reasonable to remove a level of call.\n\n[akpm@linux-foundation.org: fix build]\nSigned-off-by: Li Hong \u003clihong.hi@gmail.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Larry Woodman \u003clwoodman@redhat.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Li Ming Chun \u003cmacli@brc.ubc.ca\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Americo Wang \u003cxiyou.wangcong@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c475dab63ae798d81fb597a6a1859986b296d9d0",
      "tree": "f2c18302f0fa261b0e82b4bf91bce48fe96209fb",
      "parents": [
        "f650316c8b80fe61a31b8b575405b37cbf170459"
      ],
      "author": {
        "name": "Li Hong",
        "email": "lihong.hi@gmail.com",
        "time": "Fri Mar 05 13:41:53 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 06 11:26:24 2010 -0800"
      },
      "message": "mm/page_alloc.c: adjust a call site to trace_mm_page_free_direct\n\nMove a call of trace_mm_page_free_direct() from free_hot_page() to\nfree_hot_cold_page().  It is clearer and close to kmemcheck_free_shadow(),\nas it is done in function __free_pages_ok().\n\nSigned-off-by: Li Hong \u003clihong.hi@gmail.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Larry Woodman \u003clwoodman@redhat.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Li Ming Chun \u003cmacli@brc.ubc.ca\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": "f650316c8b80fe61a31b8b575405b37cbf170459",
      "tree": "6526cb3de41384eeea81e18b640396138371fbb4",
      "parents": [
        "76ca542d880ebe59a7a03c1597e73e1ded271857"
      ],
      "author": {
        "name": "Li Hong",
        "email": "lihong.hi@gmail.com",
        "time": "Fri Mar 05 13:41:52 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 06 11:26:24 2010 -0800"
      },
      "message": "mm/page_alloc.c: remove duplicate call to trace_mm_page_free_direct\n\ntrace_mm_page_free_direct() is called in function __free_pages().  But it\nis called again in free_hot_page() if order \u003d\u003d 0 and produce duplicate\nrecords in trace file for mm_page_free_direct event.  As below:\n\nK-PID    CPU#    TIMESTAMP  FUNCTION\n  gnome-terminal-1567  [000]  4415.246466: mm_page_free_direct: page\u003dffffea0003db9f40 pfn\u003d1155800 order\u003d0\n  gnome-terminal-1567  [000]  4415.246468: mm_page_free_direct: page\u003dffffea0003db9f40 pfn\u003d1155800 order\u003d0\n  gnome-terminal-1567  [000]  4415.246506: mm_page_alloc: page\u003dffffea0003db9f40 pfn\u003d1155800 order\u003d0 migratetype\u003d0 gfp_flags\u003dGFP_KERNEL\n  gnome-terminal-1567  [000]  4415.255557: mm_page_free_direct: page\u003dffffea0003db9f40 pfn\u003d1155800 order\u003d0\n  gnome-terminal-1567  [000]  4415.255557: mm_page_free_direct: page\u003dffffea0003db9f40 pfn\u003d1155800 order\u003d0\n\nThis patch removes the first call and adds a call to\ntrace_mm_page_free_direct() in __free_pages_ok().\n\nSigned-off-by: Li Hong \u003clihong.hi@gmail.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Larry Woodman \u003clwoodman@redhat.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Li Ming Chun \u003cmacli@brc.ubc.ca\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": "76ca542d880ebe59a7a03c1597e73e1ded271857",
      "tree": "d5e1a5dc88150ccbfeba811769ac066021b3041b",
      "parents": [
        "84b18490d1f1bc7ed5095c929f78bc002eb70f26"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Fri Mar 05 13:41:47 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 06 11:26:24 2010 -0800"
      },
      "message": "mm, lockdep: annotate reclaim context to zone reclaim too\n\nCommit cf40bd16fd (\"lockdep: annotate reclaim context\") introduced reclaim\ncontext annotation.  But it didn\u0027t annotate zone reclaim.  This patch do\nit.\n\nThe point is, commit cf40bd16fd annotate __alloc_pages_direct_reclaim but\nzone-reclaim doesn\u0027t use __alloc_pages_direct_reclaim.\n\ncurrent call graph is\n\n__alloc_pages_nodemask\n   get_page_from_freelist\n       zone_reclaim()\n   __alloc_pages_slowpath\n       __alloc_pages_direct_reclaim\n           try_to_free_pages\n\nActually, if zone_reclaim_mode\u003d1, VM never call\n__alloc_pages_direct_reclaim in usual VM pressure.\n\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nReviewed-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nAcked-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "84b18490d1f1bc7ed5095c929f78bc002eb70f26",
      "tree": "2543443925b2852436979d4bdf18d916a6b5c11e",
      "parents": [
        "45973d74fd3b1e3e16c025b688a725c7653b1443"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Fri Mar 05 13:41:47 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 06 11:26:24 2010 -0800"
      },
      "message": "vmscan: get_scan_ratio() cleanup\n\nThe get_scan_ratio() should have all scan-ratio related calculations.\nThus, this patch move some calculation into get_scan_ratio.\n\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nReviewed-by: Rik van Riel \u003criel@redhat.com\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nReviewed-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "45973d74fd3b1e3e16c025b688a725c7653b1443",
      "tree": "79b002bf8da8807a4d82314426611ca2109f83e8",
      "parents": [
        "59e99e5b9706867f18d4a36c1e4645fbaacbec2e"
      ],
      "author": {
        "name": "Minchan Kim",
        "email": "minchan.kim@gmail.com",
        "time": "Fri Mar 05 13:41:45 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 06 11:26:24 2010 -0800"
      },
      "message": "vmscan: check high watermark after shrink zone\n\nKswapd checks that zone has sufficient pages free via zone_watermark_ok().\n\nIf any zone doesn\u0027t have enough pages, we set all_zones_ok to zero.\n!all_zone_ok makes kswapd retry rather than sleeping.\n\nI think the watermark check before shrink_zone() is pointless.  Only after\nkswapd has tried to shrink the zone is the check meaningful.\n\nMove the check to after the call to shrink_zone().\n\n[akpm@linux-foundation.org: fix comment, layout]\nSigned-off-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nReviewed-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "59e99e5b9706867f18d4a36c1e4645fbaacbec2e",
      "tree": "e977fb5eecccf1446296fd196072bd1287b0a92f",
      "parents": [
        "06f9d8c2b50060543fb6e0af87ddb86e654dee6b"
      ],
      "author": {
        "name": "Jiri Slaby",
        "email": "jslaby@suse.cz",
        "time": "Fri Mar 05 13:41:44 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 06 11:26:24 2010 -0800"
      },
      "message": "mm: use rlimit helpers\n\nMake sure compiler won\u0027t do weird things with limits.  E.g.  fetching them\ntwice may return 2 different values after writable limits are implemented.\n\nI.e.  either use rlimit helpers added in\n3e10e716abf3c71bdb5d86b8f507f9e72236c9cd (\"resource: add helpers for\nfetching rlimits\") or ACCESS_ONCE if not applicable.\n\nSigned-off-by: Jiri Slaby \u003cjslaby@suse.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "06f9d8c2b50060543fb6e0af87ddb86e654dee6b",
      "tree": "0e0f7687c58e0948334f238208529d65de165eea",
      "parents": [
        "c58267c32429ea6535428ca6b8a036892c1697f2"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Fri Mar 05 13:41:43 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 06 11:26:24 2010 -0800"
      },
      "message": "mm: mlock_vma_pages_range() only return success or failure\n\nCurrently, mlock_vma_pages_range() only return len or 0.  then current\nerror handling of mmap_region() is meaningless complex.\n\nThis patch makes simplify and makes consist with brk() code.\n\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamewzawa.hiroyu@jp.fujitsu.com\u003e\nCc: Hugh Dickins \u003chugh.dickins@tiscali.co.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c58267c32429ea6535428ca6b8a036892c1697f2",
      "tree": "c763a26e45a38b2115a2e09eb01b254284c1198b",
      "parents": [
        "b084d4353ff99d824d3bc5a5c2c22c70b1fba722"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Fri Mar 05 13:41:43 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 06 11:26:24 2010 -0800"
      },
      "message": "mm: mlock_vma_pages_range() never return negative value\n\nCurrently, mlock_vma_pages_range() never return negative value.  Then, we\ncan remove some worthless error check.\n\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamewzawa.hiroyu@jp.fujitsu.com\u003e\nCc: Hugh Dickins \u003chugh.dickins@tiscali.co.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b084d4353ff99d824d3bc5a5c2c22c70b1fba722",
      "tree": "8178db2b337fc8a36e6ca2e1fc2e7d7473957e27",
      "parents": [
        "34e55232e59f7b19050267a05ff1226e5cd122a5"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Fri Mar 05 13:41:42 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 06 11:26:24 2010 -0800"
      },
      "message": "mm: count swap usage\n\nA frequent questions from users about memory management is what numbers of\nswap ents are user for processes.  And this information will give some\nhints to oom-killer.\n\nBesides we can count the number of swapents per a process by scanning\n/proc/\u003cpid\u003e/smaps, this is very slow and not good for usual process\ninformation handler which works like \u0027ps\u0027 or \u0027top\u0027.  (ps or top is now\nenough slow..)\n\nThis patch adds a counter of swapents to mm_counter and update is at each\nswap events.  Information is exported via /proc/\u003cpid\u003e/status file as\n\n[kamezawa@bluextal memory]$ cat /proc/self/status\nName:   cat\nState:  R (running)\nTgid:   2910\nPid:    2910\nPPid:   2823\nTracerPid:      0\nUid:    500     500     500     500\nGid:    500     500     500     500\nFDSize: 256\nGroups: 500\nVmPeak:    82696 kB\nVmSize:    82696 kB\nVmLck:         0 kB\nVmHWM:       432 kB\nVmRSS:       432 kB\nVmData:      172 kB\nVmStk:        84 kB\nVmExe:        48 kB\nVmLib:      1568 kB\nVmPTE:        40 kB\nVmSwap:        0 kB \u003c\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d this.\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nReviewed-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nReviewed-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "34e55232e59f7b19050267a05ff1226e5cd122a5",
      "tree": "6b94e776e87d2a2fe1ceca7c5606901575323900",
      "parents": [
        "d559db086ff5be9bcc259e5aa50bf3d881eaf1d1"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Fri Mar 05 13:41:40 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 06 11:26:24 2010 -0800"
      },
      "message": "mm: avoid false sharing of mm_counter\n\nConsidering the nature of per mm stats, it\u0027s the shared object among\nthreads and can be a cache-miss point in the page fault path.\n\nThis patch adds per-thread cache for mm_counter.  RSS value will be\ncounted into a struct in task_struct and synchronized with mm\u0027s one at\nevents.\n\nNow, in this patch, the event is the number of calls to handle_mm_fault.\nPer-thread value is added to mm at each 64 calls.\n\n rough estimation with small benchmark on parallel thread (2threads) shows\n [before]\n     4.5 cache-miss/faults\n [after]\n     4.0 cache-miss/faults\n Anyway, the most contended object is mmap_sem if the number of threads grows.\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d559db086ff5be9bcc259e5aa50bf3d881eaf1d1",
      "tree": "aa968c8a4093234e4623a34c0415bf9d8683671c",
      "parents": [
        "19b629f581320999ddb9f6597051b79cdb53459c"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Fri Mar 05 13:41:39 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 06 11:26:23 2010 -0800"
      },
      "message": "mm: clean up mm_counter\n\nPresently, per-mm statistics counter is defined by macro in sched.h\n\nThis patch modifies it to\n  - defined in mm.h as inlinf functions\n  - use array instead of macro\u0027s name creation.\n\nThis patch is for reducing patch size in future patch to modify\nimplementation of per-mm counter.\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nReviewed-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "64096c17417380d8a472d096645f4cbc9406c987",
      "tree": "e01d22012de7694206143b5606f7d51f225eb249",
      "parents": [
        "cc7889ff5ee7a1c1a2b5073c53db5ad9b76f14e2",
        "1154fab73ccbab010cfaa272b6987c624cfd63c6"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 05 14:35:40 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 05 14:35:40 2010 -0800"
      },
      "message": "Merge branch \u0027slab-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/penberg/slab-2.6\n\n* \u0027slab-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/penberg/slab-2.6:\n  SLUB: Fix per-cpu merge conflict\n  failslab: add ability to filter slab caches\n  slab: fix regression in touched logic\n  dma kmalloc handling fixes\n  slub: remove impossible condition\n  slab: initialize unused alien cache entry as NULL at alloc_alien_cache().\n  SLUB: Make slub statistics use this_cpu_inc\n  SLUB: this_cpu: Remove slub kmem_cache fields\n  SLUB: Get rid of dynamic DMA kmalloc cache allocation\n  SLUB: Use this_cpu operations in slub\n"
    },
    {
      "commit": "0f2cc4ecd81dc1917a041dc93db0ada28f8356fa",
      "tree": "f128b50f48f50f0cda6d2b20b53e9ad6e2dfded3",
      "parents": [
        "1fae4cfb97302289bb5df6a8195eb28385d0b002",
        "9643f5d94aadd47a5fa9754fb60f2c957de05903"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 04 08:15:33 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 04 08:15:33 2010 -0800"
      },
      "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: (52 commits)\n  init: Open /dev/console from rootfs\n  mqueue: fix typo \"failues\" -\u003e \"failures\"\n  mqueue: only set error codes if they are really necessary\n  mqueue: simplify do_open() error handling\n  mqueue: apply mathematics distributivity on mq_bytes calculation\n  mqueue: remove unneeded info-\u003emessages initialization\n  mqueue: fix mq_open() file descriptor leak on user-space processes\n  fix race in d_splice_alias()\n  set S_DEAD on unlink() and non-directory rename() victims\n  vfs: add NOFOLLOW flag to umount(2)\n  get rid of -\u003emnt_parent in tomoyo/realpath\n  hppfs can use existing proc_mnt, no need for do_kern_mount() in there\n  Mirror MS_KERNMOUNT in -\u003emnt_flags\n  get rid of useless vfsmount_lock use in put_mnt_ns()\n  Take vfsmount_lock to fs/internal.h\n  get rid of insanity with namespace roots in tomoyo\n  take check for new events in namespace (guts of mounts_poll()) to namespace.c\n  Don\u0027t mess with generic_permission() under -\u003ed_lock in hpfs\n  sanitize const/signedness for udf\n  nilfs: sanitize const/signedness in dealing with -\u003ed_name.name\n  ...\n\nFix up fairly trivial (famous last words...) conflicts in\ndrivers/infiniband/core/uverbs_main.c and security/tomoyo/realpath.c\n"
    },
    {
      "commit": "1154fab73ccbab010cfaa272b6987c624cfd63c6",
      "tree": "9fb6a47295608e6b9207545cd7b83980f0bba0c4",
      "parents": [
        "e2b093f3e9262353558c6f89510ab2d286b28287"
      ],
      "author": {
        "name": "Stephen Rothwell",
        "email": "sfr@canb.auug.org.au",
        "time": "Mon Mar 01 16:04:45 2010 +1100"
      },
      "committer": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Thu Mar 04 12:09:43 2010 +0200"
      },
      "message": "SLUB: Fix per-cpu merge conflict\n\nThe slab tree adds a percpu variable usage case (commit\n9dfc6e68bfe6ee452efb1a4e9ca26a9007f2b864 \"SLUB: Use this_cpu operations in\nslub\"), but the percpu tree removes the prefixing of percpu variables (commit\ndd17c8f72993f9461e9c19250e3f155d6d99df22 \"percpu: remove per_cpu__ prefix\"),\nthus causing the following compilation error:\n\n    CC      mm/slub.o\n  mm/slub.c: In function ‘alloc_kmem_cache_cpus’:\n  mm/slub.c:2078: error: implicit declaration of function ‘per_cpu_var’\n  mm/slub.c:2078: warning: assignment makes pointer from integer without a cast\n  make[1]: *** [mm/slub.o] Error 1\n\nSigned-off-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\n"
    },
    {
      "commit": "e2b093f3e9262353558c6f89510ab2d286b28287",
      "tree": "298986520dcb4e60e5ab253b7f6d56277077215a",
      "parents": [
        "eaa5eec739637f32f8733d528ff0b94fd62b1214",
        "f3186a9c51eabe75b2780153ed7f07778d78b16e",
        "4c13dd3b48fcb6fbe44f241eb11a057ecd1cba75",
        "44b57f1cc72a4a30b31f11b07a927d1534f1b93d",
        "91efd773c74bb26b5409c85ad755d536448e229c"
      ],
      "author": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Thu Mar 04 12:07:50 2010 +0200"
      },
      "committer": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Thu Mar 04 12:07:50 2010 +0200"
      },
      "message": "Merge branches \u0027slab/cleanups\u0027, \u0027slab/failslab\u0027, \u0027slab/fixes\u0027 and \u0027slub/percpu\u0027 into slab-for-linus\n"
    },
    {
      "commit": "2ecdc82ef0b03e67ce5ecee79d0d108177a704df",
      "tree": "66887e3e0e7328c4030888905a713a995bb1654b",
      "parents": [
        "270ba5f7c5dac0bfb564aa35a536fb31ad4075bd"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Tue Jan 26 17:27:20 2010 +0100"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Mar 03 14:07:55 2010 -0500"
      },
      "message": "kill unused invalidate_inode_pages helper\n\nNo one is calling this anymore as everyone has switched to\ninvalidate_mapping_pages long time ago.  Also update a few\nreferences to it in comments.  nfs has two more, but I can\u0027t\neasily figure what they are actually referring to, so I left\nthem as-is.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "a626b46e17d0762d664ce471d40bc506b6e721ab",
      "tree": "445f6ac655ea9247d2e27529f23ba02d0991fec0",
      "parents": [
        "c1dcb4bb1e3e16e9baee578d9bb040e5fba1063e",
        "dce46a04d55d6358d2d4ab44a4946a19f9425fe2"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 03 08:15:05 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 03 08:15:05 2010 -0800"
      },
      "message": "Merge branch \u0027x86-bootmem-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027x86-bootmem-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (30 commits)\n  early_res: Need to save the allocation name in drop_range_partial()\n  sparsemem: Fix compilation on PowerPC\n  early_res: Add free_early_partial()\n  x86: Fix non-bootmem compilation on PowerPC\n  core: Move early_res from arch/x86 to kernel/\n  x86: Add find_fw_memmap_area\n  Move round_up/down to kernel.h\n  x86: Make 32bit support NO_BOOTMEM\n  early_res: Enhance check_and_double_early_res\n  x86: Move back find_e820_area to e820.c\n  x86: Add find_early_area_size\n  x86: Separate early_res related code from e820.c\n  x86: Move bios page reserve early to head32/64.c\n  sparsemem: Put mem map for one node together.\n  sparsemem: Put usemap for one node together\n  x86: Make 64 bit use early_res instead of bootmem before slab\n  x86: Only call dma32_reserve_bootmem 64bit !CONFIG_NUMA\n  x86: Make early_node_mem get mem \u003e 4 GB if possible\n  x86: Dynamically increase early_res array size\n  x86: Introduce max_early_res and early_res_count\n  ...\n"
    },
    {
      "commit": "0a135ba14d71fb84c691a5386aff5049691fe6d7",
      "tree": "adb1de887dd6839d69d2fc16ffa2a10ff63298fa",
      "parents": [
        "4850f524b2c4c8a4e9f8ef4dd9c7c4afde2f2b2c",
        "a29d8b8e2d811a24bbe49215a0f0c536b72ebc18"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 03 07:34:18 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 03 07:34:18 2010 -0800"
      },
      "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: add __percpu sparse annotations to what\u0027s left\n  percpu: add __percpu sparse annotations to fs\n  percpu: add __percpu sparse annotations to core kernel subsystems\n  local_t: Remove leftover local.h\n  this_cpu: Remove pageset_notifier\n  this_cpu: Page allocator conversion\n  percpu, x86: Generic inc / dec percpu instructions\n  local_t: Move local.h include to ringbuffer.c and ring_buffer_benchmark.c\n  module: Use this_cpu_xx to dynamically allocate counters\n  local_t: Remove cpu_local_xx macros\n  percpu: refactor the code in pcpu_[de]populate_chunk()\n  percpu: remove compile warnings caused by __verify_pcpu_ptr()\n  percpu: make accessors check for percpu pointer in sparse\n  percpu: add __percpu for sparse.\n  percpu: make access macros universal\n  percpu: remove per_cpu__ prefix.\n"
    },
    {
      "commit": "6d6b89bd2e316b78d668f761d380837b81fa71ef",
      "tree": "7e63c58611fc6181153526abbdafdd846ed1a19d",
      "parents": [
        "13dda80e48439b446d0bc9bab34b91484bc8f533",
        "2507c05ff55fbf38326b08ed27eaed233bc75042"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 02 07:55:08 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 02 07:55:08 2010 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6: (1341 commits)\n  virtio_net: remove forgotten assignment\n  be2net: fix tx completion polling\n  sis190: fix cable detect via link status poll\n  net: fix protocol sk_buff field\n  bridge: Fix build error when IGMP_SNOOPING is not enabled\n  bnx2x: Tx barriers and locks\n  scm: Only support SCM_RIGHTS on unix domain sockets.\n  vhost-net: restart tx poll on sk_sndbuf full\n  vhost: fix get_user_pages_fast error handling\n  vhost: initialize log eventfd context pointer\n  vhost: logging thinko fix\n  wireless: convert to use netdev_for_each_mc_addr\n  ethtool: do not set some flags, if others failed\n  ipoib: returned back addrlen check for mc addresses\n  netlink: Adding inode field to /proc/net/netlink\n  axnet_cs: add new id\n  bridge: Make IGMP snooping depend upon BRIDGE.\n  bridge: Add multicast count/interval sysfs entries\n  bridge: Add hash elasticity/max sysfs entries\n  bridge: Add multicast_snooping sysfs toggle\n  ...\n\nTrivial conflicts in Documentation/feature-removal-schedule.txt\n"
    },
    {
      "commit": "81d0d950e5037a26b71e568ff235ff9e998f4ab3",
      "tree": "c9f6d2ca8dd5ddacc0bbb0fbc67f30449dbf29ff",
      "parents": [
        "fb90ef93df654f2678933efbbf864adac0ae490e"
      ],
      "author": {
        "name": "Yinghai Lu",
        "email": "yinghai@kernel.org",
        "time": "Sat Feb 27 09:29:38 2010 -0800"
      },
      "committer": {
        "name": "H. Peter Anvin",
        "email": "hpa@zytor.com",
        "time": "Mon Mar 01 17:59:24 2010 -0800"
      },
      "message": "sparsemem: Fix compilation on PowerPC\n\nStephen reported:\nbuild (powerpc\nppc64_defconfig) produced these warnings:\n\nmm/sparse.c: In function \u0027sparse_init\u0027:\nmm/sparse.c:488: warning: unused variable \u0027map_count\u0027\nmm/sparse.c:484: warning: unused variable \u0027size2\u0027\nmm/sparse.c:481: warning: unused variable \u0027map_map\u0027\nmm/sparse.c: At top level:\nmm/sparse.c:442: warning: \u0027sparse_early_mem_maps_alloc_node\u0027 defined but not used\n\nIntroduced by commit 9bdac914240759457175ac0d6529a37d2820bc4d\n(\"sparsemem: Put mem map for one node together\").\n\nConditionalize the bits appropriately based on the setting of\nCONFIG_SPARSEMEM_ALLOC_MEM_MAP_TOGETHER.\n\nReported-by: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\nTested-by: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\nSigned-off-by: Yinghai Lu \u003cyinghai@kernel.org\u003e\nLKML-Reference: \u003c4B895682.1080706@kernel.org\u003e\nSigned-off-by: H. Peter Anvin \u003chpa@zytor.com\u003e\n"
    },
    {
      "commit": "ac0f6f927db539e03e1f3f61bcd4ed57d5cde7a9",
      "tree": "816e5ac643b15c2050c64a7075f0f7e13d86ea09",
      "parents": [
        "b1bf9368407ae7e89d8a005bb40beb70a41df539",
        "9f33be2c3a80bdc2cc08342dd77fac87652e0548"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 01 09:15:15 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 01 09:15:15 2010 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of master.kernel.org:/home/rmk/linux-2.6-arm\n\n* \u0027for-linus\u0027 of master.kernel.org:/home/rmk/linux-2.6-arm: (100 commits)\n  ARM: Eliminate decompressor -Dstatic\u003d PIC hack\n  ARM: 5958/1: ARM: U300: fix inverted clk round rate\n  ARM: 5956/1: misplaced parentheses\n  ARM: 5955/1: ep93xx: move timer defines into core.c and document\n  ARM: 5954/1: ep93xx: move gpio interrupt support to gpio.c\n  ARM: 5953/1: ep93xx: fix broken build of clock.c\n  ARM: 5952/1: ARM: MM: Add ARM_L1_CACHE_SHIFT_6 for handle inside each ARCH Kconfig\n  ARM: 5949/1: NUC900 add gpio virtual memory map\n  ARM: 5948/1: Enable timer0 to time4 clock support for nuc910\n  ARM: 5940/2: ARM: MMCI: remove custom DBG macro and printk\n  ARM: make_coherent(): fix problems with highpte, part 2\n  MM: Pass a PTE pointer to update_mmu_cache() rather than the PTE itself\n  ARM: 5945/1: ep93xx: include correct irq.h in core.c\n  ARM: 5933/1: amba-pl011: support hardware flow control\n  ARM: 5930/1: Add PKMAP area description to memory.txt.\n  ARM: 5929/1: Add checks to detect overlap of memory regions.\n  ARM: 5928/1: Change type of VMALLOC_END to unsigned long.\n  ARM: 5927/1: Make delimiters of DMA area globally visibly.\n  ARM: 5926/1: Add \"Virtual kernel memory...\" printout.\n  ARM: 5920/1: OMAP4: Enable L2 Cache\n  ...\n\nFix up trivial conflict in arch/arm/mach-mx25/clock.c\n"
    },
    {
      "commit": "47871889c601d8199c51a4086f77eebd77c29b0b",
      "tree": "40cdcac3bff0ee40cc33dcca61d0577cdf965f77",
      "parents": [
        "c16cc0b464b8876cfd57ce1c1dbcb6f9a6a0bce3",
        "30ff056c42c665b9ea535d8515890857ae382540"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Feb 28 19:23:06 2010 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Feb 28 19:23:06 2010 -0800"
      },
      "message": "Merge branch \u0027master\u0027 of /home/davem/src/GIT/linux-2.6/\n\nConflicts:\n\tdrivers/firmware/iscsi_ibft.c\n"
    },
    {
      "commit": "64d497f55379b1e320a08ec2426468d96f5642ec",
      "tree": "22b9ab3c5e69c5cc2728cbc2ca7fc7623beef8f1",
      "parents": [
        "37d4008484977f60d5d37499a2670c79b214dd46",
        "b5f5fe80fa98a60daa0fa94512d1599b1e26674c"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Feb 26 16:54:27 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Feb 26 16:54:27 2010 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6: (187 commits)\n  sh: remove dead LED code for migo-r and ms7724se\n  sh: ecovec build fix for CONFIG_I2C\u003dn\n  sh: ecovec r-standby support\n  sh: ms7724se r-standby support\n  sh: SH-Mobile R-standby register save/restore\n  clocksource: Fix up a registration/IRQ race in the sh drivers.\n  sh: ms7724: modify scan_timing for KEYSC\n  sh: ms7724: Add sh_sir support\n  sh: mach-ecovec24: Add sh_sir support\n  sh: wire up SET/GET_UNALIGN_CTL.\n  sh: allow alignment fault mode to be configured at kernel boot.\n  sh: sh7724: Update FSI/SPU2 clock\n  sh: always enable sh7724 vpu_clk and set to 166MHz on Ecovec\n  sh: add sh7724 kick callback to clk_div4_table\n  sh: introduce struct clk_div4_table\n  sh: clock-cpg div4 set_rate() shift fix\n  sh: Turn on speculative return for SH7785 and SH7786\n  sh: Merge legacy and dynamic PMB modes.\n  sh: Use uncached I/O helpers in PMB setup.\n  sh: Provide uncached I/O helpers.\n  ...\n"
    },
    {
      "commit": "4c13dd3b48fcb6fbe44f241eb11a057ecd1cba75",
      "tree": "d9875477b9eb48ad598da8cbc36b473c941828ae",
      "parents": [
        "60b341b778cc2929df16c0a504c91621b3c6a4ad"
      ],
      "author": {
        "name": "Dmitry Monakhov",
        "email": "dmonakhov@openvz.org",
        "time": "Fri Feb 26 09:36:12 2010 +0300"
      },
      "committer": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Fri Feb 26 19:19:39 2010 +0200"
      },
      "message": "failslab: add ability to filter slab caches\n\nThis patch allow to inject faults only for specific slabs.\nIn order to preserve default behavior cache filter is off by\ndefault (all caches are faulty).\n\nOne may define specific set of slabs like this:\n# mark skbuff_head_cache as faulty\necho 1 \u003e /sys/kernel/slab/skbuff_head_cache/failslab\n# Turn on cache filter (off by default)\necho 1 \u003e /sys/kernel/debug/failslab/cache-filter\n# Turn on fault injection\necho 1 \u003e /sys/kernel/debug/failslab/times\necho 1 \u003e /sys/kernel/debug/failslab/probability\n\nAcked-by: David Rientjes \u003crientjes@google.com\u003e\nAcked-by: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nAcked-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nSigned-off-by: Dmitry Monakhov \u003cdmonakhov@openvz.org\u003e\nSigned-off-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\n"
    },
    {
      "commit": "fb90ef93df654f2678933efbbf864adac0ae490e",
      "tree": "c590e99bc70fbbfa0e1615a29734ca3c1f586729",
      "parents": [
        "2ee78f7b1d8ada2615ecbcd9fea70580008bd6ce"
      ],
      "author": {
        "name": "Yinghai Lu",
        "email": "yinghai@kernel.org",
        "time": "Wed Feb 24 18:36:53 2010 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Feb 26 08:25:35 2010 +0100"
      },
      "message": "early_res: Add free_early_partial()\n\nTo free partial areas in pcpu_setup...\n\nReported-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nSigned-off-by: Yinghai Lu \u003cyinghai@kernel.org\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Jesse Barnes \u003cjbarnes@virtuousgeek.org\u003e\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nLKML-Reference: \u003c4B85E245.5030001@kernel.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "9f33be2c3a80bdc2cc08342dd77fac87652e0548",
      "tree": "7ad6e825427a15c5ec0fc15540abc0429d7f4bce",
      "parents": [
        "2741ecb4ce5c2d430b5c44b0a169038338c21df5",
        "eed18b5fa4d297c681b00144e8c6942dd35d39a7"
      ],
      "author": {
        "name": "Russell King",
        "email": "rmk+kernel@arm.linux.org.uk",
        "time": "Thu Feb 25 22:10:38 2010 +0000"
      },
      "committer": {
        "name": "Russell King",
        "email": "rmk+kernel@arm.linux.org.uk",
        "time": "Thu Feb 25 22:10:38 2010 +0000"
      },
      "message": "Merge branches \u0027clks\u0027 and \u0027pnx\u0027 into devel\n"
    },
    {
      "commit": "5a2d41961dd6815b874b5c0afec0ac96cd90eea4",
      "tree": "af3d153f9615d9c11feb378f7821c0f280012b52",
      "parents": [
        "bee415ce427d1eab6cfb30221461c7d20cbf1903"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Mon Feb 22 12:44:14 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Feb 22 19:50:34 2010 -0800"
      },
      "message": "memcg: fix oom killing a child process in an other cgroup\n\nPresently the oom-killer is memcg aware and it finds the worst process\nfrom processes under memcg(s) in oom.  Then, it kills victim\u0027s child\nfirst.\n\nIt may kill a child in another cgroup and may not be any help for\nrecovery.  And it will break the assumption users have.\n\nThis patch fixes it.\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nReviewed-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nReviewed-by: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nAcked-by: David Rientjes \u003crientjes@google.com\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2ee78f7b1d8ada2615ecbcd9fea70580008bd6ce",
      "tree": "4fa5e1df3bbf771fc57714272f7a6941aa3ed3a2",
      "parents": [
        "580e0ad21d6d6f932461d24b47041e3dd499c23f"
      ],
      "author": {
        "name": "Yinghai Lu",
        "email": "yinghai@kernel.org",
        "time": "Wed Feb 17 11:29:49 2010 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Feb 22 09:16:40 2010 +0100"
      },
      "message": "x86: Fix non-bootmem compilation on PowerPC\n\nThese build errors on some non-x86 platforms (PowerPC for example):\n\n mm/page_alloc.c: In function \u0027__alloc_memory_core_early\u0027:\n   mm/page_alloc.c:3468: error: implicit declaration of function \u0027find_early_area\u0027\n   mm/page_alloc.c:3483: error: implicit declaration of function \u0027reserve_early_without_check\u0027\n\nThe function is only needed on CONFIG_NO_BOOTMEM.\n\nSigned-off-by: Yinghai Lu \u003cyinghai@kernel.org\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Johannes Weiner \u003channes@saeurebad.de\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nLKML-Reference: \u003c4B747239.4070907@kernel.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "87b8d1adefa1548b591cbf0d63965987e2cf893d",
      "tree": "9bb71e42dfed2ac212a9dc55dd5e2ba1f8d042ac",
      "parents": [
        "aea187c46f7d03ce985e55eb1398d0776a15b928"
      ],
      "author": {
        "name": "H. Peter Anvin",
        "email": "hpa@zytor.com",
        "time": "Thu Feb 18 16:13:40 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Feb 21 08:57:08 2010 -0800"
      },
      "message": "mm: Make copy_from_user() in migrate.c statically predictable\n\nx86-32 has had a static test for copy_on_user() overflow for a while.\nThis test currently fails in mm/migrate.c resulting in an\nallyesconfig/allmodconfig build failure on x86-32:\n\nIn function ‘copy_from_user’,\n    inlined from ‘do_pages_stat’ at\n    /home/hpa/kernel/git/mm/migrate.c:1012:\n/home/hpa/kernel/git/arch/x86/include/asm/uaccess_32.h:212: error:\n    call to ‘copy_from_user_overflow’ declared\n\nMake the logic more explicit and therefore easier for gcc to\nunderstand.\n\nv2: rewrite the loop entirely using a more normal structure for a\n    chunked-data loop (Linus Torvalds)\n\nReported-by: Len Brown \u003clenb@kernel.org\u003e\nSigned-off-by: H. Peter Anvin \u003chpa@zytor.com\u003e\nReviewed-and-Tested-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Arjan van de Ven \u003carjan@linux.kernel.org\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Hugh Dickins \u003chugh.dickins@tiscali.co.uk\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4b3073e1c53a256275f1079c0fbfbe85883d9275",
      "tree": "a0fa98cb75edbbc58c43bbe38ac4c6da0913ae6d",
      "parents": [
        "ed42acaef1a9d51631a31b55e9ed52d400430492"
      ],
      "author": {
        "name": "Russell King",
        "email": "rmk+kernel@arm.linux.org.uk",
        "time": "Fri Dec 18 16:40:18 2009 +0000"
      },
      "committer": {
        "name": "Russell King",
        "email": "rmk+kernel@arm.linux.org.uk",
        "time": "Sat Feb 20 16:41:46 2010 +0000"
      },
      "message": "MM: Pass a PTE pointer to update_mmu_cache() rather than the PTE itself\n\nOn VIVT ARM, when we have multiple shared mappings of the same file\nin the same MM, we need to ensure that we have coherency across all\ncopies.  We do this via make_coherent() by making the pages\nuncacheable.\n\nThis used to work fine, until we allowed highmem with highpte - we\nnow have a page table which is mapped as required, and is not available\nfor modification via update_mmu_cache().\n\nRalf Beache suggested getting rid of the PTE value passed to\nupdate_mmu_cache():\n\n  On MIPS update_mmu_cache() calls __update_tlb() which walks pagetables\n  to construct a pointer to the pte again.  Passing a pte_t * is much\n  more elegant.  Maybe we might even replace the pte argument with the\n  pte_t?\n\nBen Herrenschmidt would also like the pte pointer for PowerPC:\n\n  Passing the ptep in there is exactly what I want.  I want that\n  -instead- of the PTE value, because I have issue on some ppc cases,\n  for I$/D$ coherency, where set_pte_at() may decide to mask out the\n  _PAGE_EXEC.\n\nSo, pass in the mapped page table pointer into update_mmu_cache(), and\nremove the PTE value, updating all implementations and call sites to\nsuit.\n\nIncludes a fix from Stephen Rothwell:\n\n  sparc: fix fallout from update_mmu_cache API change\n\n  Signed-off-by: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\n\nAcked-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nSigned-off-by: Russell King \u003crmk+kernel@arm.linux.org.uk\u003e\n"
    },
    {
      "commit": "2bb4646fce8d09916b351d1a62f98db7cec6fc41",
      "tree": "c1f0d002e69868606eca9d1b919835f422892063",
      "parents": [
        "6836b9bdd98e3b500cd49512484df68f46e14659",
        "b0483e78e5c4c9871fc5541875b3bc006846d46b"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Feb 16 22:09:29 2010 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Feb 16 22:09:29 2010 -0800"
      },
      "message": "Merge branch \u0027master\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6\n"
    },
    {
      "commit": "43cf38eb5cea91245502df3fcee4dbfc1c74dd1c",
      "tree": "a58ea87af1f07b8aed4941db074f44103f321f6e",
      "parents": [
        "ab386128f20c44c458a90039ab1bdc265ac474c9"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Feb 02 14:38:57 2010 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Feb 17 11:17:38 2010 +0900"
      },
      "message": "percpu: add __percpu sparse annotations to core kernel subsystems\n\nAdd __percpu sparse annotations to core subsystems.\n\nThese annotations are to make sparse consider percpu variables to be\nin a different address space and warn if accessed without going\nthrough percpu accessors.  This patch doesn\u0027t affect normal builds.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nReviewed-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nAcked-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: Jens Axboe \u003caxboe@kernel.dk\u003e\nCc: linux-mm@kvack.org\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Dipankar Sarma \u003cdipankar@in.ibm.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Eric Biederman \u003cebiederm@xmission.com\u003e\n"
    },
    {
      "commit": "9bdac914240759457175ac0d6529a37d2820bc4d",
      "tree": "8fb7d26a351d2cd526835f1494ebeb818e988abb",
      "parents": [
        "a4322e1bad91fbca27056fc38d2cbca3f1eae0cf"
      ],
      "author": {
        "name": "Yinghai Lu",
        "email": "yinghai@kernel.org",
        "time": "Wed Feb 10 01:20:22 2010 -0800"
      },
      "committer": {
        "name": "H. Peter Anvin",
        "email": "hpa@zytor.com",
        "time": "Fri Feb 12 09:42:38 2010 -0800"
      },
      "message": "sparsemem: Put mem map for one node together.\n\nAdd vmemmap_alloc_block_buf for mem map only.\n\nIt will fallback to the old way if it cannot get a block that big.\n\nBefore this patch, when a node have 128g ram installed, memmap are\nsplit into two parts or more.\n[    0.000000]  [ffffea0000000000-ffffea003fffffff] PMD -\u003e [ffff880100600000-ffff88013e9fffff] on node 1\n[    0.000000]  [ffffea0040000000-ffffea006fffffff] PMD -\u003e [ffff88013ec00000-ffff88016ebfffff] on node 1\n[    0.000000]  [ffffea0070000000-ffffea007fffffff] PMD -\u003e [ffff882000600000-ffff8820105fffff] on node 0\n[    0.000000]  [ffffea0080000000-ffffea00bfffffff] PMD -\u003e [ffff882010800000-ffff8820507fffff] on node 0\n[    0.000000]  [ffffea00c0000000-ffffea00dfffffff] PMD -\u003e [ffff882050a00000-ffff8820709fffff] on node 0\n[    0.000000]  [ffffea00e0000000-ffffea00ffffffff] PMD -\u003e [ffff884000600000-ffff8840205fffff] on node 2\n[    0.000000]  [ffffea0100000000-ffffea013fffffff] PMD -\u003e [ffff884020800000-ffff8840607fffff] on node 2\n[    0.000000]  [ffffea0140000000-ffffea014fffffff] PMD -\u003e [ffff884060a00000-ffff8840709fffff] on node 2\n[    0.000000]  [ffffea0150000000-ffffea017fffffff] PMD -\u003e [ffff886000600000-ffff8860305fffff] on node 3\n[    0.000000]  [ffffea0180000000-ffffea01bfffffff] PMD -\u003e [ffff886030800000-ffff8860707fffff] on node 3\n[    0.000000]  [ffffea01c0000000-ffffea01ffffffff] PMD -\u003e [ffff888000600000-ffff8880405fffff] on node 4\n[    0.000000]  [ffffea0200000000-ffffea022fffffff] PMD -\u003e [ffff888040800000-ffff8880707fffff] on node 4\n[    0.000000]  [ffffea0230000000-ffffea023fffffff] PMD -\u003e [ffff88a000600000-ffff88a0105fffff] on node 5\n[    0.000000]  [ffffea0240000000-ffffea027fffffff] PMD -\u003e [ffff88a010800000-ffff88a0507fffff] on node 5\n[    0.000000]  [ffffea0280000000-ffffea029fffffff] PMD -\u003e [ffff88a050a00000-ffff88a0709fffff] on node 5\n[    0.000000]  [ffffea02a0000000-ffffea02bfffffff] PMD -\u003e [ffff88c000600000-ffff88c0205fffff] on node 6\n[    0.000000]  [ffffea02c0000000-ffffea02ffffffff] PMD -\u003e [ffff88c020800000-ffff88c0607fffff] on node 6\n[    0.000000]  [ffffea0300000000-ffffea030fffffff] PMD -\u003e [ffff88c060a00000-ffff88c0709fffff] on node 6\n[    0.000000]  [ffffea0310000000-ffffea033fffffff] PMD -\u003e [ffff88e000600000-ffff88e0305fffff] on node 7\n[    0.000000]  [ffffea0340000000-ffffea037fffffff] PMD -\u003e [ffff88e030800000-ffff88e0707fffff] on node 7\n\nafter patch will get\n[    0.000000]  [ffffea0000000000-ffffea006fffffff] PMD -\u003e [ffff880100200000-ffff88016e5fffff] on node 0\n[    0.000000]  [ffffea0070000000-ffffea00dfffffff] PMD -\u003e [ffff882000200000-ffff8820701fffff] on node 1\n[    0.000000]  [ffffea00e0000000-ffffea014fffffff] PMD -\u003e [ffff884000200000-ffff8840701fffff] on node 2\n[    0.000000]  [ffffea0150000000-ffffea01bfffffff] PMD -\u003e [ffff886000200000-ffff8860701fffff] on node 3\n[    0.000000]  [ffffea01c0000000-ffffea022fffffff] PMD -\u003e [ffff888000200000-ffff8880701fffff] on node 4\n[    0.000000]  [ffffea0230000000-ffffea029fffffff] PMD -\u003e [ffff88a000200000-ffff88a0701fffff] on node 5\n[    0.000000]  [ffffea02a0000000-ffffea030fffffff] PMD -\u003e [ffff88c000200000-ffff88c0701fffff] on node 6\n[    0.000000]  [ffffea0310000000-ffffea037fffffff] PMD -\u003e [ffff88e000200000-ffff88e0701fffff] on node 7\n\n-v2: change buf to vmemmap_buf instead according to Ingo\n     also add CONFIG_SPARSEMEM_ALLOC_MEM_MAP_TOGETHER according to Ingo\n-v3: according to Andrew, use sizeof(name) instead of hard coded 15\n\nSigned-off-by: Yinghai Lu \u003cyinghai@kernel.org\u003e\nLKML-Reference: \u003c1265793639-15071-19-git-send-email-yinghai@kernel.org\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nAcked-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nSigned-off-by: H. Peter Anvin \u003chpa@zytor.com\u003e\n"
    },
    {
      "commit": "a4322e1bad91fbca27056fc38d2cbca3f1eae0cf",
      "tree": "4d7b12393e1bd06c9c39e384aa6cc0b35e3257a8",
      "parents": [
        "08677214e318297f228237be0042aac754f48f1d"
      ],
      "author": {
        "name": "Yinghai Lu",
        "email": "yinghai@kernel.org",
        "time": "Wed Feb 10 01:20:21 2010 -0800"
      },
      "committer": {
        "name": "H. Peter Anvin",
        "email": "hpa@zytor.com",
        "time": "Fri Feb 12 09:42:37 2010 -0800"
      },
      "message": "sparsemem: Put usemap for one node together\n\nCould save some buffer space instead of applying one by one.\n\nCould help that system that is going to use early_res instead of bootmem\nless entries in early_res make search more faster on system with more memory.\n\nSigned-off-by: Yinghai Lu \u003cyinghai@kernel.org\u003e\nLKML-Reference: \u003c1265793639-15071-18-git-send-email-yinghai@kernel.org\u003e\nSigned-off-by: H. Peter Anvin \u003chpa@zytor.com\u003e\n"
    },
    {
      "commit": "08677214e318297f228237be0042aac754f48f1d",
      "tree": "6d03424f7e287fcf66136b44512328afb1aeee49",
      "parents": [
        "c252a5bb1f57afb1e336d68085217727ca7b2134"
      ],
      "author": {
        "name": "Yinghai Lu",
        "email": "yinghai@kernel.org",
        "time": "Wed Feb 10 01:20:20 2010 -0800"
      },
      "committer": {
        "name": "H. Peter Anvin",
        "email": "hpa@zytor.com",
        "time": "Fri Feb 12 09:41:59 2010 -0800"
      },
      "message": "x86: Make 64 bit use early_res instead of bootmem before slab\n\nFinally we can use early_res to replace bootmem for x86_64 now.\n\nStill can use CONFIG_NO_BOOTMEM to enable it or not.\n\n-v2: fix 32bit compiling about MAX_DMA32_PFN\n-v3: folded bug fix from LKML message below\n\nSigned-off-by: Yinghai Lu \u003cyinghai@kernel.org\u003e\nLKML-Reference: \u003c4B747239.4070907@kernel.org\u003e\nSigned-off-by: H. Peter Anvin \u003chpa@zytor.com\u003e\n"
    },
    {
      "commit": "2e18e047981ae04be9bd0d9760057f7c1a7b3785",
      "tree": "999941abf466ce4d6915273e2e7a42bf0a107385",
      "parents": [
        "b06ede84dd1473dec7c6af03a41c8d04d2fee437",
        "cfefe99795251d76d92e8457f4152f532a961ec5"
      ],
      "author": {
        "name": "Paul Mundt",
        "email": "lethal@linux-sh.org",
        "time": "Mon Feb 08 11:34:03 2010 +0900"
      },
      "committer": {
        "name": "Paul Mundt",
        "email": "lethal@linux-sh.org",
        "time": "Mon Feb 08 11:34:03 2010 +0900"
      },
      "message": "Merge branch \u0027sh/dmaengine\u0027\n\nConflicts:\n\tarch/sh/drivers/dma/dma-sh.c\n"
    },
    {
      "commit": "6f5a55f1a6c5abee15a0e878e5c74d9f1569b8b0",
      "tree": "2b5304a71a3b2ef2f0665e4e2d9262c6c6918848",
      "parents": [
        "9d9c3a51e7b20dcd63b8cc534035af99a41d03e4"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Feb 05 16:16:50 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Feb 06 13:00:37 2010 -0800"
      },
      "message": "Fix potential crash with sys_move_pages\n\nWe incorrectly depended on the \u0027node_state/node_isset()\u0027 functions\ntesting the node range, rather than checking it explicitly.  That\u0027s not\nreliable, even if it might often happen to work.  So do the proper\nexplicit test.\n\nReported-by: Marcus Meissner \u003cmeissner@suse.de\u003e\nAcked-and-tested-by: Brice Goglin \u003cBrice.Goglin@inria.fr\u003e\nAcked-by: Hugh Dickins \u003chugh.dickins@tiscali.co.uk\u003e\nCc: stable@kernel.org\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8e04221029067cbaff3fc8f4daf991532afbcbaf",
      "tree": "18cf757bcd315c76f5f458aa72a0a57db0a78985",
      "parents": [
        "9ad62ec4f752c82b39aa5927f23d894b46ae10b9",
        "2c940db250c1610d95ea5331dc819b8bd4db96ae"
      ],
      "author": {
        "name": "Paul Mundt",
        "email": "lethal@linux-sh.org",
        "time": "Fri Feb 05 12:16:39 2010 +0900"
      },
      "committer": {
        "name": "Paul Mundt",
        "email": "lethal@linux-sh.org",
        "time": "Fri Feb 05 12:16:39 2010 +0900"
      },
      "message": "Merge branch \u0027sh/stable-updates\u0027\n"
    },
    {
      "commit": "094e9539bd24bbe23b8e2741e903b0f3f1f85b03",
      "tree": "1b217c0351db28589fc164d5bf570d61c173bf5c",
      "parents": [
        "03eac7bb882a75e6ee5705288f7ec36ad2e7d0d5"
      ],
      "author": {
        "name": "Jeff Mahoney",
        "email": "jeffm@suse.com",
        "time": "Tue Feb 02 13:44:14 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Feb 02 18:11:22 2010 -0800"
      },
      "message": "hugetlb: fix section mismatches\n\nhugetlb_sysfs_add_hstate is called by hugetlb_register_node directly\nduring init and also indirectly via sysfs after init.\n\nThis patch removes the __init tag from hugetlb_sysfs_add_hstate.\n\nSigned-off-by: Jeff Mahoney \u003cjeffm@suse.com\u003e\nCc: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "931e80e4b3263db75c8e34f078d22f11bbabd3a3",
      "tree": "47c735f039d2c8623a1fc4d20333a9899ac8e99c",
      "parents": [
        "bc173f7092c76a7967f135c2b3a54052ad99733b"
      ],
      "author": {
        "name": "anfei zhou",
        "email": "anfei.zhou@gmail.com",
        "time": "Tue Feb 02 13:44:02 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Feb 02 18:11:21 2010 -0800"
      },
      "message": "mm: flush dcache before writing into page to avoid alias\n\nThe cache alias problem will happen if the changes of user shared mapping\nis not flushed before copying, then user and kernel mapping may be mapped\ninto two different cache line, it is impossible to guarantee the coherence\nafter iov_iter_copy_from_user_atomic.  So the right steps should be:\n\n\tflush_dcache_page(page);\n\tkmap_atomic(page);\n\twrite to page;\n\tkunmap_atomic(page);\n\tflush_dcache_page(page);\n\nMore precisely, we might create two new APIs flush_dcache_user_page and\nflush_dcache_kern_page to replace the two flush_dcache_page accordingly.\n\nHere is a snippet tested on omap2430 with VIPT cache, and I think it is\nnot ARM-specific:\n\n\tint val \u003d 0x11111111;\n\tfd \u003d open(\"abc\", O_RDWR);\n\taddr \u003d mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_SHARED, fd, 0);\n\t*(addr+0) \u003d 0x44444444;\n\ttmp \u003d *(addr+0);\n\t*(addr+1) \u003d 0x77777777;\n\twrite(fd, \u0026val, sizeof(int));\n\tclose(fd);\n\nThe results are not always 0x11111111 0x77777777 at the beginning as expected.  Sometimes we see 0x44444444 0x77777777.\n\nSigned-off-by: Anfei \u003canfei.zhou@gmail.com\u003e\nCc: Russell King \u003crmk@arm.linux.org.uk\u003e\nCc: Miklos Szeredi \u003cmiklos@szeredi.hu\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: \u003clinux-arch@vger.kernel.org\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "02b709df817c0db174f249cc59e5f7fd01b64d92",
      "tree": "f1e6af927573507e503f3cddfb5bae457a24f72c",
      "parents": [
        "de5604231ce4bc8db1bc1dcd27d8540cbedf1518"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Mon Feb 01 22:25:57 2010 +1100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Feb 02 12:50:47 2010 -0800"
      },
      "message": "mm: purge fragmented percpu vmap blocks\n\nImprove handling of fragmented per-CPU vmaps.  We previously don\u0027t free\nup per-CPU maps until all its addresses have been used and freed.  So\nfragmented blocks could fill up vmalloc space even if they actually had\nno active vmap regions within them.\n\nAdd some logic to allow all CPUs to have these blocks purged in the case\nof failure to allocate a new vm area, and also put some logic to trim\nsuch blocks of a current CPU if we hit them in the allocation path (so\nas to avoid a large build up of them).\n\nChristoph reported some vmap allocation failures when using the per CPU\nvmap APIs in XFS, which cannot be reproduced after this patch and the\nprevious bug fix.\n\nCc: linux-mm@kvack.org\nCc: stable@kernel.org\nTested-by: Christoph Hellwig \u003chch@infradead.org\u003e\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\n--\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "de5604231ce4bc8db1bc1dcd27d8540cbedf1518",
      "tree": "1b64b0554b8ecffd58d4d06614075e5ccbb6bfb4",
      "parents": [
        "489b24f2cbdcc1c93f55a2707733bba702ba8dbf"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Mon Feb 01 22:24:18 2010 +1100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Feb 02 12:50:47 2010 -0800"
      },
      "message": "mm: percpu-vmap fix RCU list walking\n\nRCU list walking of the per-cpu vmap cache was broken.  It did not use\nRCU primitives, and also the union of free_list and rcu_head is\nobviously wrong (because free_list is indeed the list we are RCU\nwalking).\n\nWhile we are there, remove a couple of unused fields from an earlier\niteration.\n\nThese APIs aren\u0027t actually used anywhere, because of problems with the\nXFS conversion.  Christoph has now verified that the problems are solved\nwith these patches.  Also it is an exported interface, so I think it\nwill be good to be merged now (and Christoph wants to get the XFS\nchanges into their local tree).\n\nCc: stable@kernel.org\nCc: linux-mm@kvack.org\nTested-by: Christoph Hellwig \u003chch@infradead.org\u003e\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\n--\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ab386128f20c44c458a90039ab1bdc265ac474c9",
      "tree": "2ad188744922b1bb951fd10ff50dc04c83acce22",
      "parents": [
        "dbfc196a3cc1a2514ad0737a82f764de23bd65e6",
        "ab658321f32770b903a4426e2a6fae0392757755"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Feb 02 14:38:15 2010 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Feb 02 14:38:15 2010 +0900"
      },
      "message": "Merge branch \u0027master\u0027 into percpu\n"
    },
    {
      "commit": "9d3f1881abeae0494a27716b08fcf2d3264bb0fa",
      "tree": "f457dd2d35af29bc831b93865efa47229d0b9bee",
      "parents": [
        "b6c58b1d987a5795086c5c2babd8c7367d2fdb8c",
        "bc10e875d4aeaa93a0d418d8b4346b72f5067ea0"
      ],
      "author": {
        "name": "Paul Mundt",
        "email": "lethal@linux-sh.org",
        "time": "Tue Feb 02 11:33:45 2010 +0900"
      },
      "committer": {
        "name": "Paul Mundt",
        "email": "lethal@linux-sh.org",
        "time": "Tue Feb 02 11:33:45 2010 +0900"
      },
      "message": "Merge branch \u0027sh/stable-updates\u0027\n"
    },
    {
      "commit": "44b57f1cc72a4a30b31f11b07a927d1534f1b93d",
      "tree": "78e38b52bedf86446161e9df0cfbb2b7b4bc6dd8",
      "parents": [
        "7284ce6c9f6153d1777df5f310c959724d1bd446"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Wed Jan 27 22:27:40 2010 +1100"
      },
      "committer": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Sat Jan 30 15:02:39 2010 +0200"
      },
      "message": "slab: fix regression in touched logic\n\nWhen factoring common code into transfer_objects in commit 3ded175 (\"slab: add\ntransfer_objects() function\"), the \u0027touched\u0027 logic got a bit broken. When\nrefilling from the shared array (taking objects from the shared array), we are\nmaking use of the shared array so it should be marked as touched.\n\nSubsequently pulling an element from the cpu array and allocating it should\nalso touch the cpu array, but that is taken care of after the alloc_done label.\n(So yes, the cpu array was getting touched \u003d 1 twice).\n\nSo revert this logic to how it worked in earlier kernels.\n\nThis also affects the behaviour in __drain_alien_cache, which would previously\n\u0027touch\u0027 the shared array and now does not. I think it is more logical not to\ntouch there, because we are pushing objects into the shared array rather than\npulling them off. So there is no good reason to postpone reaping them -- if the\nshared array is getting utilized, then it will get \u0027touched\u0027 in the alloc path\n(where this patch now restores the touch).\n\nAcked-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\n"
    },
    {
      "commit": "a7016235a61d520e6806f38129001d935c4b6661",
      "tree": "cfd42cc6f0c825c8d9033e91d6d971ea549520e3",
      "parents": [
        "67f15b06c1a7e5417b7042b515ca2695de30beda"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh.dickins@tiscali.co.uk",
        "time": "Fri Jan 29 17:46:34 2010 +0000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 29 10:28:09 2010 -0800"
      },
      "message": "mm: fix migratetype bug which slowed swapping\n\nAfter memory pressure has forced it to dip into the reserves, 2.6.32\u0027s\n5f8dcc21211a3d4e3a7a5ca366b469fb88117f61 \"page-allocator: split per-cpu\nlist into one-list-per-migrate-type\" has been returning MIGRATE_RESERVE\npages to the MIGRATE_MOVABLE free_list: in some sense depleting reserves.\n\nFix that in the most straightforward way (which, considering the overheads\nof alternative approaches, is Mel\u0027s preference): the right migratetype is\nalready in page_private(page), but free_pcppages_bulk() wasn\u0027t using it.\n\nHow did this bug show up?  As a 20% slowdown in my tmpfs loop kbuild\nswapping tests, on PowerMac G5 with SLUB allocator.  Bisecting to that\ncommit was easy, but explaining the magnitude of the slowdown not easy.\n\nThe same effect appears, but much less markedly, with SLAB, and even\nless markedly on other machines (the PowerMac divides into fewer zones\nthan x86, I think that may be a factor).  We guess that lumpy reclaim\nof short-lived high-order pages is implicated in some way, and probably\nthis bug has been tickling a poor decision somewhere in page reclaim.\n\nBut instrumentation hasn\u0027t told me much, I\u0027ve run out of time and\nimagination to determine exactly what\u0027s going on, and shouldn\u0027t hold up\nthe fix any longer: it\u0027s valid, and might even fix other misbehaviours.\n\nSigned-off-by: Hugh Dickins \u003chugh.dickins@tiscali.co.uk\u003e\nAcked-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: stable@kernel.org\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0531b2aac59c2296570ac52bfc032ef2ace7d5e1",
      "tree": "4ca454bdc03c24654529bab9c882c1cd5f99a88c",
      "parents": [
        "caf0801e0cc482497c14a9ce349469c33c60beec"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jan 27 09:20:03 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jan 27 09:20:03 2010 -0800"
      },
      "message": "mm: add new \u0027read_cache_page_gfp()\u0027 helper function\n\nIt\u0027s a simplified \u0027read_cache_page()\u0027 which takes a page allocation\nflag, so that different paths can control how aggressive the memory\nallocations are that populate a address space.\n\nIn particular, the intel GPU object mapping code wants to be able to do\na certain amount of own internal memory management by automatically\nshrinking the address space when memory starts getting tight.  This\nallows it to dynamically use different memory allocation policies on a\nper-allocation basis, rather than depend on the (static) address space\ngfp policy.\n\nThe actual new function is a one-liner, but re-organizing the helper\nfunctions to the point where you can do this with a single line of code\nis what most of the patch is all about.\n\nTested-by: Chris Wilson \u003cchris@chris-wilson.co.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "51c24aaacaea90c8e87f1dec75a2ac7622b593f8",
      "tree": "9f54936c87764bef75e97395cb56b7d1e0df24c6",
      "parents": [
        "4276e47e2d1c85a2477caf0d22b91c4f2377fba8",
        "6be325719b3e54624397e413efd4b33a997e55a3"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Jan 23 00:31:06 2010 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Jan 23 00:31:06 2010 -0800"
      },
      "message": "Merge branch \u0027master\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6\n"
    },
    {
      "commit": "91efd773c74bb26b5409c85ad755d536448e229c",
      "tree": "b812dadb615ecff08e4d3ebe97483f192d0be27d",
      "parents": [
        "7738dd9e8f2bc1c249e00c9c20e018448fac0084"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "cl@linux-foundation.org",
        "time": "Thu Jan 21 17:43:35 2010 -0600"
      },
      "committer": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Fri Jan 22 18:33:38 2010 +0200"
      },
      "message": "dma kmalloc handling fixes\n\n1. We need kmalloc_percpu for all of the now extended kmalloc caches\n   array not just for each shift value.\n\n2. init_kmem_cache_nodes() must assume node 0 locality for statically\n   allocated dma kmem_cache structures even after boot is complete.\n\nReported-and-tested-by: Alex Chiang \u003cachiang@hp.com\u003e\nSigned-off-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nSigned-off-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\n"
    },
    {
      "commit": "7738dd9e8f2bc1c249e00c9c20e018448fac0084",
      "tree": "2127dd8ada9cbcf83169e3de823dfe640de0e83a",
      "parents": [
        "84e554e6865c4f4ae84d38800cf270b9a67901cc"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Fri Jan 15 12:49:56 2010 -0800"
      },
      "committer": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Fri Jan 22 18:33:36 2010 +0200"
      },
      "message": "slub: remove impossible condition\n\n`s\u0027 cannot be NULL if kmalloc_caches is not NULL.\n\nThis conditional would trigger a NULL pointer on `s\u0027, anyway, since it is\nimmediately derefernced if true.\n\nAcked-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\n"
    },
    {
      "commit": "88f5004430babb836cfce886d5d54c82166f8ba4",
      "tree": "f1cdd2f63e6344a07a3470f6cd4face94da3e638",
      "parents": [
        "970114a1dacf5f1f47aae9ad75c0abca42d8499c"
      ],
      "author": {
        "name": "Yongseok Koh",
        "email": "yongseok.koh@samsung.com",
        "time": "Tue Jan 19 17:33:49 2010 +0900"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 21 07:20:06 2010 -0800"
      },
      "message": "vmalloc: remove BUG_ON due to racy counting of VM_LAZY_FREE\n\nIn free_unmap_area_noflush(), va-\u003eflags is marked as VM_LAZY_FREE first, and\nthen vmap_lazy_nr is increased atomically.\n\nBut, in __purge_vmap_area_lazy(), while traversing of vmap_are_list, nr\nis counted by checking VM_LAZY_FREE is set to va-\u003eflags.  After counting\nthe variable nr, kernel reads vmap_lazy_nr atomically and checks a\nBUG_ON condition whether nr is greater than vmap_lazy_nr to prevent\nvmap_lazy_nr from being negative.\n\nThe problem is that, if interrupted right after marking VM_LAZY_FREE,\nincrement of vmap_lazy_nr can be delayed.  Consequently, BUG_ON\ncondition can be met because nr is counted more than vmap_lazy_nr.\n\nIt is highly probable when vmalloc/vfree are called frequently.  This\nscenario have been verified by adding delay between marking VM_LAZY_FREE\nand increasing vmap_lazy_nr in free_unmap_area_noflush().\n\nEven the vmap_lazy_nr is for checking high watermark, it never be the\nstrict watermark.  Although the BUG_ON condition is to prevent\nvmap_lazy_nr from being negative, vmap_lazy_nr is signed variable.  So,\nit could go down to negative value temporarily.\n\nConsequently, removing the BUG_ON condition is proper.\n\nA possible BUG_ON message is like the below.\n\n   kernel BUG at mm/vmalloc.c:517!\n   invalid opcode: 0000 [#1] SMP\n   EIP: 0060:[\u003cc04824a4\u003e] EFLAGS: 00010297 CPU: 3\n   EIP is at __purge_vmap_area_lazy+0x144/0x150\n   EAX: ee8a8818 EBX: c08e77d4 ECX: e7c7ae40 EDX: c08e77ec\n   ESI: 000081fe EDI: e7c7ae60 EBP: e7c7ae64 ESP: e7c7ae3c\n   DS: 007b ES: 007b FS: 00d8 GS: 0033 SS: 0068\n   Call Trace:\n   [\u003cc0482ad9\u003e] free_unmap_vmap_area_noflush+0x69/0x70\n   [\u003cc0482b02\u003e] remove_vm_area+0x22/0x70\n   [\u003cc0482c15\u003e] __vunmap+0x45/0xe0\n   [\u003cc04831ec\u003e] vmalloc+0x2c/0x30\n   Code: 8d 59 e0 eb 04 66 90 89 cb 89 d0 e8 87 fe ff ff 8b 43 20 89 da 8d 48 e0 8d 43 20 3b 04 24 75 e7 fe 05 a8 a5 a3 c0 e9 78 ff ff ff \u003c0f\u003e 0b eb fe 90 8d b4 26 00 00 00 00 56 89 c6 b8 ac a5 a3 c0 31\n   EIP: [\u003cc04824a4\u003e] __purge_vmap_area_lazy+0x144/0x150 SS:ESP 0068:e7c7ae3c\n\n[ See also http://marc.info/?l\u003dlinux-kernel\u0026m\u003d126335856228090\u0026w\u003d2 ]\n\nSigned-off-by: Yongseok Koh \u003cyongseok.koh@samsung.com\u003e\nReviewed-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0c54de146ef4303ed3c5879b043894c8db637507",
      "tree": "a4ff5bf27ffd2c4b71271b42014a0040490c7271",
      "parents": [
        "8faba6121566248330e738d25a2c43d7500fb9f0",
        "7dc9c484a71525794ca05cf7a47f283f1b54cd12"
      ],
      "author": {
        "name": "Paul Mundt",
        "email": "lethal@linux-sh.org",
        "time": "Mon Jan 18 20:47:37 2010 +0900"
      },
      "committer": {
        "name": "Paul Mundt",
        "email": "lethal@linux-sh.org",
        "time": "Mon Jan 18 20:47:37 2010 +0900"
      },
      "message": "Merge branch \u0027sh/stable-updates\u0027\n"
    },
    {
      "commit": "6ccf80eb15ccaca4d3f1ab5162b9ded5eecd9971",
      "tree": "23dad05636e88a743755bfd3e7a5dad4ef5e49e0",
      "parents": [
        "1f0b8b95543118f97197a978560438c1ce88cd00"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Fri Jan 15 17:01:18 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jan 16 16:53:55 2010 -0800"
      },
      "message": "page allocator: update NR_FREE_PAGES only when necessary\n\ncommit f2260e6b (page allocator: update NR_FREE_PAGES only as necessary)\nmade one minor regression.  if __rmqueue() was failed, NR_FREE_PAGES stat\ngo wrong.  this patch fixes it.\n\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nReviewed-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nReported-by: Huang Shijie \u003cshijie8@gmail.com\u003e\nReviewed-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7e6608724c640924aad1d556d17df33ebaa6124d",
      "tree": "b2d90646f5ee52f5b7807bbc0abe09db9adbe478",
      "parents": [
        "81759b5b221107488bda99fe7beeb7b734f61133"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Jan 15 17:01:39 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jan 16 12:15:40 2010 -0800"
      },
      "message": "nommu: fix shared mmap after truncate shrinkage problems\n\nFix a problem in NOMMU mmap with ramfs whereby a shared mmap can happen\nover the end of a truncation.  The problem is that\nramfs_nommu_check_mappings() checks that the reduced file size against the\nVMA tree, but not the vm_region tree.\n\nThe following sequence of events can cause the problem:\n\n\tfd \u003d open(\"/tmp/x\", O_RDWR|O_TRUNC|O_CREAT, 0600);\n\tftruncate(fd, 32 * 1024);\n\ta \u003d mmap(NULL, 32 * 1024, PROT_READ|PROT_WRITE, MAP_SHARED, fd, 0);\n\tb \u003d mmap(NULL, 16 * 1024, PROT_READ|PROT_WRITE, MAP_SHARED, fd, 0);\n\tmunmap(a, 32 * 1024);\n\tftruncate(fd, 16 * 1024);\n\tc \u003d mmap(NULL, 32 * 1024, PROT_READ|PROT_WRITE, MAP_SHARED, fd, 0);\n\nMapping \u0027a\u0027 creates a vm_region covering 32KB of the file.  Mapping \u0027b\u0027\nsees that the vm_region from \u0027a\u0027 is covering the region it wants and so\nshares it, pinning it in memory.\n\nMapping \u0027a\u0027 then goes away and the file is truncated to the end of VMA\n\u0027b\u0027.  However, the region allocated by \u0027a\u0027 is still in effect, and has\n_not_ been reduced.\n\nMapping \u0027c\u0027 is then created, and because there\u0027s a vm_region covering the\ndesired region, get_unmapped_area() is _not_ called to repeat the check,\nand the mapping is granted, even though the pages from the latter half of\nthe mapping have been discarded.\n\nHowever:\n\n\td \u003d mmap(NULL, 16 * 1024, PROT_READ|PROT_WRITE, MAP_SHARED, fd, 0);\n\nMapping \u0027d\u0027 should work, and should end up sharing the region allocated by\n\u0027a\u0027.\n\nTo deal with this, we shrink the vm_region struct during the truncation,\nlest do_mmap_pgoff() take it as licence to share the full region\nautomatically without calling the get_unmapped_area() file op again.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Greg Ungerer \u003cgerg@snapgear.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "efc1a3b16930c41d64ffefde16b87d82f603a8a0",
      "tree": "1f651e22f534f1b3eacd2fab97e9351aa75abd0b",
      "parents": [
        "779c10232ceb11c1b259232c4845cfb2850287b7"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Jan 15 17:01:35 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jan 16 12:15:40 2010 -0800"
      },
      "message": "nommu: don\u0027t need get_unmapped_area() for NOMMU\n\nget_unmapped_area() is unnecessary for NOMMU as no-one calls it.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Greg Ungerer \u003cgerg@snapgear.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "779c10232ceb11c1b259232c4845cfb2850287b7",
      "tree": "972b07acdcff03b20c84d42425a64b231df52aaa",
      "parents": [
        "1e2ae599d37e60958c03ca5e46b1f657619a30cd"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Jan 15 17:01:34 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jan 16 12:15:40 2010 -0800"
      },
      "message": "nommu: remove a superfluous check of vm_region::vm_usage\n\nIn split_vma(), there\u0027s no need to check if the VMA being split has a\nregion that\u0027s in use by more than one VMA because:\n\n (1) The preceding test prohibits splitting of non-anonymous VMAs and regions\n     (eg: file or chardev backed VMAs).\n\n (2) Anonymous regions can\u0027t be mapped multiple times because there\u0027s no handle\n     by which to refer to the already existing region.\n\n (3) If a VMA has previously been split, then the region backing it has also\n     been split into two regions, each of usage 1.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Greg Ungerer \u003cgerg@snapgear.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1e2ae599d37e60958c03ca5e46b1f657619a30cd",
      "tree": "0a0c9ff0370fbefd4eb8fe3a44106880c1aae8cb",
      "parents": [
        "ed5e5894b234ce4793d78078c026915b853e0678"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Jan 15 17:01:33 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jan 16 12:15:40 2010 -0800"
      },
      "message": "nommu: struct vm_region\u0027s vm_usage count need not be atomic\n\nThe vm_usage count field in struct vm_region does not need to be atomic as\nit\u0027s only even modified whilst nommu_region_sem is write locked.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Greg Ungerer \u003cgerg@snapgear.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "fce66477578d081f19aef5ea218664ff7758c33a",
      "tree": "ef8914767f7834fcd65c2f72eeee59dd2248076b",
      "parents": [
        "d817cd525589765aa5f6798734e422c867685a58"
      ],
      "author": {
        "name": "Daisuke Nishimura",
        "email": "nishimura@mxp.nes.nec.co.jp",
        "time": "Fri Jan 15 17:01:30 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jan 16 12:15:39 2010 -0800"
      },
      "message": "memcg: ensure list is empty at rmdir\n\nCurrent mem_cgroup_force_empty() only ensures mem-\u003eres.usage \u003d\u003d 0 on\nsuccess.  But this doesn\u0027t guarantee memcg\u0027s LRU is really empty, because\nthere are some cases in which !PageCgrupUsed pages exist on memcg\u0027s LRU.\n\nFor example:\n- Pages can be uncharged by its owner process while they are on LRU.\n- race between mem_cgroup_add_lru_list() and __mem_cgroup_uncharge_common().\n\nSo there can be a case in which the usage is zero but some of the LRUs are not empty.\n\nOTOH, mem_cgroup_del_lru_list(), which can be called asynchronously with\nrmdir, accesses the mem_cgroup, so this access can cause a problem if it\nraces with rmdir because the mem_cgroup might have been freed by rmdir.\n\nActually, I saw a bug which seems to be caused by this race.\n\n\t[1530745.949906] BUG: unable to handle kernel NULL pointer dereference at 0000000000000230\n\t[1530745.950651] IP: [\u003cffffffff810fbc11\u003e] mem_cgroup_del_lru_list+0x30/0x80\n\t[1530745.950651] PGD 3863de067 PUD 3862c7067 PMD 0\n\t[1530745.950651] Oops: 0002 [#1] SMP\n\t[1530745.950651] last sysfs file: /sys/devices/system/cpu/cpu7/cache/index1/shared_cpu_map\n\t[1530745.950651] CPU 3\n\t[1530745.950651] Modules linked in: configs ipt_REJECT xt_tcpudp iptable_filter ip_tables x_tables bridge stp nfsd nfs_acl auth_rpcgss exportfs autofs4 hidp rfcomm l2cap crc16 bluetooth lockd sunrpc ib_iser rdma_cm ib_cm iw_cm ib_sa ib_mad ib_core ib_addr iscsi_tcp bnx2i cnic uio ipv6 cxgb3i cxgb3 mdio libiscsi_tcp libiscsi scsi_transport_iscsi dm_mirror dm_multipath scsi_dh video output sbs sbshc battery ac lp kvm_intel kvm sg ide_cd_mod cdrom serio_raw tpm_tis tpm tpm_bios acpi_memhotplug button parport_pc parport rtc_cmos rtc_core rtc_lib e1000 i2c_i801 i2c_core pcspkr dm_region_hash dm_log dm_mod ata_piix libata shpchp megaraid_mbox sd_mod scsi_mod megaraid_mm ext3 jbd uhci_hcd ohci_hcd ehci_hcd [last unloaded: freq_table]\n\t[1530745.950651] Pid: 19653, comm: shmem_test_02 Tainted: G   M       2.6.32-mm1-00701-g2b04386 #3 Express5800/140Rd-4 [N8100-1065]\n\t[1530745.950651] RIP: 0010:[\u003cffffffff810fbc11\u003e]  [\u003cffffffff810fbc11\u003e] mem_cgroup_del_lru_list+0x30/0x80\n\t[1530745.950651] RSP: 0018:ffff8803863ddcb8  EFLAGS: 00010002\n\t[1530745.950651] RAX: 00000000000001e0 RBX: ffff8803abc02238 RCX: 00000000000001e0\n\t[1530745.950651] RDX: 0000000000000000 RSI: ffff88038611a000 RDI: ffff8803abc02238\n\t[1530745.950651] RBP: ffff8803863ddcc8 R08: 0000000000000002 R09: ffff8803a04c8643\n\t[1530745.950651] R10: 0000000000000000 R11: ffffffff810c7333 R12: 0000000000000000\n\t[1530745.950651] R13: ffff880000017f00 R14: 0000000000000092 R15: ffff8800179d0310\n\t[1530745.950651] FS:  0000000000000000(0000) GS:ffff880017800000(0000) knlGS:0000000000000000\n\t[1530745.950651] CS:  0010 DS: 0000 ES: 0000 CR0: 000000008005003b\n\t[1530745.950651] CR2: 0000000000000230 CR3: 0000000379d87000 CR4: 00000000000006e0\n\t[1530745.950651] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000\n\t[1530745.950651] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400\n\t[1530745.950651] Process shmem_test_02 (pid: 19653, threadinfo ffff8803863dc000, task ffff88038612a8a0)\n\t[1530745.950651] Stack:\n\t[1530745.950651]  ffffea00040c2fe8 0000000000000000 ffff8803863ddd98 ffffffff810c739a\n\t[1530745.950651] \u003c0\u003e 00000000863ddd18 000000000000000c 0000000000000000 0000000000000000\n\t[1530745.950651] \u003c0\u003e 0000000000000002 0000000000000000 ffff8803863ddd68 0000000000000046\n\t[1530745.950651] Call Trace:\n\t[1530745.950651]  [\u003cffffffff810c739a\u003e] release_pages+0x142/0x1e7\n\t[1530745.950651]  [\u003cffffffff810c778f\u003e] ? pagevec_move_tail+0x6e/0x112\n\t[1530745.950651]  [\u003cffffffff810c781e\u003e] pagevec_move_tail+0xfd/0x112\n\t[1530745.950651]  [\u003cffffffff810c78a9\u003e] lru_add_drain+0x76/0x94\n\t[1530745.950651]  [\u003cffffffff810dba0c\u003e] exit_mmap+0x6e/0x145\n\t[1530745.950651]  [\u003cffffffff8103f52d\u003e] mmput+0x5e/0xcf\n\t[1530745.950651]  [\u003cffffffff81043ea8\u003e] exit_mm+0x11c/0x129\n\t[1530745.950651]  [\u003cffffffff8108fb29\u003e] ? audit_free+0x196/0x1c9\n\t[1530745.950651]  [\u003cffffffff81045353\u003e] do_exit+0x1f5/0x6b7\n\t[1530745.950651]  [\u003cffffffff8106133f\u003e] ? up_read+0x2b/0x2f\n\t[1530745.950651]  [\u003cffffffff8137d187\u003e] ? lockdep_sys_exit_thunk+0x35/0x67\n\t[1530745.950651]  [\u003cffffffff81045898\u003e] do_group_exit+0x83/0xb0\n\t[1530745.950651]  [\u003cffffffff810458dc\u003e] sys_exit_group+0x17/0x1b\n\t[1530745.950651]  [\u003cffffffff81002c1b\u003e] system_call_fastpath+0x16/0x1b\n\t[1530745.950651] Code: 54 53 0f 1f 44 00 00 83 3d cc 29 7c 00 00 41 89 f4 75 63 eb 4e 48 83 7b 08 00 75 04 0f 0b eb fe 48 89 df e8 18 f3 ff ff 44 89 e2 \u003c48\u003e ff 4c d0 50 48 8b 05 2b 2d 7c 00 48 39 43 08 74 39 48 8b 4b\n\t[1530745.950651] RIP  [\u003cffffffff810fbc11\u003e] mem_cgroup_del_lru_list+0x30/0x80\n\t[1530745.950651]  RSP \u003cffff8803863ddcb8\u003e\n\t[1530745.950651] CR2: 0000000000000230\n\t[1530745.950651] ---[ end trace c3419c1bb8acc34f ]---\n\t[1530745.950651] Fixing recursive fault but reboot is needed!\n\nThe problem here is pages on LRU may contain pointer to stale memcg.  To\nmake res-\u003eusage to be 0, all pages on memcg must be uncharged or moved to\nanother(parent) memcg.  Moved page_cgroup have already removed from\noriginal LRU, but uncharged page_cgroup contains pointer to memcg withou\nPCG_USED bit.  (This asynchronous LRU work is for improving performance.)\nIf PCG_USED bit is not set, page_cgroup will never be added to memcg\u0027s\nLRU.  So, about pages not on LRU, they never access stale pointer.  Then,\nwhat we have to take care of is page_cgroup _on_ LRU list.  This patch\nfixes this problem by making mem_cgroup_force_empty() visit all LRUs\nbefore exiting its loop and guarantee there are no pages on its LRU.\n\nSigned-off-by: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "de3fab39348dff18c69a0cd04efee9c276a02f51",
      "tree": "1fc5a20da15541e23d02c33ae0bb574fb1f2e40f",
      "parents": [
        "af2422c42c0ff42b8b93dbb3a5fe65250fb65c40"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Fri Jan 15 17:01:25 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jan 16 12:15:39 2010 -0800"
      },
      "message": "vmscan: kswapd: don\u0027t retry balance_pgdat() if all zones are unreclaimable\n\nCommit f50de2d3 (vmscan: have kswapd sleep for a short interval and double\ncheck it should be asleep) can cause kswapd to enter an infinite loop if\nrunning on a single-CPU system.  If all zones are unreclaimble,\nsleeping_prematurely return 1 and kswapd will call balance_pgdat() again.\nbut it\u0027s totally meaningless, balance_pgdat() doesn\u0027t anything against\nunreclaimable zone!\n\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nReported-by: Will Newton \u003cwill.newton@gmail.com\u003e\nReviewed-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nReviewed-by: Rik van Riel \u003criel@redhat.com\u003e\nTested-by: Will Newton \u003cwill.newton@gmail.com\u003e\nReviewed-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d2dbe08ddceb4ba2b274abb84326d7e69d454e5c",
      "tree": "7b363c03dc6441b3fe6ebdcacd892cbd09b04f29",
      "parents": [
        "5dab600e6a153ceb64832f608069e6c08185411a"
      ],
      "author": {
        "name": "Kazuhisa Ichikawa",
        "email": "ki@epsilou.com",
        "time": "Fri Jan 15 17:01:20 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jan 16 12:15:38 2010 -0800"
      },
      "message": "mm/page_alloc: fix the range check for backward merging\n\nThe current check for \u0027backward merging\u0027 within add_active_range() does\nnot seem correct.  start_pfn must be compared against\nearly_node_map[i].start_pfn (and NOT against .end_pfn) to find out whether\nthe new region is backward-mergeable with the existing range.\n\nSigned-off-by: Kazuhisa Ichikawa \u003cki@epsilou.com\u003e\nAcked-by: David Rientjes \u003crientjes@google.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5da779c34ccff5e1e617892b6c8bd8260fb1f04c",
      "tree": "fbcaab087c066b7e4c294a9150e56bc742ebee38",
      "parents": [
        "05c2828c72c4eabf62376adfe27bd24797621f62"
      ],
      "author": {
        "name": "Michael S. Tsirkin",
        "email": "mst@redhat.com",
        "time": "Thu Jan 14 06:17:18 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Jan 15 01:43:28 2010 -0800"
      },
      "message": "mm: export use_mm/unuse_mm to modules\n\nvhost net module wants to do copy to/from user from a kernel thread,\nwhich needs use_mm. Export it to modules.\n\nAcked-by: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nAcked-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Michael S. Tsirkin \u003cmst@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "cedabed49b39b4319bccc059a63344b6232b619c",
      "tree": "caa84b17d5cfe3a0f71a537cf55498f2019586db",
      "parents": [
        "e80c14e1ae3cb637d1959a6c9a199ba2e7af5910"
      ],
      "author": {
        "name": "OGAWA Hirofumi",
        "email": "hirofumi@mail.parknet.co.jp",
        "time": "Wed Jan 13 21:14:09 2010 +0900"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jan 13 16:09:33 2010 -0800"
      },
      "message": "vfs: Fix vmtruncate() regression\n\nIf __block_prepare_write() was failed in block_write_begin(), the\nallocated blocks can be outside of -\u003ei_size.\n\nBut new truncate_pagecache() in vmtuncate() does nothing if new \u003c old.\nIt means the above usage is not working anymore.\n\nSo, this patch fixes it by removing \"new \u003c old\" check. It would need\nmore cleanup/change. But, now -rc and truncate working is in progress,\nso, this tried to fix it minimum change.\n\nAcked-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: OGAWA Hirofumi \u003chirofumi@mail.parknet.co.jp\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "644755e7867710a23e6243dcc69cfc071985f560",
      "tree": "7cc1ad648d2f5631ae0bb8bf73f3bc30e0709605",
      "parents": [
        "6430a5987f8bb9a7c5187b343956aa8ef404d571",
        "0ea820cf9bf58f735ed40ec67947159c4f170012",
        "fa94ddea2b29fdda7640672c8a933dbd901f0278",
        "066000dd856709b6980123eb39b957fe26993f7b"
      ],
      "author": {
        "name": "Paul Mundt",
        "email": "lethal@linux-sh.org",
        "time": "Wed Jan 13 13:02:55 2010 +0900"
      },
      "committer": {
        "name": "Paul Mundt",
        "email": "lethal@linux-sh.org",
        "time": "Wed Jan 13 13:02:55 2010 +0900"
      },
      "message": "Merge branches \u0027sh/xstate\u0027, \u0027sh/hw-breakpoints\u0027 and \u0027sh/stable-updates\u0027\n"
    },
    {
      "commit": "74dbdd239bb1348ad86d28b18574d9c1f28b62ca",
      "tree": "d29d30ee9d4c3dd64d831fa9d042c76cba829b58",
      "parents": [
        "b5430a04e995081a308b4419bd0940f2badc6e6b"
      ],
      "author": {
        "name": "Andrea Arcangeli",
        "email": "aarcange@redhat.com",
        "time": "Fri Jan 08 14:43:05 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 11 09:34:06 2010 -0800"
      },
      "message": "mm: hugetlb: fix clear_huge_page()\n\nsz is in bytes, MAX_ORDER_NR_PAGES is in pages.\n\nSigned-off-by: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nAcked-by: David Gibson \u003cdwg@au1.ibm.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "129182e5626972ac0df85d43a36dd46ad61c64e1",
      "tree": "c91d17c697aa29d284dbe065423e01ca7020db73",
      "parents": [
        "8767ba2796a1c894e6d9524584a26a8224f0543d"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Fri Jan 08 14:42:39 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 11 09:34:04 2010 -0800"
      },
      "message": "percpu: avoid calling __pcpu_ptr_to_addr(NULL)\n\n__pcpu_ptr_to_addr() can be overridden by the architecture and might not\nbehave well if passed a NULL pointer.  So avoid calling it until we have\nverified that its arg is not NULL.\n\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Kamalesh Babulal \u003ckamalesh@linux.vnet.ibm.com\u003e\nAcked-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f3186a9c51eabe75b2780153ed7f07778d78b16e",
      "tree": "ab8c267ad09ead33c8ed757612b34ad5a1b70ce7",
      "parents": [
        "6b7b284958d47b77d06745b36bc7f36dab769d9b"
      ],
      "author": {
        "name": "Haicheng Li",
        "email": "haicheng.li@linux.intel.com",
        "time": "Wed Jan 06 15:25:23 2010 +0800"
      },
      "committer": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Mon Jan 11 18:56:07 2010 +0200"
      },
      "message": "slab: initialize unused alien cache entry as NULL at alloc_alien_cache().\n\nComparing with existing code, it\u0027s a simpler way to use kzalloc_node()\nto ensure that each unused alien cache entry is NULL.\n\nCC: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nAcked-by: Andi Kleen \u003cak@linux.intel.com\u003e\nAcked-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nAcked-by: Matt Mackall \u003cmpm@selenic.com\u003e\nSigned-off-by: Haicheng Li \u003chaicheng.li@linux.intel.com\u003e\nSigned-off-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\n"
    },
    {
      "commit": "6144a85a0e018c19bc4b24f7eb6c1f3f7431813d",
      "tree": "4300bb5d23338884a75d449f17f2538815ac9f8c",
      "parents": [
        "2c1f1895ef2aa8f0e5497893eff71304aef332e1"
      ],
      "author": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Thu Jan 07 11:58:36 2010 -0600"
      },
      "committer": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Thu Jan 07 11:58:36 2010 -0600"
      },
      "message": "maccess,probe_kernel: Allow arch specific override probe_kernel_(read|write)\n\nSome archs such as blackfin, would like to have an arch specific\nprobe_kernel_read() and probe_kernel_write() implementation which can\nfall back to the generic implementation if no special operations are\nneeded.\n\nCC: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCC: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Jason Wessel \u003cjason.wessel@windriver.com\u003e\nSigned-off-by: Mike Frysinger \u003cvapier@gentoo.org\u003e\n"
    },
    {
      "commit": "7959722b951cffcd61a0a35229d007deeed8c2dd",
      "tree": "18badc77e7c79042c9321c279f9b47e8af3b36c5",
      "parents": [
        "cfe79c00a2f4f687eed8b7534d1d3d3d35540c29"
      ],
      "author": {
        "name": "Jie Zhang",
        "email": "jie.zhang@analog.com",
        "time": "Wed Jan 06 17:23:28 2010 +0000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jan 06 18:16:02 2010 -0800"
      },
      "message": "NOMMU: Use copy_*_user_page() in access_process_vm()\n\nThe MMU code uses the copy_*_user_page() variants in access_process_vm()\nrather than copy_*_user() as the former includes an icache flush.  This\nis important when doing things like setting software breakpoints with\ngdb.  So switch the NOMMU code over to do the same.\n\nThis patch makes the reasonable assumption that copy_from_user_page()\nwon\u0027t fail - which is probably fine, as we\u0027ve checked the VMA from which\nwe\u0027re copying is usable, and the copy is not allowed to cross VMAs.  The\none case where it might go wrong is if the VMA is a device rather than\nRAM, and that device returns an error which - in which case rubbish will\nbe returned rather than EIO.\n\nSigned-off-by: Jie Zhang \u003cjie.zhang@analog.com\u003e\nSigned-off-by: Mike Frysinger \u003cvapier@gentoo.org\u003e\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: David McCullough \u003cdavid_mccullough@mcafee.com\u003e\nAcked-by: Paul Mundt \u003clethal@linux-sh.org\u003e\nAcked-by: Greg Ungerer \u003cgerg@uclinux.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "cfe79c00a2f4f687eed8b7534d1d3d3d35540c29",
      "tree": "62c603938e7b740ca16ce1012a6ee7ab08b3f727",
      "parents": [
        "04e4f2b18c8de1389d1e00fef0f42a8099910daf"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier.adi@gmail.com",
        "time": "Wed Jan 06 17:23:23 2010 +0000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jan 06 18:16:02 2010 -0800"
      },
      "message": "NOMMU: Avoiding duplicate icache flushes of shared maps\n\nWhen working with FDPIC, there are many shared mappings of read-only\ncode regions between applications (the C library, applet packages like\nbusybox, etc.), but the current do_mmap_pgoff() function will issue an\nicache flush whenever a VMA is added to an MM instead of only doing it\nwhen the map is initially created.\n\nThe flush can instead be done when a region is first mmapped PROT_EXEC.\nNote that we may not rely on the first mapping of a region being\nexecutable - it\u0027s possible for it to be PROT_READ only, so we have to\nremember whether we\u0027ve flushed the region or not, and then flush the\nentire region when a bit of it is made executable.\n\nHowever, this also affects the brk area.  That will no longer be\nexecutable.  We can mprotect() it to PROT_EXEC on MPU-mode kernels, but\nfor NOMMU mode kernels, when it increases the brk allocation, making\nsys_brk() flush the extra from the icache should suffice.  The brk area\nprobably isn\u0027t used by NOMMU programs since the brk area can only use up\nthe leavings from the stack allocation, where the stack allocation is\nlarger than requested.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Mike Frysinger \u003cvapier@gentoo.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ad596925eaf9a48ed61bc9210088828f1f8e0552",
      "tree": "868c53469fd9506b5297d9d1c2d4423bbba81836",
      "parents": [
        "99dcc3e5a94ed491fbef402831d8c0bbb267f995"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "cl@linux-foundation.org",
        "time": "Tue Jan 05 15:34:51 2010 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Jan 05 15:34:51 2010 +0900"
      },
      "message": "this_cpu: Remove pageset_notifier\n\nRemove the pageset notifier since it only marks that a processor\nexists on a specific node. Move that code into the vmstat notifier.\n\nSigned-off-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\n"
    },
    {
      "commit": "99dcc3e5a94ed491fbef402831d8c0bbb267f995",
      "tree": "dd4d2b9e10ab0d4502e4b2a22dfc0a02a3300d7e",
      "parents": [
        "5917dae83cb02dfe74c9167b79e86e6d65183fa3"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "cl@linux-foundation.org",
        "time": "Tue Jan 05 15:34:51 2010 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Jan 05 15:34:51 2010 +0900"
      },
      "message": "this_cpu: Page allocator conversion\n\nUse the per cpu allocator functionality to avoid per cpu arrays in struct zone.\n\nThis drastically reduces the size of struct zone for systems with large\namounts of processors and allows placement of critical variables of struct\nzone in one cacheline even on very large systems.\n\nAnother effect is that the pagesets of one processor are placed near one\nanother. If multiple pagesets from different zones fit into one cacheline\nthen additional cacheline fetches can be avoided on the hot paths when\nallocating memory from multiple zones.\n\nBootstrap becomes simpler if we use the same scheme for UP, SMP, NUMA. #ifdefs\nare reduced and we can drop the zone_pcp macro.\n\nHotplug handling is also simplified since cpu alloc can bring up and\nshut down cpu areas for a specific cpu as a whole. So there is no need to\nallocate or free individual pagesets.\n\nV7-V8:\n- Explain chicken egg dilemmna with percpu allocator.\n\nV4-V5:\n- Fix up cases where per_cpu_ptr is called before irq disable\n- Integrate the bootstrap logic that was separate before.\n\ntj: Build failure in pageset_cpuup_callback() due to missing ret\n    variable fixed.\n\nReviewed-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nSigned-off-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\n"
    },
    {
      "commit": "0176bd3dab4fe522bfb6ceab9e3c441fe0305738",
      "tree": "d532c56785fad657581fc74794881dfaae99fe5c",
      "parents": [
        "a7595fe7e8a93a73ce6199dace75a0caca7024c1"
      ],
      "author": {
        "name": "Paul Mundt",
        "email": "lethal@linux-sh.org",
        "time": "Tue Jan 05 12:35:00 2010 +0900"
      },
      "committer": {
        "name": "Paul Mundt",
        "email": "lethal@linux-sh.org",
        "time": "Tue Jan 05 12:35:00 2010 +0900"
      },
      "message": "sh: Drop down to a single quicklist.\n\nWe previously had 2 quicklists, one for the PGD case and one for PTEs.\nNow that the PGD/PMD cases are handled through slab caches due to the\nmulti-level configurability, only the PTE quicklist remains. As such,\nreduce NR_QUICK to its appropriate size and bump down the PTE quicklist\nindex.\n\nSigned-off-by: Paul Mundt \u003clethal@linux-sh.org\u003e\n"
    },
    {
      "commit": "32032df6c2f6c9c6b2ada2ce42322231824f70c2",
      "tree": "b1ce838a37044bb38dfc128e2116ca35630e629a",
      "parents": [
        "22b737f4c75197372d64afc6ed1bccd58c00e549",
        "c5974b835a909ff15c3b7e6cf6789b5eb919f419"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Jan 05 09:17:33 2010 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Jan 05 09:17:33 2010 +0900"
      },
      "message": "Merge branch \u0027master\u0027 into percpu\n\nConflicts:\n\tarch/powerpc/platforms/pseries/hvCall.S\n\tinclude/linux/percpu.h\n"
    },
    {
      "commit": "f8e9766dd1bacd5f32f9ac4322b55fbfd46b778e",
      "tree": "f6b5ff90350cf7f8d803c3b25d4b2b174b3e17f0",
      "parents": [
        "d661d76b0262f3ed649a1dea24c0119757592b09",
        "00afa758067ac1c947149ef766adcdfe30c44d7d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 30 13:14:25 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 30 13:14:25 2009 -0800"
      },
      "message": "Merge branch \u0027slab/urgent\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/penberg/slab-2.6\n\n* \u0027slab/urgent\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/penberg/slab-2.6:\n  SLAB: Fix lockdep annotation breakage\n"
    },
    {
      "commit": "66f0dc481e5b802ab363b979fc1753410c7d82b5",
      "tree": "9f8609685f07d410bc6536a0d3e47e366edf93d4",
      "parents": [
        "75c85a0bc13367aabb36e8208d4e373b022b43b3"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh.dickins@tiscali.co.uk",
        "time": "Wed Dec 30 20:17:34 2009 +0000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 30 12:23:27 2009 -0800"
      },
      "message": "mm: move sys_mmap_pgoff from util.c\n\nMove sys_mmap_pgoff() from mm/util.c to mm/mmap.c and mm/nommu.c,\nwhere we\u0027d expect to find such code: especially now that it contains\nthe MAP_HUGETLB handling.  Revert mm/util.c to how it was in 2.6.32.\n\nThis patch just ignores MAP_HUGETLB in the nommu case, as in 2.6.32,\nwhereas 2.6.33-rc2 reported -ENOSYS.  Perhaps validate_mmap_request()\nshould reject it with -EINVAL?  Add that later if necessary.\n\nSigned-off-by: Hugh Dickins \u003chugh.dickins@tiscali.co.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "00afa758067ac1c947149ef766adcdfe30c44d7d",
      "tree": "7967c8e1b9876553742a73b6f7d155b2745ea671",
      "parents": [
        "6b7b284958d47b77d06745b36bc7f36dab769d9b"
      ],
      "author": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Sun Dec 27 14:33:14 2009 +0200"
      },
      "committer": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Mon Dec 28 20:57:27 2009 +0200"
      },
      "message": "SLAB: Fix lockdep annotation breakage\n\nCommit ce79ddc8e2376a9a93c7d42daf89bfcbb9187e62 (\"SLAB: Fix lockdep annotations\nfor CPU hotplug\") broke init_node_lock_keys() off-slab logic which causes\nlockdep false positives.\n\nFix that up by reverting the logic back to original while keeping CPU hotplug\nfixes intact.\n\nReported-and-tested-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nReported-and-tested-by: Andi Kleen \u003candi@firstfloor.org\u003e\nSigned-off-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\n"
    },
    {
      "commit": "0b5e2588d8238b03df66c4e74769fd03ad84f694",
      "tree": "7a7baf0d8309a3473bf265d1354bb756d65a4a02",
      "parents": [
        "6067d7e4f05e5c08617cf95032867d892035e581",
        "443c6f145de813518c36ac6b6e4e08d9445337e7"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 24 13:01:29 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 24 13:01:29 2009 -0800"
      },
      "message": "Merge branch \u0027sysctl\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ak/linux-misc-2.6\n\n* \u0027sysctl\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ak/linux-misc-2.6:\n  SYSCTL: Add a mutex to the page_alloc zone order sysctl\n  SYSCTL: Print binary sysctl warnings (nearly) only once\n"
    },
    {
      "commit": "6067d7e4f05e5c08617cf95032867d892035e581",
      "tree": "ca8205a2514936bce2cd0942e0806dc43b0436dc",
      "parents": [
        "71492fd1bdd4734d8efd20fe00ebf31027d86d3c",
        "27df5068e24f2f88de98e95eb6e8dbc9800bf80e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 24 13:01:13 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 24 13:01:13 2009 -0800"
      },
      "message": "Merge branch \u0027hwpoison\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ak/linux-mce-2.6\n\n* \u0027hwpoison\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ak/linux-mce-2.6:\n  HWPOISON: Add PROC_FS dependency to hwpoison injector v2\n"
    }
  ],
  "next": "443c6f145de813518c36ac6b6e4e08d9445337e7"
}
