[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
NUMA, page color, and the page daemon
The page coloring support I've been working with on the matt-nb5-mips64 branch
has been working pretty well, except for one thing.
The page daemon currently deals with reclaiming pages without any knowledge of
page colors. But if one color is short on free pages, the page daemon may not
do anything if the other colors have a surplus.
The solution to this is to treat each color as its own collection of pages
which has its own free target, page queues, etc. The page daemon would work on
each page collection. This would mean the page daemon would need to keep a
copy of its state for each color.
NUMA architectures would need similar support since each memory region would
need to serviced by its owner (for best efficiency).
I've reorganized the page free lists from being accessed by freelist then color
to color then freelist. This simplifies a few things and cluster free pages by
color so that per-color counters can be efficiently kept.
The next step is to rework the page daemon and pd-policies to act on a
per-pgfreelist (since a pgfreelist contains all the free pages for a color). I
find the page daemon code to be some of the ugliest code in UVM.
Main Index |
Thread Index |