This will be used by kselftest to verify the CGroup cookie value that is set by the CGroup interface.
Tested-by: Julien Desfossez <jdesfos...@digitalocean.com> Signed-off-by: Joel Fernandes (Google) <j...@joelfernandes.org> --- kernel/sched/core.c | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/kernel/sched/core.c b/kernel/sched/core.c index 1321c26a8385..b3afbba5abe1 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -9520,6 +9520,13 @@ static u64 cpu_core_tag_color_read_u64(struct cgroup_subsys_state *css, struct c return tg->core_tag_color; } +#ifdef CONFIG_SCHED_DEBUG +static u64 cpu_core_group_cookie_read_u64(struct cgroup_subsys_state *css, struct cftype *cft) +{ + return cpu_core_get_group_cookie(css_tg(css)); +} +#endif + struct write_core_tag { struct cgroup_subsys_state *css; unsigned long cookie; @@ -9695,6 +9702,14 @@ static struct cftype cpu_legacy_files[] = { .read_u64 = cpu_core_tag_color_read_u64, .write_u64 = cpu_core_tag_color_write_u64, }, +#ifdef CONFIG_SCHED_DEBUG + /* Read the effective cookie (color+tag) of the group. */ + { + .name = "core_group_cookie", + .flags = CFTYPE_NOT_ON_ROOT, + .read_u64 = cpu_core_group_cookie_read_u64, + }, +#endif #endif #ifdef CONFIG_UCLAMP_TASK_GROUP { @@ -9882,6 +9897,14 @@ static struct cftype cpu_files[] = { .read_u64 = cpu_core_tag_color_read_u64, .write_u64 = cpu_core_tag_color_write_u64, }, +#ifdef CONFIG_SCHED_DEBUG + /* Read the effective cookie (color+tag) of the group. */ + { + .name = "core_group_cookie", + .flags = CFTYPE_NOT_ON_ROOT, + .read_u64 = cpu_core_group_cookie_read_u64, + }, +#endif #endif #ifdef CONFIG_CFS_BANDWIDTH { -- 2.29.0.rc1.297.gfa9743e501-goog