Зачем вам выход из внешнего прерывания? - PullRequest
0 голосов
/ 14 февраля 2019

Для VMM, использующей Intel VT-x, почему кто-то хочет установить бит выхода внешнего прерывания в VMCS на 0, а не использовать опубликованные прерывания (при условии, что архитектура поддерживает оба)?

ДляНапример, если вы установили бит выхода внешнего прерывания на 0, то теперь прерывания, предназначенные для хост-ОС, будут доставляться в гостевую ОС, если гостевая система работает.Как с этим справиться, если гость также использует те же векторы прерываний?Эта проблема не связана с обработкой отправленных прерываний.

1 Ответ

0 голосов
/ 14 февраля 2019

Существует много разных способов создания VMM, использующих VMX.Из вашего использования термина «хост-ОС» видно, что вы рассматриваете одну конкретную архитектуру VMM.

Поскольку управление выходом из внешнего прерывания находится в VMCS, VMM может устанавливать его по-разному для каждой виртуальной машины.Если есть хост-операционная система и гостевая ОС, то VMM наверняка установит для контроля внешнего прерывания значение 1 в VMCS для гостя, но может установить для него значение 0 в VMCS для хост-ОС.(В некоторых конструкциях VMM хост-ОС работает в корневом режиме VMX или с выключенным VMX, поэтому это не будет применяться; но в некоторых VMM хост-ОС (также называемая служебной ОС, корневым разделом или Dom0) работает вVM.)

Относительно того, почему VMM может сделать это вместо настройки управления размещенными прерываниями процесса, существует несколько возможных причин:

  • VMM был написан до того, как опубликованные прерывания стали доступны.
  • VMM предназначен для работы на платформах, которые не поддерживают отправленные прерывания.
  • (возможно) Прямая доставка прерываний требует меньше времени и ресурсов процессора и меньше задержка, чем при использовании опубликованных прерываний.
  • Отправленная обработка прерываний предназначена для обработки прерываний, назначенных гостевому vcpu.Гостевой vcpu может в данный момент не работать, и когда он работает, физический процессор, на котором он работает, может отличаться.Кроме того, обработка опубликованных прерываний поддерживает случай, когда доставка прерываний может быть отложена до возобновления работы vcpu.
    Если VMM хочет, чтобы прерывания хоста всегда доставлялись немедленно на физический ЦП, указанный в месте назначения прерывания, при использовании может не быть никакого значенияразмещенные прерывания для этих прерываний.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...