From: Peter Zijlstra <peterz@infradead.org>
To: Mike Rapoport <rppt@kernel.org>
Cc: Qi Zheng <zhengqi.arch@bytedance.com>,
agordeev@linux.ibm.com, kevin.brodsky@arm.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,
will@kernel.org, aneesh.kumar@kernel.org, npiggin@gmail.com,
dave.hansen@linux.intel.com, 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 v3 15/17] mm: pgtable: remove tlb_remove_page_ptdesc()
Date: Fri, 3 Jan 2025 12:14:57 +0100 [thread overview]
Message-ID: <20250103111457.GC22934@noisy.programming.kicks-ass.net> (raw)
In-Reply-To: <Z2_EPmOTUHhcBegW@kernel.org>
On Sat, Dec 28, 2024 at 11:26:22AM +0200, Mike Rapoport wrote:
> On Mon, Dec 23, 2024 at 05:41:01PM +0800, Qi Zheng wrote:
> > Here we are explicitly dealing with struct page, and the following logic
> > semms strange:
> >
> > tlb_remove_page_ptdesc((tlb), (page_ptdesc(pte)));
> >
> > tlb_remove_page_ptdesc
> > --> tlb_remove_page(tlb, ptdesc_page(pt));
> >
> > So remove tlb_remove_page_ptdesc() and make callers call tlb_remove_page()
> > directly.
>
> Please don't. The ptdesc wrappers are there as a part of reducing the size
> of struct page project [1].
>
> For now struct ptdesc overlaps struct page, but the goal is to have them
> separate and always operate on struct ptdesc when working with page tables.
I don't see how the current idiotic code helps with that at all.
Fundamentally tlb_remove_page() is about removing *pages* as from a PTE,
there should not be a page-table anywhere near here *ever*.
Yes, some architectures use tlb_remove_page() for page-tables too, but
that is more or less an implementation detail that can be fixed.
So no, please keep these patches and kill this utterly idiotic code.
The only thing that should eventually care about page-tables is
tlb_remove_table(), and that takes a 'void *' and is expected to match
whatever __tlb_remove_table() does.
Flipping those to pgdesc, once its actually a thing, should be fairly
straight forward.
next prev parent reply other threads:[~2025-01-03 11:15 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-12-23 9:40 [PATCH v3 00/17] move pagetable_*_dtor() to __tlb_remove_table() Qi Zheng
2024-12-23 9:40 ` [PATCH v3 01/17] Revert "mm: pgtable: make ptlock be freed by RCU" Qi Zheng
2024-12-23 9:40 ` [PATCH v3 02/17] riscv: mm: Skip pgtable level check in {pud,p4d}_alloc_one Qi Zheng
2024-12-27 16:40 ` Palmer Dabbelt
2024-12-28 6:36 ` Qi Zheng
2024-12-23 9:40 ` [PATCH v3 03/17] asm-generic: pgalloc: Provide generic p4d_{alloc_one,free} Qi Zheng
2024-12-23 9:40 ` [PATCH v3 04/17] mm: pgtable: add statistics for P4D level page table Qi Zheng
2024-12-23 9:40 ` [PATCH v3 05/17] arm64: pgtable: use mmu gather to free p4d " Qi Zheng
2024-12-23 9:40 ` [PATCH v3 06/17] s390: pgtable: add statistics for PUD and P4D " Qi Zheng
2024-12-23 9:40 ` [PATCH v3 07/17] mm: pgtable: introduce pagetable_dtor() Qi Zheng
2024-12-23 9:40 ` [PATCH v3 08/17] arm: pgtable: move pagetable_dtor() to __tlb_remove_table() Qi Zheng
2024-12-23 9:40 ` [PATCH v3 09/17] arm64: " Qi Zheng
2024-12-23 9:40 ` [PATCH v3 10/17] riscv: " Qi Zheng
2024-12-23 9:40 ` [PATCH v3 11/17] x86: " Qi Zheng
2024-12-23 9:40 ` [PATCH v3 12/17] s390: pgtable: also move pagetable_dtor() of PxD " Qi Zheng
2024-12-23 9:40 ` [PATCH v3 13/17] mm: pgtable: introduce generic __tlb_remove_table() Qi Zheng
2024-12-23 9:41 ` [PATCH v3 14/17] mm: pgtable: move __tlb_remove_table_one() in x86 to generic file Qi Zheng
2024-12-23 9:41 ` [PATCH v3 15/17] mm: pgtable: remove tlb_remove_page_ptdesc() Qi Zheng
2024-12-28 9:26 ` Mike Rapoport
2024-12-30 3:12 ` Qi Zheng
2024-12-30 4:55 ` Andrew Morton
2024-12-30 5:01 ` Qi Zheng
2025-01-03 11:14 ` Peter Zijlstra [this message]
2025-01-06 3:53 ` Qi Zheng
2024-12-23 9:41 ` [PATCH v3 16/17] mm: pgtable: remove tlb_remove_ptdesc() Qi Zheng
2024-12-23 9:41 ` [PATCH v3 17/17] mm: pgtable: introduce generic pagetable_dtor_free() Qi Zheng
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20250103111457.GC22934@noisy.programming.kicks-ass.net \
--to=peterz@infradead.org \
--cc=agordeev@linux.ibm.com \
--cc=akpm@linux-foundation.org \
--cc=aneesh.kumar@kernel.org \
--cc=arnd@arndb.de \
--cc=dave.hansen@linux.intel.com \
--cc=david@redhat.com \
--cc=hughd@google.com \
--cc=jannh@google.com \
--cc=kevin.brodsky@arm.com \
--cc=linux-arch@vger.kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-csky@vger.kernel.org \
--cc=linux-hexagon@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-m68k@lists.linux-m68k.org \
--cc=linux-mips@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=linux-openrisc@vger.kernel.org \
--cc=linux-riscv@lists.infradead.org \
--cc=linux-s390@vger.kernel.org \
--cc=linux-sh@vger.kernel.org \
--cc=linux-um@lists.infradead.org \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=loongarch@lists.linux.dev \
--cc=lorenzo.stoakes@oracle.com \
--cc=muchun.song@linux.dev \
--cc=npiggin@gmail.com \
--cc=rientjes@google.com \
--cc=rppt@kernel.org \
--cc=ryan.roberts@arm.com \
--cc=sparclinux@vger.kernel.org \
--cc=tglx@linutronix.de \
--cc=vbabka@kernel.org \
--cc=vishal.moola@gmail.com \
--cc=will@kernel.org \
--cc=willy@infradead.org \
--cc=x86@kernel.org \
--cc=yuzhao@google.com \
--cc=zhengqi.arch@bytedance.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox