Thread (13 messages) 13 messages, 4 authors, 2023-01-30

Re: [PATCH net-next v2 0/3] net: introduce rps_default_mask

From: Saeed Mahameed <saeed@kernel.org>
Date: 2020-11-02 23:27:54
Also in: linux-doc, linux-kselftest

On Mon, 2020-11-02 at 14:54 -0800, Jakub Kicinski wrote:
On Fri, 30 Oct 2020 12:16:00 +0100 Paolo Abeni wrote:
quoted
Real-time setups try hard to ensure proper isolation between time
critical applications and e.g. network processing performed by the
network stack in softirq and RPS is used to move the softirq 
activity away from the isolated core.

If the network configuration is dynamic, with netns and devices
routinely created at run-time, enforcing the correct RPS setting
on each newly created device allowing to transient bad
configuration
became complex.

These series try to address the above, introducing a new
sysctl knob: rps_default_mask. The new sysctl entry allows
configuring a systemwide RPS mask, to be enforced since receive 
queue creation time without any fourther per device configuration
required.
The whole thing can be replaced with a user daemon scripts that
monitors all newly created devices and assign to them whatever rps mask
(call it default).

So why do we need this special logic in kernel ? 

I am not sure about this, but if rps queues sysfs are available before
the netdev is up, then you can also use udevd to assign the rps masks
before such devices are even brought up, so you would avoid the race
conditions that you described, which are not really clear to me to be
honest.
quoted
Additionally, a simple self-test is introduced to check the 
rps_default_mask behavior.
RPS is disabled by default, the processing is going to happen
wherever
the IRQ is mapped, and one would hope that the IRQ is not mapped to
the
core where the critical processing runs.

Would you mind elaborating further on the use case?
  
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help