Messages in this thread | | | Date | Fri, 10 Dec 2010 11:38:23 +0900 | Subject | Re: [PATCH 6/6] mm: kswapd: Use the classzone idx that kswapd was using for sleeping_prematurely() | From | Minchan Kim <> |
| |
On Thu, Dec 9, 2010 at 8:18 PM, Mel Gorman <mel@csn.ul.ie> 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>
Nice catch! and it does make sense to me.
-- Kind regards, Minchan Kim
| |