标签: x86 locking atomic cpu-architecture memory-bandwidth
具有锁定前缀的指令是否可以使其余的CPU(虚拟机)在虚拟化环境中占用内存带宽?
例如,请考虑以下代码
loop: lock inc dword [rax] jmp loop
现在假设rax包含一个不可缓存的内存位置的地址。 (使用PAT或MTRR将存储器类型设置为UC)。
这将强制CPU锁定内存总线并减慢其余CPU的内存访问速度,这使其成为拒绝服务的潜在工具。
现代处理器是否有机制在虚拟机之间划分内存带宽以防止此类攻击?