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.