Messages in this thread | | | Subject | Re: [PATCH 1/1] sched/uclamp: release per-task uclamp control if user set to default value | From | Dietmar Eggemann <> | Date | Wed, 30 Sep 2020 15:12:51 +0200 |
| |
Hi Yun,
On 28/09/2020 10:26, Yun Hsiang wrote: > If the user wants to release the util clamp and let cgroup to control it, > we need a method to reset. > > So if the user set the task uclamp to the default value (0 for UCLAMP_MIN > and 1024 for UCLAMP_MAX), reset the user_defined flag to release control. > > Signed-off-by: Yun Hsiang <hsiang023167@gmail.com>
could you explain with a little bit more detail why you would need this feature?
Currently we assume that once the per-task uclamp (user-defined) values are set, you could only change the effective uclamp values of this task by (1) moving it into another taskgroup or (2) changing the system default uclamp values.
> --- > kernel/sched/core.c | 7 +++++-- > 1 file changed, 5 insertions(+), 2 deletions(-) > > diff --git a/kernel/sched/core.c b/kernel/sched/core.c > index 9a2fbf98fd6f..fa63d70d783a 100644 > --- a/kernel/sched/core.c > +++ b/kernel/sched/core.c > @@ -1187,6 +1187,7 @@ static void __setscheduler_uclamp(struct task_struct *p, > const struct sched_attr *attr) > { > enum uclamp_id clamp_id; > + bool user_defined; > > /* > * On scheduling class change, reset to default clamps for tasks > @@ -1210,14 +1211,16 @@ static void __setscheduler_uclamp(struct task_struct *p, > if (likely(!(attr->sched_flags & SCHED_FLAG_UTIL_CLAMP))) > return; > > + user_defined = attr->sched_util_min == 0 ? false : true; > if (attr->sched_flags & SCHED_FLAG_UTIL_CLAMP_MIN) { > uclamp_se_set(&p->uclamp_req[UCLAMP_MIN], > - attr->sched_util_min, true); > + attr->sched_util_min, user_defined); > } > > + user_defined = attr->sched_util_max == 1024 ? false : true; > if (attr->sched_flags & SCHED_FLAG_UTIL_CLAMP_MAX) { > uclamp_se_set(&p->uclamp_req[UCLAMP_MAX], > - attr->sched_util_max, true); > + attr->sched_util_max, user_defined); > } > }
| |