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
