Hi Stephen, On 03/27/2014 08:06 PM, Stephen Hemminger wrote: > Long answer: for the multple CPU access ring, it is equivalent to smp_wmb and > smp_rmb > in Linux kernel. For x86 where DPDK is used, this can normally be replaced > by simpler > compiler barrier. In kernel there is a special flage X86_OOSTORE which is > only enabled > for a few special cases, for most cases it is not. When cpu doesnt do out > of order > stores, there are no cases where other cpu will see wrong state.
Thank you for this clarification. So, if I understand properly, all usages of rte_*mb() sequencing memory operations between CPUs could be replaced by a compiler barrier. On the other hand, if the memory is also accessed by a device, a memory barrier has to be used. Olivier