On Tue, May 06, 2025 at 12:30:54PM -0700, Nicolin Chen wrote:
So, if I understand it correctly, what we want to achieve is to have maple tree to manage all PFN ranges. And each range holds the same entry, a structure that we can use to verify the sanity of an mmap? Let's say for PFNs A->B, the tree should store the structure between index A and index B (inclusive)?
And tell you what has been mmap'd.
If this is correct, mtree_alloc_range() that is given a range of [0, ULONG_MAX] would allocate the PFN range from the lowest index (i.e. 0) instead of PFN A?
mtree_alloc_range() returns a new range of PFNs that does not overlap with any existing range. It should always be called on O->U32_MAX (for 32bit uapi compat) and it should always pick the range to use.
Jason