Subject: Re: [PATCH net-next v20 10/13] rtase: Implement ethtool function

From: Jakub Kicinski <[email-masked]>
Date: Mon, 17 Jun 2024 08:10:08 -0700

On Mon, 17 Jun 2024 06:54:59 +0000 Justin Lai wrote:
> > Are you sure this is the correct statistic to report as?
> > What's the definition of rx_missed in the datasheet?  
> 
> What we refer to as rx miss is the packets that can't be received because
> the fifo in the MAC is full. We consider this a type of MAC error, identical
> to the definition of FramesLostDueToIntMACRcvError.

Is this a FIFO which silicon designers say can't overflow?
Or it will overflow if the host is busy and doesn't pick up packets?
If it's the latter I recommend using stats64::rx_missed_errors.
That's the start we try to steer all NIC drivers towards for "host 
is too slow".

> > Also is 16 bits enough for a packet counter at 5Gbps?
> > Don't you have to periodically accumulate this counter so that it doesn't wrap
> > around?  
> 
> Indeed, this counter may wrap, but we don't need to accumulate it, because
> an increase in the number of rx_miss largely indicates that the system
> processing speed is not fast enough. Therefore, the size of this counter
> doesn't need to be too large.

Are you basically saying that since its an error it only matters if 
its zero or not? It's not going to be a great experience for anyone
trying to use this driver. You can read this counter periodically from
a timer and accumulate a fuller value in the driver. There's even
struct ethtool_coalesce::stats_block_coalesce_usecs if you want to let
user configure the period.