Re: [PATCH 10/21] context_tracking: Take idle eqs entrypoints over RCU

Mark Rutland
2022-05-03T13:33:37Z

On Tue, May 03, 2022 at 01:42:25PM +0200, Frederic Weisbecker wrote:
> On Tue, May 03, 2022 at 12:02:51PM +0100, Mark Rutland wrote:
> > Hi Frederic,
> >
> > On Tue, May 03, 2022 at 12:00:40PM +0200, Frederic Weisbecker wrote:
> > > The RCU dynticks counter is going to be merged into the context tracking
> > > subsystem. Start with moving the idle extended quiescent states
> > > entrypoints to context tracking. For now those are dumb redirections to
> > > existing RCU calls.
> >
> > I was a bit confused looking at this, because that redirection only exists for
> > CONFIG_CONTEXT_TRACKING, and is empty otherwise.
> >
> > I see this patch makes TREE_RCU select CONTEXT_TRACKING, which means that
> > works. Since that also means building the rest of the context tracking code, I
> > think it'd be worth mentioning that in the commit message.
>
> Not exactly, it only builds a minimal version of CONTEXT_TRACKING, which maps
> to roughly the vanilla RCU-idle code.
>
> The user tracking part (which is the vanilla CONTEXT_TRACKING) now becomes
> CONFIG_CONTEXT_TRACKING_USER

Ah, sorry. That makes sense to me now!

> > Do all architectures which can use TREE_RCU today already support context
> > tracking? If not, do those work by default?
>
> No need to, the old context tracking becomes CONFIG_CONTEXT_TRACKING_USER
> which is not needed by TREE_RCU.
>
> Ok you're right, this is all very confusing :o)
>
> Let's clarify this, I'm going to do the following on the next version:
>
> * The current CONFIG_CONTEXT_TRACKING becomes CONFIG_CONTEXT_TRACKING_USER.
> This part needs support from the architecture.
>
> * The RCU-idle functions that have been moved to context tracking will become
> CONFIG_CONTEXT_TRACKING_IDLE. This part doesn't need support from the
> architecture and will be set by TREE_RCU.
>
> Would that look clearer?

I think so, yes!

It would also help if the prior commit message could be explicit about
the end result: After the Kconfig rework both
CONFIG_CONTEXT_TRACKING_USER and CONFIG_CONTEXT_TRACKING exist, but
CONFIG_CONTEXT_TRACKING will only used to decide whether to build object
files with common context tracking logic.

Thanks,
Mark.