From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id ADEFEC433EF for ; Wed, 23 Mar 2022 11:30:13 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id EB1F86B0072; Wed, 23 Mar 2022 07:30:12 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id E610E6B0073; Wed, 23 Mar 2022 07:30:12 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id D280D6B0074; Wed, 23 Mar 2022 07:30:12 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0223.hostedemail.com [216.40.44.223]) by kanga.kvack.org (Postfix) with ESMTP id C45E36B0072 for ; Wed, 23 Mar 2022 07:30:12 -0400 (EDT) Received: from smtpin16.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay02.hostedemail.com (Postfix) with ESMTP id 550E8A5645 for ; Wed, 23 Mar 2022 11:30:12 +0000 (UTC) X-FDA: 79275432264.16.B0AAAF2 Received: from galois.linutronix.de (Galois.linutronix.de [193.142.43.55]) by imf30.hostedemail.com (Postfix) with ESMTP id 85C5C80027 for ; Wed, 23 Mar 2022 11:30:11 +0000 (UTC) Date: Wed, 23 Mar 2022 12:30:08 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020; t=1648035009; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=uUN7PRc6SdAa9B/E9d+xI3DIz6MqVwZIAs3YB0c4eZs=; b=uCwSaz+ZQ0RVoMhm9z+F4hFfdGzYD7IAjgDiWlwftDV3yuUkXvTJFBVNDTONguPgSpXHRV tD3jMAfwmglrEJ+vPc57IQdeL2UiSJPJhYcCx+ut8tSROTDc39KVHIX29RdRuRIjdu//hN AiC7EW2zdUI5too30LK4qLqP+wfIG2uP6Qz6Vp/eEWFNtOHiu38Rpu6/PUuIM1HVPcrJ4A pS9Ajg7QDfHnBEQvM/NbQPf09VYE/ZTPjvTSKlSc3B07GF5/4TkN1KDoTySMHokCBNc4LP rH38jASnK0yIYPE5e4yOIJqMU54Tdx2NkpQpOk5qn0IWRTSJPnTaIiFNxXvCPw== DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020e; t=1648035009; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=uUN7PRc6SdAa9B/E9d+xI3DIz6MqVwZIAs3YB0c4eZs=; b=3C7c1rBnLjzfDlJWw0LJ7AFW71U3gh0xDg9kswGE9bNaDhkcIMz3PyiZscuKrcJps/wcQL 2RQ5b9ZlhTmUO2BA== From: Sebastian Andrzej Siewior To: Vlastimil Babka Cc: linux-mm@kvack.org, Michal Hocko , Thomas Gleixner Subject: Re: slab_pre_alloc_hook() strips __GFP_NOLOCKDEP away. Message-ID: References: <5d0cd87a-564e-8b44-f81b-154f21776ccd@suse.cz> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: <5d0cd87a-564e-8b44-f81b-154f21776ccd@suse.cz> X-Stat-Signature: nqqyrerxauwp58edrm8i6q3zu67nzgj5 Authentication-Results: imf30.hostedemail.com; dkim=pass header.d=linutronix.de header.s=2020 header.b=uCwSaz+Z; dkim=pass header.d=linutronix.de header.s=2020e header.b=3C7c1rBn; dmarc=pass (policy=none) header.from=linutronix.de; spf=pass (imf30.hostedemail.com: domain of bigeasy@linutronix.de designates 193.142.43.55 as permitted sender) smtp.mailfrom=bigeasy@linutronix.de X-Rspam-User: X-Rspamd-Server: rspam11 X-Rspamd-Queue-Id: 85C5C80027 X-HE-Tag: 1648035011-571093 X-Bogosity: Ham, tests=bogofilter, spamicity=0.000011, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: On 2022-03-23 11:09:35 [+0100], Vlastimil Babka wrote: > > --- a/mm/slab.h > > +++ b/mm/slab.h > > @@ -717,7 +717,7 @@ static inline struct kmem_cache *slab_pre_alloc_hook(struct kmem_cache *s, > > struct obj_cgroup **objcgp, > > size_t size, gfp_t flags) > > { > > - flags &= gfp_allowed_mask; > > + flags &= gfp_allowed_mask | __GFP_NOLOCKDEP; > > Hmm but gfp_allowed_mask already should contain __GFP_NOLOCKDEP after > kernel_init_freeable() is reached. I doubt we can reach fs or reclaim > code before that? That is way past init. I have gfp_allowed_mask = 0x1ffffff __GFP_NOLOCKDEP = 0x8000000 Looking at the origin of gfp_allowed_mask | /* Room for N __GFP_FOO bits */ | #define __GFP_BITS_SHIFT (24 + \ | 3 * IS_ENABLED(CONFIG_KASAN_HW_TAGS) + \ | IS_ENABLED(CONFIG_LOCKDEP)) | #define __GFP_BITS_MASK ((__force gfp_t)((1 << __GFP_BITS_SHIFT) - 1)) which in my case 24 + 1 but it would need to be something like 27 * IS_ENABLED(CONFIG_LOCKDEP) or a better way to come up with __GFP_BITS_MASK. Sebastian