From: Mike Galbraith <umgwanakikbuti@gmail.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, preeti@linux.vnet.ibm.com,
vincent.guittot@linaro.org, morten.rasmussen@arm.com,
aswin@hp.com, chegu_vinod@hp.com
Subject: Re: [PATCH 3/3] sched, fair: Stop searching for tasks in newidle balance if there are runnable tasks
Date: Thu, 24 Apr 2014 21:07:00 +0200 [thread overview]
Message-ID: <1398366420.5324.13.camel@marge.simpson.net> (raw)
In-Reply-To: <1398357472.3509.2.camel@j-VirtualBox>
On Thu, 2014-04-24 at 09:37 -0700, Jason Low wrote:
> On Thu, 2014-04-24 at 04:51 +0200, Mike Galbraith wrote:
> > On Wed, 2014-04-23 at 18:30 -0700, Jason Low wrote:
> > > It was found that when running some workloads (such as AIM7) on large systems
> > > with many cores, CPUs do not remain idle for long. Thus, tasks can
> > > wake/get enqueued while doing idle balancing.
> > >
> > > In this patch, while traversing the domains in idle balance, in addition to
> > > checking for pulled_task, we add an extra check for this_rq->nr_running for
> > > determining if we should stop searching for tasks to pull. If there are
> > > runnable tasks on this rq, then we will stop traversing the domains. This
> > > reduces the chance that idle balance delays a task from running.
> > >
> > > This patch resulted in approximately a 6% performance improvement when
> > > running a Java Server workload on an 8 socket machine.
> >
> > Checking rq->lock for contention before ever going to idle balancing as
> > well should give you a bit more. No need to run around looking for work
> > that's trying to arrive. By not going there, perhaps stacking tasks,
> > you may head off a future bounce as well.
>
> Are you thinking of something along the lines of this:
>
> @@ -6658,7 +6658,8 @@ static int idle_balance(struct rq *this_rq)
> */
> this_rq->idle_stamp = rq_clock(this_rq);
>
> - if (this_rq->avg_idle < sysctl_sched_migration_cost)
> + if (this_rq->avg_idle < sysctl_sched_migration_cost ||
> + spin_is_contended(&this_rq->lock))
> goto out;
>
More or less, yes, that's what I was thinking, because the wakeup you
are watching for, and encountering in reality could very well be that
very one. But as noted, my reaction to that wakeup couldn't possibly
have been further off the mark.
-Mike
next prev parent reply other threads:[~2014-04-24 19:07 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
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 [this message]
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=1398366420.5324.13.camel@marge.simpson.net \
--to=umgwanakikbuti@gmail.com \
--cc=alex.shi@linaro.org \
--cc=aswin@hp.com \
--cc=chegu_vinod@hp.com \
--cc=daniel.lezcano@linaro.org \
--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=preeti@linux.vnet.ibm.com \
--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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®