Re: [PATCH v2 1/4] sched/uclamp: Make uclamp_util_*() helpers use and return UL values
From: Dietmar Eggemann
Date: Tue Dec 10 2019 - 13:09:51 EST
On 03/12/2019 16:59, Valentin Schneider wrote:
[...]
> diff --git a/kernel/sched/sched.h b/kernel/sched/sched.h
> index 280a3c735935..f1d035e5df7e 100644
> --- a/kernel/sched/sched.h
> +++ b/kernel/sched/sched.h
> @@ -2303,15 +2303,15 @@ static inline void cpufreq_update_util(struct rq *rq, unsigned int flags) {}
> unsigned int uclamp_eff_value(struct task_struct *p, enum uclamp_id clamp_id);
>
> static __always_inline
> -unsigned int uclamp_util_with(struct rq *rq, unsigned int util,
> - struct task_struct *p)
> +unsigned long uclamp_util_with(struct rq *rq, unsigned long util,
> + struct task_struct *p)
> {
> - unsigned int min_util = READ_ONCE(rq->uclamp[UCLAMP_MIN].value);
> - unsigned int max_util = READ_ONCE(rq->uclamp[UCLAMP_MAX].value);
> + unsigned long min_util = READ_ONCE(rq->uclamp[UCLAMP_MIN].value);
> + unsigned long max_util = READ_ONCE(rq->uclamp[UCLAMP_MAX].value);
>
> if (p) {
> - min_util = max(min_util, uclamp_eff_value(p, UCLAMP_MIN));
> - max_util = max(max_util, uclamp_eff_value(p, UCLAMP_MAX));
> + min_util = max_t(unsigned long, min_util, uclamp_eff_value(p, UCLAMP_MIN));
> + max_util = max_t(unsigned long, max_util, uclamp_eff_value(p, UCLAMP_MAX));
> }
>
> /*
> @@ -2325,17 +2325,17 @@ unsigned int uclamp_util_with(struct rq *rq, unsigned int util,
> return clamp(util, min_util, max_util);
> }
>
> -static inline unsigned int uclamp_util(struct rq *rq, unsigned int util)
> +static inline unsigned long uclamp_util(struct rq *rq, unsigned long util)
> {
> return uclamp_util_with(rq, util, NULL);
> }
> #else /* CONFIG_UCLAMP_TASK */
> -static inline unsigned int uclamp_util_with(struct rq *rq, unsigned int util,
> - struct task_struct *p)
> +static inline unsigned long uclamp_util_with(struct rq *rq, unsigned long util,
> + struct task_struct *p)
> {
> return util;
> }
> -static inline unsigned int uclamp_util(struct rq *rq, unsigned int util)
> +static inline unsigned long uclamp_util(struct rq *rq, unsigned long util)
> {
> return util;
> }
There doesn't seem to be any user of uclamp_util(), only uclamp_util_with()?