systemwide_memory_barrier: implement using membarrier(MEMBARRIER_CMD_PRIVATE_EXPEDITED)
systemwide_memory_barrier: implement using membarrier(MEMBARRIER_CMD_PRIVATE_EXPEDITED)

Starting with Linux 4.14, the Linux membarrier() syscall has an expedited option
that sends IPIs to all CPUs that host active threads from our process. This is
faster than the current mprotect() method, works correctly on ARM, and most
importantly does not trigger lock contention in the kernel.

Detect this facility during compile-time and run-time and use it if
available.

strace shows the new syscall as:

  4029  18:17:22.113276 membarrier(MEMBARRIER_CMD_PRIVATE_EXPEDITED, 0) = 0 <0.000006>

avikivity/seastar,syuu1228/seastar,scylladb/seastar,cloudius-systems/seastar,avikivity/seastar,dreamsxin/seastar,avikivity/seastar,scylladb/seastar,dreamsxin/seastar,syuu1228/seastar,scylladb/seastar,syuu1228/seastar,cloudius-systems/seastar,cloudius-systems/seastar,dreamsxin/seastar