• Paul Jackson's avatar
    [PATCH] cpusets: confine pdflush to its cpuset · 28a42b9e
    Paul Jackson authored
    This patch keeps pdflush daemons on the same cpuset as their parent, the
    kthread daemon.
    
    Some large NUMA configurations put as much as they can of kernel threads
    and other classic Unix load in what's called a bootcpuset, keeping the rest
    of the system free for dedicated jobs.
    
    This effort is thwarted by pdflush, which dynamically destroys and
    recreates pdflush daemons depending on load.
    
    It's easy enough to force the originally created pdflush deamons into the
    bootcpuset, at system boottime.  But the pdflush threads created later were
    allowed to run freely across the system, due to the necessary line in their
    startup kthread():
    
            set_cpus_allowed(current, CPU_MASK_ALL);
    
    By simply coding pdflush to start its threads with the cpus_allowed
    restrictions of its cpuset (inherited from kthread, its parent) we can
    ensure that dynamically created pdflush threads are also kept in the
    bootcpuset.
    
    On systems w/o cpusets, or w/o a bootcpuset implementation, the following
    will have no affect, leaving pdflush to run on any CPU, as before.
    Signed-off-by: default avatarPaul Jackson <pj@sgi.com>
    Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
    28a42b9e
pdflush.c 6.23 KB