[PATCH v3 1/5] mm: Optimize mprotect() by batch-skipping PTEs
Dev Jain
dev.jain at arm.com
Thu May 22 00:47:02 PDT 2025
On 22/05/25 12:43 pm, David Hildenbrand wrote:
>
>>> ... likely with a better function name,
>>
>>
>> I want to be able to reuse the folio from vm_normal_folio(), and we also
>> need
>>
>> nr_ptes to know how much to skip, so if there is no objection in passing
>> int *nr_ptes,
>>
>> or struct folio **foliop to this new function, then I'll carry on with
>> your suggestion :)
>
> Can you quickly prototype what you have in mind and paste it here?
> Will make it easier :)
if (prot_numa)
func(vma, addr, oldpte, &nr);
struct folio *folio func(vma, addr, oldpte, int *nr)
{
if (pte_protnone(oldpte))
*nr = 1, return NULL;
folio = vm_normal_folio();
if (!folio)
*nr =1, return NULL;
if the other skipping conditions happen, goto skip_batch, return
folio and set *nr = batch
if (sysctl.....) {
skip_batch:
*nr = mprotect_batch();
}
if (folio_use_access_time)....
return folio;
}
More information about the linux-arm-kernel
mailing list