Thread (14 messages) 14 messages, 3 authors, 2012-06-25

Re: [PATCH V5 4/5] mm, vmscan: fix do_try_to_free_pages() livelock

From: Ying Han <hidden>
Date: 2012-06-20 03:29:08

On Tue, Jun 19, 2012 at 11:29 AM, KOSAKI Motohiro
[off-list ref] wrote:
On 6/18/2012 12:47 PM, Ying Han wrote:
quoted
Currently, do_try_to_free_pages() can enter livelock. Because of,
now vmscan has two conflicted policies.

1) kswapd sleep when it couldn't reclaim any page even though
   reach priority 0. This is because to avoid kswapd() infinite
   loop. That said, kswapd assume direct reclaim makes enough
   free pages either regular page reclaim or oom-killer.
   This logic makes kswapd -> direct-reclaim dependency.
2) direct reclaim continue to reclaim without oom-killer until
   kswapd turn on zone->all_unreclaimble. This is because
   to avoid too early oom-kill.
   This logic makes direct-reclaim -> kswapd dependency.

In worst case, direct-reclaim may continue to page reclaim forever
when kswapd is slept and any other thread don't wakeup kswapd.

We can't turn on zone->all_unreclaimable because this is racy.
direct reclaim path don't take any lock. Thus this patch removes
zone->all_unreclaimable field completely and recalculates every
time.

Note: we can't take the idea that direct-reclaim see zone->pages_scanned
directly and kswapd continue to use zone->all_unreclaimable. Because,
it is racy. commit 929bea7c71 (vmscan: all_unreclaimable() use
zone->all_unreclaimable as a name) describes the detail.

Reported-by: Aaditya Kumar <redacted>
Reported-by: Ying Han <redacted>
Signed-off-by: KOSAKI Motohiro <redacted>
Acked-by: Rik van Riel <redacted>
Please drop this. I've got some review comment about this patch and
i need respin. but thank you for paying attention this.
Thanks for the heads up. Are you working on the new version of it,
since I included this patch in my softlimit reclaim patchset as a
replacement of one patch i had.

--Ying
--
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/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help