On 18.01.2023 11:26:31, Stefan Althöfer wrote: > While still testing the double-RX erratum patch I'm experiencing another problem. > > I'm using my setup with two mcp2518fd and my own 'sctest' program. Both are > sending messages to each other. I start sending a number of transmit ahead > frames and then send out one more messages when a frame arrives at the peer. > So overrun should not occur. > > In contrast to the tests I did over the weekend, I increased the transmit > ahead to 3, sending now up to 64 bytes and the frame size is now random. > > I now frequently see these kind of messages appear: > > Jan 18 05:34:00 raspberrypi kernel: [405471.116322] mcp251xfd spi0.0 can0: Transmit Event FIFO buffer not empty. (seq=0x00001e36, tef_tail=0x00001e3a, tef_head=0x00001e3b, tx_head=0x00001e3b). > Jan 18 09:36:27 raspberrypi kernel: [420017.452369] mcp251xfd spi6.0 can1: Transmit Event FIFO buffer full. (seq=0x00001062, tef_tail=0x00001066, tef_head=0x00001067, tx_head=0x00001067). > > Why do they occur? As I mentioned in the other mail, the erratum also affects the TX FIFO. In tests with high TX load I have seen the message "buffer not empty" in the past, but never the message "buffer full". With the "buffer not empty" errors, I haven't seen any CAN frame drops or truncated messages, but I've been testing mainly CAN-2.0. I'll have to look at the TEF and TX handling with what I learned from developing the RX FIFO workaround. I'll look into your mail in detail later. regards, Marc -- Pengutronix e.K. | Marc Kleine-Budde | Embedded Linux | https://www.pengutronix.de | Vertretung West/Dortmund | Phone: +49-231-2826-924 | Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
Attachment:
signature.asc
Description: PGP signature