From: Thomas Gleixner <tglx@kernel.org>
To: "Ionut Nechita (Sunlight Linux)" <sunlightlinux@gmail.com>,
Frederic Weisbecker <frederic@kernel.org>,
Ingo Molnar <mingo@kernel.org>,
Anna-Maria Behnsen <anna-maria@linutronix.de>,
Ionut Nechita <ionut_n2001@yahoo.com>
Cc: linux-kernel@vger.kernel.org
Subject: Re: [PATCH 1/1] tick/nohz: Add fast-path tick stopping for idle isolated cores
Date: Tue, 13 Jan 2026 11:02:19 +0100 [thread overview]
Message-ID: <873449g79w.ffs@tglx> (raw)
In-Reply-To: <20260106153646.23280-4-sunlightlinux@gmail.com>
On Tue, Jan 06 2026 at 17:36, Ionut Nechita wrote:
> From: Ionut Nechita <ionut_n2001@yahoo.com>
>
> When a CPU is configured as nohz_full and is running the idle task with
> no tick dependencies, we can skip expensive dependency checks and
s/we can/it is possible to/
> immediately allow the tick to stop. This significantly reduces timer
> interrupts on properly isolated cores.
>
> The patch adds:
"The patch adds" is a pointless filler phrase. See
Documentation/process/
> + /*
> + * Prefetch dependency structures for better cache locality
> + */
> + prefetch(&tick_dep_mask);
> + prefetch(&ts->tick_dep_mask);
> + prefetch(¤t->tick_dep_mask);
> + prefetch(¤t->signal->tick_dep_mask);
These are really not required.
> + /*
> + * Fast path for idle isolated cores: if this is an isolated CPU
> + * running the idle task with no dependencies, we can skip expensive
> + * checks and immediately allow tick to stop. This significantly
> + * reduces timer interrupts on properly isolated cores.
> + */
> + if (tick_nohz_full_cpu(cpu) &&
> + is_idle_task(current) &&
> + !atomic_read(&tick_dep_mask) &&
> + !atomic_read(&ts->tick_dep_mask) &&
> + !atomic_read(¤t->tick_dep_mask) &&
> + !atomic_read(¤t->signal->tick_dep_mask)) {
> + return true;
How is that different from the existing checks for the various
dependency masks, except for the added nohz_full_cpu() and
is_idle_task() conditions?
I can see that not going through the per bit checks is faster, but I
really do not see how this reduces the timer interrupts by an order of
magnitude. At least not without a proper explanation why this matters
and how this optimization is causing this improvement.
Also why is this restricted to tick_nohz_full CPUs and to the idle task?
You can avoid the per bit evaluation way simpler, which improves the
evaluation independent of context. See uncompiled patch below.
Thanks,
tglx
---
--- a/kernel/time/tick-sched.c
+++ b/kernel/time/tick-sched.c
@@ -344,6 +344,9 @@ static bool check_tick_dependency(atomic
{
int val = atomic_read(dep);
+ if (likely(!tracepoint_enabled(tick_stop)))
+ return !val;
+
if (val & TICK_DEP_MASK_POSIX_TIMER) {
trace_tick_stop(0, TICK_DEP_MASK_POSIX_TIMER);
return true;
next prev parent reply other threads:[~2026-01-13 10:02 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-01-06 15:36 [PATCH 0/1] tick/nohz: Optimize tick stopping for isolated cores Ionut Nechita (Sunlight Linux)
2026-01-06 15:36 ` [PATCH 1/1] tick/nohz: Add fast-path tick stopping for idle " Ionut Nechita (Sunlight Linux)
2026-01-13 10:02 ` Thomas Gleixner [this message]
2026-01-26 19:31 ` Ionut Nechita (Sunlight Linux)
2026-01-26 21:32 ` Thomas Gleixner
2026-01-27 13:40 ` Frederic Weisbecker
2026-01-28 7:26 ` Ionut Nechita (Sunlight Linux)
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=873449g79w.ffs@tglx \
--to=tglx@kernel.org \
--cc=anna-maria@linutronix.de \
--cc=frederic@kernel.org \
--cc=ionut_n2001@yahoo.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@kernel.org \
--cc=sunlightlinux@gmail.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 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.