2021-11-18 11:02:32

by Vincent Donnefort

[permalink] [raw]
Subject: [PATCH] sched/fair: Fix asym_fits_capacity() task_util type

task_util is an unsigned long value, compared with a CPU capacity which is
unsigned long as well. There's no need for an intermidiate implicit int
cast.

Fixes: b4c9c9f15649 ("sched/fair: Prefer prev cpu in asymmetric wakeup path")
Signed-off-by: Vincent Donnefort <[email protected]>

diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c
index 945d987246c5..8fde6e10e24b 100644
--- a/kernel/sched/fair.c
+++ b/kernel/sched/fair.c
@@ -6346,7 +6346,7 @@ select_idle_capacity(struct task_struct *p, struct sched_domain *sd, int target)
return best_cpu;
}

-static inline bool asym_fits_capacity(int task_util, int cpu)
+static inline bool asym_fits_capacity(unsigned long task_util, int cpu)
{
if (static_branch_unlikely(&sched_asym_cpucapacity))
return fits_capacity(task_util, capacity_of(cpu));
--
2.25.1



2021-11-18 13:54:53

by Vincent Guittot

[permalink] [raw]
Subject: Re: [PATCH] sched/fair: Fix asym_fits_capacity() task_util type

On Thu, 18 Nov 2021 at 12:02, Vincent Donnefort
<[email protected]> wrote:
>
> task_util is an unsigned long value, compared with a CPU capacity which is
> unsigned long as well. There's no need for an intermidiate implicit int

s/intermidiate/intermediate/

> cast.

I can't remember how I end up using int instead of unsigned long

Side note: similarly task_fits_capacity uses long instead of unsigned
long for cpu's capacity parameter

>
> Fixes: b4c9c9f15649 ("sched/fair: Prefer prev cpu in asymmetric wakeup path")
> Signed-off-by: Vincent Donnefort <[email protected]>

Reviewed-by: Vincent Guittot <[email protected]>

>
> diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c
> index 945d987246c5..8fde6e10e24b 100644
> --- a/kernel/sched/fair.c
> +++ b/kernel/sched/fair.c
> @@ -6346,7 +6346,7 @@ select_idle_capacity(struct task_struct *p, struct sched_domain *sd, int target)
> return best_cpu;
> }
>
> -static inline bool asym_fits_capacity(int task_util, int cpu)
> +static inline bool asym_fits_capacity(unsigned long task_util, int cpu)
> {
> if (static_branch_unlikely(&sched_asym_cpucapacity))
> return fits_capacity(task_util, capacity_of(cpu));
> --
> 2.25.1
>