All of lore.kernel.org
 help / color / mirror / Atom feed
From: "zhaowuyun@wingtech.com" <zhaowuyun@wingtech.com>
To: Michal Hocko <mhocko@kernel.org>
Cc: mgorman <mgorman@techsingularity.net>,
	akpm <akpm@linux-foundation.org>, minchan <minchan@kernel.org>,
	vinmenon <vinmenon@codeaurora.org>, hannes <hannes@cmpxchg.org>,
	"hillf.zj" <hillf.zj@alibaba-inc.com>,
	linux-mm <linux-mm@kvack.org>,
	linux-kernel <linux-kernel@vger.kernel.org>,
	Hugh Dickins <hughd@google.com>
Subject: Re: Re: [PATCH] [PATCH] mm: disable preemption before swapcache_free
Date: Wed, 25 Jul 2018 19:17:34 +0800	[thread overview]
Message-ID: <2018072519173409945881@wingtech.com> (raw)
In-Reply-To: 20180725103416.GZ28386@dhcp22.suse.cz

>On Wed 25-07-18 17:53:07, zhaowuyun@wingtech.com wrote:
>> >[Please do not top post - thank you]
>> >[CC Hugh - the original patch was http://lkml.kernel.org/r/2018072514375722198958@wingtech.com]
>> >
>> >On Wed 25-07-18 15:57:55, zhaowuyun@wingtech.com wrote:
>> >> That is a BUG we found in mm/vmscan.c at KERNEL VERSION 4.9.82
>> >
>> >The code is quite similar in the current tree as well.
>> >
>> >> Sumary is TASK A (normal priority) doing __remove_mapping page preempted by TASK B (RT priority) doing __read_swap_cache_async,
>> >> the TASK A preempted before swapcache_free, left SWAP_HAS_CACHE flag in the swap cache,
>> >> the TASK B which doing __read_swap_cache_async, will not success at swapcache_prepare(entry) because the swap cache was exist, then it will loop forever because it is a RT thread...
>> >> the spin lock unlocked before swapcache_free, so disable preemption until swapcache_free executed ...
>> >
>> >OK, I see your point now. I have missed the lock is dropped before
>> >swapcache_free. How can preemption disabling prevent this race to happen
>> >while the code is preempted by an IRQ?
>> >--
>> >Michal Hocko
>> >SUSE Labs
>>
>> Hi Michal,
>>
>> The action what processes __read_swap_cache_async is on the process context, so I think disable preemption is enough.
>
>So what you are saying is that no IRQ or other non-process contexts will
>not loop in __read_swap_cache_async so the live lock is not possible?
>--
>Michal Hocko
>SUSE Labs 


I think that __read_swap_cache_async will not running under IRQ contexts. 
If running under other non-process contexts, I think it must at the other CPU, will not encounter this dead loop.

--------------
zhaowuyun@wingtech.com

  reply	other threads:[~2018-07-25 11:18 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-07-25  6:37 [PATCH] [PATCH] mm: disable preemption before swapcache_free zhaowuyun
2018-07-25  6:40 ` zhaowuyun
2018-07-25  7:40 ` Michal Hocko
2018-07-25  7:57   ` zhaowuyun
2018-07-25  8:21     ` Michal Hocko
2018-07-25  9:53       ` zhaowuyun
2018-07-25 10:34         ` Michal Hocko
2018-07-25 11:17           ` zhaowuyun [this message]
2018-07-25 10:32       ` Michal Hocko
2018-07-25 21:16 ` Andrew Morton
2018-07-26  2:21   ` zhaowuyun
2018-07-26  6:06     ` Michal Hocko
2018-07-26  7:03       ` zhaowuyun
2018-07-26  7:44         ` Michal Hocko
2018-07-26 22:11         ` Andrew Morton
2018-07-27  6:07           ` zhaowuyun
2018-08-04 23:07             ` Hugh Dickins
2018-08-07  2:15               ` zhaowuyun
2018-08-07  3:23                 ` Hugh Dickins

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=2018072519173409945881@wingtech.com \
    --to=zhaowuyun@wingtech.com \
    --cc=akpm@linux-foundation.org \
    --cc=hannes@cmpxchg.org \
    --cc=hillf.zj@alibaba-inc.com \
    --cc=hughd@google.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=mgorman@techsingularity.net \
    --cc=mhocko@kernel.org \
    --cc=minchan@kernel.org \
    --cc=vinmenon@codeaurora.org \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.