Is it possible to implement the per-node page cache for programs/libraries?
From: Shijie Huang
Date: Tue Aug 31 2021 - 23:07:56 EST
Hi Everyone,
In the NUMA, we only have one page cache for each file. For the
program/shared libraries, the
remote-access delays longer then the local-access.
So, is it possible to implement the per-node page cache for
programs/libraries?
We can do it like this:
1.) Add a new system call to control specific files to
NUMA-aware, such as:
set_numa_aware("/usr/lib/libc.so", enable);
After the system call, the page cache of libc.so has the
flags "NUMA_ENABLED"
2.) When A new process tries to setup the MMU page table for
libc.so, it will check
if NUMA_ENABLED is set. If it set, the kernel will give a
page which is bind to the process's NUMA node.
By this way, we can eliminate the remote-access for
programs/shared library.
Is this proposal ok? Or do you have a better idea?
Thanks
Huang Shijie