linux-rt-users.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* What are managed IRQs?
@ 2021-01-21 15:47 schwenderjonathan
  2021-01-22 13:03 ` Sebastian Andrzej Siewior
  0 siblings, 1 reply; 2+ messages in thread
From: schwenderjonathan @ 2021-01-21 15:47 UTC (permalink / raw)
  To: linux-rt-users

Hi everyone,

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"? 

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.

Thanks

Jonathan


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

* Re: What are managed IRQs?
  2021-01-21 15:47 What are managed IRQs? schwenderjonathan
@ 2021-01-22 13:03 ` Sebastian Andrzej Siewior
  0 siblings, 0 replies; 2+ messages in thread
From: Sebastian Andrzej Siewior @ 2021-01-22 13:03 UTC (permalink / raw)
  To: schwenderjonathan; +Cc: linux-rt-users

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

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

end of thread, other threads:[~2021-01-22 13:05 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-01-21 15:47 What are managed IRQs? schwenderjonathan
2021-01-22 13:03 ` 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;
as well as URLs for NNTP newsgroup(s).