Re: [PATCH 1/2] sched/isolation: Merge individual nohz_full features into a common housekeeping flag

From: Frederic Weisbecker
Date: Tue Feb 07 2023 - 06:50:10 EST


On Mon, Feb 06, 2023 at 04:51:09PM +0100, Michal Koutný wrote:
> Hello Frederic.
>
> On Sat, Feb 04, 2023 at 12:24:08AM +0100, Frederic Weisbecker <frederic@xxxxxxxxxx> wrote:
> > The individual isolation features turned on by nohz_full were initially
> > split in order for each of them to be tunable through cpusets. However
> > plans have changed in favour of an interface (be it cpusets or sysctl)
> > grouping all these features to be turned on/off altogether.
> > Then should the need ever arise, the interface can still be expanded
> > to handle the individual isolation features.
> >
> > Therefore the current isolation split between tick/timer/workqueue/rcu/
> > kthreads/misc doesn't make sense anymore.
>
> Why it doesn't make sense? I think it's a useful annotation of
> respective operations wrt CPU isolation.

But what do we need these annotations for? The only outcome I've ever
seen with these is that it confuses everyone.

>
> The grouping you did into HK_TYPE_KERNEL_NOISE (or even coarser) should
> IMO be done at the place where it'll be exposed into the favored
> interface (like it's with nohz_full=).

That being said I should reserve the grouping to HK_TYPE_KERNEL_NOISE when
I'll introduce the cpuset interface. This way I can add the support for
each part smoothly. For example first patch moves HK_TYPE_TIMER to
HK_TYPE_KERNEL_NOISE and unbound timers are supported by cpuset.kernel_noise,
second patch moves HK_TYPE_WQ to HK_TYPE_KERNEL_NOISE and unbound workqueues
are supported by cpuset.kernel_noise, etc until all of them turned by nohz_full=
are supported... This is what I'm doing in fact but I'm so slow to write this patchset...

Thanks.