Re: [PATCH -next v2 09/19] mm: mprotect: use a folio in change_pte_range()

From: Kefeng Wang
Date: Fri Oct 13 2023 - 23:12:06 EST




On 2023/10/13 23:13, Matthew Wilcox wrote:
On Fri, Oct 13, 2023 at 04:55:53PM +0800, Kefeng Wang wrote:
Use a folio in change_pte_range() to save three compound_head() calls.

Yes, but here we have a change of behaviour, which should be argued
is desirable. Before if a partial THP was mapped, or a fs large
folio, we would do this to individual pages. Now we're doing it to the
entire folio. Is that desirable? I don't have the background to argue
either way.

The Huang's replay in v1[1] already mentioned this, we only use last_cpupid from head page, and large folio won't be handled from
do_numa_page(), and if large folio numa balancing is supported,
we could migrate the entire large folio mapped only one process,
or maybe split the large folio mapped multi-processes, and when
split it, we will copy the last_cpupid from head to the tail page.
Anyway, I think this change or the wp_page_reuse() won't break
current numa balancing.

Thanks.


[1]https://lore.kernel.org/linux-mm/874jixhfeu.fsf@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/

@@ -157,7 +159,7 @@ static long change_pte_range(struct mmu_gather *tlb,
continue;
if (sysctl_numa_balancing_mode & NUMA_BALANCING_MEMORY_TIERING &&
!toptier)
- xchg_page_access_time(page,
+ folio_xchg_access_time(folio,
jiffies_to_msecs(jiffies));
}