tech-kern archive

[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.

Home | Main Index | Thread Index | Old Index