Re: [RFC net-next 2/2] net: fec: add ndo_select_queue to fix TX bandwidth fluctuations
From: Andrew Lunn <andrew@lunn.ch>
Date: 2021-05-25 13:58:31
Also in:
lkml
quoted
On Sun, May 23, 2021 at 06:20:19PM +0800, Joakim Zhang wrote:quoted
From: Fugang Duan <redacted> As we know that AVB is enabled by default, and the ENET IP design is queue 0 for best effort, queue 1&2 for AVB Class A&B. Bandwidth of queue 1&2 set in driver is 50%, TX bandwidth fluctuated when selecting tx queues randomly with FEC_QUIRK_HAS_AVB quirk available.How is the driver currently scheduling between these queues? Given the 802.1q priorities, i think we want queue 2 with the highest priority for scheduling. Then queue 0 and lastly queue 1.I think currently there is no schedule between these queues in the driver.
So queues 1 and 2 are limited to 50% the total bandwidth, but are otherwise not prioritised over queue 0? That sounds odd.
Could you please point me where I can find mapping between priorities and queues? You prefer to below mapping?
static const u16 fec_enet_vlan_pri_to_queue[8] = {1, 1, 0, 0, 0, 2, 2, 2};https://en.wikipedia.org/wiki/IEEE_P802.1p I'm not sure i actually believe the hardware does not prioritise the queues. It seems to me, it is more likely to take frames from queues 1 and 2 if they have not consumed their 50% share. PCP value 0 is best effort. That should really be given the same priority as a packet without a VLAN header. Which is why i suggested putting those packets into queue 0. Also, if the hardware is performing prioritisation, PCP value 1, background, when put into queue 1 will end up as higher priority then best effort? Andrew