Messages in this thread | | | From | Linus Torvalds <> | Date | Fri, 2 Dec 2016 13:10:31 -0800 | Subject | Re: [PATCH v2 5/6] x86/xen: Add a Xen-specific sync_core() implementation |
| |
On Fri, Dec 2, 2016 at 12:41 PM, Andy Lutomirski <luto@amacapital.net> wrote: > > Because, if so, we should maybe serialize whenever we migrate a > process to a different CPU.
The intel docs are bad on this issue.
Technically what we do could fall under the "cross-modifying code" case, where one CPU does the write, and then we run it on another CPU.
And no, we do *not* do a serializing instruction before returning to user space. Sure, we might do an iret (which is serializing), but we equally well might be doing a systret (which is not).
Honestly, I think Intel should clean up their documentation.
> (We *definitely* need to flush the store buffer when migrating,
There is no such thing as flushing the store buffer.
But we do end up doing a memory barrier which gives you the required semantics. That's not a problem. Those operations are fast. The serializing instructions are not.
Linus
| |