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 C8EEFC5321D for ; Mon, 26 Aug 2024 19:18:08 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 61BDA6B0083; Mon, 26 Aug 2024 15:18:08 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 5A4996B0085; Mon, 26 Aug 2024 15:18:08 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 41DAE6B0088; Mon, 26 Aug 2024 15:18:08 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id 217146B0083 for ; Mon, 26 Aug 2024 15:18:08 -0400 (EDT) Received: from smtpin27.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id A0EB3A9E6D for ; Mon, 26 Aug 2024 19:18:07 +0000 (UTC) X-FDA: 82495357014.27.1F8CFD5 Received: from mail-ej1-f53.google.com (mail-ej1-f53.google.com [209.85.218.53]) by imf04.hostedemail.com (Postfix) with ESMTP id 979704000E for ; Mon, 26 Aug 2024 19:18:04 +0000 (UTC) Authentication-Results: imf04.hostedemail.com; dkim=pass header.d=suse.com header.s=google header.b=MCtfjYsn; spf=pass (imf04.hostedemail.com: domain of mhocko@suse.com designates 209.85.218.53 as permitted sender) smtp.mailfrom=mhocko@suse.com; dmarc=pass (policy=quarantine) header.from=suse.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1724699770; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=xiRoHNB81Ptn4aOx86M2sFOjWxRebcIeVsDZD8ofhhk=; b=KvNJllHRiN6kO8rhTanPMaLIYujTEvftjzfUEIwVlYaEy4E+B/lexqYYDXwz6bMkW/ymr5 hS2boQrFxjcl7/r6Zcv0yKDtPCsIxt1XoP2MkX5rk23tc+LZGg+0B3K3VwrNEBlYrmyQ4u fIzgxr9D45YajlXCnrP1UKO/PwuF0DQ= ARC-Authentication-Results: i=1; imf04.hostedemail.com; dkim=pass header.d=suse.com header.s=google header.b=MCtfjYsn; spf=pass (imf04.hostedemail.com: domain of mhocko@suse.com designates 209.85.218.53 as permitted sender) smtp.mailfrom=mhocko@suse.com; dmarc=pass (policy=quarantine) header.from=suse.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1724699770; a=rsa-sha256; cv=none; b=xLy28TEpU+KBfBK7gd2LLyY/9fPgWUhRudPcmglA3DR+nx4FD9dyvdvbCAVfV2M9Cexdnm RgzWTjHed6FRBp7jcKyGB2M5xPPBUfKc2okj2U2rXcCFmWnS2d4X/mymgaDszG0Ws9xyvq 5yKkWvZrFqgW13m0dDIccOsB+k9RjYo= Received: by mail-ej1-f53.google.com with SMTP id a640c23a62f3a-a7a9185e1c0so390024166b.1 for ; Mon, 26 Aug 2024 12:18:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=google; t=1724699883; x=1725304683; darn=kvack.org; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:from:to:cc:subject:date:message-id:reply-to; bh=xiRoHNB81Ptn4aOx86M2sFOjWxRebcIeVsDZD8ofhhk=; b=MCtfjYsnL4JzNsRAa/wXhrDjki2Tk6Z/4EYlEtzLSOi3nqnHt/Jo12bZTzj9MZmDwq kGUSP/7xk8v4eJuBCzuO5yad0eiW1leXDl/utZ9Je4yoQK88PNW22qxiDmrngbZYgWCP wGsrC3XAJdejVON+cg9d38vfoKoPAWW4rdoLuSI4ChNRZpJWPA+uUOHEwX63X3J4/VUy 5Eg9Z3Jza1AKgFlUYHhGXHdeHUblulNlEsWC8PyFVGWg+9V1XVk89RAla/iWLLYB15l8 cE4lEmRv4Uv6zHq/Uh+aFPyyyxPTMlTmTdp7l26cw/JVTXu0+LQtcGk9PFZFSWCxdGIh j8LA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1724699883; x=1725304683; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=xiRoHNB81Ptn4aOx86M2sFOjWxRebcIeVsDZD8ofhhk=; b=OIWXiPtuInl1crYzKPAWVBO61/gvpVo3jeGkdzLCTZgjvWs7F4m/v85vsADebI+zT7 VdkxIkq8C9Y8CtdCEfk/42Pn+RDfdDIlMRGNiM70NfCZrFKPmwWO0WrZF7hGXWHRJT8F FXrX7pIzpM3/fjLVg4JAVBtZXGTEsxup3oWn8KUiAeow09oYJWUfI7wKq1c6yYJlPMG/ fpRISRAk4BXM7J3TWM67lQMKc/8mBeag1s/xfpuD3+Ni9VDGtplP03Ci8Ff05bDd2AN9 zgVtpyC85BLvBEXWznmeeuUboEjxhGCgOMsGaPJTSMlVxTTpqjV9+CemTbcXXgW2tbsz qU2A== X-Forwarded-Encrypted: i=1; AJvYcCU6iKYkmAG1K5LyVbWzDjl0YnsYLSijIDBWM1afHklPeyXD60LzwC6OUDNFTBjV9GfzA5sp5GUj7g==@kvack.org X-Gm-Message-State: AOJu0Yyl0byNjveJC1wHAzvybMeVrCa0oX5e0Zzil3bU3htfwkKkg8qV UVb/HpDi4kJXQkfbcW1drTRagBNk7MCCcaZ3DpL62mMZoylPnh0j61zPNRnc6B9AXHNYjk1mmfH K X-Google-Smtp-Source: AGHT+IHrIGYU84UjYCNbDb6/WHAjCYTMtATn4QzceOzz/6tH9FwHu3qL8H4cTXqk5vNmGiA77oJtcw== X-Received: by 2002:a17:907:f1d8:b0:a86:9ac9:f3ff with SMTP id a640c23a62f3a-a86a5198afdmr798222466b.26.1724699882968; Mon, 26 Aug 2024 12:18:02 -0700 (PDT) Received: from localhost (109-81-92-122.rct.o2.cz. [109.81.92.122]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-a86e5486a1esm10338066b.10.2024.08.26.12.18.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 26 Aug 2024 12:18:02 -0700 (PDT) Date: Mon, 26 Aug 2024 21:18:01 +0200 From: Michal Hocko To: Matthew Wilcox Cc: Andrew Morton , Christoph Hellwig , Yafang Shao , Kent Overstreet , jack@suse.cz, Christian Brauner , Alexander Viro , Paul Moore , James Morris , "Serge E. Hallyn" , linux-fsdevel@vger.kernel.org, linux-mm@kvack.org, linux-bcachefs@vger.kernel.org, linux-security-module@vger.kernel.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH 2/2] mm: drop PF_MEMALLOC_NORECLAIM Message-ID: References: <20240826085347.1152675-1-mhocko@kernel.org> <20240826085347.1152675-3-mhocko@kernel.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-Rspamd-Server: rspam06 X-Rspamd-Queue-Id: 979704000E X-Stat-Signature: wrpobpu76qp5sixj3fa66pxdez79z3em X-Rspam-User: X-HE-Tag: 1724699884-687981 X-HE-Meta: U2FsdGVkX1+w5dtdHdVslN47t+EduPVcp/7g61dH88JlFdv/YB0khXNKHTmrLhFIDQGTeHJbb8ycyq83knxxjGg//KRnP4nkZk17Iqyc/+3Qa9gZoY/+1HoxgYqOYWhnTbkFGWHSGZdwNPe2WGdn04m87J0AgONRLer8WVwOpTPdRw4CiYeZ4tKqkO866SmUS8iY6cFKAwW8MPpqiVeKm+4GqN050lhREOKKwF2W8qohVZ3liNo8wC7i9J/pGSxQSSr8jf3VftwidKUmFhTmcFFghWEkToBLUhTF48mw57h/AW/XRwxL9yEkMsKVAIr7cuKdESKMujF9jWFlPNQUo6WBHCQOkJkmCq6rALBe24ZAG4lJbopNdti/WcF1/OT73jkvUrYHP/qp7MAjwomonrqIKU3CC3ZR5EdkFQsWnkYUWunJ1hnnYKIKFOE17zIjINtlnpAkwZ9UI3mtFEShc2owikqtXkMOTYsyG/BEk0kJzDWx7k8S1UO1yavOzHk23qlkTW6vWrK8pMoaK58uvdU7ekTtqDP2Y6SWxAtlyT817mFMtERcvZfoBf5wMj7o+mG5RMCwB1bM1gvWXkZmn0pUzUhxJzDsWy0Zutq0VR9HEIn3jMHBJY6EdWQLdllTdWG/t4Yq3RE5La8N1RvGserXt+rKiqrGdVxrIueGSwOkV2XZPUTlefyGX9i7kWy2MonBTxjpprQTL7IzVuqMv7Pyx7NfIc45heaN+Dsjft2vzY/eSaepJJTRCeOCXUfaBp9yzaGGoYe4Uk+DveT8tj4uDLwVGosTLihR5YTF84HrpT8qtESiPEaG3X/l9amRk9GrhTkyu1zOZLSEXQyNlsELHGvSg02O+o+LvfuOwPoI2mGIwSATw4KG5RUORTYtqc1TiVxkCuTNDnHP9Iisbu6PWXPp0Q6XlvEVW+iH9LzVRoKGYvo+BALy2snyVX8lqiY85/rcEmzkHkx+TJn 0DS+iE2V k12RYVb0hOh0yx0NdJxSb2HkmcICjyOT4UinWJoUFxtwstZHYfbvqXmTy7cGx+UEEtlYO4GSuaWAuPrl0oMRdoIU7JvPtm9MhZRsAzOqviTGIGekl1HWpYa7viYdqLPVy7Ro7/4hAbYC6YJOhlPbUWkPYqaCg9I/LuyM4MCyyBhExlQ7L6mtONQuOpy8zGb1BN38dAoFrNyAJibzxXdGNHStbTYkZL1mHE9E3/nqru39COek4gRRIZK4OL8jIakZ6TbXqdh0Rkbz5g382NWxt9oUCRWCAcOSe1+FLHom3uCreN+4enzPBgyWqqaswit2dpBhUyGdgAWY6FCbSNIs+hY764n9gr9J42I5k7LjU0u6aTR2QjqEeRS1j1frldQF1Jl4KkGCUyQ6NQnQsvr0jXgPDWg/JOIarIF4LgAghkekIuYqTLS0y9iSJXG5FYqKSp+ofQOi5QdNwAjvztIcdIUSovulC1d2KGQWHW7KPBUbO2W12JyhcVUoTz8U9DCf3nuaQymLfg+PR68U= X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: On Mon 26-08-24 18:49:23, Matthew Wilcox wrote: > On Mon, Aug 26, 2024 at 06:51:55PM +0200, Michal Hocko wrote: [...] > > If a plan revert is preferably, I will go with it. > > There aren't any other users of PF_MEMALLOC_NOWARN and it definitely > seems like something you want at a callsite rather than blanket for every > allocation below this point. We don't seem to have many PF_ flags left, > so let's not keep it around if there's no immediate plans for it. Good point. What about this? --- >From 923cd429d4b1a3520c93bcf46611ae74a3158865 Mon Sep 17 00:00:00 2001 From: Michal Hocko Date: Mon, 26 Aug 2024 21:15:02 +0200 Subject: [PATCH] Revert "mm: introduce PF_MEMALLOC_NORECLAIM, PF_MEMALLOC_NOWARN" This reverts commit eab0af905bfc3e9c05da2ca163d76a1513159aa4. There is no existing user of those flags. PF_MEMALLOC_NOWARN is dangerous because a nested allocation context can use GFP_NOFAIL which could cause unexpected failure. Such a code would be hard to maintain because it could be deeper in the call chain. PF_MEMALLOC_NORECLAIM has been added even when it was pointed out [1] that such a allocation contex is inherently unsafe if the context doesn't fully control all allocations called from this context. While PF_MEMALLOC_NOWARN is not dangerous the way PF_MEMALLOC_NORECLAIM is it doesn't have any user and as Matthew has pointed out we are running out of those flags so better reclaim it without any real users. [1] https://lore.kernel.org/all/ZcM0xtlKbAOFjv5n@tiehlicka/ Signed-off-by: Michal Hocko --- include/linux/sched.h | 4 ++-- include/linux/sched/mm.h | 17 ++++------------- 2 files changed, 6 insertions(+), 15 deletions(-) diff --git a/include/linux/sched.h b/include/linux/sched.h index f8d150343d42..731ff1078c9e 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h @@ -1657,8 +1657,8 @@ extern struct pid *cad_pid; * I am cleaning dirty pages from some other bdi. */ #define PF_KTHREAD 0x00200000 /* I am a kernel thread */ #define PF_RANDOMIZE 0x00400000 /* Randomize virtual address space */ -#define PF_MEMALLOC_NORECLAIM 0x00800000 /* All allocation requests will clear __GFP_DIRECT_RECLAIM */ -#define PF_MEMALLOC_NOWARN 0x01000000 /* All allocation requests will inherit __GFP_NOWARN */ +#define PF__HOLE__00800000 0x00800000 +#define PF__HOLE__01000000 0x01000000 #define PF__HOLE__02000000 0x02000000 #define PF_NO_SETAFFINITY 0x04000000 /* Userland is not allowed to meddle with cpus_mask */ #define PF_MCE_EARLY 0x08000000 /* Early kill for mce process policy */ diff --git a/include/linux/sched/mm.h b/include/linux/sched/mm.h index 91546493c43d..07c4fde32827 100644 --- a/include/linux/sched/mm.h +++ b/include/linux/sched/mm.h @@ -258,25 +258,16 @@ static inline gfp_t current_gfp_context(gfp_t flags) { unsigned int pflags = READ_ONCE(current->flags); - if (unlikely(pflags & (PF_MEMALLOC_NOIO | - PF_MEMALLOC_NOFS | - PF_MEMALLOC_NORECLAIM | - PF_MEMALLOC_NOWARN | - PF_MEMALLOC_PIN))) { + if (unlikely(pflags & (PF_MEMALLOC_NOIO | PF_MEMALLOC_NOFS | PF_MEMALLOC_PIN))) { /* - * Stronger flags before weaker flags: - * NORECLAIM implies NOIO, which in turn implies NOFS + * NOIO implies both NOIO and NOFS and it is a weaker context + * so always make sure it makes precedence */ - if (pflags & PF_MEMALLOC_NORECLAIM) - flags &= ~__GFP_DIRECT_RECLAIM; - else if (pflags & PF_MEMALLOC_NOIO) + if (pflags & PF_MEMALLOC_NOIO) flags &= ~(__GFP_IO | __GFP_FS); else if (pflags & PF_MEMALLOC_NOFS) flags &= ~__GFP_FS; - if (pflags & PF_MEMALLOC_NOWARN) - flags |= __GFP_NOWARN; - if (pflags & PF_MEMALLOC_PIN) flags &= ~__GFP_MOVABLE; } -- 2.46.0 -- Michal Hocko SUSE Labs