Implement percpu_fence()
authorMathieu Desnoyers <mathieu.desnoyers@efficios.com>
Fri, 26 Jul 2019 13:43:38 +0000 (09:43 -0400)
committerMathieu Desnoyers <mathieu.desnoyers@efficios.com>
Fri, 26 Jul 2019 13:43:38 +0000 (09:43 -0400)
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
include/rseq/percpu-op.h

index 8dc2e1e4a72d7cb711afffc4a5324cb40a68a6ea..cc152d7a21f14de3212fbff0259e62ad52670a8d 100644 (file)
@@ -20,6 +20,16 @@ static inline uint32_t percpu_current_cpu(void)
        return rseq_current_cpu();
 }
 
+static inline __attribute__((always_inline))
+int percpu_fence(int cpu)
+{
+       if (cpu < 0)
+               return -1;
+       if ((uint32_t) cpu == percpu_current_cpu())
+               return 0;
+       return cpu_op_fence(cpu);
+}
+
 static inline __attribute__((always_inline))
 int percpu_cmpeqv_storev(intptr_t *v, intptr_t expect, intptr_t newv,
                         int cpu)
This page took 0.024418 seconds and 4 git commands to generate.