Re: [PATCH] kswapd: avoid unnecessary rebalance after an unsuccessful balancing
From: Mel Gorman <mgorman@suse.de>
Date: 2011-07-29 15:40:38
Also in:
lkml
On Fri, Jul 29, 2011 at 11:23:10PM +0800, Alex Shi wrote:
In commit 215ddd66, Mel Gorman said kswapd is better to sleep after a unsuccessful balancing if there is tighter reclaim request pending in the balancing. In this scenario, the 'order' and 'classzone_idx' that are checked for tighter request judgment is incorrect, since they aren't the one kswapd should read from new pgdat, but the last time pgdat value for just now balancing. Then kswapd will skip try_to_sleep func and rebalance the last pgdat request. It's not our expected behavior. So, I added new variables to distinguish the returned order/classzone_idx from last balancing, that can resolved above issue in that scenario.
I'm afraid this changelog is very difficult to read and I do not see what problem you are trying to solve and I do not see what this patch might solve. When balance_pgdat() returns with a lower classzone or order, the values stored in pgdat are not re-read and instead it tries to go to sleep based on the starting request. Something like; 1. Read pgdat request A (classzone_idx, order) 2. balance_pgdat() 3. During pgdat, a new pgdat request B (classzone_idx, order) is placed 4. balance_pgdat() returns but failed so classzone_idx is lower 5. Try to sleep based on pgdat request A i.e. pgdat request B is not read and there is a comment explaining why pgdat request B is not read after balance_pgdat() fails. This patch adds some variables that might improve the readability for some people but otherwise I can't see what problem is being fixed. What did I miss? -- Mel Gorman SUSE Labs -- 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 internet charges in Canada: sign http://stopthemeter.ca/ Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>