All Virtuozzo development lists (kernel + QEMU)
 help / color / mirror / Atom feed
From: Konstantin Khorenko <khorenko@virtuozzo.com>
Subject: [Devel] [PATCH RHEL10 COMMIT] sched: move MAX_CPU_RATE out of CONFIG_CFS_CPULIMIT
Date: Thu, 20 Aug 2026 18:57:42 +0200	[thread overview]
Message-ID: <202608201657.67KGvgRP829119@hci8VM.finist.virtuozzo.com> (raw)
In-Reply-To: <20260625220832.2201873-1-eva.kurchatova@virtuozzo.com>

The commit is pushed to "branch-rh10-6.12.0-211.39.1.16.x.vz10-ovz" and will appear at git at bitbucket.org:openvz/vzkernel.git
after rh10-6.12.0-211.39.1.16.6.vz10
------>
commit 6ced1cd98dfd43facb3c9de5019ebc25fd7d25fb
Author: Eva Kurchatova <eva.kurchatova@virtuozzo.com>
Date:   Thu Aug 20 18:43:16 2026 +0200

    sched: move MAX_CPU_RATE out of CONFIG_CFS_CPULIMIT
    
    MAX_CPU_RATE is the scale of task_group::cpu_rate, but it was defined in
    the middle of the body of struct task_group, inside the block guarded by
    CONFIG_CFS_CPULIMIT.  cpu_cgroup_update_vcpustat() uses it to normalize
    the per-vcpu usage reported in a Container's /proc/stat, and that code is
    compiled unconditionally, so CONFIG_CFS_CPULIMIT=n does not build:
    
      kernel/sched/cpuacct.c: error: 'MAX_CPU_RATE' undeclared
                              (first use in this function)
    
    x86_64 defconfig is exactly such a configuration: CONFIG_VE defaults to
    y, while CONFIG_CFS_BANDWIDTH - the only thing that selects
    CONFIG_CFS_CPULIMIT - is off.
    
    Move the definition out of the struct and out of the ifdef.  Nothing
    else in cpu_cgroup_update_vcpustat() needs CONFIG_CFS_CPULIMIT:
    tg_cpu_rate() and tg_nr_cpus() already degrade to "no limit configured",
    so the vcpustat calculation keeps working and a Container simply gets
    num_online_cpus() vcpus running at full rate.  Compiling the calculation
    out instead would leave tg->vcpustat all zeroes, and /proc/stat inside a
    Container would report no CPU time at all.
    
    Fixes: 4e99efb641da ("sched: Port CONFIG_CFS_CPULIMIT feature")
    Feature: sched: ability to limit number of CPUs available to a CT
    https://virtuozzo.atlassian.net/browse/VSTOR-134732
    Signed-off-by: Eva Kurchatova <eva.kurchatova@virtuozzo.com>
    Signed-off-by: Konstantin Khorenko <khorenko@virtuozzo.com>
---
 kernel/sched/sched.h | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/kernel/sched/sched.h b/kernel/sched/sched.h
index 1a8a0ff522cb..2a3f73933456 100644
--- a/kernel/sched/sched.h
+++ b/kernel/sched/sched.h
@@ -533,12 +533,19 @@ struct task_group {
 #endif
 
 #ifdef CONFIG_CFS_CPULIMIT
-#define MAX_CPU_RATE 1024
 	unsigned long cpu_rate;
 	unsigned int nr_cpus;
 #endif
 };
 
+/*
+ * The scale of task_group::cpu_rate: 1024 means one full CPU.  It is also
+ * used to normalize the per-vcpu usage reported in a Container's /proc/stat,
+ * which is done regardless of CONFIG_CFS_CPULIMIT, so keep the definition
+ * unconditional.
+ */
+#define MAX_CPU_RATE 1024
+
 #ifdef CONFIG_GROUP_SCHED_WEIGHT
 #define ROOT_TASK_GROUP_LOAD	NICE_0_LOAD
 

  parent reply	other threads:[~2026-08-20 16:57 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <20260625220832.2201873-1-eva.kurchatova@virtuozzo.com>
2026-08-20 16:57 ` [Devel] [PATCH RHEL10 COMMIT] sched/loadavg: fix build with CONFIG_CGROUP_SCHED=n Konstantin Khorenko
2026-08-20 16:57 ` [Devel] [PATCH RHEL10 COMMIT] sched/core: guard cpu_cgrp_subsys.depends_on with CONFIG_CGROUP_CPUACCT Konstantin Khorenko
2026-08-20 16:57 ` Konstantin Khorenko [this message]
2026-08-20 16:57 ` [Devel] [PATCH RHEL10 COMMIT] sched/cpuacct: guard ve_root_tg() with CONFIG_CFS_CPULIMIT Konstantin Khorenko
     [not found] ` <20260625220832.2201873-2-eva.kurchatova@virtuozzo.com>
2026-08-21 14:03   ` [Devel] [PATCH vz10 02/14] mm: fix VZ build errors with CONFIG_MEMCG=n Konstantin Khorenko
2026-08-21 16:48 ` [Devel] [PATCH vz10 01/14] sched: fix VZ build errors with CONFIG_CGROUP_SCHED=n Konstantin Khorenko
2026-08-21 16:36 [Devel] [PATCH vz10 03/32] sched: move MAX_CPU_RATE out of CONFIG_CFS_CPULIMIT Konstantin Khorenko
2026-08-21 16:42 ` [Devel] [PATCH RHEL10 COMMIT] " Konstantin Khorenko

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=202608201657.67KGvgRP829119@hci8VM.finist.virtuozzo.com \
    --to=khorenko@virtuozzo.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.