The shared mapping examples make the address-space multiplier much clearer than the usual PTE-to-page ratio. One distinction I would make explicit in the checklist is processes versus threads: threads sharing an address space do not each introduce another complete set of page tables for that mapping.
A useful companion measurement would compare a threaded worker pool with separate processes that touch the same shared region. Recording VmPTE once per address space, alongside resident data and which pages were actually touched, would help distinguish duplicated translation structures from a large virtual reservation that has not populated them yet.
The shared mapping examples make the address-space multiplier much clearer than the usual PTE-to-page ratio. One distinction I would make explicit in the checklist is processes versus threads: threads sharing an address space do not each introduce another complete set of page tables for that mapping.
A useful companion measurement would compare a threaded worker pool with separate processes that touch the same shared region. Recording VmPTE once per address space, alongside resident data and which pages were actually touched, would help distinguish duplicated translation structures from a large virtual reservation that has not populated them yet.