这是一个令人感兴趣的问题。 面对这一点,人们会认为,自以来,该编码是一份连续的指令,它冲动了以前的记本,而且所有内容都很好。 即便如此,引用手册:
These instructions force the processor to complete all modifications
to flags, registers, and memory by previous instructions and to drain
all buffered writes to memory before the next instruction is fetched
and executed.
(Emphasis mine)
It doesn t say anything about the ordering with respect to sending the IPI as that is part of the current instruction, not the next one. So this theoretically means the other core could execute the mov r1, [ _x]
while the originating core is still busy flushing stuff but is very unlikely given that the target core would need to service the interrupt which probably has a lot higher latency.
如“@harold”所述,这一点是空洞的,因为“WRMSR并非总是序列化。 阅读我最初错过的脚注:
WRMSR to the IA32_TSC_DEADLINE MSR (MSR index 6E0H) and the X2APIC
MSRs (MSR indices 802H to 83FH) are not serializing.
因此,绝对不能保证转录到<条码>x条码>的文字。