Commit e8ccc71e authored by Darek Stojaczyk's avatar Darek Stojaczyk Committed by Jim Harris
Browse files

barrier/x86: use lock+add for smp_mb() instead of mfence



This follows smp_mb() implementation in the latest DPDK.

Change-Id: I39f9259a0208579034e5ff39961a2c4b8b72975c
Signed-off-by: default avatarDarek Stojaczyk <dariusz.stojaczyk@intel.com>
Reviewed-on: https://review.gerrithub.io/c/444041


Tested-by: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: default avatarBen Walker <benjamin.walker@intel.com>
Reviewed-by: default avatarJim Harris <james.r.harris@intel.com>
parent 1168d860
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -113,8 +113,10 @@ extern "C" {
#define spdk_smp_mb()	spdk_mb()
#elif defined(__aarch64__)
#define spdk_smp_mb()	__asm volatile("dmb ish" ::: "memory")
#elif defined(__i386__) || defined(__x86_64__)
#define spdk_smp_mb()	spdk_mb()
#elif defined(__x86_64__)
#define spdk_smp_mb() __asm volatile("lock addl $0, -128(%%rsp); " ::: "memory");
#elif defined(__i386__)
#define spdk_smp_mb() __asm volatile("lock addl $0, -128(%%esp); " ::: "memory");
#else
#define spdk_smp_mb()
#error Unknown architecture