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