Re: How to send a CAN message while in a kernel module?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 





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



[Index of Archives]     [Automotive Discussions]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]     [CAN Bus]

  Powered by Linux