src/dpdk/drivers/net/sfc/sfc_ethdev.c
static void
sfc_update_diff_stat(uint64_t *stat, uint64_t newval)
{
	if ((int64_t)(newval - *stat) > 0 || newval == 0)
		*stat = newval;
}
/*
 * Some statistics are computed as A - B where A and B each increase
 * monotonically with some hardware counter(s) and the counters are read
 * asynchronously.
 *
 * If packet X is counted in A, but not counted in B yet, computed value is
 * greater than real.
 *
 * If packet X is not counted in A at the moment of reading the counter,
 * but counted in B at the moment of reading the counter, computed value
 * is less than real.
 *
 * However, counter which grows backward is worse evil than slightly wrong
 * value. So, let's try to guarantee that it never happens except may be
 * the case when the MAC stats are zeroed as a result of a NIC reset.
 */
Some statistics are computed as A - B where A and B each increase
monotonically with some hardware counter(s) and the counters are read
asynchronously.

If packet X is counted in A, but not counted in B yet, computed value is
greater than real.

If packet X is not counted in A at the moment of reading the counter,
but counted in B at the moment of reading the counter, computed value
is less than real.

However, counter which grows backward is worse evil than slightly wrong
value. So, let's try to guarantee that it never happens except may be
the case when the MAC stats are zeroed as a result of a NIC reset.
Some statistics are computed as A - B where A and B each increase monotonically with some hardware counter ( s ) and the counters are read asynchronously . If packet X is counted in A but not counted in B yet computed value is greater than real . If packet X is not counted in A at the moment of reading the counter but counted in B at the moment of reading the counter computed value is less than real . However counter which grows backward is worse evil than slightly wrong value . So let ' s try to guarantee that it never happens except may be the case when the MAC stats are zeroed as a result of a NIC reset .
static void
sfc_update_diff_stat(uint64_t *stat, uint64_t newval)
{
	if ((int64_t)(newval - *stat) > 0 || newval == 0)
		*stat = newval;
}
static void sfc_update_diff_stat ( uint64_t * stat , uint64_t newval ) { if ( ( int64_t ) ( newval - * stat ) > 0 || newval == 0 ) * stat = newval ; }
Some statistics are computed as A - B where A and B each increase
 monotonically with some hardware counter(s) and the counters are read
 asynchronously.
Some statistics are computed as A - B where A and B each increase monotonically with some hardware counter ( s ) and the counters are read asynchronously .