Re: [patch v2 4/4]thp: improve order in lru list for split huge page

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, 15 Nov 2011 15:04:21 +0800
Shaohua Li <shaohua.li@xxxxxxxxx> wrote:

> 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.
> 
> ...
>
> --- linux.orig/mm/swap.c	2011-11-14 16:12:03.000000000 +0800
> +++ linux/mm/swap.c	2011-11-15 09:15:33.000000000 +0800
> @@ -684,7 +684,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);

This conflicts with changes in Johannes's "mm: collect LRU list heads
into struct lruvec":

@@ -674,10 +673,10 @@ void lru_add_page_tail(struct zone* zone
 		}
 		update_page_reclaim_stat(zone, page_tail, file, active);
 		if (likely(PageLRU(page)))
-			head = page->lru.prev;
+			__add_page_to_lru_list(zone, page_tail, lru,
+					       page->lru.prev);
 		else
-			head = &zone->lru[lru].list;
-		__add_page_to_lru_list(zone, page_tail, lru, head);
+			add_page_to_lru_list(zone, page_tail, lru);
 	} else {
 		SetPageUnevictable(page_tail);
 		add_page_to_lru_list(zone, page_tail, LRU_UNEVICTABLE);


--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@xxxxxxxxx.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/
Don't email: <a href=mailto:"dont@xxxxxxxxx";> email@xxxxxxxxx </a>


[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]