[LSF/MM/BPF TOPIC] Per-process page size
David Hildenbrand (Arm)
david at kernel.org
Fri Feb 20 08:50:44 PST 2026
On 2/20/26 05:49, Matthew Wilcox wrote:
> On Tue, Feb 17, 2026 at 04:30:59PM +0100, David Hildenbrand (Arm) wrote:
>> In a private conversation I also raised that some situations might make it
>> impossible/hard to drop+re-read.
>>
>> One example I cam up with if a folio is simply long-term R/O pinned. But I
>> am also not quite sure how mlock might interfere here.
>>
>> So yes, I think the page cache is likely the one of the most
>> problematic/messy thing to handle.
>
> So what if we convert to max-supported-order the first time somebody
> calls mmap on a given file? Most files are never mmaped, so it won't
> affect them.
Yes!
> And files that are mmaped are generally not written to.
Well, let's say many mmaped files are not written to. :)
> So there should not be much in the page cache for the common case.
You'd assume many files to either get mmaped or read/written, yes.
> And if no pages from the file have been mmaped yet, they cannot be pinned
> or mlocked.
Is there some other way for someone to block a page from getting evicted
from the pagecache?
We have this memfd_pin_folios() thing, but I don't think we have
something comparable for ordinary pagecache files.
... putting them into a pipe and never reading from the pipe maybe (I
assume that's what splice() does, but not sure if it actually places the
pages in there or whether it creates a copy first)?
But yes, doing the conversion on first mmap() should handle mlock+gup.
--
Cheers,
David
More information about the linux-arm-kernel
mailing list