[PATCH net-next v9 2/5] net: spacemit: Add K1 Ethernet MAC

Simon Horman horms at kernel.org
Tue Sep 9 09:15:49 PDT 2025


On Sat, Sep 06, 2025 at 12:35:37AM +0800, Vivian Wang wrote:
> On 9/6/25 00:01, Simon Horman wrote:
> 
> > On Fri, Sep 05, 2025 at 11:45:29PM +0800, Vivian Wang wrote:
> >
> > ...
> >
> > Hi Vivian,
> >
> >>>> +		status = emac_rx_frame_status(priv, rx_desc);
> >>>> +		if (unlikely(status == RX_FRAME_DISCARD)) {
> >>>> +			ndev->stats.rx_dropped++;
> >>> As per the comment in struct net-device,
> >>> ndev->stats should not be used in modern drivers.
> >>>
> >>> Probably you want to implement NETDEV_PCPU_STAT_TSTATS.
> >>>
> >>> Sorry for not mentioning this in an earlier review of
> >>> stats in this driver.
> >>>
> >> On a closer look, these counters in ndev->stats seems to be redundant
> >> with the hardware-tracked statistics, so maybe I should just not bother
> >> with updating ndev->stats. Does that make sense?
> > For rx/tx packets/bytes I think that makes sense.
> > But what about rx/tx drops?
> 
> Right... but tstats doesn't have *_dropped. It seems that tx_dropped and
> rx_dropped are considered "slow path" for real devices. It makes sense
> to me that those should be very rare.
> 
> So it seems that what I should do is to just track tx_dropped and
> rx_dropped myself in a member in emac_priv and report in the
> ndo_get_stats64 callback, and use the hardware stuff for the rest, as
> implemented now.

Thanks, that makes sense to me.



More information about the linux-riscv mailing list