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 5191CE77180 for ; Mon, 16 Dec 2024 12:03:19 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id B84C46B008A; Mon, 16 Dec 2024 07:03:18 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id B34B96B008C; Mon, 16 Dec 2024 07:03:18 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 9FCEE6B0092; Mon, 16 Dec 2024 07:03:18 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id 850246B008A for ; Mon, 16 Dec 2024 07:03:18 -0500 (EST) Received: from smtpin02.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id 288001A0CC9 for ; Mon, 16 Dec 2024 12:03:18 +0000 (UTC) X-FDA: 82900686540.02.F5CC063 Received: from casper.infradead.org (casper.infradead.org [90.155.50.34]) by imf21.hostedemail.com (Postfix) with ESMTP id A40131C000E for ; Mon, 16 Dec 2024 12:02:20 +0000 (UTC) Authentication-Results: imf21.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=JEwhNiz+; spf=none (imf21.hostedemail.com: domain of peterz@infradead.org has no SPF policy when checking 90.155.50.34) smtp.mailfrom=peterz@infradead.org; dmarc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1734350565; 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=GqtiXAiLKRhO9WaOADcBcZ5nHd2bJ5BklFEOYKx+ttg=; b=iyQTKAZdZkSR4Zv4+ASFH3KriZIRrUb+MCXYs1ymWGv5hucC6Bew+CR/gKMWx5QIi6/aRl NkGuh1sN1+6iDLXaCaE0luAYCUBXmdUB3Wgy0/DFYZ/HmPThMHlncCKjwE2CJ2FZAJsWKZ KLk/0VOw041rc6FgFY6UhvuIR71+yRQ= ARC-Authentication-Results: i=1; imf21.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=JEwhNiz+; spf=none (imf21.hostedemail.com: domain of peterz@infradead.org has no SPF policy when checking 90.155.50.34) smtp.mailfrom=peterz@infradead.org; dmarc=none ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1734350565; a=rsa-sha256; cv=none; b=xfe+YsI0qfNnUThsLX3yAOHfSPg/FcpPgrIQ6348uakGztqpYXAwABY89sYUWBBz+HN1W6 yuvvgkOD++iUZPrb2QFubAKVLwB6/mZX2EGSCBeSGnkheWbZbtu7g8EL4vuL1/X+Ca56pg SEWrkMNSz8wv4VZpTaVs2dstQfx9D+A= DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=casper.20170209; h=In-Reply-To:Content-Type:MIME-Version: References:Message-ID:Subject:Cc:To:From:Date:Sender:Reply-To: Content-Transfer-Encoding:Content-ID:Content-Description; bh=GqtiXAiLKRhO9WaOADcBcZ5nHd2bJ5BklFEOYKx+ttg=; b=JEwhNiz+ZbklId3UqK7BKrLp4J oqfcU+LJjvn73TUiED5/LZy7CepQsariwDMRdO6yJcHMdQkjI+sJ2a9LbUZQt1TVA9SAywJDHhw2W cIXLH0qNiOgen62ImXuvjjq27MRpGUbUArINSSIwPecrmQzd03EZdAbt07r6fgQx1y6kTMxtIYL8J 0PKdYsalrSebcnFEJ0x2kJI9+oJ4aIL8DXaP+BIKtDbrjO8/iqC0G2pGSjwVaZDIL3it4L1ctVoL/ lMmWMjxgQkqAyhOKMNOB6WOzIpOXk67rc0CrWywPWWyrhc+LdZFBH57WYpBnUocttsQgfkUaAYFCF Dpc4ndhA==; Received: from 77-249-17-89.cable.dynamic.v4.ziggo.nl ([77.249.17.89] helo=noisy.programming.kicks-ass.net) by casper.infradead.org with esmtpsa (Exim 4.98 #2 (Red Hat Linux)) id 1tN9og-0000000G5DB-0JNP; Mon, 16 Dec 2024 12:03:14 +0000 Received: by noisy.programming.kicks-ass.net (Postfix, from userid 1000) id 8FA1F30031E; Mon, 16 Dec 2024 13:03:13 +0100 (CET) Date: Mon, 16 Dec 2024 13:03:13 +0100 From: Peter Zijlstra To: Qi Zheng Cc: 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, linux-mm@kvack.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH 11/12] mm: pgtable: introduce generic __tlb_remove_table() Message-ID: <20241216120313.GE12500@noisy.programming.kicks-ass.net> References: <271e58cd4ab808c4f402539b76d5916924e2bc6f.1734164094.git.zhengqi.arch@bytedance.com> <20241216120043.GA11133@noisy.programming.kicks-ass.net> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20241216120043.GA11133@noisy.programming.kicks-ass.net> X-Rspamd-Server: rspam06 X-Rspamd-Queue-Id: A40131C000E X-Rspam-User: X-Stat-Signature: p3kg81w7x6ogpc5yspx3nq8iqr5hd18n X-HE-Tag: 1734350540-772567 X-HE-Meta: U2FsdGVkX1816De2en6ofOLu298+H+HPPtJznIezMfeQKCYYw9yiaZizpCbafuAHT//kwQ+5lKqp1h0hnLDgUlg/PvkOz1e8hvFqueIwQC/uG8MKoGs3S2RMWRIZdMZx8cBMewf0N7kX0dGR18+e91GzzRVPugB18BW+j5MHQvDnsM17Rev14K97VzVRopOPzr+pYYPD0TbllQ4N+H6jFJFxtNeM09RJ2ts27QakhESRgv+pECTI3XQl9/dLPkxusBdbk3fZJX1CQQX+KV3bxbAYLc7l/wGrm4eGxrVf3G6GEoziydR9tSPzYGgHv0PMyB8CPbd1j1cdedS2Lrt5ym2lkZH0fhLDvAdz0rW2qN54yivvm6abwgjwsX0NuiUalWlRpTQXLYdnV6F/EO5JFx57KcTttGlwYQjnnyPeVGFvDY/NpCZyxheACZsuqzyV4FgS/N7hv2hA7iB2mT7J423VSjqelPGJp7DpqBVaKW8iWldDM/lKDZmMifowMdQmBORuTAa1zC8oQ9V/Y9nu4c847wW6m5daX4RXByo6PlH9rgbri6qesqiSjHQ18I2ixS2Tp+e9Dk27TQUBxZq8dEHnpmVNdiiIyuwWDJiMiYWa1ODow8LB+nA4TpIGiAWttwTuZYKpG8PHRJ/WoV7SIfP6rHHitmkx9NfvKQDw0A/fOMoSIoLgZGLtup/Ud4Ph21Aoxh0PmlWhCWizWQRO1jXioWQBVYW6E1b6Et9F89jMFth+iUNg7TkAVdjlp79C5hCfKcXynaERsaMMCXae4Ymei0n7BQY4wkKivuVWXCXhs1nGffJWROJ7FgTpLpaBx+KGJLYCd20fcntaXfDr55nVqKImHg5S9gG+LkvDUxbZsAvCS9JE7Ku2RI8KQfFG1Zx4O+1Ga2o2vdB79ZBVctaSrbfdVDxgx4mWxw8Mt+2UTS87tNHoZVQAUhcYbC80ww9mhiTSXrsoB9KqfB0 EazVQlFl bphuly59TvOnOPzNslPsqK7TH/WAoxIWHvtXQjTHraO3Am0zyvBH1IvEwZ/dMb/G06ngx0Zfzs5S8bv3cb8Jnj9MOY5AX1ymcDWNnAmKjOKbfNOdUrJmLfvN5uDlUcDn0VItg3kQoPj0xKgZsjs4JUyx/xsbX8nJrU1j/UPs8kEWQ4ZVyqULbSPbldcH802bzA+yDJojbrPiCAXv6sB4dVSFQy3xbgFGlLn22dyQndRmx0ExSziKcbiIQUg== 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 Mon, Dec 16, 2024 at 01:00:43PM +0100, Peter Zijlstra wrote: > On Sat, Dec 14, 2024 at 05:02:57PM +0800, Qi Zheng wrote: > > > diff --git a/arch/s390/mm/pgalloc.c b/arch/s390/mm/pgalloc.c > > index c73b89811a264..3e002dea6278f 100644 > > --- a/arch/s390/mm/pgalloc.c > > +++ b/arch/s390/mm/pgalloc.c > > @@ -193,13 +193,6 @@ void page_table_free(struct mm_struct *mm, unsigned long *table) > > pagetable_dtor_free(ptdesc); > > } > > > > -void __tlb_remove_table(void *table) > > -{ > > - struct ptdesc *ptdesc = virt_to_ptdesc(table); > > - > > - pagetable_dtor_free(ptdesc); > > -} > > - > > #ifdef CONFIG_TRANSPARENT_HUGEPAGE > > static void pte_free_now(struct rcu_head *head) > > { > > > diff --git a/include/asm-generic/tlb.h b/include/asm-generic/tlb.h > > index 709830274b756..939a813023d7e 100644 > > --- a/include/asm-generic/tlb.h > > +++ b/include/asm-generic/tlb.h > > > #define MAX_TABLE_BATCH \ > > ((PAGE_SIZE - sizeof(struct mmu_table_batch)) / sizeof(void *)) > > > > +#ifndef __HAVE_ARCH_TLB_REMOVE_TABLE > > +static inline void __tlb_remove_table(void *_table) > > +{ > > + struct ptdesc *ptdesc = (struct ptdesc *)_table; > > + > > + pagetable_dtor(ptdesc); > > + pagetable_free(ptdesc); > > +} > > +#endif > > > Spot the fail... > > That said, all this ptdesc stuff is another giant trainwreck. Let me > clean that up for you. > > --- > -static inline void __tlb_remove_table(void *_table) > +static inline void __tlb_remove_table(void *table) > { > - struct ptdesc *ptdesc = (struct ptdesc *)_table; > + struct ptdesc *ptdesc = page_to_ptdesc(table); > > pagetable_dtor(ptdesc); > pagetable_free(ptdesc); And now observe that __tlb_remove_table() is identical to asm-generic/pgalloc.h pte_free(), pmd_free(), __pud_free() and __p4d_free(). And I'm sure we don't need 5 copies of this :-), wdyt?