Subject: Re: [PATCH 2/3] dt-bindings: net: snps,dwmac: Add time-based-scheduling property

From: Esben Haabendal <[email-masked]>
Date: Wed, 31 Jan 2024 08:31:06 +0100

Rob Herring <[email-masked]> writes:

> On Wed, Jan 24, 2024 at 03:33:06PM +0100, Esben Haabendal wrote:
>> Time Based Scheduling can be enabled per TX queue, if supported by the
>> controller.
>> 
>> Signed-off-by: Esben Haabendal <[email-masked]>
>> ---
>>  Documentation/devicetree/bindings/net/snps,dwmac.yaml | 6 ++++++
>>  1 file changed, 6 insertions(+)
>
> This is not v1 which you are aware. Where's the justification or do I
> need to ask the same questions again? Here's the last discussion[1].

Yes, I am aware. I must admit I only spotted the last discussion you are
referring to after submitting my version of it. Sorry about that.

> I'm still not clear on why this is needed. Seems like the combination
> of TBS and TSO capabilities provides enough information. If TSO is
> enabled for a queue, then don't enable TBS.

> This binding is already such a mess of properties, I'm inclined to say
> "what's one more", but it's death by 1000 cuts. Part of the problem is
> this binding is for not 1 IP block, but something that's evolved over
> at least 15 years.

It definitely is a mess. A lot of these properties are not the type of
properties that I think would be accepted today, as there is a lot of
configuration like properties there.

> The question on configuration properties really comes down to who
> would configure things and when. If it's one time for the life of
> given h/w, then DT makes sense. If every user wants/needs to tweak the
> setting, then definitely shouldn't be in DT. Somewhere in the middle?
> Judgement call.

Some of the existsing configuration properties in there is something
that users will need to tweak, such as the selection of queue scheduling
and priority algorithms.

The TBS vs TSO is probably somewhere in the middle. It might just be
that choosing TSO for TX queue 0, and TBS for the remaining ones are
something that everybody can agree on. But I am not really sure about
that.

I think we should drop this binding.

I have found another simple solution for i.MX, which does not involve
new bindings.
https://git.kernel.org/pub/scm/linux/kernel/git/netdev/net.git/commit/?id=3b12ec8f618e

Improving on that, I think we should make switching between TSO and TBS
a run-time configurable thing, instead of creating binding for it.
But I am unsure if that is really worth it.

/Esben

>
>> diff --git a/Documentation/devicetree/bindings/net/snps,dwmac.yaml b/Documentation/devicetree/bindings/net/snps,dwmac.yaml
>> index 5c2769dc689a..301e9150ecc3 100644
>> --- a/Documentation/devicetree/bindings/net/snps,dwmac.yaml
>> +++ b/Documentation/devicetree/bindings/net/snps,dwmac.yaml
>> @@ -399,6 +399,12 @@ properties:
>>              type: boolean
>>              description: TX checksum offload is unsupported by the TX queue.
>>  
>> +          snps,time-based-scheduling:
>> +            type: boolean
>> +            description:
>> +              Time Based Scheduling will be enabled for TX queue.
>> +              This is typically not supported for TX queue 0.
>
> Make the property name clear it is an enable, not a capability.
>
>> +
>
> [1] https://lore.kernel.org/all/[email-masked]/