• Tejun Heo's avatar
    cpuset: consider dying css as offline · 41c25707
    Tejun Heo authored
    In most cases, a cgroup controller don't care about the liftimes of
    cgroups.  For the controller, a css becomes online when ->css_online()
    is called on it and offline when ->css_offline() is called.
    
    However, cpuset is special in that the user interface it exposes cares
    whether certain cgroups exist or not.  Combined with the RCU delay
    between cgroup removal and css offlining, this can lead to user
    visible behavior oddities where operations which should succeed after
    cgroup removals fail for some time period.  The effects of cgroup
    removals are delayed when seen from userland.
    
    This patch adds css_is_dying() which tests whether offline is pending
    and updates is_cpuset_online() so that the function returns false also
    while offline is pending.  This gets rid of the userland visible
    delays.
    Signed-off-by: default avatarTejun Heo <tj@kernel.org>
    Reported-by: default avatarDaniel Jordan <daniel.m.jordan@oracle.com>
    Link: http://lkml.kernel.org/r/327ca1f5-7957-fbb9-9e5f-9ba149d40ba2@oracle.com
    Cc: stable@vger.kernel.org
    Signed-off-by: default avatarTejun Heo <tj@kernel.org>
    41c25707
cpuset.c 76.6 KB