> From: Mattias Rönnblom [mailto:hof...@lysator.liu.se]
> Sent: Sunday, 28 April 2024 17.49
> 
> On 2024-04-26 14:20, Morten Brørup wrote:
> >> From: Ferruh Yigit [mailto:ferruh.yi...@amd.com]
> >> Sent: Thursday, 25 April 2024 18.53
> >>
> >> Making 'rte_eth_stats_reset()' and 'rte_eth_xstats_reset()' APIs thread
> >> safe has performance impact on datapath.
> >>
> >> Instead document APIs as not thread safe and add condition for reliable
> >> stats reset functionality, forwarding should be stopped.
> >
> 
> What does "forwarding" mean here? Sounds like something from testpmd.
> 
> Isn't what needs to stop here other threads calling into the ethdev API
> for this particular device?

Doesn't suffice.
The NIC hardware counters increment if the NIC's DMA engine receives or 
transmits packets.
E.g. in the RX direction, the NIC hardware counters increment according to what 
the NIC detects happening on the wire. If some packets are DMA'ed into memory 
and the associated RX descriptors are filled, the NIC's hardware counters 
progress. It doesn't matter if the software has looked at those RX descriptors 
or not.

> 
> > I'm not sure stopping forwarding suffices.
> > NIC hardware counters will keep progressing unless RX and TX is stopped at
> NIC level.
> >
> 
> Why would that be an issue?

My point is:
Unless you stop everything, including the NIC hardware RX & TX DMA, the 
counters might not be zero when returning from the stats_reset() functions.

> 
> > I don't have any suggestions for a better wording, though. :-(

I think it is fine providing a notice about MT-unsafety in the API 
documentation.
But the only way to prevent it is useless in real applications, as it would 
cause packet loss. So it's not helpful describing how to do that.

> >
> > Anyway, better with the patch than without...
> > Acked-by: Morten Brørup <m...@smartsharesystems.com>
> >

Reply via email to