All of lore.kernel.org
 help / color / mirror / Atom feed
From: Valentin Schneider <valentin.schneider@arm.com>
To: Peter Zijlstra <peterz@infradead.org>
Cc: linux-kernel@vger.kernel.org, mingo@kernel.org,
	vincent.guittot@linaro.org, morten.rasmussen@arm.com,
	Dietmar.Eggemann@arm.com
Subject: Re: [PATCH 4/5] sched/fair: Tune down misfit nohz kicks
Date: Wed, 6 Feb 2019 17:25:31 +0000	[thread overview]
Message-ID: <2d9c0edd-d00a-ddb1-d81f-f8da11f24304@arm.com> (raw)
In-Reply-To: <20190206160413.GK17550@hirez.programming.kicks-ass.net>

Hi,

On 06/02/2019 16:04, Peter Zijlstra wrote:
[...]
>> @@ -9561,6 +9573,14 @@ static void nohz_balancer_kick(struct rq *rq)
> 
> 	sd = rcu_dereference(rq->sd);
> 	if (sd) {
> 		if ((rq->cfs.h_nr_running >= 1) &&
> 		    check_cpu_capacity(rq, sd)) {
> 			flags = NOHZ_KICK_MASK;
> 			goto unlock;
>>  		}
>>  	}
>>  
>> +	sd = rcu_dereference(per_cpu(sd_asym_cpucapacity, cpu));
>> +	if (sd) {
>> +		if (check_misfit_status(rq, sd)) {
>> +			flags = NOHZ_KICK_MASK;
>> +			goto unlock;
>> +		}
>> +	}
> 
> So while the exact @sd to use for check_cpu_capacity() likely doesn't
> matter; this is a 'implicit' test for actually having asym_capacity.
> 

I did feel compelled to use the "right" @sd to have a coherent
imbalance_pct being used - on big.LITTLE, the @sd above this hunk would be
MC (117 imbalance_pct) whereas the sd_asym_cpucapacity one would be
DIE (125 imbalance_pct).

> Fair enough I suppose. However, now that you wrote such a nice comment
> for the sd_llc_shared case, these other two cases are sad to not have a
> comment.
> 
> So how about you add something like:
> 
> --- a/kernel/sched/fair.c
> +++ b/kernel/sched/fair.c
> @@ -9589,8 +9589,12 @@ static void nohz_balancer_kick(struct rq
>  
>  	sd = rcu_dereference(rq->sd);
>  	if (sd) {
> -		if ((rq->cfs.h_nr_running >= 1) &&
> -		    check_cpu_capacity(rq, sd)) {
> +		/*
> +		 * If there's a CFS task and the current CPU has reduced
> +		 * capacity; kick the ILB to see if there's a better CPU to run
> +		 * on.
> +		 */
> +		if (rq->cfs.h_nr_running >= 1 && check_cpu_capacity(rq, sd)) {
>  			flags = NOHZ_KICK_MASK;
>  			goto unlock;
>  		}
> @@ -9598,6 +9602,10 @@ static void nohz_balancer_kick(struct rq
>  
>  	sd = rcu_dereference(per_cpu(sd_asym_cpucapacity, cpu));
>  	if (sd) {
> +		/*
> +		 * When ASYM_CAPACITY; see if there's a higher capacity CPU to
> +		 * run the misfit task on.
> +		 */
>  		if (check_misfit_status(rq, sd)) {
>  			flags = NOHZ_KICK_MASK;
>  			goto unlock;
> @@ -9606,6 +9614,10 @@ static void nohz_balancer_kick(struct rq
>  
>  	sd = rcu_dereference(per_cpu(sd_asym_packing, cpu));
>  	if (sd) {
> +		/*
> +		 * When ASYM_PACKING; see if there's a more preferred CPU going
> +		 * idle; in which case, kick the ILB to move tasks around.
> +		 */

s/going idle/currently idle/, no?

>  		for_each_cpu_and(i, sched_domain_span(sd), nohz.idle_cpus_mask) {
>  			if (sched_asym_prefer(i, cpu)) {
>  				flags = NOHZ_KICK_MASK;
> 

  reply	other threads:[~2019-02-06 17:25 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-01-17 15:34 [PATCH 0/5] sched/fair: NOHZ cleanups and misfit improvement Valentin Schneider
2019-01-17 15:34 ` [PATCH 1/5] sched/fair: Use for_each_cpu_and for asym-packing nohz kicks Valentin Schneider
2019-02-11 10:50   ` [tip:sched/core] sched/fair: Simplify nohz_balancer_kick() tip-bot for Valentin Schneider
2019-01-17 15:34 ` [PATCH 2/5] sched/fair: Explain LLC nohz kick condition Valentin Schneider
2019-02-11 10:51   ` [tip:sched/core] " tip-bot for Valentin Schneider
2019-01-17 15:34 ` [PATCH 3/5] sched/fair: Prune nohz_balancer_kick() comment block Valentin Schneider
2019-02-11 10:51   ` [tip:sched/core] sched/fair: Prune, fix and simplify the " tip-bot for Valentin Schneider
2019-01-17 15:34 ` [PATCH 4/5] sched/fair: Tune down misfit nohz kicks Valentin Schneider
2019-02-06 16:04   ` Peter Zijlstra
2019-02-06 17:25     ` Valentin Schneider [this message]
2019-02-07  9:57       ` Peter Zijlstra
2019-01-17 15:34 ` [PATCH 5/5] sched/fair: Skip LLC nohz logic for asymmetric systems Valentin Schneider
2019-02-06 16:14   ` Peter Zijlstra
2019-02-06 17:26     ` Valentin Schneider
2019-02-07  9:56       ` Peter Zijlstra
2019-02-07 11:31         ` Valentin Schneider
2019-02-06 14:33 ` [PATCH 0/5] sched/fair: NOHZ cleanups and misfit improvement Valentin Schneider

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=2d9c0edd-d00a-ddb1-d81f-f8da11f24304@arm.com \
    --to=valentin.schneider@arm.com \
    --cc=Dietmar.Eggemann@arm.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@kernel.org \
    --cc=morten.rasmussen@arm.com \
    --cc=peterz@infradead.org \
    --cc=vincent.guittot@linaro.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.