Can an instruction with lock prefix starve rest of the CPUs (virtual machines) for memory bandwidth in a virtualized environment ?
For example, consider the following piece of code
loop:
lock inc dword [rax]
jmp loop
Now assume that rax contains the address of an uncacheable memory location. (Using PAT or MTRR to set the memory type to UC).
This will force the CPU to lock the memory bus and slow down memory accesses of rest of the CPU which makes it a potential tool for denial of service.
Do modern processors have mechanisms to partition memory bandwidth among virtual machines to prevent attacks like this?