# #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?