[RFC PATCH 2/2] sched: Put task_group::idle under CONFIG_GROUP_SCHED_WEIGHT

From: Yu Liao
Date: Mon Sep 23 2024 - 09:59:11 EST


When build with CONFIG_GROUP_SCHED_WEIGHT && !CONFIG_FAIR_GROUP_SCHED,
the idle member is not defined:

kernel/sched/ext.c:3701:16: error: 'struct task_group' has no member named 'idle'
3701 | if (!tg->idle)
| ^~

Fix this by putting 'idle' under new CONFIG_GROUP_SCHED_WEIGHT, this
doesn't modify the layout of struct task_group.

Fixes: e179e80c5d4f ("sched: Introduce CONFIG_GROUP_SCHED_WEIGHT")
Reported-by: kernel test robot <lkp@xxxxxxxxx>
Closes: https://lore.kernel.org/oe-kbuild-all/202409220859.UiCAoFOW-lkp@xxxxxxxxx/
Signed-off-by: Yu Liao <liaoyu15@xxxxxxxxxx>
---
kernel/sched/sched.h | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/kernel/sched/sched.h b/kernel/sched/sched.h
index 91d14061fdca..fb871677ba22 100644
--- a/kernel/sched/sched.h
+++ b/kernel/sched/sched.h
@@ -438,11 +438,14 @@ struct task_group {
/* runqueue "owned" by this group on each CPU */
struct cfs_rq **cfs_rq;
unsigned long shares;
+#endif

+#ifdef CONFIG_GROUP_SCHED_WEIGHT
/* A positive value indicates that this is a SCHED_IDLE group. */
int idle;
+#endif

-#ifdef CONFIG_SMP
+#if defined(CONFIG_FAIR_GROUP_SCHED) && defined(CONFIG_SMP)
/*
* load_avg can be heavily contended at clock tick time, so put
* it in its own cache-line separated from the fields above which
@@ -450,7 +453,6 @@ struct task_group {
*/
atomic_long_t load_avg ____cacheline_aligned;
#endif
-#endif

#ifdef CONFIG_RT_GROUP_SCHED
struct sched_rt_entity **rt_se;
--
2.33.0