2016-03-01 06:51:15

by Ricky Liang

[permalink] [raw]
Subject: Re: [RFCv7 PATCH 04/10] sched/fair: add triggers for OPP change requests

Hi Steve,

On Tue, Feb 23, 2016 at 9:22 AM, Steve Muckle <[email protected]> wrote:
> From: Juri Lelli <[email protected]>
>
> Each time a task is {en,de}queued we might need to adapt the current
> frequency to the new usage. Add triggers on {en,de}queue_task_fair() for
> this purpose. Only trigger a freq request if we are effectively waking up
> or going to sleep. Filter out load balancing related calls to reduce the
> number of triggers.
>
> [[email protected]: resolve merge conflicts, define task_new,
> use renamed static key sched_freq]
>
> cc: Ingo Molnar <[email protected]>
> cc: Peter Zijlstra <[email protected]>
> Signed-off-by: Juri Lelli <[email protected]>
> Signed-off-by: Steve Muckle <[email protected]>
> ---
> kernel/sched/fair.c | 49 +++++++++++++++++++++++++++++++++++++++++++++++--
> 1 file changed, 47 insertions(+), 2 deletions(-)
>
> diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c
> index 3437e01..f1f00a4 100644
> --- a/kernel/sched/fair.c
> +++ b/kernel/sched/fair.c
> @@ -4283,6 +4283,21 @@ static inline void hrtick_update(struct rq *rq)
> }
> #endif
>
> +static unsigned long capacity_orig_of(int cpu);
> +static int cpu_util(int cpu);
> +
> +static void update_capacity_of(int cpu)
> +{
> + unsigned long req_cap;
> +
> + if (!sched_freq())
> + return;
> +
> + /* Convert scale-invariant capacity to cpu. */
> + req_cap = cpu_util(cpu) * SCHED_CAPACITY_SCALE / capacity_orig_of(cpu);
> + set_cfs_cpu_capacity(cpu, true, req_cap);
> +}
> +

The change hunks of this patch should probably all depend on
CONFIG_SMP as capacity_orig_of() and cpu_util() are only available
when CONFIG_SMP is enabled.

[snip...]

Thanks,
Ricky


2016-03-03 03:55:57

by Steve Muckle

[permalink] [raw]
Subject: Re: [RFCv7 PATCH 04/10] sched/fair: add triggers for OPP change requests

Hi Ricky,

On 02/29/2016 10:51 PM, Ricky Liang wrote:
> The change hunks of this patch should probably all depend on
> CONFIG_SMP as capacity_orig_of() and cpu_util() are only available
> when CONFIG_SMP is enabled.

Yeah, I was deferring cleaning that up until there was more buy in on
the overall solution. But it looks like we will be moving forward using
Rafael's schedutil governor. The most recent posting of that is here:

http://thread.gmane.org/gmane.linux.kernel/2166378

thanks,
Steve