On 12/5/25 19:35, John Hubbard wrote:
On 12/5/25 8:58 AM, Kalyazin, Nikita wrote:
From: Patrick Roy patrick.roy@linux.dev
Add AS_NO_DIRECT_MAP for mappings where direct map entries of folios are set to not present. Currently, mappings that match this description are secretmem mappings (memfd_secret()). Later, some guest_memfd configurations will also fall into this category.
Reject this new type of mappings in all locations that currently reject secretmem mappings, on the assumption that if secretmem mappings are rejected somewhere, it is precisely because of an inability to deal with folios without direct map entries, and then make memfd_secret() use AS_NO_DIRECT_MAP on its address_space to drop its special vma_is_secretmem()/secretmem_mapping() checks.
This drops a optimization in gup_fast_folio_allowed() where secretmem_mapping() was only called if CONFIG_SECRETMEM=y. secretmem is enabled by default since commit b758fe6df50d ("mm/secretmem: make it on by default"), so the secretmem check did not actually end up elided in most cases anymore anyway.
The above paragraph can be part (most) of a commit description for a separate patch for the gup aspects. Let's split it out that way, because it is a distinct change, and the diffs can stand alone from this patch here.
I assume the separated gup change will be ordered as the earlier one, because keeping "check_secretmem" together with newly checking mapping_no_direct_map() would be incorrect. Make sense.
thanks,