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 9EFA8C71136 for ; Fri, 13 Jun 2025 22:04:03 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id EB0AA6B0088; Fri, 13 Jun 2025 18:04:02 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id E3A1E6B0089; Fri, 13 Jun 2025 18:04:02 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id D01EE6B008A; Fri, 13 Jun 2025 18:04:02 -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 AD8ED6B0088 for ; Fri, 13 Jun 2025 18:04:02 -0400 (EDT) Received: from smtpin08.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id E9F09141353 for ; Fri, 13 Jun 2025 22:04:01 +0000 (UTC) X-FDA: 83551755882.08.6C32DF9 Received: from mail-pf1-f201.google.com (mail-pf1-f201.google.com [209.85.210.201]) by imf23.hostedemail.com (Postfix) with ESMTP id 2F1B214000D for ; Fri, 13 Jun 2025 22:04:00 +0000 (UTC) Authentication-Results: imf23.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=4Bl5XQgP; spf=pass (imf23.hostedemail.com: domain of 3TqBMaAsKCAslnvp2wp94yrrzzrwp.nzxwty58-xxv6lnv.z2r@flex--ackerleytng.bounces.google.com designates 209.85.210.201 as permitted sender) smtp.mailfrom=3TqBMaAsKCAslnvp2wp94yrrzzrwp.nzxwty58-xxv6lnv.z2r@flex--ackerleytng.bounces.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=1749852240; 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:dkim-signature; bh=i/40CUi0IHiFJ0hUhxJyhxAHD9gYzpVe1ssTOnGIXjM=; b=pDVraOCef3JVy2prwSlgf8rBMgEyKQ0zCzoer5mBPGrrVLueFQ2yQcipL2VQ/VhZlMMp7T Y/6KomXcAZABDXzrZD6WkYj0OFCZWXYUMdKUIrQn8S8SmnfLv1YELVhiKR9cUclZq1XfY4 BzlWEqRf3x1ecin01qKBP+4pPCcJoIY= ARC-Authentication-Results: i=1; imf23.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=4Bl5XQgP; spf=pass (imf23.hostedemail.com: domain of 3TqBMaAsKCAslnvp2wp94yrrzzrwp.nzxwty58-xxv6lnv.z2r@flex--ackerleytng.bounces.google.com designates 209.85.210.201 as permitted sender) smtp.mailfrom=3TqBMaAsKCAslnvp2wp94yrrzzrwp.nzxwty58-xxv6lnv.z2r@flex--ackerleytng.bounces.google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1749852240; a=rsa-sha256; cv=none; b=vj/ShnMU1C77KdBtblIwz7iIuMC5IG+e9g3YKElobzu7to4d2gKA9AQpPIfIEb/wHOov/w FdQZpfiQwAZPwP4ILF+qgwI1pqvDk6wbCo7ITq+/T5F4dkkbW3HRPG1VrtHZShG97wI7OE 9Xo0t2Cu7h57ET0OCMn7MOcTK0kkrKE= Received: by mail-pf1-f201.google.com with SMTP id d2e1a72fcca58-74620e98ec8so2066462b3a.1 for ; Fri, 13 Jun 2025 15:03:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1749852239; x=1750457039; darn=kvack.org; h=cc:to:from:subject:message-id:mime-version:in-reply-to:date:from:to :cc:subject:date:message-id:reply-to; bh=i/40CUi0IHiFJ0hUhxJyhxAHD9gYzpVe1ssTOnGIXjM=; b=4Bl5XQgPe2FIVkmYl++zGLD841Plco20qDzOSWUpGfZs0cZ6MrtOI96PgHC67xtfuS +ye8WyBd3VZa4Jv4WZmyPUbKsBdYEiFRdtcjDsSYZy92GAuOLzgLh+XtdO/FwO/tfTrb FK0MaIJ2bl1TAxtP6H//v6spVw6FKoyhTrlSYjNJ+zq7g+nrJ3sXa7CoHQBxaR6AWkZO hND2zEJe4msPDuMy0f6YRi8ThMkngoViEH90jzHuEBnWVzWPKIu95H8bJIViK4l+Yqm5 WA9IO5HYw0M98f9A3WhqBBxTvmaHTfzXkaEJs9CziaOP+jzXBzHADTSd6bflnqEj03Xi lcYA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1749852239; x=1750457039; h=cc:to:from:subject:message-id:mime-version:in-reply-to:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=i/40CUi0IHiFJ0hUhxJyhxAHD9gYzpVe1ssTOnGIXjM=; b=mFx8px0wS0GMQUhT42XpjJJDYBeiqBCxwzjo71Hl7A3njEp1Ng0XnTvML2x+mwiwCd QmqoVzKzrUZVFSPi9Cz1555wU8IlR2A/bixhiM176m1kiJrsKHcvoCBP8knfGY5W5PXW HBASNeS34y/HX/p0eq1G0RTkK39Vfc6Ty3D9QPQMcmpG6MxoSMIRtqzBKY3LfbDO7b8O WtveL04MgK+k6dnmG+hOJ+FMeO98aq45ViBuFDi/erLLFQWVkrbcknRFAkfkkIn6xXee O1vZcuTb+XRS4qHCX4+Ui2LkjHCEOlDe2Hn8N4xB7+YxA+3PW/EKjKDRuK0udLELEm3U av1Q== X-Forwarded-Encrypted: i=1; AJvYcCUrZ/SPr1iNoQZI5fx3NHXSGQn66UbYGBR8RXzsnqbs6ce8I6VDsb8JgUY7L+KzLouex4bqL8TmTw==@kvack.org X-Gm-Message-State: AOJu0YyGIrR5rI07gZFlY4uJlAfWkdrB80WNhdPnSSJWthmROUDfi7h4 KlxZoFq2thp/b2PxPd0y26VNskV8IVJxDDl3JikGV0J2XzNPlReJd6ZNd+jxc9S29zTu4e836IZ wdZlo3itLYJMXkgky/65qU899FQ== X-Google-Smtp-Source: AGHT+IHRiKPTqW11h+ooG+958h5cZWs5QjDR2ZCbryJ+gAhM50EoMo0ybgtH7IXYe+r4kn8Tmi/t2fTL6o6uGEc16w== X-Received: from pfbct11.prod.google.com ([2002:a05:6a00:f8b:b0:746:247f:7384]) (user=ackerleytng job=prod-delivery.src-stubby-dispatcher) by 2002:a05:6a00:3a08:b0:736:3ea8:4813 with SMTP id d2e1a72fcca58-7489c3e4cf3mr1576873b3a.2.1749852238827; Fri, 13 Jun 2025 15:03:58 -0700 (PDT) Date: Fri, 13 Jun 2025 15:03:57 -0700 In-Reply-To: <683b94b359be_1303152941e@iweiny-mobl.notmuch> (message from Ira Weiny on Sat, 31 May 2025 18:45:55 -0500) Mime-Version: 1.0 Message-ID: Subject: Re: [RFC PATCH v2 22/51] mm: hugetlb: Refactor hugetlb allocation functions From: Ackerley Tng To: Ira Weiny 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, jthoughton@google.com, 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" X-Rspamd-Server: rspam05 X-Rspamd-Queue-Id: 2F1B214000D X-Stat-Signature: 6j51ochw4swur9b5k4z8bf1iycoukze1 X-Rspam-User: X-HE-Tag: 1749852240-711910 X-HE-Meta: U2FsdGVkX1/5FIHEdm/9abdgVq+aq7TDM5siYRJu6UKa5lgwQxKE3/vmymBRqgR+ZGomccEKY3/wpPuucYody+r+AlN/LOP2Z9oQxXPowEKrBiLYms4K05vaRseD4BXByewuGztnlwHn9mhYE6Dj5T9XzinRgWfwpUtbmMtKhsd8nWqb0baYzW4nNApeXLog8HwDEjajBlC/Um+gAFrvIJK/NgeGkTG+uai3ovv1cD3Yf8iFevqafKCmY+W4udoocMEqGxLzlGQIjlz/ahuJwYHTOKi3G5XjpFzop9TsfLUsGwLzb7EHzEcnQDALVNmKe1HVcyax9hfi3i/+d/+aqPpjK8eJVRQ9dsDGO3zCiCP4OfN3JhLVU5/8vGDXXapyHGZ/IZpmPSGmGqG6PVBjXFscx7Jxnu8l1p7+wzw//zEXRUtKLCD8dz/AC4/SEtQokBDxWEHF8OyHUL8EUUfuaMMIOKb3DLVPyIGkn0IJ2Qjf0z7VsPDs0usfcYtIMNkn+bPVaSGAA+iXS8Co8Ctg1AY2bwpvfOM55RoO6Q+cNL/pKf/5HLiV1P68BfIHqS+irK9O9awsrY1zqYqf2ynv7i4CAZUlImVf5Wm4TP0AhvUTnexRbDX3ie3ElaR2aSc6bW9oOWuji55GGL/Alh57tTupDx0NK1DnBM62+Ar5mjIWHqlHGNugQBL9eKWfxTrZbqhMEx2tqIxY5cm34/2HE0fp40E/6d7mfxNVZe998LdSo0v0dSx+PMXJpgcnFpO/6QU2k0/n8xv6DxhF3Wu4Qz/2T5nEC95N94QAtefUP7JEHgNM/4aYreuBnI0Zmpb4nwGob/hEDdTY8Cx7be/hJK+o59SHuwsfLPYXiLVqPxEBys3XN3wXFBnCj9WHGeUXYEJtvxUtgD080EIKQu7gIPhIXJj1MqArFzk4tPko3HoC1XXCAOYnM6f+sDnPRIYQK6QRvTKej/nTrZpS5i+ 4uW1cCRq 2P9e412FyKtLffTpvS3puZ5cY0KfQWC/Y+5KCOODMpw285XTHxA+1LZmtaSTHXignqr82n7o8eMynz0Q/2vAgV4CDCixFEWrwzgqdYKKm7e6hlCwXCwdyL8UPqAmeOXRjr6fFtM4lcLIDAgJHoIwZHVDqg1o6+AjxJ98sQTgRuRLv8cVJpJ0EeptS+amHKtyZtwizfTX92FA6nk6Rvopu4ZJetF4KHuffQqihFHpm0u8gF8Jh/wxxuuFK+DHPP4jEpYHfd55bPEJPjQC28FXiJ1R78K1LuZgM8IGfWyhd3/gBTAXHi3Z4P4MI1jHgHpemmZt6aszk+r62WDqrEXyaix+lwE3V1jzjGNqZ/RLKqcZIRiu+kV2ZcVFDaiWK8K5gu3jiz26Y3Ss4iJOzDtYXivFS2NELy5jBzp5ZcGTYs/GcKfh90k3rtZF1Z5Tj4EXQk7/kjcyZusGBIbB/ESMLdYAvvB9SD4+8vEMJUrF309aM2R4iyxpEzdPWJR5389k82YvLg7K3KdVWzVvTVMfGxkX2MHd8nHj+7qyd9C/YbbNQcOpn0p8qQIOtAeeYzYf8P96FOO1xqXSF5j8H311cVTXZ5LMUmX+bU48JiDfTnfuya8k4ACK10AHSTOEnAeW51CoaPl5SEoUjbzLrBaTzKdfz4S3p1DXOL52Kgu2HOjEvR6Fa3YOOoANtE1ti4bqg8tgW1ONoxPeMeH1tZZS5YyBPcdeH6R8vOJseYZR49k70pAYLDE0URvggwQ== 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: Ira Weiny writes: > Ackerley Tng wrote: >> Refactor dequeue_hugetlb_folio() and alloc_surplus_hugetlb_folio() to >> take mpol, nid and nodemask. This decouples allocation of a folio from >> a vma. >> >> Signed-off-by: Ackerley Tng >> Change-Id: I890fb46fe8c6349383d8cf89befc68a4994eb416 >> --- >> mm/hugetlb.c | 64 ++++++++++++++++++++++++---------------------------- >> 1 file changed, 30 insertions(+), 34 deletions(-) >> > > [snip] > >> >> @@ -2993,6 +2974,11 @@ struct folio *alloc_hugetlb_folio(struct vm_area_struct *vma, >> int ret, idx; >> struct hugetlb_cgroup *h_cg = NULL; >> gfp_t gfp = htlb_alloc_mask(h) | __GFP_RETRY_MAYFAIL; >> + struct mempolicy *mpol; >> + nodemask_t *nodemask; >> + gfp_t gfp_mask; >> + pgoff_t ilx; >> + int nid; >> >> idx = hstate_index(h); >> >> @@ -3032,7 +3018,6 @@ struct folio *alloc_hugetlb_folio(struct vm_area_struct *vma, >> >> subpool_reservation_exists = npages_req == 0; >> } >> - >> reservation_exists = vma_reservation_exists || subpool_reservation_exists; >> >> /* >> @@ -3048,21 +3033,30 @@ struct folio *alloc_hugetlb_folio(struct vm_area_struct *vma, >> goto out_subpool_put; >> } >> >> + mpol = get_vma_policy(vma, addr, h->order, &ilx); > > Why does the memory policy need to be acquired here instead of after the > cgroup charge? AFAICT this is not needed and would at least eliminate 1 > of the error conditions puts. > I was hoping that by taking this early, the upcoming refactoring out of hugetlb_alloc_folio() will look like a nice, clean removal of the middle of this function, leaving acquiring of the mpol and mpol_cond_put() in-place. In the next revision I'm splitting up the refactoring in this patch further so if this is still an issue in some number of revisions' time, I can fix this. >> + >> ret = hugetlb_cgroup_charge_cgroup(idx, pages_per_huge_page(h), &h_cg); >> - if (ret) >> + if (ret) { >> + mpol_cond_put(mpol); > ^^^^ > here > > All that said I think the use of some new cleanup macros could really help > a lot of this code. > I'm happy to try that out... > What do folks in this area of the kernel think of those? > not sure though. > Ira > > [snip]