Re: [PATCH 2/4] sched: cpufreq: Keep track of cpufreq utilization update flags

From: Patrick Bellasi
Date: Mon Dec 18 2017 - 07:15:05 EST


On 18-Dec 17:29, Viresh Kumar wrote:
> On 18-12-17, 12:35, Rafael J. Wysocki wrote:
> > Well, if SCHED_CPUFRREQ_CLEAR means "this CPU is going to enter the
> > idle loop" really, then it is better to call it
> > SCHED_CPUFRREQ_ENTER_IDLE, for example.
> >
> > SCHED_CPUFRREQ_CLEAR meaning basically "you should clear these flags
> > now" doesn't seem to convey any information to whoever doesn't
> > squirrel the flags in the first place.
>
> Right, but when all the flags are cleared, then we can infer that we
> are going to idle in the most probable case.
>
> Anyway, I will implement RT and DL clear flags as you suggested in the
> next version.

I think Rafael is right, the current API is a big odd since we cannot
really set the CLEAR flags by itself. I mean, you can but it will not
have effects.

Thus, it's probably better from an API standpoint to have a dedicated
single clear flag... unfortunately it has to be one per class, which
is still not optimal and will likely make the policy code a bit odd.

What about extending the signature of the callback method?

For example, swithing from:

- void (*func)(struct update_util_data *data, u64 time,
- unsigned int flags))
+ void (*func)(struct update_util_data *data, u64 time,
+ unsigned int flags, bool set))

Where the additional boolean is actually used to define which
operation we wanna perform on the flags?

--
#include <best/regards.h>

Patrick Bellasi