From: Jason Low <jason.low2@hp.com>
To: Srikar Dronamraju <srikar@linux.vnet.ibm.com>
Cc: mingo@redhat.com, peterz@infradead.org,
linux-kernel@vger.kernel.org, efault@gmx.de, pjt@google.com,
preeti@linux.vnet.ibm.com, akpm@linux-foundation.org,
mgorman@suse.de, riel@redhat.com, aswin@hp.com,
scott.norton@hp.com
Subject: Re: [PATCH v4 2/3] sched: Consider max cost of idle balance per sched domain
Date: Tue, 03 Sep 2013 14:06:34 -0700 [thread overview]
Message-ID: <1378242394.3460.37.camel@j-VirtualBox> (raw)
In-Reply-To: <20130902065446.GV1720@linux.vnet.ibm.com>
On Mon, 2013-09-02 at 12:24 +0530, Srikar Dronamraju wrote:
> If we face a runq lock contention, then domain_cost can go up.
> The runq lock contention could be temporary, but we carry the domain
> cost forever (i.e till the next reboot). How about averaging the cost +
> penalty for unsuccessful balance.
>
> Something like
> domain_cost = sched_clock_cpu(smp_processor_id()) - t0;
> if (!pulled_task)
> domain_cost *= 2;
>
> sd->max_newidle_lb_cost += domain_cost;
> sd->max_newidle_lb_cost /= 2;
>
>
> Maybe the name could then change to avg_newidle_lb_cost.
>
> > +
> > + curr_cost += domain_cost;
> > }
> >
We tried keeping track of the avg in the v2 patch. It didn't really help
reduce the contention in idle balancing and we needed to also reduce
avg_idle by a factor of 10-20+ when comparing it to
avg_idle_balance_cost in order to get the good performance boosts.
One potential explanation why is that avg idle balance cost can often
have a large variation. That would make both computing the avg_idle and
comparing avg_idle with avg idle balance cost to not really be
consistent.
I think using the max allows us to keep the cost at a more constant rate
so that we can more meaningfully compare avg_idle with respect to "idle
balance cost". It also helps reduce the chance avg_idle overruns the
balance cost. Patch 3 reduces the max cost so that the value isn't kept
until the next reboot.
next prev parent reply other threads:[~2013-09-03 21:06 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-08-29 20:05 [PATCH v4 0/3] sched: Limiting idle balance Jason Low
2013-08-29 20:05 ` [PATCH v4 1/3] sched: Reduce overestimating rq->avg_idle Jason Low
2013-09-02 6:36 ` Srikar Dronamraju
2013-08-29 20:05 ` [PATCH v4 2/3] sched: Consider max cost of idle balance per sched domain Jason Low
2013-08-30 9:46 ` Peter Zijlstra
2013-09-02 6:54 ` Srikar Dronamraju
2013-09-03 21:06 ` Jason Low [this message]
2013-08-29 20:05 ` [RFC][PATCH v4 3/3] sched: Periodically decay max cost of idle balance Jason Low
2013-08-30 10:18 ` Peter Zijlstra
2013-08-30 10:29 ` Peter Zijlstra
2013-09-04 6:02 ` Jason Low
2013-09-09 11:44 ` Peter Zijlstra
2013-09-09 20:40 ` Jason Low
2013-09-04 7:10 ` Jason Low
2013-09-09 11:49 ` Peter Zijlstra
2013-09-09 21:07 ` Jason Low
2013-09-10 1:40 ` Mike Galbraith
2013-09-12 10:31 ` [PATCH v4 0/3] sched: Limiting " Peter Zijlstra
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=1378242394.3460.37.camel@j-VirtualBox \
--to=jason.low2@hp.com \
--cc=akpm@linux-foundation.org \
--cc=aswin@hp.com \
--cc=efault@gmx.de \
--cc=linux-kernel@vger.kernel.org \
--cc=mgorman@suse.de \
--cc=mingo@redhat.com \
--cc=peterz@infradead.org \
--cc=pjt@google.com \
--cc=preeti@linux.vnet.ibm.com \
--cc=riel@redhat.com \
--cc=scott.norton@hp.com \
--cc=srikar@linux.vnet.ibm.com \
/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