aboutsummaryrefslogtreecommitdiff
path: root/security
diff options
context:
space:
mode:
authorMel Gorman <mgorman@suse.de>2013-11-12 15:08:15 -0800
committerJiri Slaby <jslaby@suse.cz>2014-03-12 13:25:42 +0100
commit67e204a06c70c4050c2ac00532ee7d2bb4ffcc79 (patch)
treee8b98f31b08874c0d25b20ebebd44506b5e7fa93 /security
parent230a558c94d9f2411381bab5a5aa5be91ba53ff9 (diff)
mm: do not walk all of system memory during show_mem
commit c78e93630d15b5f5774213aad9bdc9f52473a89b upstream. It has been reported on very large machines that show_mem is taking almost 5 minutes to display information. This is a serious problem if there is an OOM storm. The bulk of the cost is in show_mem doing a very expensive PFN walk to give us the following information Total RAM: Also available as totalram_pages Highmem pages: Also available as totalhigh_pages Reserved pages: Can be inferred from the zone structure Shared pages: PFN walk required Unshared pages: PFN walk required Quick pages: Per-cpu walk required Only the shared/unshared pages requires a full PFN walk but that information is useless. It is also inaccurate as page pins of unshared pages would be accounted for as shared. Even if the information was accurate, I'm struggling to think how the shared/unshared information could be useful for debugging OOM conditions. Maybe it was useful before rmap existed when reclaiming shared pages was costly but it is less relevant today. The PFN walk could be optimised a bit but why bother as the information is useless. This patch deletes the PFN walker and infers the total RAM, highmem and reserved pages count from struct zone. It omits the shared/unshared page usage on the grounds that it is useless. It also corrects the reporting of HighMem as HighMem/MovableOnly as ZONE_MOVABLE has similar problems to HighMem with respect to lowmem/highmem exhaustion. Signed-off-by: Mel Gorman <mgorman@suse.de> Cc: David Rientjes <rientjes@google.com> Acked-by: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by: Jiri Slaby <jslaby@suse.cz>
Diffstat (limited to 'security')
0 files changed, 0 insertions, 0 deletions