• C
    [PATCH] Periodically drain non local pagesets · 4ae7c039
    Christoph Lameter 提交于
    The pageset array can potentially acquire a huge amount of memory on large
    NUMA systems.  F.e.  on a system with 512 processors and 256 nodes there
    will be 256*512 pagesets.  If each pageset only holds 5 pages then we are
    talking about 655360 pages.With a 16K page size on IA64 this results in
    potentially 10 Gigabytes of memory being trapped in pagesets.  The typical
    cases are much less for smaller systems but there is still the potential of
    memory being trapped in off node pagesets.  Off node memory may be rarely
    used if local memory is available and so we may potentially have memory in
    seldom used pagesets without this patch.
    
    The slab allocator flushes its per cpu caches every 2 seconds.  The
    following patch flushes the off node pageset caches in the same way by
    tying into the slab flush.
    
    The patch also changes /proc/zoneinfo to include the number of pages
    currently in each pageset.
    Signed-off-by: NChristoph Lameter <clameter@sgi.com>
    Signed-off-by: NAndrew Morton <akpm@osdl.org>
    Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
    4ae7c039
slab.c 81.5 KB