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

David Hildenbrand
2023-11-28T18:00:53Z

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