Running a simple packet spamming program between a kernel driven ca8210 and a usb dongle (baremetal), I notice occasional pauses in the kernel driver which cause packets to be missed (and in this case, a confirm seems to be lost).
Node 00 is the kernel driven node, node 01 is the usb node. Note that around 35 seconds in, no more packets are received, and the confirm is also missed (the application I am running will not attempt to send another packet before the previous one is confirmed). After about 7 seconds, receive packets start coming in again, but some appear to be permanently lost, and the confirm is definitely lost.
I initially thought this may have been down to an issue with select() in kernel_exchange, as the time out is 5 seconds. However, reducing this timeout had no effect.
This is the kernel log around the same time. Looks like the kfifo is overflowing. Last full read was at 15:11:16.
Upon further investigation, this wasn't down to the driver, but the kernel_exchange. Writing to the log file was causing occasional freezes of several seconds.
Running a simple packet spamming program between a kernel driven ca8210 and a usb dongle (baremetal), I notice occasional pauses in the kernel driver which cause packets to be missed (and in this case, a confirm seems to be lost).
Node 00 is the kernel driven node, node 01 is the usb node. Note that around 35 seconds in, no more packets are received, and the confirm is also missed (the application I am running will not attempt to send another packet before the previous one is confirmed). After about 7 seconds, receive packets start coming in again, but some appear to be permanently lost, and the confirm is definitely lost.
I initially thought this may have been down to an issue with select() in kernel_exchange, as the time out is 5 seconds. However, reducing this timeout had no effect.
This is the kernel log around the same time. Looks like the kfifo is overflowing. Last full read was at 15:11:16.
And this will be followed by the exchange suddenly reading everything at once: