People typically mention mfence
in the context of lock-free programming with atomics and without system synchronization primitives, which performs request to the kernel. So does it mean that mfence
instruction is not needed when I create code for user space that uses kernel synchronization primitives. If so, why?
Also, do int
instructions perform implicit mfence
?
I will be extremely happy to learn about it, because documentation that I have found in the web regarding int
and sysenter
specify nothing regarding mfence
.