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 AFA31C02180 for ; Mon, 13 Jan 2025 16:26:15 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 413CB6B0096; Mon, 13 Jan 2025 11:26:15 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 3C3236B009A; Mon, 13 Jan 2025 11:26:15 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 2B2216B009B; Mon, 13 Jan 2025 11:26:15 -0500 (EST) 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 0E7BB6B0096 for ; Mon, 13 Jan 2025 11:26:15 -0500 (EST) Received: from smtpin30.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id A8E6F140364 for ; Mon, 13 Jan 2025 16:26:14 +0000 (UTC) X-FDA: 83002955868.30.CB49739 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by imf17.hostedemail.com (Postfix) with ESMTP id EA5A140010 for ; Mon, 13 Jan 2025 16:26:12 +0000 (UTC) Authentication-Results: imf17.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=f9OxD2cj; dmarc=pass (policy=quarantine) header.from=kernel.org; spf=pass (imf17.hostedemail.com: domain of will@kernel.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=will@kernel.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1736785573; a=rsa-sha256; cv=none; b=7TwS6yp1Zw3Hpe7jUZFlocYRnfot1iP3p0K2DL9tavRnHfboDQdgvyJJLSCYFewHJSS9oS sxHAntBPWNnTHc7OYKXfffx1F0g4NxSorVl82Ej8OKoagpkyFvjW9XdMbX+/aiyveuGM1Z vZBhGLzZVlIJZjfywijXGNajIqFsIGI= ARC-Authentication-Results: i=1; imf17.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=f9OxD2cj; dmarc=pass (policy=quarantine) header.from=kernel.org; spf=pass (imf17.hostedemail.com: domain of will@kernel.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=will@kernel.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1736785573; 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:references:dkim-signature; bh=pGWnrfB5x3vsMl15xo3lUlJT+6QAr+LaD+zHKo33cfU=; b=iGJO82R01A8ox2XeKxMTo9vVw6OK3IAa6j+CQ43OV+wCl5QAlc6IQsUADCERA8Qqo7/FQC 6gTULDJOQkoEx5Q1IHO3Xm0slSZMqNjEO45St4swtGllEU7iO16GK4wlq1iJp/88dvJqFZ 9zZnNRChiicl0oiCuBBrXVdQ3AL8fDs= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by dfw.source.kernel.org (Postfix) with ESMTP id 198035C51B3; Mon, 13 Jan 2025 16:25:31 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id CB06FC4CEE3; Mon, 13 Jan 2025 16:26:04 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1736785571; bh=aIErGEJQ93Edr09sqGtwbrisP+GLeiu0+v58Z3b4+wg=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=f9OxD2cjCU02a1TFHaQkRJkHTJaf800j2ThaRkmaDO8PnvHYcKvQAfMic1HE/Vgu4 bhoThTemMYdDsEruG0k1HE1twIt5p+okmQ1Fme2xsmkJ1BQLD8H+Zp7QUSFbDk27Gn B5ufSBakDorBmKAc7MajbPl5qEyM8Cvsp7UlPF7Qlqy8u3xJW5fG1y1vkiwGoluiPG TaVdI6SpQBvsCUt754VDxKLXg9xhYJFxRfy3Q35WM4nn1s+LKSVLKt3udttwPvQ+n7 7RdzermO/y9ghDR77Ho+plqpTXITbyFwEjDbIrmeX2kZUFwI7wLBL/ndLmvBoivzIj msVg4+kWAVaUA== Date: Mon, 13 Jan 2025 16:26:01 +0000 From: Will Deacon To: Qi Zheng Cc: peterz@infradead.org, agordeev@linux.ibm.com, kevin.brodsky@arm.com, alex@ghiti.fr, andreas@gaisler.com, palmer@dabbelt.com, tglx@linutronix.de, david@redhat.com, jannh@google.com, hughd@google.com, yuzhao@google.com, willy@infradead.org, muchun.song@linux.dev, vbabka@kernel.org, lorenzo.stoakes@oracle.com, akpm@linux-foundation.org, rientjes@google.com, vishal.moola@gmail.com, arnd@arndb.de, aneesh.kumar@kernel.org, npiggin@gmail.com, dave.hansen@linux.intel.com, rppt@kernel.org, ryan.roberts@arm.com, linux-mm@kvack.org, linux-arm-kernel@lists.infradead.org, linuxppc-dev@lists.ozlabs.org, linux-riscv@lists.infradead.org, linux-s390@vger.kernel.org, sparclinux@vger.kernel.org, linux-kernel@vger.kernel.org, x86@kernel.org, linux-arch@vger.kernel.org, linux-csky@vger.kernel.org, linux-hexagon@vger.kernel.org, loongarch@lists.linux.dev, linux-m68k@lists.linux-m68k.org, linux-mips@vger.kernel.org, linux-openrisc@vger.kernel.org, linux-sh@vger.kernel.org, linux-um@lists.infradead.org Subject: Re: [PATCH v5 05/17] arm64: pgtable: use mmu gather to free p4d level page table Message-ID: <20250113162600.GA14101@willie-the-truck> References: <3fd48525397b34a64f7c0eb76746da30814dc941.1736317725.git.zhengqi.arch@bytedance.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <3fd48525397b34a64f7c0eb76746da30814dc941.1736317725.git.zhengqi.arch@bytedance.com> User-Agent: Mutt/1.10.1 (2018-07-13) X-Rspamd-Server: rspam04 X-Rspamd-Queue-Id: EA5A140010 X-Stat-Signature: tyug47xzz8e4ebsu1h8zasq7y5xdrisb X-Rspam-User: X-HE-Tag: 1736785572-76420 X-HE-Meta: U2FsdGVkX18bRJDMx8g+TQk2nZKm1+xz8Aq8+dVpTEQ+MeUD+musOlJhLJrqpP7VDkzpraP3doYVz6fuD/xOud/nONj7vdKoHPkQAXKESO4mI9OF0Eqv1viRHpGOlgIi/gyoSHCQ7FvrobwV1css1cXmQRZTN8GLtsY9MCiYHv3funjOPz6xYv/m5fk4kzKDsVDOybsfcsOJ+pKGs3CGkoTkT+MuKymZVxdxc9V7ln5bqU1WW/9/UUGTPR5WhBvnRVSO62Zk8SSb+dCXggf6htpIuAx9zssB7yYDR3pSdQ9aH+Y6TlZ6YR78n4QMNiXAspDnVe1I+ZoZueeibe3+oPDrNxtFMH4wMwvemqBX2YEv7QF+xlxthZZbi0Ql4PkEv6iNt8L8Y3+166ogdTI4wR/NSDPMUfWbk6AWRA/2ALKFQ+D9s+en1C7cHSjgz53QRw0nY1PIQkL17Fm5nWlcF8maRHDFNQL9FxwMnC4KzuA5Yva3R+wklzd/gD+ArePBy+Bv9GOdzmEfnqebojGJaM68lSVqykc/APoA7YKmDq5dsqoZF3WcyRv8v4sHSG7T9AIx6yo7W375g9WBQwx0sBqVssO7eTfEG9QIDybFl5n1TZr+i5Q/wAUu9lx1Uj+wN1B4Gc3GHHKlHLRGZA/V9774Qj+Q7r/eIEzKird6NxlDUC4I8Ns6FDCFDC7PXaTghXrF9TFKIg+JdYVvBvJqZJTdLfK4VxnO7OtU0yE25AClZIOXInmnnuAHC2QSqBpL4zRn7Z7zUure4unarqoVLl0vwvDNy9V3D/QOUYMLtXwre4+9AuiKv8pEJFpJ00X7Se4Lfye3Fgv8Kx/5qIkq/tyoittyPeTJobMDjOpr/f9+dh42kR42+RWnDzemgnHVyQFwo2uCWBjAA4r2WYAJ5hrQRuBmQApBjqqDvHdYqqfTGLWL+xXIC7RqMBHDHNz6kCPabuDzFhIgHrzfZXz YmYBxzuJ 9COgUdTiTQv1ArZ24M5ZeQA762fUUFOqTpMOt0ac9szdGLzerFKWnWWadC4mGFM3cq/cL2vJUPsqF5rnDu03NlL5L2YNWa/0qRReEgWR9Z/fs9ZHVI7R8EKEipptvsOWD5Tdihmg2aRqum+miQFxTA1V7e0EZYgkr6A1mw8A0eXKToHrmvgpW+DOqE0X0H+kXwA8W5g1yh+2hC7MqINIJpu9WOHNmAgZwJxqmCSbHmIgkjehv9/kg4sAWymEpgfizG4F9mCXIR4SeZkh5sH02Hk4YC7OqXu8GBC82iRTzOn7ueYvsrnM1rm0E6PZN5bAhXfzQPA+JbYLJFr+Chva3gj8MF58Ip8+ppDM3Dwh53/zER1Jng9l5W2IRk/XDS5WD1RQjgQDy/4AF/lqwj/XMrwqY3utmkk6MKKjG3d6m49Bc2b2aEfnttxnaHQ== 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, Jan 08, 2025 at 02:57:21PM +0800, Qi Zheng wrote: > Like other levels of page tables, also use mmu gather mechanism to free > p4d level page table. > > Signed-off-by: Qi Zheng > Originally-by: Peter Zijlstra (Intel) > Reviewed-by: Kevin Brodsky > Cc: linux-arm-kernel@lists.infradead.org > --- > arch/arm64/include/asm/pgalloc.h | 1 - > arch/arm64/include/asm/tlb.h | 14 ++++++++++++++ > 2 files changed, 14 insertions(+), 1 deletion(-) > > diff --git a/arch/arm64/include/asm/pgalloc.h b/arch/arm64/include/asm/pgalloc.h > index 2965f5a7e39e3..1b4509d3382c6 100644 > --- a/arch/arm64/include/asm/pgalloc.h > +++ b/arch/arm64/include/asm/pgalloc.h > @@ -85,7 +85,6 @@ static inline void pgd_populate(struct mm_struct *mm, pgd_t *pgdp, p4d_t *p4dp) > __pgd_populate(pgdp, __pa(p4dp), pgdval); > } > > -#define __p4d_free_tlb(tlb, p4d, addr) p4d_free((tlb)->mm, p4d) > #else > static inline void __pgd_populate(pgd_t *pgdp, phys_addr_t p4dp, pgdval_t prot) > { > diff --git a/arch/arm64/include/asm/tlb.h b/arch/arm64/include/asm/tlb.h > index a947c6e784ed2..445282cde9afb 100644 > --- a/arch/arm64/include/asm/tlb.h > +++ b/arch/arm64/include/asm/tlb.h > @@ -111,4 +111,18 @@ static inline void __pud_free_tlb(struct mmu_gather *tlb, pud_t *pudp, > } > #endif > > +#if CONFIG_PGTABLE_LEVELS > 4 > +static inline void __p4d_free_tlb(struct mmu_gather *tlb, p4d_t *p4dp, > + unsigned long addr) > +{ > + struct ptdesc *ptdesc = virt_to_ptdesc(p4dp); > + > + if (!pgtable_l5_enabled()) > + return; > + > + pagetable_p4d_dtor(ptdesc); > + tlb_remove_ptdesc(tlb, ptdesc); > +} Should we update p4d_free() to call the destructor, too? It looks like it just does free_page() atm. Will