Thread (2 messages) 2 messages, 2 authors, 2021-01-22

Re: What are managed IRQs?

From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: 2021-01-22 13:05:13

On 2021-01-21 16:47:45 [+0100], schwenderjonathan@gmail.com wrote:
Hi everyone,
Hi,
isolcpus has the option `managed_irq`, which supposedly assigns the IRQs to
housekeeping CPUs if possible. According to the description of isolcpus, the
affinity of managed IRQs can not be changed via /proc/irq.
I've searched the kernel documentation and the kernel source code for 
more information about managed IRQs / managed interrupts, but haven't found 
any documentation (aside from isolcpus).

Specifically, I'm interested in what makes managed IRQs different (as in 
why can't the affinity be changed via procfs), and
what kind of IRQs are "managed"? 
Having MSI(-X) devices with plenty of interrupts could get in a position
where you run out of vector space to program them. Since they are
per-CPU (based on their use-case) they are only programmed on the CPU
where they are fired.
Changing the affinity will also affect the driver logic. So assuming you
have 4 queue (interrupt) NVME device it hardly makes no sense to have to
interrupts on one CPU. It would make sense not create an interrupt on
the CPU and spread the load across the other queue.
Also, I'd like to verify if the cmdline parameter `irqaffinity` 
affects managed IRQs, or if it only modifies the default affinity for IRQs
which can be changed via procfs.
Does the commit description of
  11ea68f553e24 ("genirq, sched/isolation: Isolate from handling managed interrupts")

  https://git.kernel.org/torvalds/c/11ea68f553e24

help?
Thanks

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