Thread (16 messages) 16 messages, 4 authors, 2011-02-23

Re: [PATCH 1/5] pagewalk: only split huge pages when necessary

From: David Rientjes <rientjes@google.com>
Date: 2011-02-22 21:21:58
Also in: lkml

On Mon, 21 Feb 2011, Dave Hansen wrote:
v2 - rework if() block, and remove  now redundant split_huge_page()

Right now, if a mm_walk has either ->pte_entry or ->pmd_entry
set, it will unconditionally split any transparent huge pages
it runs in to.  In practice, that means that anyone doing a

	cat /proc/$pid/smaps

will unconditionally break down every huge page in the process
and depend on khugepaged to re-collapse it later.  This is
fairly suboptimal.

This patch changes that behavior.  It teaches each ->pmd_entry
handler (there are five) that they must break down the THPs
themselves.  Also, the _generic_ code will never break down
a THP unless a ->pte_entry handler is actually set.

This means that the ->pmd_entry handlers can now choose to
deal with THPs without breaking them down.

Acked-by: Mel Gorman <redacted>
Signed-off-by: Dave Hansen <redacted>
Acked-by: David Rientjes <rientjes@google.com>

Thanks for adding the comment about ->pmd_entry() being required to split 
the pages in include/linux/mm.h!

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  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@kvack.org"> email@kvack.org </a>
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help