On 23/03/2020 22.37, Robert Barrows wrote:
The CAN controller gets the frame from a FIFO (netdev tx queue) which
has a length of 10 elements by default.
Any way I can force my way to the head of the queue? I see
skb->priority but I thought that was for TCP packets.
Yes.
But when you generate additional traffic (e.g. with cangen) you might
get some jitter.
Is this relevant on your box / use-case?
It is possible there could be a lot of packets flying around and I would
like to keep my jitter <100uS. Any tips?
Please take a look into slide 41 - 45 of this PDF:
https://wiki.automotivelinux.org/_media/agl-distro/agl2017-socketcan-print.pdf
The academic report about this can be found here
http://rtime.felk.cvut.cz/can/socketcan-qdisc-final.pdf
You still have to cope with the txqueue length of 10 so you probably
need to create a setup that drains the tx queue before your
jitter/time-sensitive CAN frame is enqueued.
Another option would be to implement multiple tx queues on CAN drivers -
but that has not been focused AFAIK.
Best,
Oliver