From: Christophe Leroy <christophe.leroy@csgroup.eu>
To: Andrew Morton <akpm@linux-foundation.org>,
Jason Gunthorpe <jgg@nvidia.com>, Peter Xu <peterx@redhat.com>
Cc: Christophe Leroy <christophe.leroy@csgroup.eu>,
linux-kernel@vger.kernel.org, linux-mm@kvack.org,
linuxppc-dev@lists.ozlabs.org
Subject: [RFC PATCH 0/8] Reimplement huge pages without hugepd on powerpc 8xx
Date: Mon, 25 Mar 2024 15:55:53 +0100 [thread overview]
Message-ID: <cover.1711377230.git.christophe.leroy@csgroup.eu> (raw)
This series reimplements hugepages with hugepd on powerpc 8xx.
Unlike most architectures, powerpc 8xx HW requires a two-level
pagetable topology for all page sizes. So a leaf PMD-contig approach
is not feasible as such.
Possible sizes are 4k, 16k, 512k and 8M.
First level (PGD/PMD) covers 4M per entry. For 8M pages, two PMD entries
must point to a single entry level-2 page table. Until now that was
done using hugepd. This series changes it to use standard page tables
where the entry is replicated 1024 times on each of the two pagetables
refered by the two associated PMD entries for that 8M page.
At the moment it has to look into each helper to know if the
hugepage ptep is a PTE or a PMD in order to know it is a 8M page or
a lower size. I hope this can me handled by core-mm in the future.
There are probably several ways to implement stuff, so feedback is
very welcome.
Christophe Leroy (8):
mm: Provide pagesize to pmd_populate()
mm: Provide page size to pte_alloc_huge()
mm: Provide pmd to pte_leaf_size()
mm: Provide mm_struct and address to huge_ptep_get()
powerpc/mm: Allow hugepages without hugepd
powerpc/8xx: Fix size given to set_huge_pte_at()
powerpc/8xx: Remove support for 8M pages
powerpc/8xx: Add back support for 8M pages using contiguous PTE
entries
arch/arm64/include/asm/hugetlb.h | 2 +-
arch/arm64/include/asm/pgtable.h | 2 +-
arch/arm64/mm/hugetlbpage.c | 2 +-
arch/parisc/mm/hugetlbpage.c | 2 +-
arch/powerpc/Kconfig | 1 -
arch/powerpc/include/asm/hugetlb.h | 13 +++-
.../include/asm/nohash/32/hugetlb-8xx.h | 54 ++++++++---------
arch/powerpc/include/asm/nohash/32/pgalloc.h | 2 +
arch/powerpc/include/asm/nohash/32/pte-8xx.h | 59 +++++++++++++------
arch/powerpc/include/asm/nohash/pgtable.h | 12 ++--
arch/powerpc/include/asm/page.h | 5 --
arch/powerpc/include/asm/pgtable.h | 1 +
arch/powerpc/kernel/head_8xx.S | 10 +---
arch/powerpc/mm/hugetlbpage.c | 23 +++++++-
arch/powerpc/mm/nohash/8xx.c | 46 +++++++--------
arch/powerpc/mm/pgtable.c | 26 +++++---
arch/powerpc/mm/pgtable_32.c | 2 +-
arch/powerpc/platforms/Kconfig.cputype | 2 +
arch/riscv/include/asm/pgtable.h | 2 +-
arch/riscv/mm/hugetlbpage.c | 2 +-
arch/sh/mm/hugetlbpage.c | 2 +-
arch/sparc/include/asm/pgtable_64.h | 2 +-
arch/sparc/mm/hugetlbpage.c | 4 +-
fs/hugetlbfs/inode.c | 2 +-
fs/proc/task_mmu.c | 8 +--
fs/userfaultfd.c | 2 +-
include/asm-generic/hugetlb.h | 2 +-
include/linux/hugetlb.h | 4 +-
include/linux/mm.h | 12 ++--
include/linux/pgtable.h | 2 +-
include/linux/swapops.h | 2 +-
kernel/events/core.c | 2 +-
mm/damon/vaddr.c | 6 +-
mm/filemap.c | 2 +-
mm/gup.c | 2 +-
mm/hmm.c | 2 +-
mm/hugetlb.c | 46 +++++++--------
mm/internal.h | 2 +-
mm/memory-failure.c | 2 +-
mm/memory.c | 19 +++---
mm/mempolicy.c | 2 +-
mm/migrate.c | 4 +-
mm/mincore.c | 2 +-
mm/pgalloc-track.h | 2 +-
mm/userfaultfd.c | 6 +-
45 files changed, 229 insertions(+), 180 deletions(-)
--
2.43.0
next reply other threads:[~2024-03-25 14:56 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-03-25 14:55 Christophe Leroy [this message]
2024-03-25 14:55 ` [RFC PATCH 1/8] mm: Provide pagesize to pmd_populate() Christophe Leroy
2024-03-25 16:19 ` Jason Gunthorpe
2024-03-25 19:05 ` Christophe Leroy
2024-03-26 15:01 ` Jason Gunthorpe
2024-03-27 9:58 ` Christophe Leroy
2024-03-27 16:57 ` Jason Gunthorpe
2024-04-03 18:24 ` Christophe Leroy
2024-04-04 11:46 ` Jason Gunthorpe
2024-05-26 9:29 ` Christophe Leroy
2024-03-25 14:55 ` [RFC PATCH 2/8] mm: Provide page size to pte_alloc_huge() Christophe Leroy
2024-03-25 14:55 ` [RFC PATCH 3/8] mm: Provide pmd to pte_leaf_size() Christophe Leroy
2024-03-25 14:55 ` [RFC PATCH 4/8] mm: Provide mm_struct and address to huge_ptep_get() Christophe Leroy
2024-03-25 16:35 ` Jason Gunthorpe
2024-05-26 9:25 ` Christophe Leroy
2024-03-25 14:55 ` [RFC PATCH 5/8] powerpc/mm: Allow hugepages without hugepd Christophe Leroy
2024-03-25 14:55 ` [RFC PATCH 6/8] powerpc/8xx: Fix size given to set_huge_pte_at() Christophe Leroy
2024-03-25 14:56 ` [RFC PATCH 7/8] powerpc/8xx: Remove support for 8M pages Christophe Leroy
2024-03-25 14:56 ` [RFC PATCH 8/8] powerpc/8xx: Add back support for 8M pages using contiguous PTE entries Christophe Leroy
2024-03-25 16:38 ` [RFC PATCH 0/8] Reimplement huge pages without hugepd on powerpc 8xx Jason Gunthorpe
2024-04-11 16:15 ` Peter Xu
2024-04-12 14:08 ` Christophe Leroy
2024-04-12 14:30 ` Peter Xu
2024-04-15 19:12 ` Christophe Leroy
2024-04-16 10:58 ` Christophe Leroy
2024-04-16 19:40 ` Peter Xu
2024-05-17 14:27 ` Oscar Salvador
2024-05-22 9:08 ` Christophe Leroy
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=cover.1711377230.git.christophe.leroy@csgroup.eu \
--to=christophe.leroy@csgroup.eu \
--cc=akpm@linux-foundation.org \
--cc=jgg@nvidia.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=peterx@redhat.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;
as well as URLs for NNTP newsgroup(s).