> Actually, Dmitry and I are discussing IRQ sharing between > real-time driver, not across the RT/non-RT border.
Sorry, I misunderstood. > The latter case almost always a no-go and should rather be > solved at hardware level by rearranging the IRQ usage (where > possible...). The problem is that the non-RT IRQ handler has > to be called just after the RT handler to make the non-RT > hardware release the IRQ line. But this cannot be guaranteed > due to other RT activity and creates an ugly priority > inversion. > > That your system just crashes is likely due to the RT driver > not being prepared to share IRQs with non-RT. What driver are > you using? RTnet's 8169 gigabit ethernet driver, and RTnet's tulip driver. The problem, on common x86 hardware, is that with only one PCI bus and several devices (e.g. I use 4 PCI network cards drived by RTnet, in one PC), sharing IRQ seems unavoidable. The only possible workaround on my test machine is to disable as much as I can (USB, sound, serial ports, non-rt ethernet cards, etc.) to avoid sharing. -- Romain Lenglet