Аннулирование кэша TLB при нарушении EPT?

# #x86 #intel #hypervisor #tlb #ept

#x86 #intel #гипервизор #tlb #ept

Вопрос:

В настоящее время я разрабатываю функцию гипервизора.
Я не понимаю, что делать с признанием TLB недействительным при нарушении EPT

Я разрабатываю на Linux, используя процессор i7. Моя реализация:

  • VPID и EPT включены
  • Первоначально доступ на запись для всех записей EPT очищается (устанавливается доступ на чтение и выполнение).
  • Если происходит нарушение EPT(при попытке записи), установите доступ на запись и измените запись, чтобы указать другую страницу(другой hpa)

Согласно руководству Intel,

«Нарушение EPT делает недействительными любые физические сопоставления гостя (связанные с текущим EP4TA), которые будут использоваться для перевода физического адреса гостя, вызвавшего нарушение EPT. А также делает недействительными любые комбинированные сопоставления»

Я запутался в этой части.

Гарантирует ли это, что нарушение EPT делает недействительной соответствующую запись TLB не только в кэше TLB текущего ядра, но и в кэше TLB другого ядра?

Если да, то можно ли просто установить доступ на запись и выделить новый hpa без отключения tlb?