linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
* [RFC PATCH 0/3] Prevent kswapd dumping excessive amounts of memory in response to high-order allocations
@ 2010-11-30 17:15 Mel Gorman
  2010-11-30 17:15 ` [PATCH 1/3] mm: kswapd: Stop high-order balancing when any suitable zone is balanced Mel Gorman
                   ` (2 more replies)
  0 siblings, 3 replies; 14+ messages in thread
From: Mel Gorman @ 2010-11-30 17:15 UTC (permalink / raw)
  To: Simon Kirby
  Cc: KOSAKI Motohiro, Shaohua Li, Dave Hansen, linux-mm, linux-kernel,
	Mel Gorman

Simon Kirby reported the following problem

   We're seeing cases on a number of servers where cache never fully
   grows to use all available memory.  Sometimes we see servers with 4
   GB of memory that never seem to have less than 1.5 GB free, even with
   a constantly-active VM.  In some cases, these servers also swap out
   while this happens, even though they are constantly reading the working
   set into memory.  We have been seeing this happening for a long time;
   I don't think it's anything recent, and it still happens on 2.6.36.

After some debugging work by Simon, Dave Hansen and others, the prevaling
theory became that kswapd is reclaiming order-3 pages requested by SLUB
too aggressive about it.

There are two apparent problems here. On the target machine, there is a small
Normal zone in comparison to DMA32. As kswapd tries to balance all zones, it
would continually try reclaiming for Normal even though DMA32 was balanced
enough for callers. The second problem is that sleeping_prematurely() uses
the requested order, not the order kswapd finally reclaimed at. This keeps
kswapd artifically awake.

This series aims to alleviate these problems but needs testing to confirm
it alleviates the actual problem and wider review to think if there is a
better alternative approach. Local tests passed but are not reproducing
the same problem unfortunately so the results are inclusive.

 include/linux/mmzone.h |    3 +-
 mm/page_alloc.c        |    2 +-
 mm/vmscan.c            |   90 ++++++++++++++++++++++++++++++++++++++++-------
 3 files changed, 79 insertions(+), 16 deletions(-)

--
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 policy in Canada: sign http://dissolvethecrtc.ca/
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2010-12-01 11:07 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-11-30 17:15 [RFC PATCH 0/3] Prevent kswapd dumping excessive amounts of memory in response to high-order allocations Mel Gorman
2010-11-30 17:15 ` [PATCH 1/3] mm: kswapd: Stop high-order balancing when any suitable zone is balanced Mel Gorman
2010-12-01  2:13   ` Shaohua Li
2010-12-01  2:23     ` KOSAKI Motohiro
2010-12-01  2:47       ` Shaohua Li
2010-12-01  2:59         ` KOSAKI Motohiro
2010-12-01  3:20           ` Shaohua Li
2010-12-01  3:28             ` KOSAKI Motohiro
2010-12-01  7:40               ` Shaohua Li
2010-12-01  7:52                 ` KOSAKI Motohiro
2010-12-01  8:24                   ` Shaohua Li
2010-12-01 11:07     ` Mel Gorman
2010-11-30 17:15 ` [PATCH 2/3] mm: kswapd: Use the order that kswapd was reclaiming at for sleeping_prematurely() Mel Gorman
2010-11-30 17:15 ` [PATCH 3/3] mm: kswapd: Keep kswapd awake for high-order allocations until a percentage of the node is balanced Mel Gorman

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).