Немного о FlexPriority.
Когда речь заходит об аппаратных технологиях касающихся виртуализации, все вспоминают VT-x и AMD-V. Но помимо них существуют и другие технологии оптимизирующие аппаратные функции виртуализации. Одна из них Intel FlexPriority.Если коротко, то FlexPriority это поддержка доступа к регистрам TPR из виртуальных окружений. Task Priority Register - это программируемые регистры приоритета задач внутри APIC, эти регистры используются для расчета приоритета текущей выполняемой задачи и в основном используются операционной системой для планирования исполнения задач. Так вот, эта технология вносит оптимизации и приводит к ускорению прерываний за счет включения доступа виртуальной машины к регистрам TPR. Ускорение дается за счет уменьшения обратных переключений контекста (VM exits) при доступе к APIC. Особенно хорошо заметно увеличение эффективности многопроцессорных систем SMP на 32-битных операционных системах.
В первом случае гипервизору приходится перехватывать и декодировать инструкции виртуальной машины, а затем и эмулировать поведение регистров TPR. В итоге это не очень хорошо сказывается на производительности.
При использовании FlexPriority (второй случай), эмуляция регистров TPR переносится на аппаратную часть и инструкции выполняются напрямую в виртуальной машине не привлекая для этих операций гипервизор (как следствие отсутствие переключений контекста).
Наличие поддержки этой технологии можно проверить следующим образом:
# grep -o flexpriority /proc/cpuinfo |uniq
flexpriority
Почитать по теме можно Аппаратные расширения для виртуализации
На главную "Virtualizing Linux"
Комментариев нет:
Отправить комментарий