From: Ying Han <yinghan@google.com>
To: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
Cc: mhocko@suse.cz, hannes@cmpxchg.org, mel@csn.ul.ie,
kamezawa.hiroyu@jp.fujitsu.com, riel@redhat.com,
dhillf@gmail.com, hughd@google.com, dan.magenheimer@oracle.com,
akpm@linux-foundation.org, linux-mm@kvack.org
Subject: Re: [PATCH V5 4/5] mm, vmscan: fix do_try_to_free_pages() livelock
Date: Tue, 19 Jun 2012 20:29:06 -0700 [thread overview]
Message-ID: <CALWz4izWXKBbU8CB=Z_2j1rupZwU4hystNgSf4kuZqrbSFgQrg@mail.gmail.com> (raw)
In-Reply-To: <4FE0C514.4040807@jp.fujitsu.com>
On Tue, Jun 19, 2012 at 11:29 AM, KOSAKI Motohiro
<kosaki.motohiro@jp.fujitsu.com> wrote:
> On 6/18/2012 12:47 PM, Ying Han wrote:
>> 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 <aaditya.kumar.30@gmail.com>
>> Reported-by: Ying Han <yinghan@google.com>
>> Signed-off-by: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
>> Acked-by: Rik van Riel <riel@redhat.com>
>
> 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>
next prev parent reply other threads:[~2012-06-20 3:29 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-06-18 16:47 [PATCH V5 1/5] mm: memcg softlimit reclaim rework Ying Han
2012-06-18 16:47 ` [PATCH V2 2/5] mm: memcg set soft_limit_in_bytes to 0 by default Ying Han
2012-06-18 16:47 ` [PATCH V5 3/5] mm: memcg detect no memcgs above softlimit under zone reclaim Ying Han
2012-06-18 16:47 ` [PATCH V5 4/5] mm, vmscan: fix do_try_to_free_pages() livelock Ying Han
2012-06-19 18:29 ` KOSAKI Motohiro
2012-06-20 3:29 ` Ying Han [this message]
2012-06-18 16:47 ` [PATCH V5 5/5] mm: memcg discount pages under softlimit from per-zone reclaimable_pages Ying Han
2012-06-19 12:05 ` Johannes Weiner
2012-06-20 3:51 ` Ying Han
2012-06-25 21:00 ` Ying Han
2012-06-19 11:29 ` [PATCH V5 1/5] mm: memcg softlimit reclaim rework Johannes Weiner
2012-06-20 3:45 ` Ying Han
2012-06-20 8:53 ` Johannes Weiner
2012-06-20 14:59 ` Ying Han
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to='CALWz4izWXKBbU8CB=Z_2j1rupZwU4hystNgSf4kuZqrbSFgQrg@mail.gmail.com' \
--to=yinghan@google.com \
--cc=akpm@linux-foundation.org \
--cc=dan.magenheimer@oracle.com \
--cc=dhillf@gmail.com \
--cc=hannes@cmpxchg.org \
--cc=hughd@google.com \
--cc=kamezawa.hiroyu@jp.fujitsu.com \
--cc=kosaki.motohiro@jp.fujitsu.com \
--cc=linux-mm@kvack.org \
--cc=mel@csn.ul.ie \
--cc=mhocko@suse.cz \
--cc=riel@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox