This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

AM3517 excessive processing of NET_RX software interrupts

Other Parts Discussed in Thread: AM3517

We are using the AM3517 (3.00.01.06 PSP, 2.6.32 kernel)

We have a USB connection to the Host PC and are using the Gadget / RNDIS for Ethernet over USB and we also have CAN traffic coming into the 3517.

Our application needs fairly low latency and occasionally the application will hang for > 100ms.

Debugging has indicated that NET_RX software interrupts are being processed while the app is hung. This can occasionally last nearly a full second.

This behavior is very sporadic and may only happen a few times per hour.

Any advice on debugging this would be helpful. I already tried compiling a preempting kernel and running our process with maximum priority, but there was no change in behavior.

Thnak you,

-Reinyn

  • After further testing it looks like the CAN driver is the cause. I'm still not sure what exactly is causing the CAN driver to spend excessive time in NET_RX, but disabling the CAN interface (ifconfig can0 down) stops the application timeouts from happening.

    Of course we still need the CAN interface so any ideas would be appreciated.

  • I have narrowed the stalling of the CAN port down to this method call

    ti_hecc_rx_poll in (linux-2.6.32-psp03.00.01.06.sdk/drivers/net/can/ti_hecc.c)

    I have seen this call take over 200ms. I have also seen this method called multiple times in a row for 7ms per call. Which stalls out application.

    Are there any CAN \ Driver experts around?

    thanks,

    -Reinyn