3 ms·
Interesting. I thought they would do register renaming for thread switching as they do for speculative execution. Is this not the case?
by terryf 9y ago
Interesting. I thought they would do register renaming for thread switching as they do for speculative execution. Is this not the case?
- amluto 9y agoI doubt a segment register is easily renamable. It implicitly affects most subsequent operations, and it's not really just a number. (You can find the full data structure documented in the virtualization section of the Intel and AMD docs because virtualization extensions let you read the registers in their entirety [1].). Also, the instructions that write to these regs have very complicated microcode. [1] The AMD interactions between CPL, CS, and SS are so messy that there's still an unresolved crash when KVM runs an older Linux guest and exits all the way out to QEMU to handle, say, a virtio interrupt at the wrong time. QEMU tries and fails to read the state and write it back fully.