From: Preeti U Murthy <preeti@linux.vnet.ibm.com>
To: Jason Low <jason.low2@hp.com>
Cc: mingo@kernel.org, peterz@infradead.org,
linux-kernel@vger.kernel.org, daniel.lezcano@linaro.org,
alex.shi@linaro.org, efault@gmx.de, vincent.guittot@linaro.org,
morten.rasmussen@arm.com, aswin@hp.com, chegu_vinod@hp.com
Subject: Re: [PATCH 1/3] sched, balancing: Update rq->max_idle_balance_cost whenever newidle balance is attempted
Date: Thu, 24 Apr 2014 15:44:47 +0530 [thread overview]
Message-ID: <5358E417.8090503@linux.vnet.ibm.com> (raw)
In-Reply-To: <1398303035-18255-2-git-send-email-jason.low2@hp.com>
Hi Jason,
On 04/24/2014 07:00 AM, Jason Low wrote:
> Commit e5fc6611 can potentially cause rq->max_idle_balance_cost to not be
> updated, even when load_balance(NEWLY_IDLE) is attempted and the per-sd
> max cost value is updated.
>
> In this patch, we update the rq->max_idle_balance_cost regardless of
> whether or not a task has been enqueued while browsing the domains.
>
> Signed-off-by: Jason Low <jason.low2@hp.com>
> ---
> kernel/sched/fair.c | 9 +++++----
> 1 files changed, 5 insertions(+), 4 deletions(-)
>
> diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c
> index 43232b8..3e3ffb8 100644
> --- a/kernel/sched/fair.c
> +++ b/kernel/sched/fair.c
> @@ -6658,6 +6658,7 @@ static int idle_balance(struct rq *this_rq)
> int this_cpu = this_rq->cpu;
>
> idle_enter_fair(this_rq);
> +
> /*
> * We must set idle_stamp _before_ calling idle_balance(), such that we
> * measure the duration of idle_balance() as idle time.
> @@ -6710,9 +6711,12 @@ static int idle_balance(struct rq *this_rq)
>
> raw_spin_lock(&this_rq->lock);
>
> + if (curr_cost > this_rq->max_idle_balance_cost)
> + this_rq->max_idle_balance_cost = curr_cost;
> +
> /*
What about the update of next_balance field? See the code snippet below.
This will also be skipped as a consequence of the commit e5fc6611 right?
if (pulled_task || time_after(jiffies, this_rq->next_balance)) {
/*
* We are going idle. next_balance may be set based on
* a busy processor. So reset next_balance.
*/
this_rq->next_balance = next_balance;
}
Also the comment in the above snippet does not look right to me.
It says "we are going idle" but the condition checks for pulled_task.
Regards
Preeti U Murthy
> * While browsing the domains, we released the rq lock.
> - * A task could have be enqueued in the meantime
> + * A task could have been enqueued in the meantime.
> */
> if (this_rq->cfs.h_nr_running && !pulled_task) {
> pulled_task = 1;
> @@ -6727,9 +6731,6 @@ static int idle_balance(struct rq *this_rq)
> this_rq->next_balance = next_balance;
> }
>
> - if (curr_cost > this_rq->max_idle_balance_cost)
> - this_rq->max_idle_balance_cost = curr_cost;
> -
> out:
> /* Is there a task of a high priority class? */
> if (this_rq->nr_running != this_rq->cfs.h_nr_running)
>
next prev parent reply other threads:[~2014-04-24 10:20 UTC|newest]
Thread overview: 45+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-04-24 1:30 [PATCH 0/3] sched: Idle balance patches Jason Low
2014-04-24 1:30 ` [PATCH 1/3] sched, balancing: Update rq->max_idle_balance_cost whenever newidle balance is attempted Jason Low
2014-04-24 10:14 ` Preeti U Murthy [this message]
2014-04-24 12:04 ` Peter Zijlstra
2014-04-24 12:44 ` Peter Zijlstra
2014-04-24 16:53 ` Jason Low
2014-04-24 17:14 ` Peter Zijlstra
2014-04-24 17:29 ` Peter Zijlstra
2014-04-24 22:18 ` Jason Low
2014-04-25 5:12 ` Preeti U Murthy
2014-04-25 7:13 ` Jason Low
2014-04-25 7:58 ` Mike Galbraith
2014-04-25 17:03 ` Jason Low
2014-04-25 5:08 ` Preeti U Murthy
2014-04-25 9:43 ` Peter Zijlstra
2014-04-25 19:54 ` Jason Low
2014-04-26 14:50 ` Peter Zijlstra
2014-04-28 16:42 ` Jason Low
2014-04-27 8:31 ` Preeti Murthy
2014-04-28 9:24 ` Peter Zijlstra
2014-04-29 3:10 ` Preeti U Murthy
2014-04-28 18:04 ` Jason Low
2014-04-29 3:52 ` Preeti U Murthy
2014-04-24 1:30 ` [PATCH 2/3] sched: Initialize newidle balance stats in sd_numa_init() Jason Low
2014-04-24 12:18 ` Peter Zijlstra
2014-04-25 5:57 ` Preeti U Murthy
2014-05-08 10:42 ` [tip:sched/core] sched/numa: " tip-bot for Jason Low
2014-04-24 1:30 ` [PATCH 3/3] sched, fair: Stop searching for tasks in newidle balance if there are runnable tasks Jason Low
2014-04-24 2:51 ` Mike Galbraith
2014-04-24 8:28 ` Mike Galbraith
2014-04-24 16:37 ` Jason Low
2014-04-24 19:07 ` Mike Galbraith
2014-04-24 7:15 ` Peter Zijlstra
2014-04-24 16:43 ` Jason Low
2014-04-24 16:52 ` Peter Zijlstra
2014-04-25 1:24 ` Jason Low
2014-04-25 2:45 ` Mike Galbraith
2014-04-25 3:33 ` Jason Low
2014-04-25 5:46 ` Mike Galbraith
2014-04-24 16:54 ` Peter Zijlstra
2014-04-24 10:30 ` Morten Rasmussen
2014-04-24 11:32 ` Peter Zijlstra
2014-04-24 14:08 ` Morten Rasmussen
2014-04-24 14:59 ` Peter Zijlstra
2014-05-08 10:44 ` [tip:sched/core] sched/fair: " tip-bot for Jason Low
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=5358E417.8090503@linux.vnet.ibm.com \
--to=preeti@linux.vnet.ibm.com \
--cc=alex.shi@linaro.org \
--cc=aswin@hp.com \
--cc=chegu_vinod@hp.com \
--cc=daniel.lezcano@linaro.org \
--cc=efault@gmx.de \
--cc=jason.low2@hp.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.