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 D5B02E7717F for ; Mon, 16 Dec 2024 12:05:37 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 655936B008C; Mon, 16 Dec 2024 07:05:37 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 605016B0092; Mon, 16 Dec 2024 07:05:37 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 4CCCB6B0093; Mon, 16 Dec 2024 07:05:37 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id 30CAA6B008C for ; Mon, 16 Dec 2024 07:05:37 -0500 (EST) Received: from smtpin10.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id CD7C880CCD for ; Mon, 16 Dec 2024 12:05:36 +0000 (UTC) X-FDA: 82900691790.10.68D3013 Received: from desiato.infradead.org (desiato.infradead.org [90.155.92.199]) by imf21.hostedemail.com (Postfix) with ESMTP id D03551C0005 for ; Mon, 16 Dec 2024 12:04:38 +0000 (UTC) Authentication-Results: imf21.hostedemail.com; dkim=pass header.d=infradead.org header.s=desiato.20200630 header.b="i1wU3P/a"; spf=none (imf21.hostedemail.com: domain of peterz@infradead.org has no SPF policy when checking 90.155.92.199) 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=1734350715; 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=0a6gqi/M7QeD7mYJi0bT1FRijLHAMtMuAX0Bpe1nmmI=; b=IgMnd0Yf8GxoU8IkjCiK4UgkvTL63KR5booYVN7UONTLZpl+rxdIuIVdG0DffX4uNREArQ fzfg+ZNehAx1DdY/BmfyG16rcpTSwi2/Z7p9uYB5KF0NiNZnKtB7E3OwHWPi+FK9tqJUOz r8pqiL78TIFeLB71JhCc7DU8hPqTU80= ARC-Authentication-Results: i=1; imf21.hostedemail.com; dkim=pass header.d=infradead.org header.s=desiato.20200630 header.b="i1wU3P/a"; spf=none (imf21.hostedemail.com: domain of peterz@infradead.org has no SPF policy when checking 90.155.92.199) smtp.mailfrom=peterz@infradead.org; dmarc=none ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1734350715; a=rsa-sha256; cv=none; b=s4i8b0S6iT3zTfG4L6oA42f9illkKDgWC4QV1JkYKvnjDjcx/QbsNIvYtFOiX/VFVpVTc9 zT56RH2zPQ7X6/JBVGsQjLLUuVqZW5FOWZfNOWCMcruLBEiWlEBx/dTIjjYrBCALvU0Xb4 cE7YQzS2VE3/sl3mIJmGoem6X8K2OGQ= DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=desiato.20200630; 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=0a6gqi/M7QeD7mYJi0bT1FRijLHAMtMuAX0Bpe1nmmI=; b=i1wU3P/ay/dEXRpLbunqso6Tun 1L9kVXV5e9PBqeqxuIMs4eRqVadNU+v7p9Tz7geWZOXw7pCi8d+2hAmTy9Mnt6dBE3o1vIhAZIfB1 UH+T33l459Ibifs8EUbAV0W2cnZlUP2kZxamXjw4xy9KAGq1AVyyxboM9jo2gINSgLwE4cwMYRcgJ HdHeKd6ctnok9TZ5YYvU6CZykrOtlIgyRMdfhmVz60R9pLxwa0l3wM44/1FhdwTIQtJ1xK3uXj+Ob UU6KKTT+T9irkyy5nd7+TAtp1tTWKrjNzGdtMnQtVvjKuO8HmVS0gxgpv5+fODY6lGpbJG+kH4Ckt jeEeGGWQ==; Received: from 77-249-17-89.cable.dynamic.v4.ziggo.nl ([77.249.17.89] helo=noisy.programming.kicks-ass.net) by desiato.infradead.org with esmtpsa (Exim 4.98 #2 (Red Hat Linux)) id 1tN9qo-00000004q5n-3NHW; Mon, 16 Dec 2024 12:05:27 +0000 Received: by noisy.programming.kicks-ass.net (Postfix, from userid 1000) id 1542E30031E; Mon, 16 Dec 2024 13:05:26 +0100 (CET) Date: Mon, 16 Dec 2024 13:05:26 +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: <20241216120526.GF12500@noisy.programming.kicks-ass.net> References: <271e58cd4ab808c4f402539b76d5916924e2bc6f.1734164094.git.zhengqi.arch@bytedance.com> <20241216120043.GA11133@noisy.programming.kicks-ass.net> <20241216120313.GE12500@noisy.programming.kicks-ass.net> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20241216120313.GE12500@noisy.programming.kicks-ass.net> X-Rspamd-Server: rspam05 X-Stat-Signature: 1gz7qroyh7idz59yukqfuhak3q96ybtj X-Rspamd-Queue-Id: D03551C0005 X-Rspam-User: X-HE-Tag: 1734350678-727059 X-HE-Meta: U2FsdGVkX1+WDPonBFJXCRGzPTFiSre8PZTuuckuyOcbvXandB9AS7wCFGk9vtcMHjXFIcS7xflOCJ8RtbKbBbY8tzKfoz6JVw+aJzSVu1TsNOSuaGv3KyOcCojrZ11sC8OnEKt/5LyFAACbFbgqvZHf2HOUZOzeQldmVDC2zONS8CkWEVaZNRdC6AYDE1X3uibo4j03r9PbsLmgiipRqh3O8/+WB7CA1admeQPVOO14K0nPAvgOVcLnvz2rwWlKNBasdCcHDg+L++ywn61dFrvRg6VWqJ8tJI1SDfac/ZlqGpVH7WnJ+TuNBfBAaHEmjVhmBX3aENe95DWlQ0TomXyBNW29gt6jB7eOfgRspZALEHkujfJGdIXTcRN3CiB67c45l/1gxDO8BN26qP78oDakRl/KRP5mQD9pjOWEddWXseI+X/cH6ubIruIF8cslo5EysYoBL+wMVknKFGuO5b85PwENjT7H+9IuX3l7brrsh2LzuD/ixqYS+ol/XEBrfZME51qOsK5IpwNCNyOWjs9UyRfLmmO7HVqkQRinwX/0yjcoh+90KSuv7h67ngsOvTplDk12+l8GhCMYJAJCgxdTrp2SeGrqKtvon7WYEsNHyrL6dLVPCx0w8JHsVFq5cmsnlb1lkmE5GVw5KwZ/4anuznaVOnhk3VHaq4vbzmztmBW1pOHCEZc6e4/RQMctmMTwJ8n5Z6r7dpShXs3py7STCE8nVMk++z8kD5+w4YyUudPAjXhxXdl0a0Wi0ukVt7HJ+5oug9W2XbZR9uIkycvJlIEmxab0htNkibnlIIEc8fsuBE6oKHRjPgcOcW43yyZH++PoOI8Z4O6OGK9nWEH0LWoXmdNpG8mg6OuFO9JcjB6w+5Ts5VFpeslBPzEpEug9P9YNwUXilrdZcbjho2f7uEQ/79NiEaYM/UubxwuLua2+PXnfAPy8qsr3nMnk2mMlZJ7kIc1o0aOeUrt gbiB4qp1 7aGWhFc36wqucDEhp64AIVijEnJH/TeWM4VE7k9wRAveBcQw1zayY8njHF9K1waUP0ou+R38bDxa+zAPSLfc2wQgKcD5nUcG7rmahZ94r7LKgK7xMRNMtNUVIGE2zlKLBtXjVdTfwulYvf8ob8PgdydgHdeUl17leCRe2V1cvj+0kUgwT+UCf4CQOD2KaBVKI73N7sbYwT2yb0MEzN/DGFGSIb22WP/44XLBsClT7ASPuWFCkvypO7Etym+kndxl6dVNlwPXaAjJsYVY4tvCSL8ggubgvGtRfSCrWlGeB2oBISB+O7B267xiT7lIkG5WGH0USJYd6PDbNcJI24I4DEl89ZDKOxh+GmSWlZIIEU23tQks= 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:03:13PM +0100, Peter Zijlstra wrote: > 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? Argh, nearly, it has the whole page vs virt nonsense still going on. Bah.