On 9/25/25 20:01, David Hildenbrand wrote: > On 16.09.25 14:21, Balbir Singh wrote: >> Add support for splitting device-private THP folios, enabling fallback >> to smaller page sizes when large page allocation or migration fails. >> >> Key changes: >> - split_huge_pmd(): Handle device-private PMD entries during splitting >> - Preserve RMAP_EXCLUSIVE semantics for anonymous exclusive folios >> - Skip RMP_USE_SHARED_ZEROPAGE for device-private entries as they >> don't support shared zero page semantics >> >> Signed-off-by: Balbir Singh <[email protected]> >> Cc: David Hildenbrand <[email protected]> >> Cc: Zi Yan <[email protected]> >> Cc: Joshua Hahn <[email protected]> >> Cc: Rakie Kim <[email protected]> >> Cc: Byungchul Park <[email protected]> >> Cc: Gregory Price <[email protected]> >> Cc: Ying Huang <[email protected]> >> Cc: Alistair Popple <[email protected]> >> Cc: Oscar Salvador <[email protected]> >> Cc: Lorenzo Stoakes <[email protected]> >> Cc: Baolin Wang <[email protected]> >> Cc: "Liam R. Howlett" <[email protected]> >> Cc: Nico Pache <[email protected]> >> Cc: Ryan Roberts <[email protected]> >> Cc: Dev Jain <[email protected]> >> Cc: Barry Song <[email protected]> >> Cc: Lyude Paul <[email protected]> >> Cc: Danilo Krummrich <[email protected]> >> Cc: David Airlie <[email protected]> >> Cc: Simona Vetter <[email protected]> >> Cc: Ralph Campbell <[email protected]> >> Cc: Mika Penttilä <[email protected]> >> Cc: Matthew Brost <[email protected]> >> Cc: Francois Dugast <[email protected]> >> --- >> mm/huge_memory.c | 138 +++++++++++++++++++++++++++++++++-------------- >> 1 file changed, 98 insertions(+), 40 deletions(-) >> >> diff --git a/mm/huge_memory.c b/mm/huge_memory.c >> index 78166db72f4d..5291ee155a02 100644 >> --- a/mm/huge_memory.c >> +++ b/mm/huge_memory.c >> @@ -2872,16 +2872,18 @@ static void __split_huge_pmd_locked(struct >> vm_area_struct *vma, pmd_t *pmd, >> struct page *page; >> pgtable_t pgtable; >> pmd_t old_pmd, _pmd; >> - bool young, write, soft_dirty, pmd_migration = false, uffd_wp = false; >> - bool anon_exclusive = false, dirty = false; >> + bool soft_dirty, uffd_wp = false, young = false, write = false; >> + bool anon_exclusive = false, dirty = false, present = false; >> unsigned long addr; >> pte_t *pte; >> int i; >> + swp_entry_t swp_entry; > > Not renaming this variable avoids a lot of churn below. So please keep it > called "entry" in this patch. >
Ack, will fix Thanks, Balbir
