Перейти до вмісту

Extended Page Tables (EPT)

Архітектурний довідникFeex

Також називається VT-x with EPT

EPT (Extended Page Tables) забезпечує другий етап трансляції пам'яті для віртуальних машин Intel. Позначення VT-x with EPT описує як саму віртуалізацію, так і цей додатковий механізм трансляції.

Що потрібно знати

EPT (Extended Page Tables) забезпечує другий етап трансляції пам'яті для віртуальних машин Intel. Позначення VT-x with EPT описує як саму віртуалізацію, так і цей додатковий механізм трансляції.

Як це працює

Таблиці сторінок гостьової системи транслюють гостьові віртуальні адреси в гостьові фізичні адреси; EPT транслює гостьові фізичні адреси у фізичні адреси хоста під керуванням гіпервізора. Записи EPT мають власні права доступу та можуть спричиняти порушення EPT (EPT violations), коли зіставлення або доступ заборонені. Кеші трансляції та правила інвалідації залишаються важливими для коректності роботи.

Де це корисно

Гіпервізор може зіставляти гостьову фізичну пам'ять кожної ВМ із виділеними їй сторінками хоста, дозволяючи гостьовій системі самостійно керувати власним віртуальним адресним простором. Це дає змогу зменшити залежність від старіших методів тіньових таблиць сторінок (shadow page tables), проте фактичні витрати робочого навантаження все одно залежать від кешування трансляцій і шаблонів доступу.

Як перевірити підтримку та активацію

Перевірте параметри керування VMX та інформацію про можливості EPT через гіпервізор або привілейовані інструменти платформи. Самого лише біта CPUID для VT-x недостатньо. Перевірте точні параметри керування та розміри сторінок, необхідні для конкретного розгортання, замість того щоб розглядати EPT як єдиний універсальний режим.

Віртуалізоване розгортання має кілька рівнів: фізичні можливості, дозвіл у прошивці, активний хостовий гіпервізор, надані гостю можливості та підтримка з боку гостьової ОС. Перевіряйте рівень, на якому фактично виконується операція, включно із вкладеною віртуалізацією, коли це актуально.

Чого ця функція не гарантує

EPT - це не VT-d: трансляція гостьової пам'яті, ініційована процесором, і перепризначення DMA пристроїв є різними шляхами. Підтримка EPT не означає автоматичної наявності кожного розміру сторінки EPT, розширення керування виконанням або конфігурації вкладеної віртуалізації.

Сумісність і продуктивність на практиці

Виконання інструкцій процесором, трансляція пам'яті гостьової системи та перепризначення DMA пристроїв є окремими засобами. Не робіть висновків про прокидання або ізоляцію на основі одного поля віртуалізації. Використовуйте підтримувану діагностику гіпервізора та точні вимоги до платформи/пристроїв.

Практичний контрольний список для верифікації

  1. Зафіксуйте точну модель процесора або платформи, а також версії використовуваної програми, ОС і середовища виконання. Збережіть точне формулювання фактичної помилки або вимоги.
  2. Звіртеся з документацією виробника для цієї точної моделі, потім перевірте фактичні можливості та стан активації в середовищі, де виконується програма.
  3. Порівняйте кожну вимогу вибраного двійкового файлу або бекенда. Схожої назви функції, псевдоніма чи загального позначення технології недостатньо.
  4. Переконайтеся, що програма вибрала призначену реалізацію. Використовуйте її задокументовані засоби діагностики та підтримуваний резервний варіант, якщо вимоги не виконуються.
  5. Вносьте по одній підтримуваній зміні за раз і повторюйте те саме робоче навантаження. Зберігайте оригінальну конфігурацію та можливість відновлення.

Якщо функція вказана, але програмне забезпечення не може її використати

Почніть із компонента, у якому саме стався збій. База даних обладнання описує зафіксовані можливості; операційна система або гіпервізор можуть надавати інше фактичне середовище. Помилка неприпустимої інструкції також потребує дослідження фактичної інструкції, що викликала збій, і двійкової збірки, оскільки пошкодження даних або непов'язана непідтримувана інструкція можуть викликати схожий симптом.

Встановіть версію програми, драйвера або середовища виконання, яка підтримується для цієї конкретної платформи, і за потреби використовуйте задокументовану постачальником базову або резервну збірку. Оновлення програмного забезпечення не може створити інструкцію, якої немає в процесорі. Зміни у прошивці та політиках безпеки повинні відповідати процедурі виробника системи та плану відновлення, а не загальним рецептам оптимізації.

Джерела та межі застосування цього пояснення

Intel 64 and IA-32 Architectures Software Developer's Manual

Ці довідкові матеріали визначають архітектурну поведінку та вимоги до програмного забезпечення. Вони не перевіряють незалежно кожне значення функції на сторінці пов'язаної моделі обладнання. Щодо підтримки моделі використовуйте дані виробника на цій сторінці та перевіряйте фактичну конфігурацію системи. Ця стаття не містить бенчмарків, сертифікації чи дат незалежного огляду.

Джерела та верифікація

Власник авторських прав: Feex. Дата незалежної перевірки не зафіксована. Як ми проводимо дослідження.

  • Intel 64 and IA-32 Architectures Software Developer's Manual · Томи 1 і 2 описують зазначені сімейства інструкцій і CPUID; Том 3 описує стан, сторінкову організацію пам'яті, VMX і засоби захисту. Документація з архітектури не підтверджує підтримку для конкретної моделі.

Чи була ця стаття корисною?

Достатньо відповісти "так" або "ні". За бажанням виберіть причину або додайте коротку примітку.

Чи була ця стаття корисною?