Re: [RFC PATCH 0/6] Add support for shared PTEs across processes

From: Khalid Aziz
Date: Tue Jan 18 2022 - 17:47:42 EST


On 1/18/22 14:46, Matthew Wilcox wrote:
On Tue, Jan 18, 2022 at 01:41:40PM -0800, Dave Hansen wrote:
On 1/18/22 1:19 PM, Khalid Aziz wrote:
- Starting address must be aligned to pgdir size (512GB on x86_64)

How does this work on systems with 5-level paging where a top-level page
table entry covers 256TB? Is the alignment requirement 512GB or 256TB?
How does userspace figure out which alignment requirement it is subject to?

The original idea was any power of two, naturally aligned, >= PAGE_SIZE,
but I suspect Khalid has simplified it for this first implementation.


Hi Dave,

Yes, this is mostly to keep code somewhat simpler. Large regions make it easier to manage the separate set of shared VMAs. Part of the exploration here is to see what size regions work for other people. This initial prototype is x86 only and for now I am using PGDIR_SIZE. I see your point about how would userspace figure out alignment since this should across all architectures and PGDIR_SIZE/PMD_SIZE/PUD_SIZE are not the same across architectures. We can choose a fixed size and alignment. I would like to keep the region size at 2^20 pages or larger to minimize having to manage large number of small shared regions if those regions are not contiguous. Do you have any suggestion?

Thanks for your feedback.

--
Khalid