From: Frederic Weisbecker <frederic@kernel.org>
To: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>,
LKML <linux-kernel@vger.kernel.org>,
"Zhou Ti (x2019cwm)" <x2019cwm@stfx.ca>,
"Rafael J . Wysocki" <rafael.j.wysocki@intel.com>,
Yunfeng Ye <yeyunfeng@huawei.com>,
"Paul E . McKenney" <paulmck@kernel.org>,
Marcelo Tosatti <mtosatti@redhat.com>,
Ingo Molnar <mingo@kernel.org>
Subject: Re: [PATCH 01/10] tick/nohz: Prevent tick_nohz_get_sleep_length() from returning negative value
Date: Tue, 16 Mar 2021 14:37:03 +0100 [thread overview]
Message-ID: <20210316133703.GC639918@lothringen> (raw)
In-Reply-To: <YFCiycIaViYCy3GH@hirez.programming.kicks-ass.net>
On Tue, Mar 16, 2021 at 01:21:29PM +0100, Peter Zijlstra wrote:
> On Thu, Mar 11, 2021 at 01:36:59PM +0100, Frederic Weisbecker wrote:
> > From: "Zhou Ti (x2019cwm)" <x2019cwm@stfx.ca>
> >
> > If the hardware clock happens to fire its interrupts late, two possible
> > issues can happen while calling tick_nohz_get_sleep_length(). Either:
> >
> > 1) The next clockevent device event is due past the last idle entry time.
> >
> > or:
> >
> > 2) The last timekeeping update happened before the last idle entry time
> > and the next timer callback expires before the last idle entry time.
> >
> > Make sure that both cases are handled to avoid returning a negative
> > duration to the cpuidle governors.
>
> Why? ... and wouldn't it be cheaper the fix the caller to
> check negative once, instead of adding two branches here?
There are already two callers and potentially two return values to check
for each because the function returns two values.
I'd rather make the API more robust instead of fixing each callers and worrying
about future ones.
next prev parent reply other threads:[~2021-03-16 13:37 UTC|newest]
Thread overview: 35+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-03-11 12:36 [PATCH 00/10] tick/nohz updates Frederic Weisbecker
2021-03-11 12:36 ` [PATCH 01/10] tick/nohz: Prevent tick_nohz_get_sleep_length() from returning negative value Frederic Weisbecker
2021-03-16 12:21 ` Peter Zijlstra
2021-03-16 13:37 ` Frederic Weisbecker [this message]
2021-03-16 14:35 ` Peter Zijlstra
2021-03-16 14:53 ` Frederic Weisbecker
2021-03-16 15:26 ` Rafael J. Wysocki
2021-03-16 15:57 ` 回复: " Zhou Ti (x2019cwm)
2021-03-16 16:08 ` Zhou Ti (x2019cwm)
2021-03-16 16:25 ` Peter Zijlstra
2021-03-17 21:49 ` Zhou Ti (x2019cwm)
2021-03-25 13:14 ` Frederic Weisbecker
2021-03-25 18:56 ` Rafael J. Wysocki
2021-03-25 19:18 ` Zhou Ti (x2019cwm)
2021-03-25 19:50 ` Rafael J. Wysocki
2021-03-25 20:37 ` Zhou Ti (x2019cwm)
2021-03-26 17:01 ` Rafael J. Wysocki
2021-03-26 17:53 ` Zhou Ti (x2019cwm)
2021-03-26 18:54 ` Rafael J. Wysocki
2021-03-26 22:53 ` Zhou Ti (x2019cwm)
2021-03-29 12:44 ` Rafael J. Wysocki
2021-03-29 14:49 ` Zhou Ti (x2019cwm)
2021-03-11 12:37 ` [PATCH 02/10] tick/nohz: Add tick_nohz_full_this_cpu() Frederic Weisbecker
2021-03-16 12:28 ` Peter Zijlstra
2021-03-16 13:05 ` Frederic Weisbecker
2021-03-11 12:37 ` [PATCH 03/10] tick/nohz: Conditionally restart tick on idle exit Frederic Weisbecker
2021-03-11 12:37 ` [PATCH 04/10] tick/nohz: Remove superflous check for CONFIG_VIRT_CPU_ACCOUNTING_NATIVE Frederic Weisbecker
2021-03-11 12:37 ` [PATCH 05/10] tick/nohz: Update idle_exittime on actual idle exit Frederic Weisbecker
2021-03-11 12:37 ` [PATCH 06/10] timer: Report ignored local enqueue in nohz mode Frederic Weisbecker
2021-03-16 15:27 ` Peter Zijlstra
2021-03-25 13:07 ` Frederic Weisbecker
2021-03-11 12:37 ` [PATCH 07/10] tick/nohz: Update nohz_full Kconfig help Frederic Weisbecker
2021-03-11 12:37 ` [PATCH 08/10] tick/nohz: Only wakeup a single target cpu when kicking a task Frederic Weisbecker
2021-03-11 12:37 ` [PATCH 09/10] tick/nohz: Change signal tick dependency to wakeup CPUs of member tasks Frederic Weisbecker
2021-03-11 12:37 ` [PATCH 10/10] tick/nohz: Kick only _queued_ task whose tick dependency is updated Frederic Weisbecker
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=20210316133703.GC639918@lothringen \
--to=frederic@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@kernel.org \
--cc=mtosatti@redhat.com \
--cc=paulmck@kernel.org \
--cc=peterz@infradead.org \
--cc=rafael.j.wysocki@intel.com \
--cc=tglx@linutronix.de \
--cc=x2019cwm@stfx.ca \
--cc=yeyunfeng@huawei.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