The patch titled Subject: mm, memory_hotplug/failure: drain single zone pcplists has been added to the -mm tree. Its filename is mm-memory_hotplug-failure-drain-single-zone-pcplists.patch This patch should soon appear at http://ozlabs.org/~akpm/mmots/broken-out/mm-memory_hotplug-failure-drain-single-zone-pcplists.patch and later at http://ozlabs.org/~akpm/mmotm/broken-out/mm-memory_hotplug-failure-drain-single-zone-pcplists.patch Before you just go and hit "reply", please: a) Consider who else should be cc'ed b) Prefer to cc a suitable mailing list as well c) Ideally: find the original patch on the mailing list and do a reply-to-all to that, adding suitable additional cc's *** Remember to use Documentation/SubmitChecklist when testing your code *** The -mm tree is included into linux-next and is updated there every 3-4 working days ------------------------------------------------------ From: Vlastimil Babka <vbabka@xxxxxxx> Subject: mm, memory_hotplug/failure: drain single zone pcplists Memory hotplug and failure mechanisms have several places where pcplists are drained so that pages are returned to the buddy allocator and can be e.g. prepared for offlining. This is always done in the context of a single zone, we can reduce the pcplists drain to the single zone, which is now possible. The change should make memory offlining due to hotremove or failure faster and not disturbing unrelated pcplists anymore. Signed-off-by: Vlastimil Babka <vbabka@xxxxxxx> Cc: Naoya Horiguchi <n-horiguchi@xxxxxxxxxxxxx> Cc: Mel Gorman <mgorman@xxxxxxx> Cc: Rik van Riel <riel@xxxxxxxxxx> Cc: Yasuaki Ishimatsu <isimatu.yasuaki@xxxxxxxxxxxxxx> Cc: Zhang Yanfei <zhangyanfei@xxxxxxxxxxxxxx> Cc: Xishi Qiu <qiuxishi@xxxxxxxxxx> Cc: Vladimir Davydov <vdavydov@xxxxxxxxxxxxx> Cc: Joonsoo Kim <iamjoonsoo.kim@xxxxxxx> Cc: Michal Nazarewicz <mina86@xxxxxxxxxx> Cc: Marek Szyprowski <m.szyprowski@xxxxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> --- mm/memory-failure.c | 4 ++-- mm/memory_hotplug.c | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff -puN mm/memory-failure.c~mm-memory_hotplug-failure-drain-single-zone-pcplists mm/memory-failure.c --- a/mm/memory-failure.c~mm-memory_hotplug-failure-drain-single-zone-pcplists +++ a/mm/memory-failure.c @@ -233,7 +233,7 @@ void shake_page(struct page *p, int acce lru_add_drain_all(); if (PageLRU(p)) return; - drain_all_pages(NULL); + drain_all_pages(page_zone(p)); if (PageLRU(p) || is_free_buddy_page(p)) return; } @@ -1661,7 +1661,7 @@ static int __soft_offline_page(struct pa if (!is_free_buddy_page(page)) lru_add_drain_all(); if (!is_free_buddy_page(page)) - drain_all_pages(NULL); + drain_all_pages(page_zone(page)); SetPageHWPoison(page); if (!is_free_buddy_page(page)) pr_info("soft offline: %#lx: page leaked\n", diff -puN mm/memory_hotplug.c~mm-memory_hotplug-failure-drain-single-zone-pcplists mm/memory_hotplug.c --- a/mm/memory_hotplug.c~mm-memory_hotplug-failure-drain-single-zone-pcplists +++ a/mm/memory_hotplug.c @@ -1699,7 +1699,7 @@ repeat: if (drain) { lru_add_drain_all(); cond_resched(); - drain_all_pages(NULL); + drain_all_pages(zone); } pfn = scan_movable_pages(start_pfn, end_pfn); @@ -1721,7 +1721,7 @@ repeat: lru_add_drain_all(); yield(); /* drain pcp pages, this is synchronous. */ - drain_all_pages(NULL); + drain_all_pages(zone); /* * dissolve free hugepages in the memory block before doing offlining * actually in order to make hugetlbfs's object counting consistent. _ Patches currently in -mm which might be from vbabka@xxxxxxx are origin.patch mm-compaction-avoid-premature-range-skip-in-isolate_migratepages_range.patch mm-introduce-single-zone-pcplists-drain.patch mm-page_isolation-drain-single-zone-pcplists.patch mm-cma-drain-single-zone-pcplists.patch mm-memory_hotplug-failure-drain-single-zone-pcplists.patch -- To unsubscribe from this list: send the line "unsubscribe mm-commits" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html