Thanks for the review. > Should the update be wrapped in local_bh_disable() and local_bh_enable(), > or use the _irqsave variant?
I do not think that change is required for the reported odd-seqcount deadlock on the configurations supported by MANA. On the v6 base, MICROSOFT_MANA depends on X86_64 or little-endian ARM64. The rebased v7 retains that PCI architecture restriction, and its upstream CDX transport separately requires 64BIT. Neither provides a supported 32-bit MANA path. In include/linux/u64_stats_sync.h, struct u64_stats_sync has a seqcount only when BITS_PER_LONG == 32. In the 64-bit implementation, the update helpers are empty, fetch_begin returns zero, and fetch_retry returns false. There is therefore no odd sequence value or retry spin through which the reported same-CPU writer-preemption deadlock can occur. The folding operation is serialized by RTNL and occurs after the retiring RX drain-stat writers have quiesced. I am leaving this unchanged in v7 rather than adding BH/IRQ disabling to address the unsupported 32-bit scenario. This is not a claim that arbitrary 32-bit use of these helpers would be safe; the series does not add that support. Separately, the dashboard retains the pre-existing xdp_xmit writer concern also reported for patch 3. That unlocked increment already exists on the unmodified base. It is a real statistics race, recorded for a separate fix, and is not fixed by this revision. Thanks, Wei
