public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: "Nicholas Piggin" <npiggin@gmail.com>
To: "Thomas Gleixner" <tglx@linutronix.de>,
	"Oleg Nesterov" <oleg@redhat.com>,
	"Frederic Weisbecker" <frederic@kernel.org>
Cc: "Ingo Molnar" <mingo@redhat.com>,
	"Peter Zijlstra" <peterz@infradead.org>,
	"Phil Auld" <pauld@redhat.com>,
	"Chris von Recklinghausen" <crecklin@redhat.com>,
	<linux-kernel@vger.kernel.org>
Subject: Re: sched/isolation: tick_take_do_timer_from_boot() calls smp_call_function_single() with irqs disabled
Date: Mon, 27 May 2024 21:16:57 +1000	[thread overview]
Message-ID: <D1KDV2ZCWZF5.29STW6VA0LPX8@gmail.com> (raw)
In-Reply-To: <87ed9nd041.ffs@tglx>

On Mon May 27, 2024 at 8:23 PM AEST, Thomas Gleixner wrote:
> On Mon, May 27 2024 at 19:10, Nicholas Piggin wrote:
> > On Sat May 25, 2024 at 8:06 AM AEST, Thomas Gleixner wrote:
> >> along with the removal of the SMP function call voodoo programming gunk,
> >> a lengthy changelog and a bunch of useful comments.
> >
> > I might not have tested that path on powerpc since it should not
> > switch clockevent driver (or clocksource either I think) at least
> > on 64-bit.  Explains the smp_call_function warning if you are
> > testing on x86 :/
>
> Even on PowerPC the per CPU clockevent driver is registered during early
> boot for the boot CPU and for the APs when they are onlined. Before your
> change the boot CPU was unconditionally taking over the do_timer duty
> and never gave up on it in the NOHZ full case.
>
> The logic you added allows that the duty is taken by the first
> housekeeping CPU in the case that the boot CPU is marked NOHZ full.
>
> So yes, that function call _is_ invoked on PowerPC too if the boot CPU
> is NOHZ full. There is absolutely nothing x86 specific.

Okay, right you are. Indeed it does trigger.

> The difference is that PowerPC registers the per CPU clockevent _before_
> setting the CPU online and x86 does it afterwards.
>
> So the warning does not trigger on PowerPC because:
>
>    WARN_ON_ONCE(cpu_online(this_cpu) && irqs_disabled() && ...);

That explains it.

Thanks,
Nick

  reply	other threads:[~2024-05-27 11:17 UTC|newest]

Thread overview: 40+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-05-22 15:17 sched/isolation: tick_take_do_timer_from_boot() calls smp_call_function_single() with irqs disabled Oleg Nesterov
2024-05-23 13:23 ` Oleg Nesterov
2024-05-24  9:31   ` Thomas Gleixner
2024-05-24 14:10     ` Oleg Nesterov
2024-05-24 15:22       ` Frederic Weisbecker
2024-05-24 15:20     ` Frederic Weisbecker
2024-05-24 17:16       ` Thomas Gleixner
2024-05-24 18:37       ` Oleg Nesterov
2024-05-24 22:06         ` Thomas Gleixner
2024-05-25 13:51           ` Oleg Nesterov
2024-05-25 14:13             ` Oleg Nesterov
2024-05-26 19:27           ` Oleg Nesterov
2024-05-26 20:52             ` Frederic Weisbecker
2024-05-27 15:57               ` Oleg Nesterov
2024-05-27 11:01             ` Nicholas Piggin
2024-05-27 15:57               ` Oleg Nesterov
2024-05-28  1:02                 ` Nicholas Piggin
2024-05-28 12:19                   ` Oleg Nesterov
2024-05-27 16:13               ` Thomas Gleixner
2024-05-26 20:57           ` Frederic Weisbecker
2024-05-27  9:10           ` Nicholas Piggin
2024-05-27 10:23             ` Thomas Gleixner
2024-05-27 11:16               ` Nicholas Piggin [this message]
2024-05-28 12:20 ` [PATCH] tick/nohz_full: don't abuse smp_call_function_single() in tick_setup_device() Oleg Nesterov
2024-05-28 12:22   ` Oleg Nesterov
2024-05-30 12:40   ` [PATCH] tick/nohz_full: turn tick_do_timer_boot_cpu into boot_cpu_is_nohz_full Oleg Nesterov
2024-06-03 15:35     ` [PATCH v2] " Oleg Nesterov
2024-06-03 21:44       ` Frederic Weisbecker
2024-06-04  5:08       ` Nicholas Piggin
2024-05-30 14:52   ` [PATCH] tick/nohz_full: don't abuse smp_call_function_single() in tick_setup_device() Frederic Weisbecker
2024-05-30 16:52     ` Oleg Nesterov
2024-05-30 17:01     ` Oleg Nesterov
2024-06-01 14:03     ` Oleg Nesterov
2024-06-02 21:29       ` Frederic Weisbecker
2024-06-03 15:41         ` Oleg Nesterov
2024-06-03 21:45           ` Frederic Weisbecker
2024-06-10 15:55   ` [PING ;)] " Oleg Nesterov
2024-06-10 18:15     ` Thomas Gleixner
2024-06-10 18:26   ` [tip: timers/urgent] tick/nohz_full: Don't " tip-bot2 for Oleg Nesterov
2024-06-10 19:42     ` 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=D1KDV2ZCWZF5.29STW6VA0LPX8@gmail.com \
    --to=npiggin@gmail.com \
    --cc=crecklin@redhat.com \
    --cc=frederic@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@redhat.com \
    --cc=oleg@redhat.com \
    --cc=pauld@redhat.com \
    --cc=peterz@infradead.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox