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

Vivian Wang wangruikang at iscas.ac.cn
Fri Sep 5 09:35:37 PDT 2025


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.

Vivian "dramforever" Wang




More information about the linux-riscv mailing list