From: Quentin Perret <qperret@google.com>
To: Vincent Guittot <vincent.guittot@linaro.org>
Cc: Ingo Molnar <mingo@redhat.com>,
Peter Zijlstra <peterz@infradead.org>,
Juri Lelli <juri.lelli@redhat.com>,
Dietmar Eggemann <dietmar.eggemann@arm.com>,
Steven Rostedt <rostedt@goodmis.org>,
Ben Segall <bsegall@google.com>, Mel Gorman <mgorman@suse.de>,
Daniel Bristot de Oliveira <bristot@redhat.com>,
Qais Yousef <qais.yousef@arm.com>,
Android Kernel Team <kernel-team@android.com>,
linux-kernel <linux-kernel@vger.kernel.org>,
Patrick Bellasi <patrick.bellasi@matbug.net>
Subject: Re: [PATCH v2] sched: Fix out-of-bound access in uclamp
Date: Fri, 30 Apr 2021 09:40:48 +0000 [thread overview]
Message-ID: <YIvQoG52Vk96DJQ/@google.com> (raw)
In-Reply-To: <CAKfTPtDOuB0UzZM5OtNzCUABftz_A40Z4W1z9OAORzFitfPDEQ@mail.gmail.com>
On Friday 30 Apr 2021 at 10:49:50 (+0200), Vincent Guittot wrote:
> 20 buckets is probably not the best example because of the rounding of
> the division. With 16 buckets, each bucket should be exactly 64 steps
> large except the last one which will have 65 steps because of the
> value 1024. With your change, buckets will be 65 large and the last
> one will be only 49 large
OK, so what do you think of this?
diff --git a/kernel/sched/core.c b/kernel/sched/core.c
index c5fb230dc604..dceeb5821797 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
@@ -920,14 +920,14 @@ static struct uclamp_se uclamp_default[UCLAMP_CNT];
*/
DEFINE_STATIC_KEY_FALSE(sched_uclamp_used);
-#define UCLAMP_BUCKET_DELTA (SCHED_CAPACITY_SCALE / UCLAMP_BUCKETS + 1)
+#define UCLAMP_BUCKET_DELTA DIV_ROUND_CLOSEST(SCHED_CAPACITY_SCALE, UCLAMP_BUCKETS)
#define for_each_clamp_id(clamp_id) \
for ((clamp_id) = 0; (clamp_id) < UCLAMP_CNT; (clamp_id)++)
static inline unsigned int uclamp_bucket_id(unsigned int clamp_value)
{
- return clamp_value / UCLAMP_BUCKET_DELTA;
+ return min(clamp_value / UCLAMP_BUCKET_DELTA, UCLAMP_BUCKETS - 1);
}
static inline unsigned int uclamp_none(enum uclamp_id clamp_id)
next prev parent reply other threads:[~2021-04-30 9:40 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-04-29 15:26 [PATCH v2] sched: Fix out-of-bound access in uclamp Quentin Perret
2021-04-30 7:45 ` Vincent Guittot
2021-04-30 8:25 ` Quentin Perret
2021-04-30 8:49 ` Vincent Guittot
2021-04-30 9:40 ` Quentin Perret [this message]
2021-04-30 12:03 ` Vincent Guittot
2021-04-30 13:00 ` Dietmar Eggemann
2021-04-30 13:14 ` Quentin Perret
2021-04-30 14:16 ` Vincent Guittot
2021-04-30 15:04 ` Dietmar Eggemann
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=YIvQoG52Vk96DJQ/@google.com \
--to=qperret@google.com \
--cc=bristot@redhat.com \
--cc=bsegall@google.com \
--cc=dietmar.eggemann@arm.com \
--cc=juri.lelli@redhat.com \
--cc=kernel-team@android.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mgorman@suse.de \
--cc=mingo@redhat.com \
--cc=patrick.bellasi@matbug.net \
--cc=peterz@infradead.org \
--cc=qais.yousef@arm.com \
--cc=rostedt@goodmis.org \
--cc=vincent.guittot@linaro.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.