Thread (44 messages) flat view 44 messages, 9 authors, 2021-05-03

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

From: Marcelo Tosatti <hidden>
Date: 2021-02-04 19:10:46
Also in: linux-pci, lkml

On Thu, Feb 04, 2021 at 01:47:38PM -0500, Nitesh Narayan Lal wrote:
On 2/4/21 1:15 PM, Marcelo Tosatti wrote:
quoted
On Thu, Jan 28, 2021 at 09:01:37PM +0100, Thomas Gleixner wrote:
quoted
On Thu, Jan 28 2021 at 13:59, Marcelo Tosatti wrote:
quoted
quoted
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 :)
quoted
So housekeeping_cpumask has multiple meanings. In this case:
...
quoted
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.
quoted
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.
There's always that possibility.
Then there is a window where isolation can be broken.
We have to ensure that we move the IRQs by a tuned daemon or some other
userspace script every time there is a net-dev change (eg. device comes up,
creates VFs, etc).
Again, race window open can result in interrupt to isolated CPU.
quoted
How about adding a new flag for isolcpus instead?
Do you mean a flag based on which we can switch the affinity mask to
housekeeping for all the devices at the time of IRQ distribution?
Yes a new flag for isolcpus. HK_FLAG_IRQ_SPREAD or some better name.

Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help