Re: [PATCH -v2 1/2] mm: add spurious fault fixing support for huge pmd
From: David Hildenbrand
Date: Tue Oct 14 2025 - 10:38:13 EST
/* Skip spurious TLB flush for retried page fault */
if (vmf->flags & FAULT_FLAG_TRIED)
goto unlock;
/*
* This is needed only for protection faults but the arch code
* is not yet telling us if this is a protection fault or not.
* This still avoids useless tlb flushes for .text page faults
* with threads.
*/
if (vmf->flags & FAULT_FLAG_WRITE)
flush_tlb_fix_spurious_fault(vmf->vma, vmf->address,
vmf->pte);
So I don't see why it's so egregious to have the equivalent here, or actually
ideally to abstract the code entirely.
Let's definitely not duplicate such comments whereby one instance will end up bitrotting.
When talking about spurious faults I assume the educated reader will usually find the right comments -- like you easily did :P
However I agree that ...
In commit b22cc9a9c7ff ("mm/rmap: convert "enum rmap_level" to "enum
pgtable_level"") David introduced:
enum pgtable_level {
PGTABLE_LEVEL_PTE = 0,
PGTABLE_LEVEL_PMD,
PGTABLE_LEVEL_PUD,
PGTABLE_LEVEL_P4D,
PGTABLE_LEVEL_PGD,
};
Which allows for sensible abstraction.
... if there is an easier way to just unify the code and have the comments at a central place, even better.
--
Cheers
David / dhildenb