Re: usb interrupt conflict with RTAI
Dietrich Pescoller <[email protected]> Wed, 23 Aug 2017 18:50:54 +0200
| Newsgroups | gmane.linux.real-time.rtai |
|---|---|
| Message-ID | <1833390.VdOorThVOP@lt121> |
Hi Paolo,
thanks for the feedback.
The system is a production system (ALMA Telescope)
so upgrading is really not an option unfortunately. (at least for now).
Digging into the RT-Net code meanwhile I found that in e1000_main.c (the
driver I'm using for my NIC) is not propagating interrupts he don't owns.
i.e. in the interrupt service routine I changed the following code:
if (unlikely(!icr)) {
return RTDM_IRQ_NONE; /* Not our interrupt */
}
to
if (unlikely(!icr)) {
return XN_ISR_PROPAGATE; /* Not our interrupt */
}
So in other words I use the feature you described.
This solved the issue. Now we are testing and validating. I hope there are no
bad side-effects surprises.
I have not well understood what you mean with "... , but
just int he case they know its kind and what is it for..."""
Do you thing the change I did to the driver is kind of hazard?
Thanks
Dietrich
On Wednesday 23 August 2017 16:06:36 Paolo Mantegazza wrote:
> RTAI, and so RTDM, can pend (pass) an interrupt they use down to Linux, but
> jjust int he case they know its kind and what is it for. In Clearly in your
> case it is not so, In your case I see that you are using very old versions
> for both RTAI and Linux. My suggestion is to upgrade both and see what
> happens.By way of example, if your hartdware is not really really old it is
> possible that using the APIC under UP coupled to MSI support could solve
> the problem, without caring of anything else.
>
> Paolo
> ________________________________________
> From: Rtai [[email protected]] on behalf of Dietrich Pescoller
> [[email protected]] Sent: Tuesday, August 22, 2017 11:40 AM
> To: [email protected]
> Subject: [Rtai] usb interrupt conflict with RTAI
>
> Dear all,
>
> I'm facing an issue with shared interrupts
>
> The problem I have is that i wanted to integrate a USB-stick for storage,
> but my USB system is conflicting with the RTAI system.
>
> As soon as I load the usb-storage.ko module I get the following message from
> the
> kernel:
> RTDM: xnintr_irq_handler: IRQ11 not handled. Disabling IRQ line.
>
> After this message the system system stops working, i.e. no RT ethernet
> packets are received anymore.
>
> My setup is quite old and is as follow:
> - Linux Kernel 2.6.19.7
> - rtai-3.6
> - rtnet-0.9.11
>
> looking at /proc/interrupts
> ====
> 0: 108824 XT-PIC-XT timer, rtai_broadcast
> 1: 8 XT-PIC-XT i8042
> 2: 0 XT-PIC-XT cascade
> 4: 0 XT-PIC-XT tpmc901drv
> 7: 2392 XT-PIC-XT eth0
> 9: 0 XT-PIC-XT uhci_hcd:usb2
> 11: 28 XT-PIC-XT uhci_hcd:usb1 <--- conflicting interrupt
> 12: 3 XT-PIC-XT i8042
> 14: 0 XT-PIC-XT libata
> 15: 1773 XT-PIC-XT libata
> NMI: 1
> LOC: 108794
> ERR: 0
> MIS: 0
>
> and /proc/rtai/hal
> ====
>
> ** Real-time IRQs used by RTAI:
>
> #3 at e00ab290
> #4 at e00e3279
> #11 at e3b85420 <--- conflicting interrupt
> #215 at e00cbb80
> #216 at e00cb2d0
>
> I see that the irq #11 is shared between an Ethernet NIC and the USB, and
> something is not handled properly. The Ethernet NIC is in handled by a RTNET
> driver i.e. e1000.ko.
>
> I searched for a possibility to remap this interrupt in the BIOS of my board
> but unfortunately there seems to be no option for that.
>
> I see here the following possible solutions but I did not found a way manage
> them (I'm still blocked in the teory...)
>
> 1) try to understand why the shared interrupt #11 is not forwarded to linux,
> is probably a rtnet e1000 driver issue... avoiding RTDM to disable the IRQ
> line.
> 2) remap the interrupt by software, I don't know if this is possible...
>
> Many thanks in advance for your help/advices
>
> Bye,
> Dietrich
> _______________________________________________
> Rtai mailing list
> [email protected]
> https://mail.rtai.org/cgi-bin/mailman/listinfo/rtai
_______________________________________________
Rtai mailing list
[email protected]
https://mail.rtai.org/cgi-bin/mailman/listinfo/rtai