Subject: Re: [PATCH net] veth: Add updating of trans_start

From: Jay Vosburgh <[email-masked]>
Date: Tue, 21 Jun 2022 18:42:19 -0700

Jakub Kicinski <[email-masked]> wrote:

>On Fri, 17 Jun 2022 17:55:50 -0700 Jakub Kicinski wrote:
>> > >I presume it needs it to check if the device has transmitted anything
>> > >in the last unit of time, can we look at the device stats for LLTX for
>> > >example?    
>> > 
>> > 	Yes, that's the use case.  
>> > 
>> > 	Hmm.  Polling the device stats would likely work for software
>> > devices, although the unit of time varies (some checks are fixed at one
>> > unit, but others can be N units depending on the missed_max option
>> > setting).
>> > 
>> > 	Polling hardware devices might not work; as I recall, some
>> > devices only update the statistics on timespans on the order of seconds,
>> > e.g., bnx2 and tg3 appear to update once per second.  But those do
>> > update trans_start.  
>> 
>> Right, unfortunately.
>> 
>> > 	The question then becomes how to distinguish a software LLTX
>> > device from a hardware LLTX device.  
>> 
>> If my way of thinking about trans_start is correct then we can test 
>> for presence of ndo_tx_timeout. Anything that has the tx_timeout NDO
>> must be maintaining trans_start.
>
>So what's your thinking Jay? Keep this as an immediate small fix 
>for net but work on using a different approach in net-next?

	Sorry, was out for the three day weekend.

	I had a quick look and I think you're probably right that
anything with a ndo_tx_timeout will deal with trans_start, and anything
without ndo_tx_timeout will be a software device not subject to delayed
batching of stats updates.

	And, yes, if there are no objections, what I'd like to do now is
apply the veth change to get things working and work up the bifurcated
approach separately (which would ultimately include removing the
trans_start updates from veth and tun).

	-J

---
	-Jay Vosburgh, [email-masked]