On Tue, Mar 19, 2024 at 06:20:33PM +0000, Matthew Wilcox wrote:
On Tue, Mar 19, 2024 at 02:14:33PM -0400, Gregory Price wrote:
On Tue, Mar 19, 2024 at 05:52:46PM +0000, Matthew Wilcox wrote:
On Tue, Mar 19, 2024 at 01:26:09PM -0400, Gregory Price wrote:
Implement simple ktest that looks up the physical address via /proc/self/pagemap and migrates the page based on that information.
What? LOL. No.
Certainly the test is stupid and requires admin, but I could not come up an easier test to demonstrate the concept - and the docs say to include a test with all syscall proposals.
Am I missing something else important? (stupid question: of course I am, but alas I must ask it)
It's not that the test is stupid. It's the concept that's stupid.
Ok i'll bite.
The 2 major ways page-hotness is detected right now is page-faults (induced or otherwise) and things like IBS/PEBS.
page-faults cause overhead, and IBS/PEBS actually miss upwards of ~66% of all traffic (if you want the details i can dig up the presentation, but TL;DR: prefetcher traffic is missed entirely).
so OCP folks have been proposing hotness-tracking offloaded to the memory devices themselves:
https://www.opencompute.org/documents/ocp-cms-hotness-tracking-requirements-...
(it's come along further than this white paper, but i need to dig up the new information).
These devices are incapable of providing virtual addressing information, and doing reverse lookups of addresses is inordinately expensive from user space. This leaves: Do it all in a kernel task, or give user space an an interface to operate on data provided by the device.
The syscall design is mostly being posted right now to collaborate via public channels, but if the idea is so fundamentally offensive then i'll drop it and relay the opinion accordingly.
~Gregory