What if Xenomai and Linux devices share the same IRQ?
IRQ sharing between RT (Xenomai kernel) and non-RT (Linux) domains is
fragile regardless of the CPU architecture, can easily destroy
determinism on the RT side, and should therefore be avoided whenever
Sharing IRQs between RT devices is not problematic, but still comes
with additional overhead compared to dedicated IRQ lines.
On x86, the following approaches exist to untangle devices IRQ-wise:
If your hardware implements the Message Signaled Interrupts (MSI),
enabling CONFIG_MSI in the kernel should fix the issue.
If at least one of the devices is a PCI card, try flipping its position
on the motherboard.
PC104+ cards sometimes have jumpers (yeah, they still exist) to change
the IRQ line. Otherwise, their ordering in the PC104 stack also
influences the IRQ line
Some (but not many) PC and notebook BIOSes allow to change the IRQ
Disable the conflicting Linux device (e.g. in the BIOS) or simply
don’t load its driver.
Disable some other on-board device that is unneeded. Sometimes this
helps to persuade the system to avoid shared IRQs.
Enable CONFIG_X86_LOCAL_APIC or CONFIG_X86_IO_APIC, it increases the
number of IRQs and may help (though nobody ever reported success with
Ask you board vendor about possibilities to untangle IRQ lines — or
beat some engineer of your hardware design team if it is a homegrown
In case nothing works, and for a given configuration, you may modify
the non real-time driver which shares an IRQ with a real-time driver
as indicated in