Files
kernel_arpi/include/linux
Zhu Yi 0387090713 can: dev: enable multi-queue for SocketCAN devices
The existing SocketCAN implementation provides alloc_candev() to
allocate a CAN device using a single Tx and Rx queue. This can lead to
priority inversion in case the single Tx queue is already full with low
priority messages and a high priority message needs to be sent while the
bus is fully loaded with medium priority messages.

This problem can be solved by using the existing multi-queue support of
the network subsytem. The commit makes it possible to use multi-queue in
the CAN subsystem in the same way it is used in the Ethernet subsystem
by adding an alloc_candev_mqs() call and accompanying macros. With this
support a CAN device can use multi-queue qdisc (e.g. mqprio) to avoid
the aforementioned priority inversion.

The exisiting functionality of alloc_candev() is the same as before.

CAN devices need to have prioritized multiple hardware queues or are
able to abort waiting for arbitration to make sensible use of
multi-queues.

Signed-off-by: Zhu Yi <yi.zhu5@cn.bosch.com>
Signed-off-by: Mark Jonas <mark.jonas@de.bosch.com>
Reviewed-by: Heiko Schocher <hs@denx.de>
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
2018-07-27 10:40:16 +02:00
..
2018-05-25 18:23:56 +02:00
2018-05-23 14:01:03 +02:00
2018-06-07 14:23:08 +01:00
2018-07-22 11:51:30 -07:00
2018-05-26 09:16:44 +02:00
2018-06-15 18:10:01 -03:00
2018-06-27 18:58:49 +03:00
2018-06-14 17:01:45 +02:00
2018-06-15 18:10:01 -03:00
2018-06-01 07:38:16 -06:00
2018-07-03 18:33:19 -04:00
2018-06-07 17:34:37 -07:00
2018-05-22 13:42:16 +02:00
2018-06-22 13:43:27 +09:00
2018-06-22 13:43:27 +09:00
2018-06-21 17:39:18 +02:00
2018-06-05 08:50:16 -04:00
2018-06-15 07:55:25 +09:00
2018-06-07 17:34:35 -07:00
2018-06-07 17:34:37 -07:00
2018-06-07 17:34:39 -07:00
2018-07-16 13:40:54 -07:00
2018-06-01 14:37:35 +02:00
2018-06-07 17:34:36 -07:00
2018-06-06 16:10:45 -05:00
2018-05-15 15:51:38 +01:00
2018-07-18 15:40:26 -05:00
2018-06-07 17:34:35 -07:00
2018-07-25 13:41:22 -07:00
2018-05-31 00:13:56 +08:00
2018-05-11 17:28:45 -07:00
2018-05-11 17:28:45 -07:00
2018-06-04 17:28:20 -04:00
2018-06-29 08:48:06 -06:00
2018-06-07 17:34:35 -07:00
2018-07-12 14:50:40 -07:00
2018-05-19 13:57:31 +02:00
2018-05-19 13:57:31 +02:00
2018-05-14 09:51:34 -04:00