Subject: Re: [PATCH v3 5/8] net: dsa: hellcreek: Add TAPRIO offloading support

From: Vinicius Costa Gomes <[email-masked]>
Date: Tue, 25 Aug 2020 10:33:58 -0700

Vladimir Oltean <[email-masked]> writes:

> Hi Vinicius,
>
> On Mon, Aug 24, 2020 at 04:45:50PM -0700, Vinicius Costa Gomes wrote:
>> Kurt Kanzenbach <[email-masked]> writes:
>> >
>> > With TAPRIO traffic classes and the mapping to queues can be
>> > configured. The switch can also map traffic classes. That sounded like a
>> > good match to me.
>>
>> The only reason I could think that you would need this that *right now*
>> taprio has pretty glaring oversight: that in the offload parameters each entry
>> 'gate_mask' reference the "Traffic Class" (i.e. bit 0 is Traffic Class
>> 0), and it really should be the HW queue.
>>
>
> Sorry, but could you please explain why having the gate_mask reference
> the traffic classes is a glaring oversight, and how changing it would
> help here?

The glaring oversight is that it when it references the traffic classes,
instead of queues, it basically ignores the 'queues *' mapping that the
user provided. (it was ignored for so long because for many cases the
mapping is 1:1)

On my reading of this part of the hellcreek code, all this was doing was
assigning priorities (based on the traffic classes) to queues, and
taprio is able to "hide" this from the driver, so all the driver needs
to care about are queues.

>
> Also, Kurt, could you please explain what the
> HR_PRTCCFG_PCP_TC_MAP_SHIFT field in HR_PRTCCFG is doing?
> To me, it appears that it's configuring ingress QoS classification on
> the port (and the reason why this is strange to me is because you're
> applying this configuration through an egress qdisc), but I want to make
> sure I'm not misunderstanding.
>
> Thanks,
> -Vladimir

-- 
Vinicius