Re: [PATCH v3] sched: Fix out-of-bound access in uclamp

From: Peter Zijlstra
Date: Mon May 03 2021 - 10:47:05 EST


On Mon, May 03, 2021 at 12:55:34PM +0200, Dietmar Eggemann wrote:
> On 30/04/2021 17:27, Vincent Guittot wrote:
> > On Fri, 30 Apr 2021 at 17:14, Quentin Perret <qperret@xxxxxxxxxx> wrote:
> >>
> >> Util-clamp places tasks in different buckets based on their clamp values
> >> for performance reasons. However, the size of buckets is currently
> >> computed using a rounding division, which can lead to an off-by-one
> >> error in some configurations.
> >>
> >> For instance, with 20 buckets, the bucket size will be 1024/20=51. A
> >> task with a clamp of 1024 will be mapped to bucket id 1024/51=20. Sadly,
> >> correct indexes are in range [0,19], hence leading to an out of bound
> >> memory access.
> >>
> >> Clamp the bucket id to fix the issue.
> >>
> >> Fixes: 69842cba9ace ("sched/uclamp: Add CPU's clamp buckets refcounting")
> >> Suggested-by: Qais Yousef <qais.yousef@xxxxxxx>
> >> Signed-off-by: Quentin Perret <qperret@xxxxxxxxxx>
> >
> > Reviewed-by: Vincent Guittot <vincent.guittot@xxxxxxxxxx>

> Reviewed-by: Dietmar Eggemann <dietmar.eggemann@xxxxxxx>

Thanks!