linux-hexagon.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Matthew Wilcox <willy@infradead.org>
To: David Hildenbrand <david@redhat.com>
Cc: Hugh Dickins <hughd@google.com>,
	"Vishal Moola (Oracle)" <vishal.moola@gmail.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	linux-mm@kvack.org, linux-arch@vger.kernel.org,
	linux-arm-kernel@lists.infradead.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, linuxppc-dev@lists.ozlabs.org,
	linux-riscv@lists.infradead.org, linux-s390@vger.kernel.org,
	linux-sh@vger.kernel.org, sparclinux@vger.kernel.org,
	linux-um@lists.infradead.org, xen-devel@lists.xenproject.org,
	kvm@vger.kernel.org, Catalin Marinas <catalin.marinas@arm.com>,
	Huacai Chen <chenhuacai@kernel.org>,
	Geert Uytterhoeven <geert@linux-m68k.org>,
	Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
	Dinh Nguyen <dinguyen@kernel.org>,
	Jonas Bonn <jonas@southpole.se>, Claudio Imbrenda <im>
Subject: Re: [PATCH v6 00/33] Split ptdesc from struct page
Date: Wed, 28 Jun 2023 19:51:09 +0100	[thread overview]
Message-ID: <ZJyBHdcjuaykIRG9@casper.infradead.org> (raw)
In-Reply-To: <26282cb8-b6b0-f3a0-e82d-b4fec45c5f72@redhat.com>

On Wed, Jun 28, 2023 at 09:41:18AM +0200, David Hildenbrand wrote:
> I'm not a friend of these "overlays"; it all only really makes sense to me
> once we actually allocate the descriptors dynamically. Maybe some of the
> existing/ongoing conversions were different (that's why I was asking for the
> difference, as you said the "struct slab" thing was well received).
> 
> If they are primarily only unnecessary churn for now (and unclear when/how
> it will become useful), I share your opinion.

One of the reasons for doing these conversions "early" is that it helps
people who work on this code know what fields they can actually use in
their memory descriptor.  We have a _lot_ of historical baggage with
people just using random bits in struct page for their own purposes
without necessarily considering the effects on the rest of the system.

By creating specific types for each user of struct page, we can see
what's actually going on.  Before the ptdesc conversion started, I could
not have told you which bits in struct page were used by the s390 code.
I knew they were playing some fun games with the refcount (it's even
documented in the s390 code!) but I didn't know they were using ...
whetever it is; page->private to point to the kvm private data?

So maybe it is harder for MM developers right now to see what fields in
memdesc A overlap with which fields in memdesc B.  That _ought_ not to
be a concern!  We document which fields are available in each memdesc,
and have various assertions to trip when people make things not line up
any more.  There can still be problems, of course; we haven't set the
assertions quite tightly enough in some cases.

People are going to keep adding crap to struct page, and they're going
to keep misusing the crap that's in struct page.  That has to stop.

  reply	other threads:[~2023-06-28 18:51 UTC|newest]

Thread overview: 43+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-06-27  3:13 [PATCH v6 00/33] Split ptdesc from struct page Vishal Moola (Oracle)
2023-06-27  3:13 ` [PATCH v6 01/33] mm: Add PAGE_TYPE_OP folio functions Vishal Moola (Oracle)
2023-06-27  3:14 ` [PATCH v6 02/33] s390: Use _pt_s390_gaddr for gmap address tracking Vishal Moola (Oracle)
2023-06-27  3:14 ` [PATCH v6 03/33] pgtable: Create struct ptdesc Vishal Moola (Oracle)
2023-06-27 16:07   ` Peter Xu
2023-06-27 17:51     ` Vishal Moola
2023-06-27  3:14 ` [PATCH v6 04/33] mm: add utility functions for ptdesc Vishal Moola (Oracle)
2023-06-27  3:14 ` [PATCH v6 05/33] mm: Convert pmd_pgtable_page() to pmd_ptdesc() Vishal Moola (Oracle)
2023-06-27  3:14 ` [PATCH v6 06/33] mm: Convert ptlock_alloc() to use ptdescs Vishal Moola (Oracle)
2023-06-27  3:14 ` [PATCH v6 07/33] mm: Convert ptlock_ptr() " Vishal Moola (Oracle)
2023-06-27  3:14 ` [PATCH v6 08/33] mm: Convert pmd_ptlock_init() " Vishal Moola (Oracle)
2023-06-27  3:14 ` [PATCH v6 09/33] mm: Convert ptlock_init() " Vishal Moola (Oracle)
2023-06-27  3:14 ` [PATCH v6 10/33] mm: Convert pmd_ptlock_free() " Vishal Moola (Oracle)
2023-06-27  3:14 ` [PATCH v6 11/33] mm: Convert ptlock_free() " Vishal Moola (Oracle)
2023-06-27  3:14 ` [PATCH v6 12/33] mm: Create ptdesc equivalents for pgtable_{pte,pmd}_page_{ctor,dtor} Vishal Moola (Oracle)
2023-06-27  3:14 ` [PATCH v6 13/33] powerpc: Convert various functions to use ptdescs Vishal Moola (Oracle)
2023-06-27  3:14 ` [PATCH v6 14/33] x86: " Vishal Moola (Oracle)
2023-06-27  3:14 ` [PATCH v6 15/33] s390: Convert various gmap " Vishal Moola (Oracle)
2023-06-27  3:14 ` [PATCH v6 16/33] s390: Convert various pgalloc " Vishal Moola (Oracle)
2023-06-27  3:14 ` [PATCH v6 17/33] mm: Remove page table members from struct page Vishal Moola (Oracle)
2023-06-27  3:14 ` [PATCH v6 18/33] pgalloc: Convert various functions to use ptdescs Vishal Moola (Oracle)
2023-06-27  3:14 ` [PATCH v6 19/33] arm: " Vishal Moola (Oracle)
2023-06-27  3:14 ` [PATCH v6 20/33] arm64: " Vishal Moola (Oracle)
2023-06-27  3:14 ` [PATCH v6 21/33] csky: Convert __pte_free_tlb() " Vishal Moola (Oracle)
2023-06-27  3:14 ` [PATCH v6 22/33] hexagon: " Vishal Moola (Oracle)
2023-06-27  3:14 ` [PATCH v6 23/33] loongarch: Convert various functions " Vishal Moola (Oracle)
2023-06-27  3:14 ` [PATCH v6 24/33] m68k: " Vishal Moola (Oracle)
2023-06-27  3:14 ` [PATCH v6 25/33] mips: " Vishal Moola (Oracle)
2023-06-27  3:14 ` [PATCH v6 26/33] nios2: Convert __pte_free_tlb() " Vishal Moola (Oracle)
2023-06-27  3:14 ` [PATCH v6 27/33] openrisc: " Vishal Moola (Oracle)
2023-06-27  3:14 ` [PATCH v6 28/33] riscv: Convert alloc_{pmd, pte}_late() " Vishal Moola (Oracle)
2023-06-27  3:14 ` [PATCH v6 29/33] sh: Convert pte_free_tlb() " Vishal Moola (Oracle)
2023-06-27  3:14 ` [PATCH v6 30/33] sparc64: Convert various functions " Vishal Moola (Oracle)
2023-06-27  3:14 ` [PATCH v6 31/33] sparc: Convert pgtable_pte_page_{ctor, dtor}() to ptdesc equivalents Vishal Moola (Oracle)
2023-06-27  3:14 ` [PATCH v6 32/33] um: Convert {pmd, pte}_free_tlb() to use ptdescs Vishal Moola (Oracle)
2023-06-27  3:14 ` [PATCH v6 33/33] mm: Remove pgtable_{pmd, pte}_page_{ctor, dtor}() wrappers Vishal Moola (Oracle)
2023-06-27  4:44 ` [PATCH v6 00/33] Split ptdesc from struct page Hugh Dickins
2023-06-27  7:14   ` David Hildenbrand
2023-06-27 20:13     ` Hugh Dickins
2023-06-28  7:41       ` David Hildenbrand
2023-06-28 18:51         ` Matthew Wilcox [this message]
2023-06-27 15:57   ` Matthew Wilcox
2023-06-27 20:25     ` Hugh Dickins

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=ZJyBHdcjuaykIRG9@casper.infradead.org \
    --to=willy@infradead.org \
    --cc=akpm@linux-foundation.org \
    --cc=catalin.marinas@arm.com \
    --cc=chenhuacai@kernel.org \
    --cc=david@redhat.com \
    --cc=dinguyen@kernel.org \
    --cc=geert@linux-m68k.org \
    --cc=hughd@google.com \
    --cc=jonas@southpole.se \
    --cc=kvm@vger.kernel.org \
    --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-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=sparclinux@vger.kernel.org \
    --cc=tsbogend@alpha.franken.de \
    --cc=vishal.moola@gmail.com \
    --cc=xen-devel@lists.xenproject.org \
    /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;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).