From: Frederic Weisbecker <frederic@kernel.org>
To: Thomas Gleixner <tglx@linutronix.de>
Cc: Victor Hassan <victor@allwinnertech.com>,
fweisbec@gmail.com, mingo@kernel.org, jindong.yue@nxp.com,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH v2] tick/broadcast: Do not set oneshot_mask except was_periodic was true
Date: Mon, 17 Apr 2023 15:28:30 +0200 [thread overview]
Message-ID: <ZD1Jfr7TGq/4gabB@localhost.localdomain> (raw)
In-Reply-To: <87sfd0yi4g.ffs@tglx>
Le Sat, Apr 15, 2023 at 11:01:51PM +0200, Thomas Gleixner a écrit :
> > * CPU 1 stop its tick, next event is in one hour. It calls
> > tick_broadcast_enter() and goes to sleep.
>
> So there is already a broadcast device installed, right?
Yes
>
> > * CPU 1 gets an interrupt that enqueues a new timer expiring in the next jiffy
> > (note it's not yet actually programmed in the tick device)
> > * CPU 1 call tick_broadcast_exit().
> > * CPU 0 registers new broadcast device and sets CPU 1 in tick_broadcast_oneshot_mask
>
> This lacks an explanation why CPU0 sets CPU1 in that mask. It does not
> _set_ it explicitely, only implicitely by ORing the periodic broadcast
> cpumask over.
>
> Now the question is why is CPU1 set in the periodic broadcast mask when
> the CPU already switched over to NOHZ mode?
>
> That needs to be explained too.
I probably got confused with that tick_broadcast_mask, so it's only set for
periodic broadcast? Should it be renamed to tick_periodic_broadcast_mask to
disambiguate my eternal confusion?
>
> > * CPU 0 runs the broadcast callback, sees that the next timer for CPU 1
> > is in one hour (because the recently enqueued timer for CPU 1 hasn't been programmed
> > yet), so it programs the broadcast to that 1 hour deadline.
> > * CPU 1 runs tick_nohz_idle_stop_tick() which eventually writes and program
> > dev->next_event to next jiffy
> > * CPU 1 runs into cpuidle_enter_state(), and tick_broadcast_enter() is ignored because
> > the CPU is already in tick_broadcast_oneshot_mask, so the dev->next_event
> > change isn't propagated to broadcast.
> > * CPU 1 goes to sleep for 1 hour.
>
> Also please use tabular style to explain the parallel events as
> explained in the documentation.
Yeah my bad I asked Victor to integrate that scenario that popped out
of me misunderstanding that code. Not even mentioning the form.
Now to review your proposal.
Thanks.
next prev parent reply other threads:[~2023-04-17 13:28 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-04-12 0:34 [PATCH v2] tick/broadcast: Do not set oneshot_mask except was_periodic was true Victor Hassan
2023-04-15 21:01 ` Thomas Gleixner
2023-04-17 13:28 ` Frederic Weisbecker [this message]
2023-04-17 15:02 ` Frederic Weisbecker
2023-04-18 8:50 ` Thomas Gleixner
2023-04-18 9:09 ` Thomas Gleixner
2023-04-19 13:36 ` Frederic Weisbecker
2023-04-21 21:32 ` Thomas Gleixner
2023-05-02 11:19 ` Frederic Weisbecker
2023-05-02 12:38 ` Thomas Gleixner
2023-05-03 22:27 ` Frederic Weisbecker
2023-05-03 22:53 ` Thomas Gleixner
2023-05-04 7:50 ` Frederic Weisbecker
2023-05-06 16:40 ` [PATCH v3] tick/broadcast: Make broadcast device replacement work correctly Thomas Gleixner
2023-05-08 21:27 ` [tip: timers/urgent] " tip-bot2 for Thomas Gleixner
2023-05-06 12:09 ` [PATCH v2] tick/broadcast: Do not set oneshot_mask except was_periodic was true Victor Hassan
2023-04-23 14:16 ` Victor Hassan
2023-04-24 18:28 ` Thomas Gleixner
2023-04-24 18:31 ` Thomas Gleixner
2023-04-26 2:50 ` Victor Hassan
2023-05-05 1:46 ` Victor Hassan
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=ZD1Jfr7TGq/4gabB@localhost.localdomain \
--to=frederic@kernel.org \
--cc=fweisbec@gmail.com \
--cc=jindong.yue@nxp.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@kernel.org \
--cc=tglx@linutronix.de \
--cc=victor@allwinnertech.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