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