2019-11-05 20:51:02

by Qais Yousef

[permalink] [raw]
Subject: [PATCH] sched: core: fix compilation error when cgroup not selected

When cgroup is disabled the following compilation error was hit

kernel/sched/core.c: In function ‘uclamp_update_active_tasks’:
kernel/sched/core.c:1081:23: error: storage size of ‘it’ isn’t known
struct css_task_iter it;
^~
kernel/sched/core.c:1084:2: error: implicit declaration of function ‘css_task_iter_start’; did you mean ‘__sg_page_iter_start’? [-Werror=implicit-function-declaration]
css_task_iter_start(css, 0, &it);
^~~~~~~~~~~~~~~~~~~
__sg_page_iter_start
kernel/sched/core.c:1085:14: error: implicit declaration of function ‘css_task_iter_next’; did you mean ‘__sg_page_iter_next’? [-Werror=implicit-function-declaration]
while ((p = css_task_iter_next(&it))) {
^~~~~~~~~~~~~~~~~~
__sg_page_iter_next
kernel/sched/core.c:1091:2: error: implicit declaration of function ‘css_task_iter_end’; did you mean ‘get_task_cred’? [-Werror=implicit-function-declaration]
css_task_iter_end(&it);
^~~~~~~~~~~~~~~~~
get_task_cred
kernel/sched/core.c:1081:23: warning: unused variable ‘it’ [-Wunused-variable]
struct css_task_iter it;
^~
cc1: some warnings being treated as errors
make[2]: *** [kernel/sched/core.o] Error 1

Fix by protetion uclamp_update_active_tasks() with
CONFIG_UCLAMP_TASK_GROUP

Fixes: babbe170e053 ("sched/uclamp: Update CPU's refcount on TG's clamp changes")
Signed-off-by: Qais Yousef <[email protected]>
---
kernel/sched/core.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/kernel/sched/core.c b/kernel/sched/core.c
index dd05a378631a..afd4d8028771 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
@@ -1073,6 +1073,7 @@ uclamp_update_active(struct task_struct *p, enum uclamp_id clamp_id)
task_rq_unlock(rq, p, &rf);
}

+#ifdef CONFIG_UCLAMP_TASK_GROUP
static inline void
uclamp_update_active_tasks(struct cgroup_subsys_state *css,
unsigned int clamps)
@@ -1091,7 +1092,6 @@ uclamp_update_active_tasks(struct cgroup_subsys_state *css,
css_task_iter_end(&it);
}

-#ifdef CONFIG_UCLAMP_TASK_GROUP
static void cpu_util_update_eff(struct cgroup_subsys_state *css);
static void uclamp_update_root_tg(void)
{
--
2.17.1


2019-11-07 07:28:44

by Patrick Bellasi

[permalink] [raw]
Subject: Re: [PATCH] sched: core: fix compilation error when cgroup not selected

[ +Randy ]

Hi Qais,

On 05-Nov 11:22, Qais Yousef wrote:
> When cgroup is disabled the following compilation error was hit
>
> kernel/sched/core.c: In function ‘uclamp_update_active_tasks’:
> kernel/sched/core.c:1081:23: error: storage size of ‘it’ isn’t known
> struct css_task_iter it;
> ^~
> kernel/sched/core.c:1084:2: error: implicit declaration of function ‘css_task_iter_start’; did you mean ‘__sg_page_iter_start’? [-Werror=implicit-function-declaration]
> css_task_iter_start(css, 0, &it);
> ^~~~~~~~~~~~~~~~~~~
> __sg_page_iter_start
> kernel/sched/core.c:1085:14: error: implicit declaration of function ‘css_task_iter_next’; did you mean ‘__sg_page_iter_next’? [-Werror=implicit-function-declaration]
> while ((p = css_task_iter_next(&it))) {
> ^~~~~~~~~~~~~~~~~~
> __sg_page_iter_next
> kernel/sched/core.c:1091:2: error: implicit declaration of function ‘css_task_iter_end’; did you mean ‘get_task_cred’? [-Werror=implicit-function-declaration]
> css_task_iter_end(&it);
> ^~~~~~~~~~~~~~~~~
> get_task_cred
> kernel/sched/core.c:1081:23: warning: unused variable ‘it’ [-Wunused-variable]
> struct css_task_iter it;
> ^~
> cc1: some warnings being treated as errors
> make[2]: *** [kernel/sched/core.o] Error 1
>
> Fix by protetion uclamp_update_active_tasks() with
> CONFIG_UCLAMP_TASK_GROUP
>
> Fixes: babbe170e053 ("sched/uclamp: Update CPU's refcount on TG's clamp changes")
> Signed-off-by: Qais Yousef <[email protected]>

Thanks for posting this again.

We now have three "versions" of this same fix, including:
- the original bug report by Randy and a fix from me here:
Message-ID: <[email protected]>
https://lore.kernel.org/linux-next/[email protected]/
- and a follow up patch from Arnd:
Message-ID: <[email protected]>
https://lore.kernel.org/lkml/[email protected]/

So, I guess now we just have to pick the one with the changelog we
prefer. :)

In all cases we should probably add:

Reported-by: Randy Dunlap <[email protected]>
Tested-by: Randy Dunlap <[email protected]>

Best,
Patrick

> ---
> kernel/sched/core.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/kernel/sched/core.c b/kernel/sched/core.c
> index dd05a378631a..afd4d8028771 100644
> --- a/kernel/sched/core.c
> +++ b/kernel/sched/core.c
> @@ -1073,6 +1073,7 @@ uclamp_update_active(struct task_struct *p, enum uclamp_id clamp_id)
> task_rq_unlock(rq, p, &rf);
> }
>
> +#ifdef CONFIG_UCLAMP_TASK_GROUP
> static inline void
> uclamp_update_active_tasks(struct cgroup_subsys_state *css,
> unsigned int clamps)
> @@ -1091,7 +1092,6 @@ uclamp_update_active_tasks(struct cgroup_subsys_state *css,
> css_task_iter_end(&it);
> }
>
> -#ifdef CONFIG_UCLAMP_TASK_GROUP
> static void cpu_util_update_eff(struct cgroup_subsys_state *css);
> static void uclamp_update_root_tg(void)
> {
> --
> 2.17.1
>

--
#include <best/regards.h>

Patrick Bellasi

2019-11-07 07:31:37

by Qais Yousef

[permalink] [raw]
Subject: Re: [PATCH] sched: core: fix compilation error when cgroup not selected

Hi Patrick

On 11/07/19 07:25, Patrick Bellasi wrote:

[...]

> Thanks for posting this again.
>
> We now have three "versions" of this same fix, including:
> - the original bug report by Randy and a fix from me here:
> Message-ID: <[email protected]>
> https://lore.kernel.org/linux-next/[email protected]/
> - and a follow up patch from Arnd:
> Message-ID: <[email protected]>
> https://lore.kernel.org/lkml/[email protected]/

Oh I should have done my homework better. FWIW I caught this on 5.4-rc6 so
that's why I didn't think there was a fix posted.

I don't mind which version gets picked. But if it can go in before 5.4 is
released that'd be great.

Thanks

--
Qais Yousef

2019-11-07 13:13:28

by Peter Zijlstra

[permalink] [raw]
Subject: Re: [PATCH] sched: core: fix compilation error when cgroup not selected

On Thu, Nov 07, 2019 at 07:25:25AM +0000, Patrick Bellasi wrote:
> [ +Randy ]
>
> Hi Qais,
>
> On 05-Nov 11:22, Qais Yousef wrote:
> > When cgroup is disabled the following compilation error was hit
> >
> > kernel/sched/core.c: In function ‘uclamp_update_active_tasks’:
> > kernel/sched/core.c:1081:23: error: storage size of ‘it’ isn’t known
> > struct css_task_iter it;
> > ^~
> > kernel/sched/core.c:1084:2: error: implicit declaration of function ‘css_task_iter_start’; did you mean ‘__sg_page_iter_start’? [-Werror=implicit-function-declaration]
> > css_task_iter_start(css, 0, &it);
> > ^~~~~~~~~~~~~~~~~~~
> > __sg_page_iter_start
> > kernel/sched/core.c:1085:14: error: implicit declaration of function ‘css_task_iter_next’; did you mean ‘__sg_page_iter_next’? [-Werror=implicit-function-declaration]
> > while ((p = css_task_iter_next(&it))) {
> > ^~~~~~~~~~~~~~~~~~
> > __sg_page_iter_next
> > kernel/sched/core.c:1091:2: error: implicit declaration of function ‘css_task_iter_end’; did you mean ‘get_task_cred’? [-Werror=implicit-function-declaration]
> > css_task_iter_end(&it);
> > ^~~~~~~~~~~~~~~~~
> > get_task_cred
> > kernel/sched/core.c:1081:23: warning: unused variable ‘it’ [-Wunused-variable]
> > struct css_task_iter it;
> > ^~
> > cc1: some warnings being treated as errors
> > make[2]: *** [kernel/sched/core.o] Error 1
> >
> > Fix by protetion uclamp_update_active_tasks() with
> > CONFIG_UCLAMP_TASK_GROUP
> >
> > Fixes: babbe170e053 ("sched/uclamp: Update CPU's refcount on TG's clamp changes")
> > Signed-off-by: Qais Yousef <[email protected]>
>
> Thanks for posting this again.
>
> We now have three "versions" of this same fix, including:
> - the original bug report by Randy and a fix from me here:
> Message-ID: <[email protected]>
> https://lore.kernel.org/linux-next/[email protected]/
> - and a follow up patch from Arnd:
> Message-ID: <[email protected]>
> https://lore.kernel.org/lkml/[email protected]/
>
> So, I guess now we just have to pick the one with the changelog we
> prefer. :)
>
> In all cases we should probably add:
>
> Reported-by: Randy Dunlap <[email protected]>
> Tested-by: Randy Dunlap <[email protected]>

Argh, ok, I missed them all too. Picked up this one for sched/urgent and
added the above.

Thanks!

2019-11-08 21:42:50

by tip-bot2 for Jacob Pan

[permalink] [raw]
Subject: [tip: sched/urgent] sched/core: Fix compilation error when cgroup not selected

The following commit has been merged into the sched/urgent branch of tip:

Commit-ID: e3b8b6a0d12cccf772113d6b5c1875192186fbd4
Gitweb: https://git.kernel.org/tip/e3b8b6a0d12cccf772113d6b5c1875192186fbd4
Author: Qais Yousef <[email protected]>
AuthorDate: Tue, 05 Nov 2019 11:22:12
Committer: Peter Zijlstra <[email protected]>
CommitterDate: Fri, 08 Nov 2019 22:34:14 +01:00

sched/core: Fix compilation error when cgroup not selected

When cgroup is disabled the following compilation error was hit

kernel/sched/core.c: In function ‘uclamp_update_active_tasks’:
kernel/sched/core.c:1081:23: error: storage size of ‘it’ isn’t known
struct css_task_iter it;
^~
kernel/sched/core.c:1084:2: error: implicit declaration of function ‘css_task_iter_start’; did you mean ‘__sg_page_iter_start’? [-Werror=implicit-function-declaration]
css_task_iter_start(css, 0, &it);
^~~~~~~~~~~~~~~~~~~
__sg_page_iter_start
kernel/sched/core.c:1085:14: error: implicit declaration of function ‘css_task_iter_next’; did you mean ‘__sg_page_iter_next’? [-Werror=implicit-function-declaration]
while ((p = css_task_iter_next(&it))) {
^~~~~~~~~~~~~~~~~~
__sg_page_iter_next
kernel/sched/core.c:1091:2: error: implicit declaration of function ‘css_task_iter_end’; did you mean ‘get_task_cred’? [-Werror=implicit-function-declaration]
css_task_iter_end(&it);
^~~~~~~~~~~~~~~~~
get_task_cred
kernel/sched/core.c:1081:23: warning: unused variable ‘it’ [-Wunused-variable]
struct css_task_iter it;
^~
cc1: some warnings being treated as errors
make[2]: *** [kernel/sched/core.o] Error 1

Fix by protetion uclamp_update_active_tasks() with
CONFIG_UCLAMP_TASK_GROUP

Fixes: babbe170e053 ("sched/uclamp: Update CPU's refcount on TG's clamp changes")
Reported-by: Randy Dunlap <[email protected]>
Signed-off-by: Qais Yousef <[email protected]>
Signed-off-by: Peter Zijlstra (Intel) <[email protected]>
Tested-by: Randy Dunlap <[email protected]>
Cc: Steven Rostedt <[email protected]>
Cc: Ingo Molnar <[email protected]>
Cc: Vincent Guittot <[email protected]>
Cc: Patrick Bellasi <[email protected]>
Cc: Mel Gorman <[email protected]>
Cc: Dietmar Eggemann <[email protected]>
Cc: Juri Lelli <[email protected]>
Cc: Ben Segall <[email protected]>
Link: https://lkml.kernel.org/r/[email protected]
---
kernel/sched/core.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/kernel/sched/core.c b/kernel/sched/core.c
index dd05a37..afd4d80 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
@@ -1073,6 +1073,7 @@ uclamp_update_active(struct task_struct *p, enum uclamp_id clamp_id)
task_rq_unlock(rq, p, &rf);
}

+#ifdef CONFIG_UCLAMP_TASK_GROUP
static inline void
uclamp_update_active_tasks(struct cgroup_subsys_state *css,
unsigned int clamps)
@@ -1091,7 +1092,6 @@ uclamp_update_active_tasks(struct cgroup_subsys_state *css,
css_task_iter_end(&it);
}

-#ifdef CONFIG_UCLAMP_TASK_GROUP
static void cpu_util_update_eff(struct cgroup_subsys_state *css);
static void uclamp_update_root_tg(void)
{