2019-12-25 07:45:15

by Li Guanglei

[permalink] [raw]
Subject: [PATCH v01] sched/core: uclamp: fix rq.uclamp memory size of initialization

From: Li Guanglei <[email protected]>

uclamp_rq for each clamp id(UCLAMP_CNT) should be initialized when call
init_uclamp.

Signed-off-by: Li Guanglei <[email protected]>
---
kernel/sched/core.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/kernel/sched/core.c b/kernel/sched/core.c
index 44123b4..05f870b 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
@@ -1252,7 +1252,8 @@ static void __init init_uclamp(void)
mutex_init(&uclamp_mutex);

for_each_possible_cpu(cpu) {
- memset(&cpu_rq(cpu)->uclamp, 0, sizeof(struct uclamp_rq));
+ memset(&cpu_rq(cpu)->uclamp, 0,
+ sizeof(struct uclamp_rq)*UCLAMP_CNT);
cpu_rq(cpu)->uclamp_flags = 0;
}

--
2.7.4


2019-12-29 22:12:17

by Qais Yousef

[permalink] [raw]
Subject: Re: [PATCH v01] sched/core: uclamp: fix rq.uclamp memory size of initialization

On 12/25/19 15:44, Li Guanglei wrote:
> From: Li Guanglei <[email protected]>
>
> uclamp_rq for each clamp id(UCLAMP_CNT) should be initialized when call

s/clamp id(UCLAMP_CNT)/UCLAMP_CNT/

> init_uclamp.
>
> Signed-off-by: Li Guanglei <[email protected]>

This need fixes tag

Fixes: 69842cba9ace ("sched/uclamp: Add CPU's clamp buckets refcountinga")

Otherwise this looks good to me.

Reviewed-by: Qais Yousef <[email protected]>

Thanks

--
Qais Yousef

> ---
> kernel/sched/core.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/kernel/sched/core.c b/kernel/sched/core.c
> index 44123b4..05f870b 100644
> --- a/kernel/sched/core.c
> +++ b/kernel/sched/core.c
> @@ -1252,7 +1252,8 @@ static void __init init_uclamp(void)
> mutex_init(&uclamp_mutex);
>
> for_each_possible_cpu(cpu) {
> - memset(&cpu_rq(cpu)->uclamp, 0, sizeof(struct uclamp_rq));
> + memset(&cpu_rq(cpu)->uclamp, 0,
> + sizeof(struct uclamp_rq)*UCLAMP_CNT);
> cpu_rq(cpu)->uclamp_flags = 0;
> }
>
> --
> 2.7.4
>

2020-01-07 09:49:58

by Peter Zijlstra

[permalink] [raw]
Subject: Re: [PATCH v01] sched/core: uclamp: fix rq.uclamp memory size of initialization

On Sun, Dec 29, 2019 at 10:11:20PM +0000, Qais Yousef wrote:
> On 12/25/19 15:44, Li Guanglei wrote:
> > From: Li Guanglei <[email protected]>
> >
> > uclamp_rq for each clamp id(UCLAMP_CNT) should be initialized when call
>
> s/clamp id(UCLAMP_CNT)/UCLAMP_CNT/
>
> > init_uclamp.
> >
> > Signed-off-by: Li Guanglei <[email protected]>
>
> This need fixes tag
>
> Fixes: 69842cba9ace ("sched/uclamp: Add CPU's clamp buckets refcountinga")
>
> Otherwise this looks good to me.
>
> Reviewed-by: Qais Yousef <[email protected]>

Thanks! It now looks something like so:

---
Subject: sched/core: Fix size of rq::uclamp initialization
From: Li Guanglei <[email protected]>
Date: Wed, 25 Dec 2019 15:44:04 +0800

rq::uclamp is an array of struct uclamp_rq, make sure we clear the
whole thing.

Fixes: 69842cba9ace ("sched/uclamp: Add CPU's clamp buckets refcountinga")
Signed-off-by: Li Guanglei <[email protected]>
Signed-off-by: Peter Zijlstra (Intel) <[email protected]>
Reviewed-by: Qais Yousef <[email protected]>
Link: https://lkml.kernel.org/r/[email protected]
---
kernel/sched/core.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
@@ -1253,7 +1253,8 @@ static void __init init_uclamp(void)
mutex_init(&uclamp_mutex);

for_each_possible_cpu(cpu) {
- memset(&cpu_rq(cpu)->uclamp, 0, sizeof(struct uclamp_rq));
+ memset(&cpu_rq(cpu)->uclamp, 0,
+ sizeof(struct uclamp_rq)*UCLAMP_CNT);
cpu_rq(cpu)->uclamp_flags = 0;
}

Subject: [tip: sched/core] sched/core: Fix size of rq::uclamp initialization

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

Commit-ID: dcd6dffb0a75741471297724640733fa4e958d72
Gitweb: https://git.kernel.org/tip/dcd6dffb0a75741471297724640733fa4e958d72
Author: Li Guanglei <[email protected]>
AuthorDate: Wed, 25 Dec 2019 15:44:04 +08:00
Committer: Peter Zijlstra <[email protected]>
CommitterDate: Fri, 17 Jan 2020 10:19:20 +01:00

sched/core: Fix size of rq::uclamp initialization

rq::uclamp is an array of struct uclamp_rq, make sure we clear the
whole thing.

Fixes: 69842cba9ace ("sched/uclamp: Add CPU's clamp buckets refcountinga")
Signed-off-by: Li Guanglei <[email protected]>
Signed-off-by: Peter Zijlstra (Intel) <[email protected]>
Reviewed-by: Qais Yousef <[email protected]>
Link: https://lkml.kernel.org/r/[email protected]
---
kernel/sched/core.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/kernel/sched/core.c b/kernel/sched/core.c
index d0270b1..fc1dfc0 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
@@ -1253,7 +1253,8 @@ static void __init init_uclamp(void)
mutex_init(&uclamp_mutex);

for_each_possible_cpu(cpu) {
- memset(&cpu_rq(cpu)->uclamp, 0, sizeof(struct uclamp_rq));
+ memset(&cpu_rq(cpu)->uclamp, 0,
+ sizeof(struct uclamp_rq)*UCLAMP_CNT);
cpu_rq(cpu)->uclamp_flags = 0;
}