public inbox for linux-rt-users@vger.kernel.org
 help / color / mirror / Atom feed
* Control of IRQ Affinities from Userspace
@ 2025-10-30 14:20 Preclik, Tobias
  2025-11-03 15:53 ` Sebastian Andrzej Siewior
  0 siblings, 1 reply; 25+ messages in thread
From: Preclik, Tobias @ 2025-10-30 14:20 UTC (permalink / raw)
  To: linux-rt-users@vger.kernel.org

Dear Linux RT Experts,

the Linux kernel exposes two userspace interfaces to control IRQ
affinities in the procfs [1]. First, /proc/irq/default_smp_affinity
specifies the default affinity mask which gets applied as initial
affinity mask for newly registering IRQs. Second,
/proc/irq/${IRQ_NO}/smp_affinity which can be used to specify an
affinity mask for a given IRQ.

For tuning the I/O path of RT applications we use the second interface
to relocate IRQs to cores dedicated to run RT applications. However, we
have observed that certain situations, such as interface bring-up or
loading BPF/XDP programs, can cause the IRQ affinity mask to be lost.
Specifically, some network drivers, particularly those based on stmmac,
ignore the IRQ affinity mask set from userspace and overwrite it with
decisions from IRQ rebalancing [2]. This driver behavior prevents
consistent control of IRQ affinities from userspace, impacting the
tuning of the I/O path for RT applications.

I would greatly appreciate any comments or guidance on this issue.

Best regards,
Tobias Preclik

[1] https://docs.kernel.org/core-api/irq/irq-affinity.html
[2]
https://elixir.bootlin.com/linux/v6.17.4/source/drivers/net/ethernet/st
micro/stmmac/stmmac_main.c#L3835

^ permalink raw reply	[flat|nested] 25+ messages in thread

end of thread, other threads:[~2025-11-28  7:33 UTC | newest]

Thread overview: 25+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-10-30 14:20 Control of IRQ Affinities from Userspace Preclik, Tobias
2025-11-03 15:53 ` Sebastian Andrzej Siewior
2025-11-03 17:12   ` Florian Bezdeka
2025-11-05 13:11     ` Preclik, Tobias
2025-11-05 13:18       ` Preclik, Tobias
2025-11-11 14:35         ` bigeasy
2025-11-11 14:34       ` bigeasy
2025-11-21 13:25         ` Preclik, Tobias
2025-11-24  9:59           ` bigeasy
2025-11-25 11:32             ` Florian Bezdeka
2025-11-25 11:50               ` bigeasy
2025-11-25 14:36                 ` Florian Bezdeka
2025-11-25 16:31                   ` Thomas Gleixner
2025-11-26  9:20                     ` Florian Bezdeka
2025-11-26 14:26                       ` Thomas Gleixner
2025-11-26 15:07                         ` Florian Bezdeka
2025-11-26 19:15                           ` Thomas Gleixner
2025-11-27 14:06                             ` Preclik, Tobias
2025-11-27 14:52                             ` Florian Bezdeka
2025-11-27 18:09                               ` Thomas Gleixner
2025-11-28  7:33                                 ` Florian Bezdeka
2025-11-26 15:45                       ` Frederic Weisbecker
2025-11-26 15:31                 ` Frederic Weisbecker
2025-11-26 15:24               ` Frederic Weisbecker
2025-11-11 13:58     ` Sebastian Andrzej Siewior

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox