[Devel] [PATCH rh8 0/6] ve/sched/loadavg: loadavg virtualization

Konstantin Khorenko khorenko at virtuozzo.com
Thu Oct 22 15:54:46 MSK 2020


Current patchset is a rework of following vz7 patches:

  5655edce75a2 vzstat: Add kstat_glob.nr_unint_avg real accounting
  7ca32010adaa ve/proc/loadavg: Virtualize /proc/loadavg in Containers

  feba442cc064 sched: Call calc_load_ve() out of jiffies_lock
  3c158be41cd2 sched: Export calc_load_ve()
  a113575a6c6e sched: Make calc_global_load() return true when it's need to
		update ve statistic
  6fb0a9d805a1 sched/ve: Iterate only VE root cpu cgroups to count loadavg
  71e893d4a552 sched/ve: Use cfs_rq::h_nr_running to count loadavg
  028c54e613a3 sched: Account task_group::avenrun -> rename to
		ve/sched/loadavg: Calculate avenrun for Containers root cpu
		cgroups

  72108f28ffca ve/cgroup: do not link a CT cpu cgroup twice into ve_root_list
  8d5159d1f0d7 sched/ve: Link VE root cpu cgroups in separate list

loadavg values are virtualized in /proc/loadavg file and in sysinfo() output.

cpu cgroup::proc.loadavg file has been dropped (presents in vz7, but seems
nobody uses it)

This patchset obsoletes previously sent patches:
  sched: Account task_group::avenrun
  vzstat: Add kstat_glob.nr_unint_avg real accounting


Kirill Tkhai (2):
  ve/sched: Link VE root cpu cgroups in separate list
  sched: Make calc_global_load() return true when it's need to update ve
    statistic

Konstantin Khorenko (4):
  ve/sched/loadavg: Calculate avenrun for Containers root cpu cgroups
  ve/sysinfo/loadavg: Virtualize loadavg values in sysinfo()
  ve/proc/loadavg: Virtualize /proc/loadavg in Containers
  vzstat: Add kstat_glob.nr_unint_avg real accounting

 fs/proc/loadavg.c             | 10 +++++
 include/linux/sched.h         |  8 ++++
 include/linux/sched/loadavg.h | 12 +++++-
 include/linux/ve.h            |  8 ++++
 kernel/cgroup/cgroup.c        |  1 +
 kernel/sched/core.c           | 71 +++++++++++++++++++++++++++++++++++
 kernel/sched/loadavg.c        | 63 ++++++++++++++++++++++++++++++-
 kernel/sched/sched.h          |  5 +++
 kernel/sys.c                  |  4 --
 kernel/time/tick-common.c     |  9 ++++-
 kernel/time/tick-sched.c      |  6 ++-
 kernel/time/timekeeping.c     |  9 +++--
 kernel/time/timekeeping.h     |  2 +-
 kernel/ve/ve.c                | 16 ++++++++
 14 files changed, 211 insertions(+), 13 deletions(-)

-- 
2.28.0



More information about the Devel mailing list