From nobody Tue Dec 16 14:50:00 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 846E932ED45 for ; Fri, 5 Dec 2025 19:44:09 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764963849; cv=none; b=o5WnS6UhMA0aq71ccE9B/od5BlgOd4JPgUNc8dbx9V3IofHARIllas4zj9TrXxYveE7UWEjotURISndQKFsWwd6ej9XtwNxs6g/ItoPmn6DjIyXFMkeMkwWWyVQ5V16ZMx6M5fz4GTngeTcYVQjBOhav5aTzMa/y0CHhJPyLHMg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764963849; c=relaxed/simple; bh=U5PAArSwkT6xaG+oWnh1pdHULJkKB8HiCIVlrRlQHnU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=PxS5uvrjD46XX1LxLNYctivr9uHF3whkcAViVYs+3NWCOCX3wDmaBiTSgCoA/qcRTZEiww+xtU7p9ExSYa+zIsx6N0az5fRgBe9Bzr6q1P14C+eV22sfCMJ4o45y9HFs8lRi6e+OVXpyo2Eiar+xV3bjrtJIvrwSsVVGVJbm7uw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=IrSR2azR; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="IrSR2azR" Received: by smtp.kernel.org (Postfix) with ESMTPSA id A8BAEC113D0; Fri, 5 Dec 2025 19:44:07 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1764963848; bh=U5PAArSwkT6xaG+oWnh1pdHULJkKB8HiCIVlrRlQHnU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=IrSR2azRCEJSUIH2Jw3c9F+KDAtoo1B2MAclcw1BISGTs3nhmGYF1Q75BuylzusBv Qgf+KjjD0G6B7iFg+0Tu7WYYf/Hja4X+vMnPj2Q8rSXAjL0eIWngZD5iy4i58tMEwr /cgsoiRxIK1BATAJ49jnE3PxrsjW1br2nqxRtB2GsqP788wKbpICSMEKm5UVDVaT3M o5xZFTge44HcLE/WrMoIasQNEBrDmiqNbp4W6OAbYmdfd5rUh9kVr4YEnObOygqPJY 1UW7Fm377C7jYoLUFsaWuXw1NYi7kmS2DxV9PO/hrqqkyaruz2WaY0soQCcdsg6r+a aSWhCSASHCXzA== Received: from phl-compute-04.internal (phl-compute-04.internal [10.202.2.44]) by mailfauth.phl.internal (Postfix) with ESMTP id 05BC3F40070; Fri, 5 Dec 2025 14:44:07 -0500 (EST) Received: from phl-mailfrontend-01 ([10.202.2.162]) by phl-compute-04.internal (MEProxy); Fri, 05 Dec 2025 14:44:07 -0500 X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefgedrtddtgdelvdegucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceurghi lhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujfgurh ephffvvefufffkofgjfhgggfestdekredtredttdenucfhrhhomhepmfhirhihlhcuufhh uhhtshgvmhgruhcuoehkrghssehkvghrnhgvlhdrohhrgheqnecuggftrfgrthhtvghrnh ephfdufeejhefhkedtuedvfeevjeffvdfhvedtudfgudffjeefieekleehvdetvdevnecu vehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepkhhirhhilh hlodhmvghsmhhtphgruhhthhhpvghrshhonhgrlhhithihqdduieduudeivdeiheehqddv keeggeegjedvkedqkhgrsheppehkvghrnhgvlhdrohhrghesshhhuhhtvghmohhvrdhnrg hmvgdpnhgspghrtghpthhtohepudelpdhmohguvgepshhmthhpohhuthdprhgtphhtthho pegrkhhpmheslhhinhhugidqfhhouhhnuggrthhiohhnrdhorhhgpdhrtghpthhtohepmh hutghhuhhnrdhsohhngheslhhinhhugidruggvvhdprhgtphhtthhopegurghvihgusehk vghrnhgvlhdrohhrghdprhgtphhtthhopehoshgrlhhvrgguohhrsehsuhhsvgdruggvpd hrtghpthhtoheprhhpphhtsehkvghrnhgvlhdrohhrghdprhgtphhtthhopehvsggrsghk rgesshhushgvrdgtiidprhgtphhtthhopehlohhrvghniihordhsthhorghkvghssehorh grtghlvgdrtghomhdprhgtphhtthhopeifihhllhihsehinhhfrhgruggvrggurdhorhhg pdhrtghpthhtohepiihihiesnhhvihguihgrrdgtohhm X-ME-Proxy: Feedback-ID: i10464835:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Fri, 5 Dec 2025 14:44:06 -0500 (EST) From: Kiryl Shutsemau To: Andrew Morton , Muchun Song Cc: David Hildenbrand , Oscar Salvador , Mike Rapoport , Vlastimil Babka , Lorenzo Stoakes , Matthew Wilcox , Zi Yan , Baoquan He , Michal Hocko , Johannes Weiner , Jonathan Corbet , Usama Arif , kernel-team@meta.com, linux-mm@kvack.org, linux-kernel@vger.kernel.org, linux-doc@vger.kernel.org, Kiryl Shutsemau Subject: [PATCH 08/11] hugetlb: Remove VMEMMAP_SYNCHRONIZE_RCU Date: Fri, 5 Dec 2025 19:43:44 +0000 Message-ID: <20251205194351.1646318-9-kas@kernel.org> X-Mailer: git-send-email 2.51.2 In-Reply-To: <20251205194351.1646318-1-kas@kernel.org> References: <20251205194351.1646318-1-kas@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Fake heads no longer exist, so there is no reason to synchronize them with page_ref_add_unless(). Remove the flag and the synchronization with synchronize_rcu() that is gated by it. Signed-off-by: Kiryl Shutsemau --- mm/hugetlb_vmemmap.c | 20 ++++---------------- 1 file changed, 4 insertions(+), 16 deletions(-) diff --git a/mm/hugetlb_vmemmap.c b/mm/hugetlb_vmemmap.c index 2543bdbcae20..0f142e4eafb9 100644 --- a/mm/hugetlb_vmemmap.c +++ b/mm/hugetlb_vmemmap.c @@ -48,8 +48,6 @@ struct vmemmap_remap_walk { #define VMEMMAP_SPLIT_NO_TLB_FLUSH BIT(0) /* Skip the TLB flush when we remap the PTE */ #define VMEMMAP_REMAP_NO_TLB_FLUSH BIT(1) -/* synchronize_rcu() to avoid writes from page_ref_add_unless() */ -#define VMEMMAP_SYNCHRONIZE_RCU BIT(2) unsigned long flags; }; =20 @@ -423,9 +421,6 @@ static int __hugetlb_vmemmap_restore_folio(const struct= hstate *h, if (!folio_test_hugetlb_vmemmap_optimized(folio)) return 0; =20 - if (flags & VMEMMAP_SYNCHRONIZE_RCU) - synchronize_rcu(); - vmemmap_start =3D (unsigned long)folio; vmemmap_end =3D vmemmap_start + hugetlb_vmemmap_size(h); =20 @@ -457,7 +452,7 @@ static int __hugetlb_vmemmap_restore_folio(const struct= hstate *h, */ int hugetlb_vmemmap_restore_folio(const struct hstate *h, struct folio *fo= lio) { - return __hugetlb_vmemmap_restore_folio(h, folio, VMEMMAP_SYNCHRONIZE_RCU); + return __hugetlb_vmemmap_restore_folio(h, folio, 0); } =20 /** @@ -480,14 +475,11 @@ long hugetlb_vmemmap_restore_folios(const struct hsta= te *h, struct folio *folio, *t_folio; long restored =3D 0; long ret =3D 0; - unsigned long flags =3D VMEMMAP_REMAP_NO_TLB_FLUSH | VMEMMAP_SYNCHRONIZE_= RCU; + unsigned long flags =3D VMEMMAP_REMAP_NO_TLB_FLUSH; =20 list_for_each_entry_safe(folio, t_folio, folio_list, lru) { if (folio_test_hugetlb_vmemmap_optimized(folio)) { ret =3D __hugetlb_vmemmap_restore_folio(h, folio, flags); - /* only need to synchronize_rcu() once for each batch */ - flags &=3D ~VMEMMAP_SYNCHRONIZE_RCU; - if (ret) break; restored++; @@ -558,8 +550,6 @@ static int __hugetlb_vmemmap_optimize_folio(struct hsta= te *h, =20 static_branch_inc(&hugetlb_optimize_vmemmap_key); =20 - if (flags & VMEMMAP_SYNCHRONIZE_RCU) - synchronize_rcu(); /* * Very Subtle * If VMEMMAP_REMAP_NO_TLB_FLUSH is set, TLB flushing is not performed @@ -621,7 +611,7 @@ void hugetlb_vmemmap_optimize_folio(struct hstate *h, s= truct folio *folio) { LIST_HEAD(vmemmap_pages); =20 - __hugetlb_vmemmap_optimize_folio(h, folio, &vmemmap_pages, VMEMMAP_SYNCHR= ONIZE_RCU); + __hugetlb_vmemmap_optimize_folio(h, folio, &vmemmap_pages, 0); free_vmemmap_page_list(&vmemmap_pages); } =20 @@ -649,7 +639,7 @@ static void __hugetlb_vmemmap_optimize_folios(struct hs= tate *h, struct folio *folio; int nr_to_optimize; LIST_HEAD(vmemmap_pages); - unsigned long flags =3D VMEMMAP_REMAP_NO_TLB_FLUSH | VMEMMAP_SYNCHRONIZE_= RCU; + unsigned long flags =3D VMEMMAP_REMAP_NO_TLB_FLUSH; =20 nr_to_optimize =3D 0; list_for_each_entry(folio, folio_list, lru) { @@ -702,8 +692,6 @@ static void __hugetlb_vmemmap_optimize_folios(struct hs= tate *h, int ret; =20 ret =3D __hugetlb_vmemmap_optimize_folio(h, folio, &vmemmap_pages, flags= ); - /* only need to synchronize_rcu() once for each batch */ - flags &=3D ~VMEMMAP_SYNCHRONIZE_RCU; =20 /* * Pages to be freed may have been accumulated. If we --=20 2.51.2