[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-Id: <201709012215.BBB43272.OOLFMFQHFVSJOt@I-love.SAKURA.ne.jp>
Date: Fri, 1 Sep 2017 22:15:24 +0900
From: Tetsuo Handa <penguin-kernel@...ove.SAKURA.ne.jp>
To: mhocko@...nel.org
Cc: akpm@...ux-foundation.org, linux-kernel@...r.kernel.org,
linux-mm@...ck.org, rientjes@...gle.com, mgorman@...e.de,
vbabka@...e.cz
Subject: Re: [PATCH 1/2] mm,page_alloc: don't call __node_reclaim() without scoped allocation constraints.
Michal Hocko wrote:
> On Fri 01-09-17 21:40:07, Tetsuo Handa wrote:
> > We are doing the first allocation attempt before calling
> > current_gfp_context(). But since slab shrinker functions might depend on
> > __GFP_FS and/or __GFP_IO masking, calling slab shrinker functions from
> > node_reclaim() from get_page_from_freelist() without calling
> > current_gfp_context() has possibility of deadlock. Therefore, make sure
> > that the first memory allocation attempt does not call slab shrinker
> > functions.
>
> But we do filter gfp_mask at __node_reclaim layer. Not really ideal from
> the readability point of view and maybe it could be cleaned up there
> shouldn't be any bug AFAICS. On the other hand we can save few cycles on
> the hot path that way and there are people who care about every cycle
> there and node reclaim is absolutely the last thing they care about.
Ah, indeed. We later do
struct scan_control sc = {
.gfp_mask = current_gfp_context(gfp_mask),
}
in __node_reclaim(). OK, there will be no problem.
Powered by blists - more mailing lists