On 2021-01-21 16:47:45 [+0100], schwenderjonathan@xxxxxxxxx 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