Re: [PATCH] mm: fix unexpected changes to {failslab|fail_page_alloc}.attr

From: Jason Gunthorpe
Date: Mon Nov 07 2022 - 11:29:16 EST


On Mon, Nov 07, 2022 at 11:05:42PM +0800, Qi Zheng wrote:
>
>
> On 2022/11/7 20:42, Jason Gunthorpe wrote:
> > On Mon, Nov 07, 2022 at 11:31:09AM +0800, Qi Zheng wrote:
> >
> > > @@ -31,9 +33,9 @@ bool __should_failslab(struct kmem_cache *s, gfp_t gfpflags)
> > > return false;
> > > if (gfpflags & __GFP_NOWARN)
> > > - failslab.attr.no_warn = true;
> > > + flags |= FAULT_NOWARN;
> >
> > You should add a comment here about why this is required, to avoid
> > deadlocking printk
>
> I think this comment should be placed where __GFP_NOWARN is specified
> instead of here. What do you think? :)

NOWARN is clear what it does, it is this specifically that is very
subtle about avoiding deadlock aginst allocations triggered by
printk/etc code.

Jason