Hi,

> Does mana_xdp_xmit() require a lock when updating tx_stats->syncp further
> down in this function?

I will leave this counter update unchanged in v8. Multiple CPUs can map
to the same queue, and the aggregate xdp_xmit update is outside the
per-frame send lock, so lost increments are a real issue. However, the
same writer-exclusion gap exists in both unmodified upstream bases.
Moving the counters to port-owned storage does not introduce that race.
I am keeping that independent statistics fix outside this series.

The claimed sequence-counter corruption and infinite reader loop also
require a configuration this driver does not support. PCI MANA requires
X86_64 or ARM64, and CDX requires 64BIT. On those 64-bit configurations,
u64_stats_sync has no sequence counter and fetch_retry() returns false.
This does not excuse the baseline lost increments, but it does rule out
the reported 32-bit hang for supported builds.

> Could this u64_stats_update_begin() call deadlock a preempting softirq
> reader?

I will leave the folding synchronization unchanged as well. This second
report depends on the same unavailable 32-bit sequence-counter behavior.
There is no odd sequence counter for the preempting reader to spin on in
the supported 64-bit implementation. Adding BH exclusion to address that
specific scenario is therefore not warranted.

Thanks,
Wei

Reply via email to