Re: [RFC PATCH v2 1/7] mm: pgtable: make pte_offset_map_nolock() return pmdval

From: Qi Zheng
Date: Mon Aug 05 2024 - 22:40:48 EST


Hi David,

On 2024/8/5 22:43, David Hildenbrand wrote:
On 05.08.24 14:55, Qi Zheng wrote:
Make pte_offset_map_nolock() return pmdval so that we can recheck the
*pmd once the lock is taken. This is a preparation for freeing empty
PTE pages, no functional changes are expected.

Skimming the patches, only patch #4 updates one of the callsites (collapse_pte_mapped_thp).

In addition, retract_page_tables() and reclaim_pgtables_pmd_entry()
also used the pmdval returned by pte_offset_map_nolock().


Wouldn't we have to recheck if the PMD val changed in more cases after taking the PTL?

If not, would it make sense to have a separate function that returns the pmdval and we won't have to update each and every callsite?

pte_offset_map_nolock() had already obtained the pmdval previously, just
hadn't returned it. And updating those callsite is simple, so I think
there may not be a need to add a separate function.

Thanks,
Qi