Re: [PATCH RFC v2 19/27] mm: mprotect: Introduce PAGE_FAULT_ON_ACCESS for mprotect(PROT_MTE)

From: David Hildenbrand
Date: Tue Nov 28 2023 - 13:00:35 EST


On 28.11.23 18:55, David Hildenbrand wrote:
On 19.11.23 17:57, Alexandru Elisei wrote:
To enable tagging on a memory range, userspace can use mprotect() with the
PROT_MTE access flag. Pages already mapped in the VMA don't have the
associated tag storage block reserved, so mark the PTEs as
PAGE_FAULT_ON_ACCESS to trigger a fault next time they are accessed, and
reserve the tag storage on the fault path.

That sounds alot like fake PROT_NONE. Would there be a way to unify hat
handling and simply reuse pte_protnone()? For example, could we special
case on VMA flags?

Like, don't do NUMA hinting in these special VMAs. Then, have something
like:

if (pte_protnone(vmf->orig_pte))
return handle_pte_protnone(vmf);


Think out loud: maybe there isn't even the need to special-case on the VMA. Arch code should know it there is something to do. If not, it surely was triggered bu NUMA hinting. So maybe that could be handled in handle_pte_protnone() quite nicely.

--
Cheers,

David / dhildenb