From: Alistair Popple <apopple@nvidia.com>
To: linux-mm@kvack.org
Cc: Alistair Popple <apopple@nvidia.com>,
gerald.schaefer@linux.ibm.com, dan.j.williams@intel.com,
jgg@ziepe.ca, willy@infradead.org, david@redhat.com,
linux-kernel@vger.kernel.org, nvdimm@lists.linux.dev,
linux-fsdevel@vger.kernel.org, linux-ext4@vger.kernel.org,
linux-xfs@vger.kernel.org, jhubbard@nvidia.com, hch@lst.de,
zhang.lyra@gmail.com, debug@rivosinc.com, bjorn@kernel.org,
balbirs@nvidia.com, lorenzo.stoakes@oracle.com,
linux-arm-kernel@lists.infradead.org, loongarch@lists.linux.dev,
linuxppc-dev@lists.ozlabs.org, linux-riscv@lists.infradead.org,
linux-cxl@vger.kernel.org, dri-devel@lists.freedesktop.org,
John@Groves.net
Subject: [PATCH 09/12] powerpc: Remove checks for devmap pages and PMDs/PUDs
Date: Thu, 29 May 2025 16:32:10 +1000 [thread overview]
Message-ID: <b837a9191e296e0b9f4e431979bab1f6616beab6.1748500293.git-series.apopple@nvidia.com> (raw)
In-Reply-To: <cover.541c2702181b7461b84f1a6967a3f0e823023fcc.1748500293.git-series.apopple@nvidia.com>
PFN_DEV no longer exists. This means no devmap PMDs or PUDs will be
created, so checking for them is redundant. Instead mappings of pages that
would have previously returned true for pXd_devmap() will return true for
pXd_trans_huge()
Signed-off-by: Alistair Popple <apopple@nvidia.com>
---
arch/powerpc/mm/book3s64/hash_hugepage.c | 2 +-
arch/powerpc/mm/book3s64/hash_pgtable.c | 3 +--
arch/powerpc/mm/book3s64/hugetlbpage.c | 2 +-
arch/powerpc/mm/book3s64/pgtable.c | 10 ++++------
arch/powerpc/mm/book3s64/radix_pgtable.c | 5 ++---
arch/powerpc/mm/pgtable.c | 2 +-
6 files changed, 10 insertions(+), 14 deletions(-)
diff --git a/arch/powerpc/mm/book3s64/hash_hugepage.c b/arch/powerpc/mm/book3s64/hash_hugepage.c
index 15d6f3e..cdfd4fe 100644
--- a/arch/powerpc/mm/book3s64/hash_hugepage.c
+++ b/arch/powerpc/mm/book3s64/hash_hugepage.c
@@ -54,7 +54,7 @@ int __hash_page_thp(unsigned long ea, unsigned long access, unsigned long vsid,
/*
* Make sure this is thp or devmap entry
*/
- if (!(old_pmd & (H_PAGE_THP_HUGE | _PAGE_DEVMAP)))
+ if (!(old_pmd & H_PAGE_THP_HUGE))
return 0;
rflags = htab_convert_pte_flags(new_pmd, flags);
diff --git a/arch/powerpc/mm/book3s64/hash_pgtable.c b/arch/powerpc/mm/book3s64/hash_pgtable.c
index 988948d..82d3117 100644
--- a/arch/powerpc/mm/book3s64/hash_pgtable.c
+++ b/arch/powerpc/mm/book3s64/hash_pgtable.c
@@ -195,7 +195,7 @@ unsigned long hash__pmd_hugepage_update(struct mm_struct *mm, unsigned long addr
unsigned long old;
#ifdef CONFIG_DEBUG_VM
- WARN_ON(!hash__pmd_trans_huge(*pmdp) && !pmd_devmap(*pmdp));
+ WARN_ON(!hash__pmd_trans_huge(*pmdp));
assert_spin_locked(pmd_lockptr(mm, pmdp));
#endif
@@ -227,7 +227,6 @@ pmd_t hash__pmdp_collapse_flush(struct vm_area_struct *vma, unsigned long addres
VM_BUG_ON(address & ~HPAGE_PMD_MASK);
VM_BUG_ON(pmd_trans_huge(*pmdp));
- VM_BUG_ON(pmd_devmap(*pmdp));
pmd = *pmdp;
pmd_clear(pmdp);
diff --git a/arch/powerpc/mm/book3s64/hugetlbpage.c b/arch/powerpc/mm/book3s64/hugetlbpage.c
index 83c3361..2bcbbf9 100644
--- a/arch/powerpc/mm/book3s64/hugetlbpage.c
+++ b/arch/powerpc/mm/book3s64/hugetlbpage.c
@@ -74,7 +74,7 @@ int __hash_page_huge(unsigned long ea, unsigned long access, unsigned long vsid,
} while(!pte_xchg(ptep, __pte(old_pte), __pte(new_pte)));
/* Make sure this is a hugetlb entry */
- if (old_pte & (H_PAGE_THP_HUGE | _PAGE_DEVMAP))
+ if (old_pte & H_PAGE_THP_HUGE)
return 0;
rflags = htab_convert_pte_flags(new_pte, flags);
diff --git a/arch/powerpc/mm/book3s64/pgtable.c b/arch/powerpc/mm/book3s64/pgtable.c
index 8f7d41c..4817db3 100644
--- a/arch/powerpc/mm/book3s64/pgtable.c
+++ b/arch/powerpc/mm/book3s64/pgtable.c
@@ -62,7 +62,7 @@ int pmdp_set_access_flags(struct vm_area_struct *vma, unsigned long address,
{
int changed;
#ifdef CONFIG_DEBUG_VM
- WARN_ON(!pmd_trans_huge(*pmdp) && !pmd_devmap(*pmdp));
+ WARN_ON(!pmd_trans_huge(*pmdp));
assert_spin_locked(pmd_lockptr(vma->vm_mm, pmdp));
#endif
changed = !pmd_same(*(pmdp), entry);
@@ -82,7 +82,6 @@ int pudp_set_access_flags(struct vm_area_struct *vma, unsigned long address,
{
int changed;
#ifdef CONFIG_DEBUG_VM
- WARN_ON(!pud_devmap(*pudp));
assert_spin_locked(pud_lockptr(vma->vm_mm, pudp));
#endif
changed = !pud_same(*(pudp), entry);
@@ -204,8 +203,8 @@ pmd_t pmdp_huge_get_and_clear_full(struct vm_area_struct *vma,
{
pmd_t pmd;
VM_BUG_ON(addr & ~HPAGE_PMD_MASK);
- VM_BUG_ON((pmd_present(*pmdp) && !pmd_trans_huge(*pmdp) &&
- !pmd_devmap(*pmdp)) || !pmd_present(*pmdp));
+ VM_BUG_ON((pmd_present(*pmdp) && !pmd_trans_huge(*pmdp)) ||
+ !pmd_present(*pmdp));
pmd = pmdp_huge_get_and_clear(vma->vm_mm, addr, pmdp);
/*
* if it not a fullmm flush, then we can possibly end up converting
@@ -223,8 +222,7 @@ pud_t pudp_huge_get_and_clear_full(struct vm_area_struct *vma,
pud_t pud;
VM_BUG_ON(addr & ~HPAGE_PMD_MASK);
- VM_BUG_ON((pud_present(*pudp) && !pud_devmap(*pudp)) ||
- !pud_present(*pudp));
+ VM_BUG_ON(!pud_present(*pudp));
pud = pudp_huge_get_and_clear(vma->vm_mm, addr, pudp);
/*
* if it not a fullmm flush, then we can possibly end up converting
diff --git a/arch/powerpc/mm/book3s64/radix_pgtable.c b/arch/powerpc/mm/book3s64/radix_pgtable.c
index 9f764bc..877870d 100644
--- a/arch/powerpc/mm/book3s64/radix_pgtable.c
+++ b/arch/powerpc/mm/book3s64/radix_pgtable.c
@@ -1426,7 +1426,7 @@ unsigned long radix__pmd_hugepage_update(struct mm_struct *mm, unsigned long add
unsigned long old;
#ifdef CONFIG_DEBUG_VM
- WARN_ON(!radix__pmd_trans_huge(*pmdp) && !pmd_devmap(*pmdp));
+ WARN_ON(!radix__pmd_trans_huge(*pmdp));
assert_spin_locked(pmd_lockptr(mm, pmdp));
#endif
@@ -1443,7 +1443,7 @@ unsigned long radix__pud_hugepage_update(struct mm_struct *mm, unsigned long add
unsigned long old;
#ifdef CONFIG_DEBUG_VM
- WARN_ON(!pud_devmap(*pudp));
+ WARN_ON(!pud_trans_huge(*pudp));
assert_spin_locked(pud_lockptr(mm, pudp));
#endif
@@ -1461,7 +1461,6 @@ pmd_t radix__pmdp_collapse_flush(struct vm_area_struct *vma, unsigned long addre
VM_BUG_ON(address & ~HPAGE_PMD_MASK);
VM_BUG_ON(radix__pmd_trans_huge(*pmdp));
- VM_BUG_ON(pmd_devmap(*pmdp));
/*
* khugepaged calls this for normal pmd
*/
diff --git a/arch/powerpc/mm/pgtable.c b/arch/powerpc/mm/pgtable.c
index 61df5ae..dfaa9fd 100644
--- a/arch/powerpc/mm/pgtable.c
+++ b/arch/powerpc/mm/pgtable.c
@@ -509,7 +509,7 @@ pte_t *__find_linux_pte(pgd_t *pgdir, unsigned long ea,
return NULL;
#endif
- if (pmd_trans_huge(pmd) || pmd_devmap(pmd)) {
+ if (pmd_trans_huge(pmd)) {
if (is_thp)
*is_thp = true;
ret_pte = (pte_t *)pmdp;
--
git-series 0.9.1
next prev parent reply other threads:[~2025-05-29 6:37 UTC|newest]
Thread overview: 59+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-05-29 6:32 [PATCH 00/12] mm: Remove pXX_devmap page table bit and pfn_t type Alistair Popple
2025-05-29 6:32 ` [PATCH 01/12] mm: Remove PFN_MAP, PFN_SG_CHAIN and PFN_SG_LAST Alistair Popple
2025-05-29 11:46 ` Jonathan Cameron
2025-06-04 3:22 ` Alistair Popple
2025-05-30 9:33 ` David Hildenbrand
2025-06-02 4:54 ` Christoph Hellwig
2025-06-04 3:23 ` Alistair Popple
2025-06-03 13:34 ` Jason Gunthorpe
2025-06-04 21:05 ` Dan Williams
2025-05-29 6:32 ` [PATCH 02/12] mm: Convert pXd_devmap checks to vma_is_dax Alistair Popple
2025-05-30 9:37 ` David Hildenbrand
2025-06-12 6:55 ` Alistair Popple
2025-06-03 13:35 ` Jason Gunthorpe
2025-06-05 1:37 ` Dan Williams
2025-05-29 6:32 ` [PATCH 03/12] mm/pagewalk: Skip dax pages in pagewalk Alistair Popple
2025-05-30 9:42 ` David Hildenbrand
2025-06-03 13:36 ` Jason Gunthorpe
2025-06-05 1:59 ` Dan Williams
2025-06-05 7:46 ` Christoph Hellwig
2025-06-05 7:49 ` David Hildenbrand
2025-06-05 16:21 ` Dan Williams
2025-06-12 7:02 ` Alistair Popple
2025-06-12 8:47 ` Alistair Popple
2025-06-12 14:15 ` Lorenzo Stoakes
2025-06-12 22:50 ` Alistair Popple
2025-05-29 6:32 ` [PATCH 04/12] mm: Convert vmf_insert_mixed() from using pte_devmap to pte_special Alistair Popple
2025-06-03 13:37 ` Jason Gunthorpe
2025-06-05 2:02 ` Dan Williams
2025-05-29 6:32 ` [PATCH 05/12] mm: Remove remaining uses of PFN_DEV Alistair Popple
2025-06-03 13:38 ` Jason Gunthorpe
2025-06-05 2:02 ` Dan Williams
2025-05-29 6:32 ` [PATCH 06/12] mm/gup: Remove pXX_devmap usage from get_user_pages() Alistair Popple
2025-06-03 13:47 ` Jason Gunthorpe
2025-06-05 2:04 ` Dan Williams
2025-05-29 6:32 ` [PATCH 07/12] mm: Remove redundant pXd_devmap calls Alistair Popple
2025-05-29 11:54 ` Jonathan Cameron
2025-06-02 9:33 ` David Hildenbrand
2025-06-02 12:20 ` David Hildenbrand
2025-06-03 13:48 ` Jason Gunthorpe
2025-06-05 2:35 ` Dan Williams
2025-06-05 12:09 ` Jason Gunthorpe
2025-06-05 12:21 ` David Hildenbrand
2025-06-05 16:30 ` Dan Williams
2025-06-05 17:04 ` David Hildenbrand
2025-06-05 16:22 ` Dan Williams
2025-05-29 6:32 ` [PATCH 08/12] mm/khugepaged: Remove redundant pmd_devmap() check Alistair Popple
2025-06-02 11:45 ` David Hildenbrand
2025-06-03 13:48 ` Jason Gunthorpe
2025-05-29 6:32 ` Alistair Popple [this message]
2025-06-03 13:49 ` [PATCH 09/12] powerpc: Remove checks for devmap pages and PMDs/PUDs Jason Gunthorpe
2025-05-29 6:32 ` [PATCH 10/12] mm: Remove devmap related functions and page table bits Alistair Popple
2025-06-03 13:50 ` Jason Gunthorpe
2025-05-29 6:32 ` [PATCH 11/12] mm: Remove callers of pfn_t functionality Alistair Popple
2025-06-02 4:44 ` Michael Kelley
2025-06-03 13:50 ` Jason Gunthorpe
2025-05-29 6:32 ` [PATCH 12/12] mm/memremap: Remove unused devmap_managed_key Alistair Popple
2025-06-03 13:51 ` Jason Gunthorpe
2025-06-02 10:31 ` [PATCH 00/12] mm: Remove pXX_devmap page table bit and pfn_t type David Hildenbrand
2025-06-05 1:39 ` Dan Williams
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=b837a9191e296e0b9f4e431979bab1f6616beab6.1748500293.git-series.apopple@nvidia.com \
--to=apopple@nvidia.com \
--cc=John@Groves.net \
--cc=balbirs@nvidia.com \
--cc=bjorn@kernel.org \
--cc=dan.j.williams@intel.com \
--cc=david@redhat.com \
--cc=debug@rivosinc.com \
--cc=dri-devel@lists.freedesktop.org \
--cc=gerald.schaefer@linux.ibm.com \
--cc=hch@lst.de \
--cc=jgg@ziepe.ca \
--cc=jhubbard@nvidia.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-cxl@vger.kernel.org \
--cc=linux-ext4@vger.kernel.org \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=linux-riscv@lists.infradead.org \
--cc=linux-xfs@vger.kernel.org \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=loongarch@lists.linux.dev \
--cc=lorenzo.stoakes@oracle.com \
--cc=nvdimm@lists.linux.dev \
--cc=willy@infradead.org \
--cc=zhang.lyra@gmail.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