In vPMD, when load Rx desc with _mm_loadu_si128, volatile point will be cast into non-volatile point. So GCC is allowed to reorder the load instructions, while Rx read's correctness is reply on these load instructions to follow a backward sequence strictly, so we add compile barrier to prevent compiler reorder. We already met this issue on i40e with GCC6 and we fixed this on ixgbe and fm10k also.
v2: - fix check-git-log.sh warning. - add more detail commit message. Qi Zhang (3): net/i40e: fix out of order Rx read issue net/ixgbe: fix out of order Rx read issue net/fm10k: fix out of ofder Rx read issue drivers/net/fm10k/fm10k_rxtx_vec.c | 3 +++ drivers/net/i40e/i40e_rxtx_vec.c | 3 +++ drivers/net/ixgbe/ixgbe_rxtx_vec_sse.c | 3 +++ 3 files changed, 9 insertions(+) -- 2.7.4