Re: [Patch v4 1/3] lib: Restrict cpumask_local_spread to houskeeping CPUs

From: Marcelo Tosatti
Date: Thu Feb 04 2021 - 13:22:08 EST


On Thu, Jan 28, 2021 at 09:01:37PM +0100, Thomas Gleixner wrote:
> On Thu, Jan 28 2021 at 13:59, Marcelo Tosatti wrote:
> >> The whole pile wants to be reverted. It's simply broken in several ways.
> >
> > I was asking for your comments on interaction with CPU hotplug :-)
>
> Which I answered in an seperate mail :)
>
> > So housekeeping_cpumask has multiple meanings. In this case:
>
> ...
>
> > So as long as the meaning of the flags are respected, seems
> > alright.
>
> Yes. Stuff like the managed interrupts preference for housekeeping CPUs
> when a affinity mask spawns housekeeping and isolated is perfectly
> fine. It's well thought out and has no limitations.
>
> > Nitesh, is there anything preventing this from being fixed
> > in userspace ? (as Thomas suggested previously).
>
> Everything with is not managed can be steered by user space.

Yes, but it seems to be racy (that is, there is a window where the
interrupt can be delivered to an isolated CPU).

ethtool ->
xgbe_set_channels ->
xgbe_full_restart_dev ->
xgbe_alloc_memory ->
xgbe_alloc_channels ->
cpumask_local_spread

Also ifconfig eth0 down / ifconfig eth0 up leads
to cpumask_spread_local.

How about adding a new flag for isolcpus instead?