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 41526C8303C for ; Mon, 7 Jul 2025 18:28:09 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id DBECE6B03F9; Mon, 7 Jul 2025 14:28:08 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id D6F716B03FA; Mon, 7 Jul 2025 14:28:08 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id C5E7A6B03FB; Mon, 7 Jul 2025 14:28:08 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id AE3056B03F9 for ; Mon, 7 Jul 2025 14:28:08 -0400 (EDT) Received: from smtpin02.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id 2E39758336 for ; Mon, 7 Jul 2025 18:28:08 +0000 (UTC) X-FDA: 83638303056.02.31FA255 Received: from mail-yb1-f171.google.com (mail-yb1-f171.google.com [209.85.219.171]) by imf08.hostedemail.com (Postfix) with ESMTP id 4C783160008 for ; Mon, 7 Jul 2025 18:28:06 +0000 (UTC) Authentication-Results: imf08.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b="d4TO/KUE"; spf=pass (imf08.hostedemail.com: domain of jthoughton@google.com designates 209.85.219.171 as permitted sender) smtp.mailfrom=jthoughton@google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1751912886; 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=owDFJen4YTDNma7AUk9STl34vl+r82F90HPmi/p/5YA=; b=murQ9JUORx6uOpK/YWL0mHc97jfKnqVgwgwqAYxnngHWmZ74BeBUDgcZulgTZOhBtxEhgI 1WPohrkky6sa5xh1hHUi+SzOEUc9VWL7KJ8XLB7ljJ3MCqQ7XwVocFV2hNLtIr0PEi7mKe H9OJpfx+zC/Kq/I/rtH4oVWPHVoTJ2I= ARC-Authentication-Results: i=1; imf08.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b="d4TO/KUE"; spf=pass (imf08.hostedemail.com: domain of jthoughton@google.com designates 209.85.219.171 as permitted sender) smtp.mailfrom=jthoughton@google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1751912886; a=rsa-sha256; cv=none; b=awusTAGJbkvpbBIatGsVefHhSgMroUyZoYiSwSB4FhpiOGNA92IiqLx7EpjMuNMEG/82mM 4/sRqfpewlHKVIMqc1bO6kyEuYg2uRqLjtkGsORyPu+gIwqFxrhxr9K+LC7fYaI1tzQXNu FXWN+z8a6MOuNV0XJEH3u8wNXg8suSg= Received: by mail-yb1-f171.google.com with SMTP id 3f1490d57ef6-e8b3cc05665so1571443276.2 for ; Mon, 07 Jul 2025 11:28:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1751912885; x=1752517685; 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=owDFJen4YTDNma7AUk9STl34vl+r82F90HPmi/p/5YA=; b=d4TO/KUEzo9+2fWnYLV+UQ3MsEfNteyLtbG+S801BjT+ukIbK1dJUbw0wurrCHyZl3 Sd8GNrjMyEnqGIpiPY2UeQnCQSTVZ1q5AVC3OI2H64OgrNeUvLeMier/E6igRq+j6pY+ YVD8V7LluGk94Mku0TvF0GFRchxX7wI3aP8SYQY3OuPI//BQD1k9KRoxzVwh2AGkpDC9 RSZprw06YCwSU8sB4qRIHzpOPTt6oY24ts613bujUjIhAc+FyV0dBlAZNduorI2tI3J6 4ie46iug5JVrDLLpZ0nila1eLJrG35AQlq2LnQFHLB23q9KvXDoZckWkNWHEHlMAA5sn ri/g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751912885; x=1752517685; 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=owDFJen4YTDNma7AUk9STl34vl+r82F90HPmi/p/5YA=; b=Yat9ygkxMHVRapr5cX9NdHUF5YTl+J3/E9BKQDlQM7Kk7hKm6YY63G20AALKh8BgQM p7x/pg3ICZgx14DhW7v2d59UoRDavQqoPhFuSW9of8tuBejQU/6ClOerQAHmfJ9YGPaj 46iNNNaOFeliOGZJxyH8nievkid3m7PAibNo5CQ/aQ4UbYTV4jN0N6bjGRDeSTxU6GiW 8ApqeMPZ3nRIyWcw79YTBQwcVByWLxE7zZ7Vy/KYwTlsWsL/cF/Hm4xES5mA+VXUXNdn 9/8FarRqjjDbRRw8l+QmtNFSh6D2WS7HZZ9fWI8mwgR+3OqxaRegnRsPnwbbmBCtsT4N DuVQ== X-Forwarded-Encrypted: i=1; AJvYcCUxCEVJUytmYLQcq2ru4qe96QE0F+p9U3vQ3mUZvKYWFrAS+Sj7Lo9j47/Frdn2w1n7ox/UgwDJQA==@kvack.org X-Gm-Message-State: AOJu0Ywy7RIDzsOoL1YWmmQSjMbd6QZxH8tW3+VqYwY+zTPtXBniXSVk VR0ZreOzh9fK0XnQnTHB68B7kCitnjWHOeisor0FQo1S7QShL5DJfoWtMlMxtAmKLtb4wag8UYH R9OddbFqyBSaIX7GnAa0alZCH1EYxGGVg8WM+eR6y X-Gm-Gg: ASbGncvht3FAconjy3OninHgDC89d7brW7fifp9/qcHBqKiShr1cUmyD72IvACSTVse a1bbQm7TnW0EEuAnNSTDcJ4iXKHRjC5vepSKnhp2W0YZOUe8V1o8uwLKJkv3d2v3qryLfiTVLw/ KD4D12FxLQ+Zp1xr31BKZZ3X+SssWGImfu3A33Cz9oVREQxmSEld1G853P7860nFDeJK7yguBx0 Q== X-Google-Smtp-Source: AGHT+IGALxRhMgh7BE91T+jJhyG+rEGC8sNFThaOOtDHVthOVl+i2kZqlVjxvI4H8+dEE+6nS2sYRpdFrW0Z4Ws+/BQ= X-Received: by 2002:a05:690c:6f02:b0:713:f7dd:5d7c with SMTP id 00721157ae682-71668ded91cmr174799297b3.19.1751912884636; Mon, 07 Jul 2025 11:28:04 -0700 (PDT) MIME-Version: 1.0 References: <8548af334e01401a776aae37a0e9f30f9ffbba8c.1747264138.git.ackerleytng@google.com> In-Reply-To: <8548af334e01401a776aae37a0e9f30f9ffbba8c.1747264138.git.ackerleytng@google.com> From: James Houghton Date: Mon, 7 Jul 2025 11:27:28 -0700 X-Gm-Features: Ac12FXwfXFYyW7dt7flmw9fdJeBgsdRSXtn9Ce_9e810HW9a_XvXDOUG_TQfUZU Message-ID: Subject: Re: [RFC PATCH v2 16/51] mm: hugetlb: Consolidate interpretation of gbl_chg within alloc_hugetlb_folio() To: Ackerley Tng Cc: kvm@vger.kernel.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, x86@kernel.org, linux-fsdevel@vger.kernel.org, aik@amd.com, ajones@ventanamicro.com, akpm@linux-foundation.org, amoorthy@google.com, anthony.yznaga@oracle.com, anup@brainfault.org, aou@eecs.berkeley.edu, bfoster@redhat.com, binbin.wu@linux.intel.com, brauner@kernel.org, catalin.marinas@arm.com, chao.p.peng@intel.com, chenhuacai@kernel.org, dave.hansen@intel.com, david@redhat.com, dmatlack@google.com, dwmw@amazon.co.uk, erdemaktas@google.com, fan.du@intel.com, fvdl@google.com, graf@amazon.com, haibo1.xu@intel.com, hch@infradead.org, hughd@google.com, ira.weiny@intel.com, isaku.yamahata@intel.com, jack@suse.cz, james.morse@arm.com, jarkko@kernel.org, jgg@ziepe.ca, jgowans@amazon.com, jhubbard@nvidia.com, jroedel@suse.de, jun.miao@intel.com, kai.huang@intel.com, keirf@google.com, kent.overstreet@linux.dev, kirill.shutemov@intel.com, liam.merwick@oracle.com, maciej.wieczor-retman@intel.com, mail@maciej.szmigiero.name, maz@kernel.org, mic@digikod.net, michael.roth@amd.com, mpe@ellerman.id.au, muchun.song@linux.dev, nikunj@amd.com, nsaenz@amazon.es, oliver.upton@linux.dev, palmer@dabbelt.com, pankaj.gupta@amd.com, paul.walmsley@sifive.com, pbonzini@redhat.com, pdurrant@amazon.co.uk, peterx@redhat.com, pgonda@google.com, pvorel@suse.cz, qperret@google.com, quic_cvanscha@quicinc.com, quic_eberman@quicinc.com, quic_mnalajal@quicinc.com, quic_pderrin@quicinc.com, quic_pheragu@quicinc.com, quic_svaddagi@quicinc.com, quic_tsoni@quicinc.com, richard.weiyang@gmail.com, rick.p.edgecombe@intel.com, rientjes@google.com, roypat@amazon.co.uk, rppt@kernel.org, seanjc@google.com, shuah@kernel.org, steven.price@arm.com, steven.sistare@oracle.com, suzuki.poulose@arm.com, tabba@google.com, thomas.lendacky@amd.com, usama.arif@bytedance.com, vannapurve@google.com, vbabka@suse.cz, viro@zeniv.linux.org.uk, vkuznets@redhat.com, wei.w.wang@intel.com, will@kernel.org, willy@infradead.org, xiaoyao.li@intel.com, yan.y.zhao@intel.com, yilun.xu@intel.com, yuzenghui@huawei.com, zhiquan1.li@intel.com Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Stat-Signature: ky4us8axhqmqi5ho8i9ubc4riun8ysk9 X-Rspam-User: X-Rspamd-Server: rspam02 X-Rspamd-Queue-Id: 4C783160008 X-HE-Tag: 1751912886-656553 X-HE-Meta: U2FsdGVkX1+QSveV3nQgZZyPNh5qU05Aambd76KBnMOUZVBYrFoVBDFW9B+icYCWvbWYNTHx/POycFZpPBYQxf3WM/UbTLu58Di5OiuzMc4zFFIojs4KDqbTqr933qD9ZT0JQcUoOyc+M85sGfewWX7PyTjXzWrB0KmGZ9rN65bgtbX75iqeHiKS6tDLgYqD2P5NCzvJel6DQFcocGHM9J9V8DKfzSI1EG+AmcB5F+r0QxbGgGu8Al7sDWB+BWgD9QTeCGFACoTVtB3AykERCftR7MsdWuvuVzkePvc8JZolRzuJXc5cf1fXDRfYlhCMs1oagCsnxdEL2R4oThzwlpLJLePNu9rNNmIo7pc1GZm8rbHLpn2Zuz2ddb5ZuzqYuibvn7EyDRe5ytz2r4Q63Q1HdeEBCPq/BfC6JupR7ecw1+vWHShjeXjTVID/UL99FLANc+39x95QEUWMuMNmeqey7BQT+pVH0AaNtGiwMN3ZtaqFx2dNdKle0LklwZC+fFgwI0R0BkfPTLWPDr2tN5t0nJsQLgafoGLkxpfhRK/J8nrboZmeje4g8SwMOIY5PqBGN8JRECY7VCQnRHzfzAvJB/oylfRyyKv6oTl0/8qg4Tctj2smmuHTbBoFUkgmS9rK3Cd7Zheepkg8e0+nPDHmTRtqrboUfIWUrHiKuM4E3967k0Ily83EqQwmsFy1IPMlovQnWVZcHG7QXC8f4dGloBXxR1Xh+2ZhMfYvNVAW7Yli8MXWM1bIpaKgI/EYmZrO74HYhfkLapB6zB31XlyByKq+gP0o+P5bicEiOIwUMHymbt9SCKURXYVZ7XZtem8fFWdRgp39HBjkQTYa06bv+yWMtjQ6p+rYznM4drObB6eVY0crkYqZbguZnQB2k9gE2Q91QEA6vphiZuJu96by6tRy1WFYmxMhBXkNEfItO6SNlT6Fq9ozUb3BsYjkZ4tjgOlhXsbEDeBkrWH FTCHryPf imWCZn2485fIQjJG3Tq8VeXq4I0jCqyS4+gcCmLXdXpmeXaEjIT6btCHeOl/DbD1uzM7yQpMjX85w0oEwhpx7q/HL4IAQ3ryvGJEg5LVcy6EGGRlJZhl2EXsBPfqUs5ukzTFJQc5kC3hav88a+NzjdUiq1b6Md+Dmu7h3NRqqTIA6SJj00VVp6tDfKlcNnc/uzliHRk+Jg4/Cn5t5zYzbAbpvBbn9acJc7KbOYMh2C5auKtNF4YP4AAwwnvmsTZAodJGH1WYTTKGfV1+GdHXBnvKXbuAUenPHkBgr4zKigdvnPeJ8PaRbHbVARqq4vGYfU9KLpxda7mgsO/DnF20bbkQ68jNnVmzvD2cqWJH+8X03eeEfRScwutWKBXH40sYeMdjypvzZNDSZkIJsBVoVvbazue2gC3VENsAH 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 Wed, May 14, 2025 at 4:43=E2=80=AFPM Ackerley Tng wrote: > > Previously, gbl_chg was passed from alloc_hugetlb_folio() into > dequeue_hugetlb_folio_vma(), leaking the concept of gbl_chg into > dequeue_hugetlb_folio_vma(). > > This patch consolidates the interpretation of gbl_chg into > alloc_hugetlb_folio(), also renaming dequeue_hugetlb_folio_vma() to > dequeue_hugetlb_folio() so dequeue_hugetlb_folio() can just focus on > dequeuing a folio. > > Change-Id: I31bf48af2400b6e13b44d03c8be22ce1a9092a9c > Signed-off-by: Ackerley Tng I think I agree with Binbin[1] to either put the rename of dequeue_hugetlb_folio{_vma =3D> }() in its own patch or drop it entirely. I think the rename would 100% make sense if all of the dequeue_hugetlb_folio*() functions were called from dequeue_hugetlb_folio_vma() (i.e., after this patch, dequeue_hugetlb_folio() was always the entry point to dequeue a folio), but in fact dequeue_hugetlb_folio_nodemask() is not always called from dequeue_hugetlb_folio_vma(). I don't feel strongly at all, either way the name is not confusing. So feel free to add: Reviewed-by: James Houghton [1]: https://lore.kernel.org/all/ad77da83-0e6e-47a1-abe7-8cfdfce8b254@linux= .intel.com/ > --- > mm/hugetlb.c | 28 +++++++++++----------------- > 1 file changed, 11 insertions(+), 17 deletions(-) > > diff --git a/mm/hugetlb.c b/mm/hugetlb.c > index 6ea1be71aa42..b843e869496f 100644 > --- a/mm/hugetlb.c > +++ b/mm/hugetlb.c > @@ -1364,9 +1364,9 @@ static unsigned long available_huge_pages(struct hs= tate *h) > return h->free_huge_pages - h->resv_huge_pages; > } > > -static struct folio *dequeue_hugetlb_folio_vma(struct hstate *h, > - struct vm_area_struct *vma, > - unsigned long address, long gbl_chg) > +static struct folio *dequeue_hugetlb_folio(struct hstate *h, > + struct vm_area_struct *vma, > + unsigned long address) > { > struct folio *folio =3D NULL; > struct mempolicy *mpol; > @@ -1374,13 +1374,6 @@ static struct folio *dequeue_hugetlb_folio_vma(str= uct hstate *h, > nodemask_t *nodemask; > int nid; > > - /* > - * gbl_chg=3D=3D1 means the allocation requires a new page that w= as not > - * reserved before. Making sure there's at least one free page. > - */ > - if (gbl_chg && !available_huge_pages(h)) > - goto err; > - > gfp_mask =3D htlb_alloc_mask(h); > nid =3D huge_node(vma, address, gfp_mask, &mpol, &nodemask); > > @@ -1398,9 +1391,6 @@ static struct folio *dequeue_hugetlb_folio_vma(stru= ct hstate *h, > > mpol_cond_put(mpol); > return folio; > - > -err: > - return NULL; > } > > /* > @@ -3074,12 +3064,16 @@ struct folio *alloc_hugetlb_folio(struct vm_area_= struct *vma, > goto out_uncharge_cgroup_reservation; > > spin_lock_irq(&hugetlb_lock); > + > /* > - * glb_chg is passed to indicate whether or not a page must be ta= ken > - * from the global free pool (global change). gbl_chg =3D=3D 0 i= ndicates > - * a reservation exists for the allocation. > + * gbl_chg =3D=3D 0 indicates a reservation exists for the alloca= tion - so > + * try dequeuing a page. If there are available_huge_pages(), try= using > + * them! > */ > - folio =3D dequeue_hugetlb_folio_vma(h, vma, addr, gbl_chg); > + folio =3D NULL; > + if (!gbl_chg || available_huge_pages(h)) > + folio =3D dequeue_hugetlb_folio(h, vma, addr); > + > if (!folio) { > spin_unlock_irq(&hugetlb_lock); > folio =3D alloc_buddy_hugetlb_folio_with_mpol(h, vma, add= r); > -- > 2.49.0.1045.g170613ef41-goog >