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

From: Qi Zheng
Date: Mon Nov 07 2022 - 21:48:54 EST




On 2022/11/8 00:26, Jason Gunthorpe wrote:
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.

Oh, maybe I understand your concern. Some people may think that this
is just a print of fault injection information, not a warning. I'll
add a comment explaining why in some cases there must be no printing.

Thanks,
Qi


Jason

--
Thanks,
Qi