Symptom: Multi-core benchmark shows correct results on 1 core, wrong on 4 cores. No ECC errors. Data corruption is intermittent.
Check for software races, missing synchronisation and incorrect buffer ownership before attributing wrong values to the coherence fabric.
Verify shareability attributes for the data region — is it in a snoopable domain?
Reconstruct the failing access with initial values, participating agents, memory attributes and the selected memory model; compare against an actually forbidden outcome.
Profile line transfers separately for performance. False sharing can cause excess traffic but does not by itself explain incorrect data on an otherwise correct system.
Check the platform's required publication and completion ordering, including DMA ownership transfer.
Fixing with faster NoC when the problem is false sharing.
Non-shareable attribute on memory that software assumes is coherent.
Ignoring DVM/barrier requirements around page table updates.