gianfar: Drop GFAR_MQ_POLLING support
authorClaudiu Manoil <claudiu.manoil@nxp.com>
Fri, 16 Apr 2021 17:11:22 +0000 (20:11 +0300)
committerDavid S. Miller <davem@davemloft.net>
Fri, 16 Apr 2021 22:46:15 +0000 (15:46 -0700)
commit8eda54c5e6c4eb3f3a9b70fdea278f4e0f8496b2
treecca840db58b809d7471a8e2d45c11146e0c4bce5
parent0e672f306a28ddd55d2fb2ab89afdc615b5324a4
gianfar: Drop GFAR_MQ_POLLING support

Gianfar used to enable all 8 Rx queues (DMA rings) per
ethernet device, even though the controller can only
support 2 interrupt lines at most.  This meant that
multiple Rx queues would have to be grouped per NAPI poll
routine, and the CPU would have to split the budget and
service them in a round robin manner.  The overhead of
this scheme proved to outweight the potential benefits.
The alternative was to introduce the "Single Queue" polling
mode, supporting one Rx queue per NAPI, which became the
default packet processing option and helped improve the
performance of the driver.
MQ_POLLING also relies on undocumeted device tree properties
to specify how to map the 8 Rx and Tx queues to a given
interrupt line (aka "interrupt group").  Using module parameters
to enable this mode wasn't an option either.  Long story short,
MQ_POLLING became obsolete, now it is just dead code, and no
one asked for it so far.
For the Tx queues, multi-queue support (more than 1 Tx queue
per CPU) could be revisited by adding tc MQPRIO support, but
again, one has to consider that there are only 2 interrupt lines.
So the NAPI poll routine would have to service multiple Tx rings.

Signed-off-by: Claudiu Manoil <claudiu.manoil@nxp.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/freescale/gianfar.c
drivers/net/ethernet/freescale/gianfar.h