Subject: [RFC 4/4] sched: add per group cpu_power_orig

From: [email-masked] (Preeti U Murthy)
Date: Tue, 01 Apr 2014 16:11:51 +0530

Hi Vincent,

On 03/28/2014 06:57 PM, Vincent Guittot wrote:
> This new field cpu_power_orig reflects the available capacity of a CPUs unlike
> the cpu_power which reflects the current capacity that can be altered by
> frequency and rt tasks.
> 
> Signed-off-by: Vincent Guittot <[email-masked]>

Should not the subject be "add per rq cpu_power_orig"?

Regards
Preeti U Murthy
> ---
>  kernel/sched/core.c  | 2 +-
>  kernel/sched/fair.c  | 1 +
>  kernel/sched/sched.h | 1 +
>  3 files changed, 3 insertions(+), 1 deletion(-)
> 
> diff --git a/kernel/sched/core.c b/kernel/sched/core.c
> index 5b20b27..8513f83 100644
> --- a/kernel/sched/core.c
> +++ b/kernel/sched/core.c
> @@ -6911,7 +6911,7 @@ void __init sched_init(void)
>  #ifdef CONFIG_SMP
>  		rq->sd = NULL;
>  		rq->rd = NULL;
> -		rq->cpu_power = SCHED_POWER_SCALE;
> +		rq->cpu_power = rq->cpu_power_orig = SCHED_POWER_SCALE;
>  		rq->post_schedule = 0;
>  		rq->active_balance = 0;
>  		rq->next_balance = jiffies;
> diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c
> index 7387c05..f1e4db6 100644
> --- a/kernel/sched/fair.c
> +++ b/kernel/sched/fair.c
> @@ -5611,6 +5611,7 @@ static void update_cpu_power(struct sched_domain *sd, int cpu)
> 
>  	power >>= SCHED_POWER_SHIFT;
> 
> +	cpu_rq(cpu)->cpu_power_orig = power;
>  	sdg->sgp->power_orig = power;
> 
>  	if (sched_feat(ARCH_POWER))
> diff --git a/kernel/sched/sched.h b/kernel/sched/sched.h
> index 46c3784..2abdf5c 100644
> --- a/kernel/sched/sched.h
> +++ b/kernel/sched/sched.h
> @@ -578,6 +578,7 @@ struct rq {
>  	struct sched_domain *sd;
> 
>  	unsigned long cpu_power;
> +	unsigned long cpu_power_orig;
> 
>  	unsigned char idle_balance;
>  	/* For active balancing */
>