Messages in this thread | | | Date | Mon, 13 Dec 2010 12:43:41 -0700 | From | Eric B Munson <> | Subject | Re: [PATCH 6/6] mm: kswapd: Use the classzone idx that kswapd was using for sleeping_prematurely() |
| |
On Fri, 10 Dec 2010, Mel Gorman wrote:
> When kswapd is woken up for a high-order allocation, it takes account of > the highest usable zone by the caller (the classzone idx). During > allocation, this index is used to select the lowmem_reserve[] that > should be applied to the watermark calculation in zone_watermark_ok(). > > When balancing a node, kswapd considers the highest unbalanced zone to be the > classzone index. This will always be at least be the callers classzone_idx > and can be higher. However, sleeping_prematurely() always considers the > lowest zone (e.g. ZONE_DMA) to be the classzone index. This means that > sleeping_prematurely() can consider a zone to be balanced that is unusable > by the allocation request that originally woke kswapd. This patch changes > sleeping_prematurely() to use a classzone_idx matching the value it used > in balance_pgdat(). > > Signed-off-by: Mel Gorman <mel@csn.ul.ie> > Reviewed-by: Minchan Kim <minchan.kim@gmail.com>
Reviewed-by: Eric B Munson <emunson@mgebm.net> [unhandled content-type:application/pgp-signature] | |