All of lore.kernel.org
 help / color / mirror / Atom feed
From: Peter Zijlstra <peterz@infradead.org>
To: byungchul.park@lge.com
Cc: mingo@kernel.org, linux-kernel@vger.kernel.org,
	fweisbec@gmail.com, tglx@linutronix.de
Subject: Re: [PATCH v3 2/2] sched: consider missed ticks when updating global cpu load
Date: Fri, 2 Oct 2015 17:59:06 +0200	[thread overview]
Message-ID: <20151002155906.GD3816@twins.programming.kicks-ass.net> (raw)
In-Reply-To: <1443771974-27077-3-git-send-email-byungchul.park@lge.com>

On Fri, Oct 02, 2015 at 04:46:14PM +0900, byungchul.park@lge.com wrote:
> From: Byungchul Park <byungchul.park@lge.com>
> 
> in hrtimer_interrupt(), the first tick_program_event() can be failed
> because the next timer could be already expired due to,
> (see the comment in hrtimer_interrupt())
> 
> - tracing
> - long lasting callbacks

If anything keeps interrupts disabled for longer than 1 tick, you'd
better go fix that.

> - being scheduled away when running in a VM

Not sure how much I should care about that, and this patch is completely
wrong for that anyhow.

And this case in hrtimer_interrupt() is basically a fail case, if you
hit that, you've got bigger problems. The solution is to rework things
so you don't get there.


> in the case that the first tick_program_event() is failed, the second
> tick_program_event() set the expired time to more than one tick later.
> then next tick can happen after more than one tick, even though tick is
> not stopped by e.g. NOHZ.
> 
> when the next tick occurs, update_process_times() -> scheduler_tick()
> -> update_cpu_load_active() is performed, assuming the distance between
> last tick and current tick is 1 tick! it's wrong in this case. thus,
> this abnormal case should be considered in update_cpu_load_active().

Everything in update_process_times() assumes 1 tick, just fixing up 
one function inside that callchain is wrong -- I've already told you
that.



  reply	other threads:[~2015-10-02 16:04 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-10-02  7:46 [PATCH v3 0/2] sched: consider missed ticks when updating cpu load byungchul.park
2015-10-02  7:46 ` [PATCH v3 1/2] sched: make __update_cpu_load() handle active tickless case byungchul.park
2015-10-02  7:46 ` [PATCH v3 2/2] sched: consider missed ticks when updating global cpu load byungchul.park
2015-10-02 15:59   ` Peter Zijlstra [this message]
2015-10-04  6:58     ` Byungchul Park
2015-10-05  8:15       ` Peter Zijlstra
2015-10-12 17:45         ` Frederic Weisbecker
2015-10-13  7:04           ` Peter Zijlstra
2015-10-13  8:37             ` Byungchul Park
2015-10-13 14:55               ` Frederic Weisbecker
2015-10-13 14:51             ` Frederic Weisbecker
2015-10-13 14:56               ` 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=20151002155906.GD3816@twins.programming.kicks-ass.net \
    --to=peterz@infradead.org \
    --cc=byungchul.park@lge.com \
    --cc=fweisbec@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@kernel.org \
    --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.