* [wrecked] thp-improve-order-in-lru-list-for-split-huge-page.patch removed from -mm tree
@ 2011-11-22 23:41 akpm
0 siblings, 0 replies; only message in thread
From: akpm @ 2011-11-22 23:41 UTC (permalink / raw)
To: shaohua.li, aarcange, jweiner, minchan.kim, rientjes, mm-commits
The patch titled
Subject: thp: improve order in lru list for split huge page
has been removed from the -mm tree. Its filename was
thp-improve-order-in-lru-list-for-split-huge-page.patch
This patch was dropped because other changes were merged, which wrecked this patch
The current -mm tree may be found at http://userweb.kernel.org/~akpm/mmotm/
------------------------------------------------------
From: Shaohua Li <shaohua.li@intel.com>
Subject: thp: improve order in lru list for split huge page
Put the tail subpages of an isolated hugepage under splitting in the lru
reclaim head as they supposedly should be isolated too next.
Queues the subpages in physical order in the lru for non isolated
hugepages under splitting. That might provide some theoretical cache
benefit to the buddy allocator later.
Signed-off-by: Shaohua Li <shaohua.li@intel.com>
Signed-off-by: Andrea Arcangeli <aarcange@redhat.com>
Cc: David Rientjes <rientjes@google.com>
Cc: Johannes Weiner <jweiner@redhat.com>
Cc: Minchan Kim <minchan.kim@gmail.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
---
mm/huge_memory.c | 5 ++---
mm/swap.c | 2 +-
2 files changed, 3 insertions(+), 4 deletions(-)
diff -puN mm/huge_memory.c~thp-improve-order-in-lru-list-for-split-huge-page mm/huge_memory.c
--- a/mm/huge_memory.c~thp-improve-order-in-lru-list-for-split-huge-page
+++ a/mm/huge_memory.c
@@ -1228,7 +1228,6 @@ static int __split_huge_page_splitting(s
static void __split_huge_page_refcount(struct page *page)
{
int i;
- unsigned long head_index = page->index;
struct zone *zone = page_zone(page);
int zonestat;
int tail_count = 0;
@@ -1237,7 +1236,7 @@ static void __split_huge_page_refcount(s
spin_lock_irq(&zone->lru_lock);
compound_lock(page);
- for (i = 1; i < HPAGE_PMD_NR; i++) {
+ for (i = HPAGE_PMD_NR - 1; i >= 1; i--) {
struct page *page_tail = page + i;
/* tail_page->_mapcount cannot change */
@@ -1300,7 +1299,7 @@ static void __split_huge_page_refcount(s
BUG_ON(page_tail->mapping);
page_tail->mapping = page->mapping;
- page_tail->index = ++head_index;
+ page_tail->index = page->index + i;
BUG_ON(!PageAnon(page_tail));
BUG_ON(!PageUptodate(page_tail));
diff -puN mm/swap.c~thp-improve-order-in-lru-list-for-split-huge-page mm/swap.c
--- a/mm/swap.c~thp-improve-order-in-lru-list-for-split-huge-page
+++ a/mm/swap.c
@@ -676,7 +676,7 @@ void lru_add_page_tail(struct zone* zone
if (likely(PageLRU(page)))
head = page->lru.prev;
else
- head = &zone->lru[lru].list;
+ head = zone->lru[lru].list.prev;
__add_page_to_lru_list(zone, page_tail, lru, head);
} else {
SetPageUnevictable(page_tail);
_
Patches currently in -mm which might be from shaohua.li@intel.com are
origin.patch
linux-next.patch
x86-tlb-flush-avoid-superflous-leave_mm.patch
vmscan-promote-shared-file-mapped-pages.patch
vmscan-activate-executable-pages-after-first-usage.patch
thp-improve-the-error-code-path.patch
thp-remove-unnecessary-tlb-flush-for-mprotect.patch
thp-add-tlb_remove_pmd_tlb_entry.patch
intel_idle-fix-api-misuse.patch
intel_idle-disable-auto_demotion-for-hotplugged-cpus.patch
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2011-11-22 23:41 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-11-22 23:41 [wrecked] thp-improve-order-in-lru-list-for-split-huge-page.patch removed from -mm tree akpm
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.