From: Frederic Weisbecker <fweisbec@gmail.com>
To: Peter Zijlstra <peterz@infradead.org>
Cc: LKML <linux-kernel@vger.kernel.org>,
Byungchul Park <byungchul.park@lge.com>,
Chris Metcalf <cmetcalf@ezchip.com>,
Thomas Gleixner <tglx@linutronix.de>,
Luiz Capitulino <lcapitulino@redhat.com>,
Christoph Lameter <cl@linux.com>,
"Paul E . McKenney" <paulmck@linux.vnet.ibm.com>,
Mike Galbraith <efault@gmx.de>, Rik van Riel <riel@redhat.com>
Subject: Re: [RFC PATCH 4/4] sched: Upload nohz full CPU load on task enqueue/dequeue
Date: Tue, 19 Jan 2016 18:03:19 +0100 [thread overview]
Message-ID: <20160119170317.GC5317@lerouge> (raw)
In-Reply-To: <20160119131708.GF6344@twins.programming.kicks-ass.net>
On Tue, Jan 19, 2016 at 02:17:08PM +0100, Peter Zijlstra wrote:
> On Wed, Jan 13, 2016 at 05:01:31PM +0100, Frederic Weisbecker wrote:
> > The full nohz CPU load is currently accounted on tick restart only.
> > But there are a few issues with this model:
> >
> > _ On tick restart, if cpu_load[0] doesn't contain the load of the actual
> > tickless load that just ran, we are going to account a wrong value.
> > And it is very likely to be so given that cpu_load[0] doesn't have
> > an opportunity to be updated between tick stop and tick restart.
> >
> > _ If the runqueue had updates that didn't trigger a tick restart, we
> > are going to miss those CPU load changes.
> >
> > A solution to fix this is to update the CPU load everytime we enqueue
> > or dequeue a task in the fair runqueue and more than a jiffy occured
> > since the last update.
>
> Would not a much better solution be to do this remotely instead of from
> one of the hottest functions in the scheduler?
The problem with doing this remotely is that we can miss past cpu loads if
there was several enqueue/dequeue operations happening while tickless.
For example if CPU 1 runs sched entity A with a load of 5 (purely theoric)
for 5 sec then it sleeps, entity B runs with a load of 1 and then CPU 2 updates
the load of CPU 1 remotely. cpu_load[0] will be accurate because it's the current
load of CPU 1 (which is the load of entity B), but the other indexes won't take
the decayed load of entity A into account.
Now we can indeed remove the queue time local update and only rely on remote
updates when needed if we can live with a light precision on target_load() and
source_load().
next prev parent reply other threads:[~2016-01-19 17:03 UTC|newest]
Thread overview: 58+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-01-13 16:01 [RFC PATCH 0/4] sched: Improve cpu load accounting with nohz Frederic Weisbecker
2016-01-13 16:01 ` [PATCH 1/4] sched: Don't account tickless CPU load on tick Frederic Weisbecker
2016-01-19 13:08 ` Peter Zijlstra
2016-01-19 16:22 ` Frederic Weisbecker
2016-01-19 18:56 ` Peter Zijlstra
2016-01-19 22:33 ` Frederic Weisbecker
2016-01-20 5:43 ` Byungchul Park
2016-01-20 10:26 ` Byungchul Park
2016-01-28 16:01 ` Frederic Weisbecker
2016-01-29 9:50 ` Peter Zijlstra
2016-02-01 10:05 ` Byungchul Park
2016-02-01 10:09 ` [PATCH] sched: calculate sched_clock_cpu without tick handling during nohz Byungchul Park
2016-02-01 10:34 ` [PATCH 1/4] sched: Don't account tickless CPU load on tick Peter Zijlstra
2016-02-01 23:51 ` Byungchul Park
2016-02-02 0:50 ` Byungchul Park
2016-02-01 6:33 ` Byungchul Park
2016-01-20 8:42 ` Thomas Gleixner
2016-01-20 17:36 ` Frederic Weisbecker
2016-01-22 8:40 ` Byungchul Park
2016-01-13 16:01 ` [PATCH 2/4] sched: Consolidate nohz CPU load update code Frederic Weisbecker
2016-01-14 2:30 ` Byungchul Park
2016-01-19 13:13 ` Peter Zijlstra
2016-01-20 0:51 ` Byungchul Park
2016-01-14 5:18 ` Byungchul Park
2016-01-19 13:13 ` Peter Zijlstra
2016-01-19 16:49 ` Frederic Weisbecker
2016-01-20 1:41 ` Byungchul Park
2016-02-29 11:14 ` [tip:sched/core] sched/fair: " tip-bot for Frederic Weisbecker
2016-01-13 16:01 ` [RFC PATCH 3/4] sched: Move cpu load stats functions above fair queue callbacks Frederic Weisbecker
2016-01-13 16:01 ` [RFC PATCH 4/4] sched: Upload nohz full CPU load on task enqueue/dequeue Frederic Weisbecker
2016-01-19 13:17 ` Peter Zijlstra
2016-01-19 17:03 ` Frederic Weisbecker [this message]
2016-01-20 9:09 ` Peter Zijlstra
2016-01-20 14:54 ` Frederic Weisbecker
2016-01-20 15:11 ` Thomas Gleixner
2016-01-20 15:19 ` Christoph Lameter
2016-01-20 16:52 ` Frederic Weisbecker
2016-01-20 16:45 ` Frederic Weisbecker
2016-01-20 16:56 ` Peter Zijlstra
2016-01-20 17:21 ` Frederic Weisbecker
2016-01-20 18:25 ` Peter Zijlstra
2016-01-21 13:25 ` Frederic Weisbecker
2016-01-20 9:03 ` Thomas Gleixner
2016-01-20 14:31 ` Frederic Weisbecker
2016-01-20 14:43 ` Thomas Gleixner
2016-01-20 16:40 ` Frederic Weisbecker
2016-01-20 16:42 ` Christoph Lameter
2016-01-20 16:47 ` Frederic Weisbecker
2016-01-14 21:19 ` [RFC PATCH 0/4] sched: Improve cpu load accounting with nohz Dietmar Eggemann
2016-01-14 21:27 ` Peter Zijlstra
2016-01-14 22:23 ` Dietmar Eggemann
2016-01-15 7:07 ` Byungchul Park
2016-01-15 16:56 ` Dietmar Eggemann
2016-01-18 0:23 ` Byungchul Park
2016-01-19 13:04 ` Peter Zijlstra
2016-01-20 0:48 ` Byungchul Park
2016-01-20 13:04 ` Dietmar Eggemann
2016-02-29 11:14 ` [tip:sched/core] sched/fair: Avoid using decay_load_missed() with a negative value tip-bot for Byungchul Park
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=20160119170317.GC5317@lerouge \
--to=fweisbec@gmail.com \
--cc=byungchul.park@lge.com \
--cc=cl@linux.com \
--cc=cmetcalf@ezchip.com \
--cc=efault@gmx.de \
--cc=lcapitulino@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=paulmck@linux.vnet.ibm.com \
--cc=peterz@infradead.org \
--cc=riel@redhat.com \
--cc=tglx@linutronix.de \
/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.