Re: [PATCH v5 03/15] sched/core: uclamp: map TASK's clamp values into CPU's clamp groups

From: Patrick Bellasi
Date: Wed Nov 07 2018 - 09:54:04 EST


On 07-Nov 15:37, Peter Zijlstra wrote:
> On Mon, Oct 29, 2018 at 06:32:57PM +0000, Patrick Bellasi wrote:
> > +static int __setscheduler_uclamp(struct task_struct *p,
> > + const struct sched_attr *attr)
> > +{
> > + unsigned int lower_bound = p->uclamp[UCLAMP_MIN].value;
> > + unsigned int upper_bound = p->uclamp[UCLAMP_MAX].value;
> > + int result = 0;
> > +
> > + if (attr->sched_flags & SCHED_FLAG_UTIL_CLAMP_MIN)
> > + lower_bound = attr->sched_util_min;
> > +
> > + if (attr->sched_flags & SCHED_FLAG_UTIL_CLAMP_MAX)
> > + upper_bound = attr->sched_util_max;
> > +
> > + if (lower_bound > upper_bound ||
> > + upper_bound > SCHED_CAPACITY_SCALE)
> > return -EINVAL;
> >
> > + mutex_lock(&uclamp_mutex);
> >
> > + /* Update each required clamp group */
> > + if (attr->sched_flags & SCHED_FLAG_UTIL_CLAMP_MIN) {
> > + uclamp_group_get(&p->uclamp[UCLAMP_MIN],
> > + UCLAMP_MIN, lower_bound);
> > + }
> > + if (attr->sched_flags & SCHED_FLAG_UTIL_CLAMP_MAX) {
> > + uclamp_group_get(&p->uclamp[UCLAMP_MAX],
> > + UCLAMP_MAX, upper_bound);
> > + }
> > +
> > + mutex_unlock(&uclamp_mutex);
> > +
> > + return result;
> > +}
>
> I'm missing where we error due to lack of groups.

Again, after:

sched/core: uclamp: add clamp group bucketing support

we should never error.

Perhaps I should really squash the bucketing in these first patches
directly... lemme see what's your take on those bits, if you like them
better not in a separate patch, I'll squash them on v6.

--
#include <best/regards.h>

Patrick Bellasi