• Nina Schiff's avatar
    cgroups: Allow dynamically changing net_classid · 3b13758f
    Nina Schiff authored
    The classid of a process is changed either when a process is moved to
    or from a cgroup or when the net_cls.classid file is updated.
    Previously net_cls only supported propogating these changes to the
    cgroup's related sockets when a process was added or removed from the
    cgroup. This means it was neccessary to remove and re-add all processes
    to a cgroup in order to update its classid. This change introduces
    support for doing this dynamically - i.e. when the value is changed in
    the net_cls_classid file, this will also trigger an update to the
    classid associated with all sockets controlled by the cgroup.
    This mimics the behaviour of other cgroup subsystems.
    net_prio circumvents this issue by storing an index into a table with
    each socket (and so any updates to the table, don't require updating
    the value associated with the socket). net_cls, however, passes the
    socket the classid directly, and so this additional step is needed.
    Signed-off-by: default avatarNina Schiff <ninasc@fb.com>
    Acked-by: default avatarTejun Heo <tj@kernel.org>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    3b13758f
netclassid_cgroup.c 2.78 KB