Files
ubports_kernel_google_msm/include/linux
Dave Hansen 033193275b pagewalk: only split huge pages when necessary
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.

[akpm@linux-foundation.org: coding-style fixes]
Signed-off-by: Dave Hansen <dave@linux.vnet.ibm.com>
Acked-by: Mel Gorman <mel@csn.ul.ie>
Acked-by: David Rientjes <rientjes@google.com>
Reviewed-by: Eric B Munson <emunson@mgebm.net>
Tested-by: Eric B Munson <emunson@mgebm.net>
Cc: Michael J Wolf <mjwolf@us.ibm.com>
Cc: Andrea Arcangeli <aarcange@redhat.com>
Cc: Johannes Weiner <hannes@cmpxchg.org>
Cc: Matt Mackall <mpm@selenic.com>
Cc: Jeremy Fitzhardinge <jeremy@goop.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-03-22 17:44:04 -07:00
..
2011-03-18 23:38:50 -07:00
2011-01-20 18:30:17 -08:00
2011-01-20 18:30:17 -08:00
2011-01-31 14:03:00 -08:00
2011-01-15 20:07:45 -05:00
2011-03-22 17:43:59 -07:00
2011-01-13 08:03:12 -08:00
2011-02-16 13:30:48 +01:00
2011-02-16 13:30:48 +01:00
2011-01-10 08:51:44 -08:00
2011-02-03 15:39:16 -08:00
2011-01-12 20:16:43 -05:00
2011-03-14 19:12:20 -04:00
2011-01-10 08:51:44 -08:00
2011-01-07 17:50:27 +11:00
2011-03-17 21:31:32 -04:00
2011-01-07 17:50:23 +11:00
2011-03-04 17:53:39 -08:00
2011-03-05 10:56:00 +01:00
2011-02-23 00:53:26 +00:00
2011-03-20 14:50:53 +01:00
2011-02-27 16:11:51 -08:00
2011-03-11 14:15:35 +01:00
2011-01-31 14:03:00 -08:00
2011-02-17 11:12:40 -08:00
2011-01-13 17:32:31 -08:00
2011-02-01 08:23:22 +10:00
2011-01-13 17:32:47 -08:00
2011-02-13 16:54:24 -08:00
2011-01-24 14:45:11 +10:30
2011-03-22 17:43:59 -07:00
2011-01-14 13:12:45 +00:00
2011-01-13 17:32:46 -08:00
2011-02-15 10:24:31 +01:00
2011-01-16 13:47:07 -05:00
2011-03-11 15:38:44 -05:00
2011-03-14 18:25:53 -04:00
2011-01-16 13:47:07 -05:00
2011-03-11 15:13:26 -05:00
2011-03-15 00:43:16 +01:00
2011-01-13 08:03:21 -08:00
2011-01-14 02:36:43 +00:00
2011-01-13 08:03:18 -08:00
2011-03-22 17:44:03 -07:00
2011-01-07 17:50:27 +11:00
2011-01-13 08:03:19 -08:00
2011-03-22 17:44:03 -07:00
2011-02-28 18:00:31 -08:00
2011-02-21 12:53:08 -08:00
2011-02-02 15:28:18 +01:00
2011-01-24 14:45:11 +10:30
2011-01-13 08:03:24 -08:00