• Paul Jackson's avatar
    [PATCH] cpuset: top_cpuset tracks hotplug changes to cpu_online_map · 4c4d50f7
    Paul Jackson authored
    Change the list of cpus allowed to tasks in the top (root) cpuset to
    dynamically track what cpus are online, using a CPU hotplug notifier.  Make
    this top cpus file read-only.
    On systems that have cpusets configured in their kernel, but that aren't
    actively using cpusets (for some distros, this covers the majority of
    systems) all tasks end up in the top cpuset.
    If that system does support CPU hotplug, then these tasks cannot make use
    of CPUs that are added after system boot, because the CPUs are not allowed
    in the top cpuset.  This is a surprising regression over earlier kernels
    that didn't have cpusets enabled.
    In order to keep the behaviour of cpusets consistent between systems
    actively making use of them and systems not using them, this patch changes
    the behaviour of the 'cpus' file in the top (root) cpuset, making it read
    only, and making it automatically track the value of cpu_online_map.  Thus
    tasks in the top cpuset will have automatic use of hot plugged CPUs allowed
    by their cpuset.
    Thanks to Anton Blanchard and Nathan Lynch for reporting this problem,
    driving the fix, and earlier versions of this patch.
    Signed-off-by: default avatarPaul Jackson <pj@sgi.com>
    Cc: Nathan Lynch <ntl@pobox.com>
    Cc: Anton Blanchard <anton@samba.org>
    Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
cpuset.c 73.2 KB