Может ли префикс блокировки x86 на не кэшируемой памяти вызвать отказ в обслуживании в пропускной способности памяти?
Может ли инструкция с префиксом блокировки не использовать остальные процессоры (виртуальные машины) для пропускной способности памяти в виртуализированной среде?
Например, рассмотрим следующий кусок кода
loop:
lock inc dword [rax]
jmp loop
Теперь предположим, что rax содержит адрес области памяти без кэширования. (Использование PAT или MTRR для установки типа памяти в UC).
Это заставит ЦП блокировать шину памяти и замедлить доступ к памяти остального ЦП, что делает его потенциальным инструментом для отказа в обслуживании.
Есть ли у современных процессоров механизмы для распределения пропускной способности памяти между виртуальными машинами для предотвращения подобных атак?