All of lore.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 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.