On Tue, Nov 25, 2025 at 02:21:16PM -0500, Peter Xu wrote:
Hi, Mike,
On Tue, Nov 25, 2025 at 08:38:38PM +0200, Mike Rapoport wrote:
From: "Mike Rapoport (Microsoft)" rppt@kernel.org
When a VMA is registered with userfaulfd in minor mode, its ->fault() method should check if a folio exists in the page cache and if yes ->fault() should call handle_userfault(VM_UFFD_MISSING).
s/MISSING/MINOR/
Thanks, fixed.
new VM_FAULT_UFFD_MINOR there instead.
Personally I'd keep the fault path as simple as possible, because that's the more frequently used path (rather than when userfaultfd is armed). I also see it slightly a pity that even with flags introduced, it only solves the MINOR problem, not MISSING.
With David's suggestion the likely path remains unchanged.
As for MISSING, let's take it baby steps. We have enough space in vm_fault_reason for UFFD_MISSING if we'd want to pull handle_userfault() from shmem and hugetlb.
If it's me, I'd simply export handle_userfault().. I confess I still don't know why exporting it is a problem, but maybe I missed something.
It's not only about export, it's also about not requiring ->fault() methods for pte-mapped memory call handle_userfault().
Only my two cents. Feel free to go with whatever way you prefer.
Thanks,
-- Peter Xu