[Devel] [PATCH VZ8 v3 00/14] Port release_agent virtualization from vz7

Valeriy Vdovin valeriy.vdovin at virtuozzo.com
Tue Feb 16 11:44:22 MSK 2021


This patchset ports virtualization of cgroup release_agent
virtualization from vz7.

Major challanges of porting are differences between vz7 and vz8 cgroup
implementations:
- transition of cgroups to kernfs
- slightly changed locking scheme, which relies on css_set_lock in
  places, previously relied on cgroup_mutex.

There is a small number of patches that have been ported without
modifications, but most of the patches had suffered a lot of
modification due to the factors described above.

v1:
  - original patchset
v2:
  - removed port of CGRP_REMOVED due to the use of CSS_ONLINE in VZ8 for
    same reason
  - changed ve_set(get)_release_agent_path signature for more optimal
  - added ve->is_running check before calling userspace executable
v3:
  - use goto after check for ve->is_running in last patch

Valeriy Vdovin (14):
  ve/cgroup: unmark ve-root cgroups at container stop
  cgroup/cfs: added 'activate' option to cgroup_add_file
  ve/cgroup: implemented per-ve workqueue.
  cgroup: added rcu node string wrapper for in-cgroup usage. This will
    be used in further patches in same patchset.
  cgroup: exported put_css_set and get_css_set to cgroup.h
  ve/cgroup: Added ve_owner field to cgroup
  cgroup/ve: added helper function to get ve-related cgroup paths
  ve/cgroup: moved release_agent from system_wq to per-ve workqueues
  ve/cgroup: private per-cgroup-root data container
  ve/cgroup: set release_agent_path for root cgroups separately
  ve/cgroup: added release_agent to each container root cgroup.
  ve/cgroup: At cgroup_mark(unmark)_ve_roots skip non-virtualized roots
  cgroup/ve: pass cgroup_root to ve_set(get)_release_agent
  cgroup/ve: do not run release_agent on non-running ve

 include/linux/cgroup-defs.h     |  24 +++-
 include/linux/cgroup.h          |  38 ++++-
 include/linux/ve.h              |  28 ++++
 kernel/cgroup/cgroup-internal.h |  31 +---
 kernel/cgroup/cgroup-v1.c       | 235 ++++++++++++++++++++++++-------
 kernel/cgroup/cgroup.c          | 212 ++++++++++++++++++++++++++--
 kernel/ve/ve.c                  | 242 +++++++++++++++++++++++++++++++-
 7 files changed, 707 insertions(+), 103 deletions(-)


-- 
2.27.0



More information about the Devel mailing list