From patchwork Mon Sep 2 09:51:50 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michal Hocko X-Patchwork-Id: 13786976 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 5FA51CD3420 for ; Mon, 2 Sep 2024 09:52:18 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id A79528D00B4; Mon, 2 Sep 2024 05:52:17 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 9FE9E8D0098; Mon, 2 Sep 2024 05:52:17 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 804B38D00B4; Mon, 2 Sep 2024 05:52:17 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id 5BD1A8D0098 for ; Mon, 2 Sep 2024 05:52:17 -0400 (EDT) Received: from smtpin26.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id 1219D141B2B for ; Mon, 2 Sep 2024 09:52:17 +0000 (UTC) X-FDA: 82519332714.26.5B9868A Received: from mail-ej1-f45.google.com (mail-ej1-f45.google.com [209.85.218.45]) by imf27.hostedemail.com (Postfix) with ESMTP id 1A74740010 for ; Mon, 2 Sep 2024 09:52:14 +0000 (UTC) Authentication-Results: imf27.hostedemail.com; dkim=none; spf=pass (imf27.hostedemail.com: domain of mstsxfx@gmail.com designates 209.85.218.45 as permitted sender) smtp.mailfrom=mstsxfx@gmail.com; dmarc=fail reason="SPF not aligned (relaxed), No valid DKIM" header.from=kernel.org (policy=quarantine) ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1725270641; 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-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=6o9ygZ5FbRqLnsF4xwAbutRPIFsChsjRgZv2/olxe98=; b=7nc2h95FXyvh4lf4KpYNVp0GrCyyWC6uyOfgTsIHQx8o3Vu35ONuNx/TFFDzW1tpYj2IkT aLpKAv1nR2KKgfPObxi8OhdvZWIjuzqQklcPLT5eb9dt7Ke4BmsmRME78UPp/lwI5WsE76 T/IuvnSn0y3/d2OpbpWcZ2OMHDbuJJ0= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1725270641; a=rsa-sha256; cv=none; b=3iMpwjlzv0TpXJSwpKhYNdo/krR1o+xo1NFCjVdo62rU1hmoGwc8HK/ls0AkSPybX1RV2k r7RuM8nVf689wB4WsbElZADOsoRvffHS7T9tdmBBzWQn95Od/cbGyWUD4B8/RkBPyJpUR3 M4gEu5WqqhmO4GFdYPpCz2+06Mjqtcg= ARC-Authentication-Results: i=1; imf27.hostedemail.com; dkim=none; spf=pass (imf27.hostedemail.com: domain of mstsxfx@gmail.com designates 209.85.218.45 as permitted sender) smtp.mailfrom=mstsxfx@gmail.com; dmarc=fail reason="SPF not aligned (relaxed), No valid DKIM" header.from=kernel.org (policy=quarantine) Received: by mail-ej1-f45.google.com with SMTP id a640c23a62f3a-a869f6ce2b9so432894966b.2 for ; Mon, 02 Sep 2024 02:52:14 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1725270734; x=1725875534; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=6o9ygZ5FbRqLnsF4xwAbutRPIFsChsjRgZv2/olxe98=; b=XK6mIxO9lGTO2eJsKGBonxRdEeyTlRRXnZSXyTJPf2NcbFcSB3o4tgU9aCvXAAoief xvkyoK3ODQefCqSovey6vRXRHJNdSYLG9iCgsnlJEfH+7kEt2f52ha7a9f7yWPLMwyw9 /GgoxrpUO21WWJlFHMVYc0Tg4+cbs8WWeacFL/1W0FWBh9UjIUxmeE27UQDoM0GO24i7 iw7j6+SnBFrZ1bnulSbFZvNLNuM+Fh/5JR7TvWJ2VhOQ5q17iHlJ1XaAbCIobagyoEqV bUf9x2rPh/UvTZKrmFcCa0rEzlLsE7SewPaG91pi4trYe+D3rSjlLh6Ed1yKSoIVc9ob um8A== X-Forwarded-Encrypted: i=1; AJvYcCW6/seoZk5dIGDIX7p/HhVfLqqLT9vS4uEAAMuwkoMS/6hPKiIkHm0QZJU+o+2VvmaTp7eJcH1Tew==@kvack.org X-Gm-Message-State: AOJu0YxU1jDEPl71jrqA4rYvEUekZpqQkzHDWM0kuDxl4kIq5NfDqa1C rmVDU9wKrZZJwUlCK+hn9P7MmlsI7rAtLQ3lEA99oVS2Vk9ucyN8 X-Google-Smtp-Source: AGHT+IHugKwJ39IPMvFnRChZY0EvVCQYJUWKLCu3bRnc6OhGcrV7kB+jwS2h0M529y96bsLiRTRvnA== X-Received: by 2002:a17:907:31c4:b0:a86:92fa:cd1d with SMTP id a640c23a62f3a-a897fa75723mr976108766b.49.1725270732803; Mon, 02 Sep 2024 02:52:12 -0700 (PDT) Received: from localhost.localdomain (109-81-82-19.rct.o2.cz. [109.81.82.19]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-a898900f079sm535327166b.66.2024.09.02.02.52.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 02 Sep 2024 02:52:12 -0700 (PDT) From: Michal Hocko To: Andrew Morton Cc: Christoph Hellwig , Yafang Shao , Kent Overstreet , jack@suse.cz, Vlastimil Babka , Dave Chinner , 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, Michal Hocko , "Matthew Wilcox (Oracle)" Subject: [PATCH 2/2] Revert "mm: introduce PF_MEMALLOC_NORECLAIM, PF_MEMALLOC_NOWARN" Date: Mon, 2 Sep 2024 11:51:50 +0200 Message-ID: <20240902095203.1559361-3-mhocko@kernel.org> X-Mailer: git-send-email 2.46.0 In-Reply-To: <20240902095203.1559361-1-mhocko@kernel.org> References: <20240902095203.1559361-1-mhocko@kernel.org> MIME-Version: 1.0 X-Rspam-User: X-Rspamd-Queue-Id: 1A74740010 X-Rspamd-Server: rspam04 X-Stat-Signature: 5py7gs56ca9qnpg6oxz58f5tpddm3b87 X-Rspamd-Pre-Result: action=add header; module=dmarc; Action set by DMARC X-Rspam: Yes X-HE-Tag: 1725270734-303516 X-HE-Meta: U2FsdGVkX19tDh4cxyoWZkyD+1PL7JsR7fXchpT/18Z1QLOjjhId9UIldyvQB4MAyCYve3n1eYxek3RNRT3/8BBa6eA/D/ysrpLzD5mfVmEltKILN92EQeRsC9Pygig1L3+ycOIRHi139BGeqeuVC8qluAgLny+vnW9e0PO4ofuzExNSsifrqnIJm889rlgonPa6xAlN1PwgHgVJNpBZ+hScrNa2bWGqy/tI2nK/l9EBqgybjvTkAdIkacsxUzqnuiic1UJ1G2FT0gTwR2KwVJAljPR/6LtaGl0MrD1Sq1++NE/xnfe46jmduUX5K2we4hYszdODAkSYGqhaq9w0SLa34FuMac27CVehZJxgF+oEqINxw6Fn7m1jUMBGTiMIq9NXy3w93Ciz7dqpL1Ugee+AUtmk1Wr5EucJxMWMbRmfBw+gFARN/FLdjYOfg7IcYHXx5vO31G19Y7C+i156ZsW/9bodblDZrAUEjBmITyO9/1bsrI3EVWgLFpe8E7kXHZB2pKUyurUrCaYEjqWQIwsFLzXkjnN88v8dwpuDCp1eXVgbdoA3+LLM8TzEGLfr6qbb9aWnrmx3OG+2VkMNEyuu5vIJHj/VDij0mVpgPVNU7Q/Q/6qX61PHtxohROAEVJ/RGy5gE9rf+KDC/di7a/8rmd/733IBaj0mH+kmJhRyTOg3RQef+GQbPm75VIml1gBr2P0zKHSSVAfAXz1A26zr3RyeUr2zd73tArr5FoDeheyp8urhW7Vi8wqLOmeFTGdjzm6gOPkna+aM6WpD7Psk2NLaHIg6Ecy3FQ7qXBMMsHz+1gGgvKYUZ5BqlaVUXjzw6PQnNqccjWe3pz95cYEDFrHYd0s2yfnZwquFamXkvEX5XYCh4znDY0QbxAMy7SfoDjRiANcuj6wSiB2l4R4b0MfkAiXazKqHY3I2E2NXV5yTeQou9DIVG3RP3E2iN1KbniPoIK7/YTujvWL WlrM/LJL hd9RQVYkI7zv+yQkq447FiwPb/Q5bEyO/UAOPOANs+yfIULT5aklhXJIl4SrBnzR1DGqXJHg8yvcxvn8BRc/+t9XS5gckM1l2Z/XJLa5a+sui10TPOh1mcah2U1WQ/MI52Rvc3SKRLZpQyMhT1DH8U4m9XwALJCC1STIs8kZFb79i8lR1O4Kz18cCLs6WS9nlDS6a32GS7+hg3O73f8e9S+QK8gWpBDAjLYOIBC6NbI4D5xwzUy3PYVXfzEDQ/h7KLjOO1gwmOtGQev2jB5UqwAkIbUvBLqEwdxY/2jevoONbEQ7rJauacHuI0Q6sR1zVWXoee1IdJUh29qh3UtkB6Dj2O1QzyJswDmIJNp+ud8oGwdi5aAae+FyAZF6XOWh5zF36Bbp3QIPcuHD3rmDGCGqHqNegAMhWr8HwXLPDahgtLFKsyZWwASZG8MtQaQTKGr/GrKiGG0a9QgUfb0CVjsxV+KbZAZTV7EQCZ1jt2NACCJTTkuet7gzYYsk3Q+qldUdsm/r5D96UX9L1+QJ2B8oSQ6wKHRsbiF1uCQVVTXvOzK0wZXJc+8ieY7PgWwASDJj1QG8kHyEP42AcOjvMn3SLVE7R0Ms9qBPgVPlnJNEFg+lYDQ34QZmeZyXZ6J2RFnwsmL8igcOQzkfxbt0HUc9ja8UJvGzO39z2klvp/BIBfmx30nRx3689Vg== 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: From: Michal Hocko 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/ Reviewed-by: Matthew Wilcox (Oracle) Reviewed-by: Christoph Hellwig Reviewed-by: Dave Chinner Reviewed-by: Vlastimil Babka 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; }