Re: [EXT] Re: [v1,net-next, 1/2] ethtool: add setting frame preemption of traffic classes

From: Murali Karicheri
Date: Wed Mar 18 2020 - 10:08:39 EST


Hi Vinicius,

On 03/12/2020 07:34 PM, Vinicius Costa Gomes wrote:
Hi,

Po Liu <po.liu@xxxxxxx> writes:

Hi Vinicius,


Br,
Po Liu

-----Original Message-----
From: Vinicius Costa Gomes <vinicius.gomes@xxxxxxxxx>
Sent: 2020å2æ22æ 5:44
To: Po Liu <po.liu@xxxxxxx>; davem@xxxxxxxxxxxxx;
hauke.mehrtens@xxxxxxxxx; gregkh@xxxxxxxxxxxxxxxxxxx; allison@xxxxxxxxxxx;
tglx@xxxxxxxxxxxxx; hkallweit1@xxxxxxxxx; saeedm@xxxxxxxxxxxx;
andrew@xxxxxxx; f.fainelli@xxxxxxxxx; alexandru.ardelean@xxxxxxxxxx;
jiri@xxxxxxxxxxxx; ayal@xxxxxxxxxxxx; pablo@xxxxxxxxxxxxx; linux-
kernel@xxxxxxxxxxxxxxx; netdev@xxxxxxxxxxxxxxx
Cc: simon.horman@xxxxxxxxxxxxx; Claudiu Manoil
<claudiu.manoil@xxxxxxx>; Vladimir Oltean <vladimir.oltean@xxxxxxx>;
Alexandru Marginean <alexandru.marginean@xxxxxxx>; Xiaoliang Yang
<xiaoliang.yang_1@xxxxxxx>; Roy Zang <roy.zang@xxxxxxx>; Mingkai Hu
<mingkai.hu@xxxxxxx>; Jerry Huang <jerry.huang@xxxxxxx>; Leo Li
<leoyang.li@xxxxxxx>; Po Liu <po.liu@xxxxxxx>
Subject: [EXT] Re: [v1,net-next, 1/2] ethtool: add setting frame preemption of
traffic classes

Caution: EXT Email

Hi,

Po Liu <po.liu@xxxxxxx> writes:

IEEE Std 802.1Qbu standard defined the frame preemption of port
traffic classes. This patch introduce a method to set traffic classes
preemption. Add a parameter 'preemption' in struct
ethtool_link_settings. The value will be translated to a binary, each
bit represent a traffic class. Bit "1" means preemptable traffic
class. Bit "0" means express traffic class. MSB represent high number
traffic class.

If hardware support the frame preemption, driver could set the
ethernet device with hw_features and features with NETIF_F_PREEMPTION
when initializing the port driver.

User can check the feature 'tx-preemption' by command 'ethtool -k
devname'. If hareware set preemption feature. The property would be a
fixed value 'on' if hardware support the frame preemption.
Feature would show a fixed value 'off' if hardware don't support the
frame preemption.

Command 'ethtool devname' and 'ethtool -s devname preemption N'
would show/set which traffic classes are frame preemptable.

Port driver would implement the frame preemption in the function
get_link_ksettings() and set_link_ksettings() in the struct ethtool_ops.


Any updates on this series? If you think that there's something that I could help,
just tell.

Sorry for the long time not involve the discussion. I am focus on other tsn code for tc flower.
If you can take more about this preemption serial, that would be good.

I summary some suggestions from Marali Karicheri and Ivan Khornonzhuk and by you and also others:
- Add config the fragment size, hold advance, release advance and flags;
My comments about the fragment size is in the Qbu spec limit the fragment size " the minimum non-final fragment size is 64,
128, 192, or 256 octets " this setting would affect the guardband setting for Qbv. But the ethtool setting could not involve this issues but by the taprio side.
- " Furthermore, this setting could be extend for a serial setting for mac and traffic class." "Better not to using the traffic class concept."
Could adding a serial setting by "ethtool --preemption xxx" or other name. I don' t think it is good to involve in the queue control since queues number may bigger than the TC number.
- The ethtool is the better choice to configure the preemption
I agree.

Just a quick update. I was able to dedicate some time to this, and have
something aproaching RFC-quality, but it needs more testing.

Great! I have got my frame preemption working on my SoC. Currently I am
using some defaults. I test it by using statistics provided by the
SoC. I will be able to integrate and test your patch using my internal
version and will include it in my patch to upstream once I am ready.

Regards,

Murali
So, question, what were you using for testing this? Anything special?

And btw, thanks for the summary of the discussion.


Thanksï


Cheers,
--
Vinicius



--
Murali Karicheri
Texas Instruments