СекцииPartitions

Гипервизор поддерживает изоляцию в терминах секции.The hypervisor supports isolation in terms of a partition. Раздел — это логическая единица изоляции, поддерживаемая гипервизором, в котором работают операционные системы.A partition is a logical unit of isolation, supported by the hypervisor, in which operating systems execute.

Флаги привилегий секцийPartition Privilege Flags

У каждой секции есть набор привилегий, назначенных гипервизором.Each partition has a set of privileges assigned by the hypervisor. Привилегии контролируют доступ к искусственным пакетам MSRs или гипервызовов.Privileges control access to synthetic MSRs or hypercalls.

Раздел может запрашивать свои привилегии с помощью "идентификатора функции гипервизора" (0x40000003).A partition can query its privileges through the “Hypervisor Feature Identification” CPUID Leaf (0x40000003). Описание всех привилегий см. в разделе HV_PARTITION_PRIVILEGE_MASK .See HV_PARTITION_PRIVILEGE_MASK for a description of all privileges.

Просвещение сбоя разделаPartition Crash Enlightenment

Гипервизор предоставляет гостевые секции с помощью средства аварийного просвещениея.The hypervisor provides guest partitions with a crash enlightenment facility. Этот интерфейс позволяет операционной системе, работающей в гостевом разделе, предоставлять судебные сведения о некритических состояниях ОС для низкоуровневой оболочки в рамках процедуры аварийного дампа.This interface allows the operating system running in a guest partition the option of providing forensic information about fatal OS conditions to the hypervisor as part of its crash dump procedure. Параметры включают сохранение содержимого параметра гостевого сбоя MSRs и указание сообщения о сбое.Options include preserving the contents of the guest crash parameter MSRs and specifying a crash message. Затем низкоуровневая оболочка предоставляет доступ к этой информации корневому разделу для ведения журнала.The hypervisor then makes this information available to the root partition for logging. Этот механизм позволяет администратору узла виртуализации собирать сведения о событиях аварийного завершения гостевой ОС без проверки постоянного хранилища, подключенного к гостевому разделу для аварийного дампа, или сведений о дампе ядра, которые могут храниться в этом случае при аварийном завершении гостевой ОС.This mechanism allows the virtualization host administrator to gather information about the guest OS crash event without needing to inspect persistent storage attached to the guest partition for crash dump or core dump information that may be stored there by the crashing guest OS.

Доступность этого механизма указывается с помощью CPUID.0x400003.EDX:10 флага гуесткрашмсрсаваилабле. см. статью Обнаружение компонентов.The availability of this mechanism is indicated via CPUID.0x400003.EDX:10, the GuestCrashMsrsAvailable flag; refer to feature discovery.

Интерфейс гостевого сбоя просвещениеGuest Crash Enlightenment Interface

Интерфейс гостевой аварийный просвещение предоставляется через шесть искусственных виртуальных систем MSRs, как определено ниже.The guest crash enlightenment interface is provided through six synthetic MSRs, as defined below.

#define HV_X64_MSR_CRASH_P0 0x40000100
#define HV_X64_MSR_CRASH_P1 0x40000101
#define HV_X64_MSR_CRASH_P2 0x40000102
#define HV_X64_MSR_CRASH_P3 0x40000103
#define HV_X64_MSR_CRASH_P4 0x40000104
#define HV_X64_MSR_CRASH_CTL 0x40000105

Гостевой контроль сбоев MSRGuest Crash Control MSR

Гостевые Секции управления аварийным завершением HV_X64_MSR_CRASH_CTL могут использоваться гостевыми секциями для определения возможностей аварийного завершения гостевой оболочки и вызова указанного действия.The guest crash control MSR HV_X64_MSR_CRASH_CTL may be used by guest partitions to determine the hypervisor’s guest crash capabilities, and to invoke the specified action to take. Структура данных HV_CRASH_CTL_REG_CONTENTS определяет содержимое MSR.The HV_CRASH_CTL_REG_CONTENTS data structure defines the contents of the MSR.

Определение возможностей гостевого сбояDetermining Guest Crash Capabilities

Чтобы определить возможности аварийного завершения работы, гостевые секции могут считать HV_X64_MSR_CRASH_CTL регистр.To determine the guest crash capabilities, guest partitions may read the HV_X64_MSR_CRASH_CTL register. Отображается поддерживаемый набор действий и возможностей, поддерживаемых гипервизором.The supported set of actions and capabilities supported by the hypervisor is reported.

Вызов возможностей гостевого сбояInvoking Guest Crash Capabilities

Чтобы вызвать поддерживаемое действие "сбой гостевой виртуальной низкоуровневой оболочки", гостевая Секция записывает данные в HV_X64_MSR_CRASH_CTL регистр, указывая нужное действие.To invoke a supported hypervisor guest crash action, a guest partition writes to the HV_X64_MSR_CRASH_CTL register, specifying the desired action. Поддерживаются два варианта: Крашнотифи сам по себе и Крашмессаже в сочетании с Крашнотифи.Two variations are supported: CrashNotify by itself, and CrashMessage in combination with CrashNotify. Для каждого случая сбоя гостевого компьютера необходимо выполнить только одну запись в HV_X64_MSR_CRASH_CTL MSR, указав один из двух вариантов.For each occurrence of a guest crash, at most a single write to MSR HV_X64_MSR_CRASH_CTL should be performed, specifying one of the two variations.

Действие при сбое гостяGuest Crash Action ОписаниеDescription
крашмессажеCrashMessage Это действие используется в сочетании с Крашнотифи, чтобы указать в гипервизоре сообщение о сбое.This action is used in combination with CrashNotify to specify a crash message to the hypervisor. Если этот флажок установлен, значения P3 и P4 обрабатываются как расположение и размер сообщения.When selected, the values of P3 and P4 are treated as the location and size of the message. HV_X64_MSR_CRASH_P3 является физическим адресом гостевого сообщения, а HV_X64_MSR_CRASH_P4 — длиной в байтах сообщения (не более 4096 байт).HV_X64_MSR_CRASH_P3 is the guest physical address of the message, and HV_X64_MSR_CRASH_P4 is the length in bytes of the message (maximum of 4096 bytes).
крашнотифиCrashNotify Это действие указывает гипервизору, что гостевая Секция завершила запись нужных данных в параметр виртуальной машины MSRs (т. е. от P0 до P4), и низкоуровневая оболочка должна продолжить запись содержимого этих MSRs.This action indicates to the hypervisor that the guest partition has completed writing the desired data into the guest crash parameter MSRs (i.e., P0 thru P4), and the hypervisor should proceed with logging the contents of these MSRs.