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 0B9BCC3DA61 for ; Thu, 25 Jul 2024 01:39:05 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id E5AF86B007B; Wed, 24 Jul 2024 21:39:04 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id DE4216B0082; Wed, 24 Jul 2024 21:39:04 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id C84876B0083; Wed, 24 Jul 2024 21:39:04 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id A87186B007B for ; Wed, 24 Jul 2024 21:39:04 -0400 (EDT) Received: from smtpin14.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id 0DA7E140144 for ; Thu, 25 Jul 2024 01:39:04 +0000 (UTC) X-FDA: 82376566608.14.C422A4F Received: from mail-ua1-f49.google.com (mail-ua1-f49.google.com [209.85.222.49]) by imf02.hostedemail.com (Postfix) with ESMTP id 4E2F080003 for ; Thu, 25 Jul 2024 01:39:02 +0000 (UTC) Authentication-Results: imf02.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=MR5SCI4P; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf02.hostedemail.com: domain of 21cnbao@gmail.com designates 209.85.222.49 as permitted sender) smtp.mailfrom=21cnbao@gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1721871488; 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:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=5+Ak1JTGLjjtGvgKa7m7PZnTqbOmbXiaZvszzz9QUog=; b=lDVyBmtkX2/HQ/9F5j7Rkx7k199RHM1mdtOZRowyDLZv/zJQSMCf26mrpcQaIFoqxdp8BO 7xKQGN531eYNetswmAcZQRBJFLgmWo+k2Ik4Jt5xvvxMPOPV2Mq8qC/G5nTlo8P9xsj6Tp HNliFOYk0zeLBwD+30uc6ntQiOBH4Ek= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1721871488; a=rsa-sha256; cv=none; b=pqC6yQWGf/Wikiwjnd6a7OpVPhxDdsi4Nco9zdEAw6RJFix1knlvZnyyE+0oaJize2o+sp HxqRrV018VZfjvhN84h8Dbw8eAGJBKsn6W/A/irePFQrkPhYZY09RqPaZzQlJ4tJR8ILur +PpAMYhiOlRSGGHBOzGqUXsBwMyQAbk= ARC-Authentication-Results: i=1; imf02.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=MR5SCI4P; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf02.hostedemail.com: domain of 21cnbao@gmail.com designates 209.85.222.49 as permitted sender) smtp.mailfrom=21cnbao@gmail.com Received: by mail-ua1-f49.google.com with SMTP id a1e0cc1a2514c-8225a1f4d5fso124435241.0 for ; Wed, 24 Jul 2024 18:39:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1721871541; x=1722476341; darn=kvack.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=5+Ak1JTGLjjtGvgKa7m7PZnTqbOmbXiaZvszzz9QUog=; b=MR5SCI4PHUyXR8BisXaX5khu8tNg2X3pLSDE2LL7+xSgD9AAf4zk7+Q6NHkqJ8h6I+ hzArj6qGwYMpXt5tgsqvGxak34VI7OE2R810px4l6nh5osx4lO1UIAZJQvVVMJS1tQoY qqmNUDlr0VFoPOPNxHJIQ8fgNWCIehZ2kGpMqeF/xV2T270AuH1QljoRttW2gFHykjJY AHtfuYuxb7ifteFPvXfPbE61j39itanp9I90bsJEBJDWgf1rSZ0ScbbHJ0oJ02e3XUIM RguEwt3JjFt2to8cERdWLRIzW21pLAVncX+Y+hElsSfoCLprtvodnhH2HSmeGWuxg0H8 GKcw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1721871541; x=1722476341; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=5+Ak1JTGLjjtGvgKa7m7PZnTqbOmbXiaZvszzz9QUog=; b=GaKXXJ5f8lMU3tFvDuLwBTFBeyXcsLbIscDaug1GqRMN3Se0r35zPikeDqRrykqtv5 XJEKzyvYPImwZWzoDg+xd3AsiPYXmnjIJhr08TkXGpvbbmrPoSR+YXI4OMSCVL1GIhRR xc5GL8pYdIdyUO9C1uvOVkUhppuoZsfG/71s4bXW+bm/CINWVHPJRKmOCpIEAEZ/hcMu NpdWFmvrey+x2NAY35sh0KI3sD4MsDfYB4pE34Gtdxe7hvcK9I+ppi20ObivB5UGb9TR XwKLp5plvWbUVQICT8WL0/X0HbYQ03QOZvFtw+Vz4QHXAntjSpjhOVpD/3ywsju+Fwmz MwuQ== X-Forwarded-Encrypted: i=1; AJvYcCXHzzidfYkSrI3TjqoXjShWRSuDMaPf8ZK6P+Ei83rUGSRXVOCCAbjNIpiFcSJvbTQEesC6HRf6Q6G1WxLNdmQgTsQ= X-Gm-Message-State: AOJu0YwJFCtzvUi5/5d0sCjLBhbkqGdAeMYqnEHNte59ZB4f8ILp9yke VsFXauRs+K0GJe8lYjus7K2mpn75ew+8mu3AtQe3/BPcWLCtY2RUHni9FVdEFdFY0bbN7tPL+6a XMpqEfsXDK4ahk4Z5tS7nq0kwTDg= X-Google-Smtp-Source: AGHT+IGsHGyFSG5raIyWHhMfVVB6wctKAD52MhOipikcWdNJ0L/k8XWP5ymbhB5DnYm0DeiFgAutLLVDJOIHmEfiqmk= X-Received: by 2002:a05:6102:4696:b0:48f:23b4:1d96 with SMTP id ada2fe7eead31-493d9ab19e6mr431848137.16.1721871541221; Wed, 24 Jul 2024 18:39:01 -0700 (PDT) MIME-Version: 1.0 References: <20240724085544.299090-1-21cnbao@gmail.com> <20240724085544.299090-6-21cnbao@gmail.com> In-Reply-To: From: Barry Song <21cnbao@gmail.com> Date: Thu, 25 Jul 2024 13:38:50 +1200 Message-ID: Subject: Re: [PATCH RFC 5/5] non-mm: discourage the usage of __GFP_NOFAIL and encourage GFP_NOFAIL To: Michal Hocko Cc: akpm@linux-foundation.org, linux-mm@kvack.org, 42.hyeyoo@gmail.com, cl@linux.com, hch@infradead.org, iamjoonsoo.kim@lge.com, lstoakes@gmail.com, penberg@kernel.org, rientjes@google.com, roman.gushchin@linux.dev, urezki@gmail.com, v-songbaohua@oppo.com, vbabka@suse.cz, virtualization@lists.linux.dev, hailong.liu@oppo.com, torvalds@linux-foundation.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Server: rspam07 X-Rspamd-Queue-Id: 4E2F080003 X-Stat-Signature: wdtkoggcced5isooimqnb86oiusuhnp4 X-Rspam-User: X-HE-Tag: 1721871542-413930 X-HE-Meta: U2FsdGVkX1/TaCgxbJ43zLMs4BiXbT6SvV03wPFO4AjZgOYJHjSL2C5QAzrYOKuiSLcXwC9J36wRxT2e4dD2Hfz8+FcFmUVxZUQNLjSXQaRHMJD+8QRnNYYdsGAHm+UtbICCAQEhJW04jepRIaQwbtrMDFgzIL6yEAymAiSgRyGqGfdl0V+1gRNA+HEF781jQc2sdbx2N99gT0nti6R0H7SsN91GLmMT0NUryAXYnRvLQdywmqjhMCXDUGWXeK2Z+D+/8UQ9uQycQKVx0bq8QVEELU5yAo5AGpG5ceeILhe26LLJjbjxRBXDzStTKMcEIq+zz684dIYDZXb4kbzIdEOwQiamzg4yOM8ZVHIC72U48FKO+Ko20LRwEHQoQWQ3IHcHfSHEsJkcaD/TYb2qAUk7uNpcZFkeY2K7C6FWkyJIkL8HJo+pAkG6LrGTzjcQ+171MpD2UNh268eE2gjG+Ab/JVlRMswbIpcVjuxUliVHHXHyH4kQQxbG8sErPUpcn170AHjRMb3DOzLjoVC4XMiwVMFlMBIoSMuVDsQwIEyFfsL0q/9YHMZtsKzpVuH7eAWg3ZrMjRiZezljr3ynTthWct54kpe5Ee/3ptAKM3Eh3pXGz1PbWRBud6ZV5rtyAuoXg2FtYkUsLJPpHILUx36fDUI5VmH8cAhX53s5bPswPYKxdt+w3Y9ZUud+dgnA+G1OpVhp1BxISuZI8L9xbmMCTSSz4D8HC+tJcWNjc76PqzHaw6FkvHQNvenYl3ETlJG2jdSE8pp+w592Bf4LWmFvAhWlZxGeGnL9Nr265/4r4OdiZRaymmgW2nXPDmJ+GJmeDzs/GQllM3ueWMJDs/33+qqMWuC0ku+U6zFNhPbISRtyyYt0zdy+hm/njWCn8qIFuc4SmommS5d2Cg6fPzGtv4V4uTVhlYVTExb7PTcVtBQiPf7XuSgFUyq0NKkMCyJKMdK/ZDFY2OrE+Hv hLV0kpS+ 0PjiZiUvSi6gXkkhC2Ekz7Y+IE3BLvYkrK1iVRiLQkhgkrDJEKVPRXC9l+pnjRRfXIRTJIAmCchWag9VAf7yCJHQ0IgBa/GgkDF19O1P1IkHlehobWy4gGwsb5pz7YcNikpcADlpq805Ui1Osobm9FCCq4S91V5icNlRx4OOUOa3PfQ0JUpyZPAUK0gPXSrDmREWOR2eC9SGu/MR9ACDBvhcxwcGCkvdevl6FEYt/Iau5TzVxDBcScmc3JjIC4EEeY3fHin73vTfRwbazPpR0oUybEcpaZgk0eCCE1Dz0iRorZgtIn30oaBDRoEdL5Z1mNb9YZDqivpscAMMEmU/hmtkTZFEq0JJ0HYpNYBF0AKRRb/3TR7zK3rUjgUs5w1+eJtefg/qSzgl7tdmVbPSBxZtSkkpGelytBqqyJV83tLcjdH51ROSpCnoKnI8jkLbzSmLTeIpKoV62B0Uhxn8Wog7BpAhxLFw+dyCt8Z5YpAWZ4HY8AfVPy+dx24NfjUtK2fL1jeZZS/p654+erPgUFyf5+Q== 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 Thu, Jul 25, 2024 at 12:17=E2=80=AFAM Michal Hocko wro= te: > > On Wed 24-07-24 20:55:44, Barry Song wrote: > > From: Barry Song > > > > GFP_NOFAIL includes the meaning of block and direct reclamation, which > > is essential for a true no-fail allocation. We are gradually starting > > to enforce this block semantics to prevent the potential misuse of > > __GFP_NOFAIL in atomic contexts in the future. > > > > A typical example of incorrect usage is in VDPA, where GFP_ATOMIC > > and __GFP_NOFAIL are used together. > > Ohh, so you have done the migration. Please squash those two patches. > Also if we want to preserve clean __GFP_NOFAIL for internal MM use then i= t > should be moved away from include/linux/gfp_types.h. But is there any > real use for that? yes. currently i got two, lib/rhashtable.c static struct bucket_table *bucket_table_alloc(struct rhashtable *ht, size_t nbuckets, gfp_t gfp) { struct bucket_table *tbl =3D NULL; size_t size; int i; static struct lock_class_key __key; tbl =3D alloc_hooks_tag(ht->alloc_tag, kvmalloc_node_noprof(struct_size(tbl, buckets, nbuckets), gfp|__GFP_ZERO, NUMA_NO_NODE))= ; size =3D nbuckets; if (tbl =3D=3D NULL && (gfp & ~__GFP_NOFAIL) !=3D GFP_KERNEL) { tbl =3D nested_bucket_table_alloc(ht, nbuckets, gfp); nbuckets =3D 0; } ... return tbl; } and tools/perf/builtin-kmem.c: static const struct { const char *original; const char *compact; } gfp_compact_table[] =3D { { "GFP_TRANSHUGE", "THP" }, { "GFP_TRANSHUGE_LIGHT", "THL" }, { "GFP_HIGHUSER_MOVABLE", "HUM" }, { "GFP_HIGHUSER", "HU" }, ... { "__GFP_NOFAIL", "NF" }, ... }; > > -- > Michal Hocko > SUSE Labs