CPUINFO.Virtualization

Virtualization features. If a paravirtual interface is available, its information will be found here.

struct CPUINFO
struct Virtualization {}

Members

Unions

__anonymous
union __anonymous
Undocumented in source.
__anonymous
union __anonymous
Undocumented in source.

Variables

apivc
bool apivc;

(AMD) APICv. Intel's is available via a MSR.

available
bool available;

Intel VT-x/AMD-V

hv_base_feat_apic_access_msrs
bool hv_base_feat_apic_access_msrs;

(Hyper-V) APIC access MSRs (EOI, ICR, TPR)

hv_base_feat_basic_synic_msrs
bool hv_base_feat_basic_synic_msrs;

(Hyper-V) Basic Synthetic Interrupt Controller MSRs

hv_base_feat_debug_msrs
bool hv_base_feat_debug_msrs;

(Hyper-V) Debug MSRs

hv_base_feat_guest_idle_state_msr
bool hv_base_feat_guest_idle_state_msr;

(Hyper-V) Virtual guest idle state MSR

hv_base_feat_hypercall_msrs
bool hv_base_feat_hypercall_msrs;

(Hyper-V) Hypercalls API MSRs

hv_base_feat_part_ref_tsc_msr
bool hv_base_feat_part_ref_tsc_msr;

(Hyper-V) Partition reference timestamp counter MSR

hv_base_feat_part_time_ref_count_msr
bool hv_base_feat_part_time_ref_count_msr;

(Hyper-V) Partition reference counter MSR

hv_base_feat_stat_pages_msr
bool hv_base_feat_stat_pages_msr;

(Hyper-V) Statistic pages MSRs

hv_base_feat_stimer_msrs
bool hv_base_feat_stimer_msrs;

(Hyper-V) Synthetic Timer MSRs

hv_base_feat_timer_freq_msrs
bool hv_base_feat_timer_freq_msrs;

(Hyper-V) Timer frequency MSRs (TSC and APIC)

hv_base_feat_virt_sys_reset_msr
bool hv_base_feat_virt_sys_reset_msr;

(Hyper-V) Virtual system reset MSR

hv_base_feat_vp_id_msr
bool hv_base_feat_vp_id_msr;

(Hyper-V) vCPU index MSR

hv_base_feat_vp_runtime_msr
bool hv_base_feat_vp_runtime_msr;

(Hyper-V) Virtual processor runtime MSR

hv_guest_build
ushort hv_guest_build;

(Hyper-V) Paravirtualization Guest Build number

hv_guest_major
ubyte hv_guest_major;

(Hyper-V) Paravirtualization Guest OS Major version

hv_guest_minor
ubyte hv_guest_minor;

(Hyper-V) Paravirtualization Guest OS Minor version

hv_guest_opensource
bool hv_guest_opensource;

(Hyper-V) Paravirtualization Guest additions open-source

hv_guest_os
ubyte hv_guest_os;

(Hyper-V) Paravirtualization Guest OS ID

hv_guest_service
ubyte hv_guest_service;

(Hyper-V) Paravirtualization Guest Service ID

hv_guest_vendor_id
ushort hv_guest_vendor_id;

(Hyper-V) Paravirtualization Guest Vendor ID

hv_hint_deprecate_auto_eoi
bool hv_hint_deprecate_auto_eoi;

(Hyper-V) Guest should deprecate Auto EOI (End Of Interrupt) features

hv_hint_dma_remapping
bool hv_hint_dma_remapping;

(Hyper-V) Guest should use the direct memory access (DMA) remapping

hv_hint_ex_proc_masks_interface
bool hv_hint_ex_proc_masks_interface;

(Hyper-V) Guest should use the newer ExProcessMasks interface over ProcessMasks

hv_hint_hypercall_for_process_switch
bool hv_hint_hypercall_for_process_switch;

(Hyper-V) Guest should use the Hypercall API for address space switches rather than MOV CR3

hv_hint_hypercall_for_tlb_flush
bool hv_hint_hypercall_for_tlb_flush;

(Hyper-V) Guest should use the Hypercall API for local TLB flushes rather than INVLPG/MOV CR3

hv_hint_hypercall_for_tlb_shootdown
bool hv_hint_hypercall_for_tlb_shootdown;

(Hyper-V) Guest should use the Hypercall API for inter-CPU TLB flushes rather than inter-processor-interrupts (IPI)

hv_hint_int_for_mbec_syscalls
bool hv_hint_int_for_mbec_syscalls;

(Hyper-V) Guest should use the INT instruction for Mode Based Execution Control (MBEC) system calls

hv_hint_interrupt_remapping
bool hv_hint_interrupt_remapping;

(Hyper-V) Guest should use the interrupt remapping

hv_hint_msr_for_apic_access
bool hv_hint_msr_for_apic_access;

(Hyper-V) Guest should use the MSRs for APIC access (EOI, ICR, TPR) rather than memory-mapped input/output (MMIO)

hv_hint_msr_for_sys_reset
bool hv_hint_msr_for_sys_reset;

(Hyper-V) Guest should use the hypervisor-provided MSR for a system reset instead of traditional methods

hv_hint_nested_enlightened_vmcs_interface
bool hv_hint_nested_enlightened_vmcs_interface;

(Hyper-V) Guest should use enlightened Virtual Machine Control Structure (VMCS) interfaces and nested enlightenment

hv_hint_nested_hyperv
bool hv_hint_nested_hyperv;

(Hyper-V) Hyper-V instance is nested within a Hyper-V partition

hv_hint_relax_time_checks
bool hv_hint_relax_time_checks;

(Hyper-V) Guest should relax timer-related checks (watchdogs/deadman timeouts) that rely on timely deliver of external interrupts

hv_hint_synth_cluster_ipi_hypercall
bool hv_hint_synth_cluster_ipi_hypercall;

(Hyper-V) Guest should use the SyntheticClusterIpi Hypercall

hv_hint_x2apic_msrs
bool hv_hint_x2apic_msrs;

(Hyper-V) Guest should use the X2APIC MSRs rather than memory mapped input/output (MMIO)

hv_host_feat_avic
bool hv_host_feat_avic;

(Hyper-V) Hypervisor is using the Advanced Virtual Interrupt Controller (AVIC) overlay

hv_host_feat_dma_prot_in_use
bool hv_host_feat_dma_prot_in_use;

(Hyper-V) Hypervisor is using direct memory access (DMA) protection

hv_host_feat_dma_remapping
bool hv_host_feat_dma_remapping;

(Hyper-V) Hypervisor is using direct memory access (DMA) remapping

hv_host_feat_hpet_requested
bool hv_host_feat_hpet_requested;

(Hyper-V) Hypervisor requires a High Precision Event Timer (HPET)

hv_host_feat_interrupt_remapping
bool hv_host_feat_interrupt_remapping;

(Hyper-V) Hypervisor is using interrupt remapping

hv_host_feat_mem_patrol_scrubber
bool hv_host_feat_mem_patrol_scrubber;

(Hyper-V) Hypervisor's memory patrol scrubber is present

hv_host_feat_msr_bitmap
bool hv_host_feat_msr_bitmap;

(Hyper-V) Hypervisor is using MSR bitmaps

hv_host_feat_nested_paging
bool hv_host_feat_nested_paging;

(Hyper-V) Hypervisor is using nested paging

hv_host_feat_perf_counter
bool hv_host_feat_perf_counter;

(Hyper-V) Hypervisor supports the architectural performance counter

hv_host_feat_stimer_volatile
bool hv_host_feat_stimer_volatile;

(Hyper-V) Hypervisor's synthetic timers are volatile

hv_misc_feat_debug_msrs
bool hv_misc_feat_debug_msrs;

(Hyper-V) Debug MSR available

hv_misc_feat_disable_hypervisor
bool hv_misc_feat_disable_hypervisor;

(Hyper-V) Hypervisor can be disabled

hv_misc_feat_ext_gva_range_for_flush_va_list
bool hv_misc_feat_ext_gva_range_for_flush_va_list;

(Hyper-V) Extended guest virtual address (GVA) ranges for FlushVirtualAddressList available

hv_misc_feat_guest_crash_msrs
bool hv_misc_feat_guest_crash_msrs;

(Hyper-V) Guest crash MSR available

hv_misc_feat_guest_debugging
bool hv_misc_feat_guest_debugging;

(Hyper-V) Guest supports debugging

hv_misc_feat_guest_idle_state
bool hv_misc_feat_guest_idle_state;

(Hyper-V) Virtual guest supports idle state

hv_misc_feat_hypercall_msr_lock
bool hv_misc_feat_hypercall_msr_lock;

(Hyper-V) Hypercall MISR lock feature available

hv_misc_feat_hypercall_output_xmm
bool hv_misc_feat_hypercall_output_xmm;

(Hyper-V) Returning hypercall output via XMM registers available

hv_misc_feat_hypervisor_sleep_state
bool hv_misc_feat_hypervisor_sleep_state;

(Hyper-V) Hypervisor supports sleep

hv_misc_feat_inject_synmc_xcpt
bool hv_misc_feat_inject_synmc_xcpt;

(Hyper-V) Support for injecting synthetic machine checks

hv_misc_feat_mwait
bool hv_misc_feat_mwait;

(Hyper-V) MWAIT instruction available for guest

hv_misc_feat_npiep1
bool hv_misc_feat_npiep1;

(Hyper-V) Documentation unavailable

hv_misc_feat_pcpu_dyn_part_event
bool hv_misc_feat_pcpu_dyn_part_event;

(Hyper-V) Physicap CPU dynamic partitioning event available

hv_misc_feat_perf_mon
bool hv_misc_feat_perf_mon;

(Hyper-V) Performance monitor support available

hv_misc_feat_query_numa_distance
bool hv_misc_feat_query_numa_distance;

(Hyper-V) NUMA distance query available

hv_misc_feat_sint_polling_mode
bool hv_misc_feat_sint_polling_mode;

(Hyper-V) Synthetic interrupt source polling mode available

hv_misc_feat_timer_freq
bool hv_misc_feat_timer_freq;

(Hyper-V) Determining timer frequencies available

hv_misc_feat_use_direct_synth_msrs
bool hv_misc_feat_use_direct_synth_msrs;

(Hyper-V) Possible to directly use synthetic MSRs

hv_misc_feat_xmm_hypercall_input
bool hv_misc_feat_xmm_hypercall_input;

(Hyper-V) Hypercalls via XMM registers available

hv_part_flags_access_memory_pool
bool hv_part_flags_access_memory_pool;

(Hyper-V) Memory pool can be accessed

hv_part_flags_access_part_id
bool hv_part_flags_access_part_id;

(Hyper-V) Partitions IDs can be accessed

hv_part_flags_access_stats
bool hv_part_flags_access_stats;

(Hyper-V) Can access statistics

hv_part_flags_access_vp_regs
bool hv_part_flags_access_vp_regs;

(Hyper-V) Virtual private registers available

hv_part_flags_access_vsm
bool hv_part_flags_access_vsm;

(Hyper-V) Virtual system monitor available

hv_part_flags_adjust_msg_buffers
bool hv_part_flags_adjust_msg_buffers;

(Hyper-V) Possible to adjust message buffers

hv_part_flags_connect_port
bool hv_part_flags_connect_port;

(Hyper-V) Possible to connect to ports

hv_part_flags_cpu_mgmt
bool hv_part_flags_cpu_mgmt;

(Hyper-V) Processor management available

hv_part_flags_cpu_profiler
bool hv_part_flags_cpu_profiler;

(Hyper-V) Processor profiler available

hv_part_flags_create_part
bool hv_part_flags_create_part;

(Hyper-V) Partitions can be created

hv_part_flags_create_port
bool hv_part_flags_create_port;

(Hyper-V) Possible to create ports

hv_part_flags_debugging
bool hv_part_flags_debugging;

(Hyper-V) Debugging features available

hv_part_flags_expanded_stack_walk
bool hv_part_flags_expanded_stack_walk;

(Hyper-V) Extended stack walking available

hv_part_flags_extended_hypercalls
bool hv_part_flags_extended_hypercalls;

(Hyper-V) Extended hypercalls API available

hv_part_flags_post_msgs
bool hv_part_flags_post_msgs;

(Hyper-V) Possible to send messages

hv_part_flags_signal_events
bool hv_part_flags_signal_events;

(Hyper-V) Possible to signal events

hv_part_flags_start_vp
bool hv_part_flags_start_vp;

(Hyper-V) Virtual processor has started

hv_pm_hpet_reqd_for_c3
bool hv_pm_hpet_reqd_for_c3;

(Hyper-V) High-precision event timer required for C3 state

hv_pm_max_cpu_power_state_c0
bool hv_pm_max_cpu_power_state_c0;

(Hyper-V) Processor C0 is maximum state

hv_pm_max_cpu_power_state_c1
bool hv_pm_max_cpu_power_state_c1;

(Hyper-V) Processor C1 is maximum state

hv_pm_max_cpu_power_state_c2
bool hv_pm_max_cpu_power_state_c2;

(Hyper-V) Processor C2 is maximum state

hv_pm_max_cpu_power_state_c3
bool hv_pm_max_cpu_power_state_c3;

(Hyper-V) Processor C3 is maximum state

kvm_feature_async_pf
bool kvm_feature_async_pf;

(KVM) Asynchronous Page Fault

kvm_feature_async_pf_vmexit
bool kvm_feature_async_pf_vmexit;

(KVM) Asynchronous Page Fault at VM exit

kvm_feature_clocksource
bool kvm_feature_clocksource;

(KVM) kvmclock interface

kvm_feature_clocksource2
bool kvm_feature_clocksource2;

(KVM) Remapped kvmclock interface

kvm_feature_clocsource_stable_bit
bool kvm_feature_clocsource_stable_bit;

(KVM) kvmclock warning

kvm_feature_mmu_op
bool kvm_feature_mmu_op;

(KVM) Deprecated

kvm_feature_nop_io_delay
bool kvm_feature_nop_io_delay;

(KVM) No delays required on I/O operations

kvm_feature_pv_eoi
bool kvm_feature_pv_eoi;

(KVM) Paravirtualized End Of the Interrupt handler

kvm_feature_pv_poll_control
bool kvm_feature_pv_poll_control;

(KVM) Host-side polling on HLT

kvm_feature_pv_sched_yield
bool kvm_feature_pv_sched_yield;

(KVM) paravirtualized scheduler yield

kvm_feature_pv_send_ipi
bool kvm_feature_pv_send_ipi;

(KVM) Paravirtualized SEBD inter-processor-interrupt

kvm_feature_pv_tlb_flush
bool kvm_feature_pv_tlb_flush;

(KVM) Paravirtualized TLB flush

kvm_feature_pv_unhault
bool kvm_feature_pv_unhault;

(KVM) Paravirtualized spinlock

kvm_feature_steal_time
bool kvm_feature_steal_time;

(KVM) Steal time

kvm_hint_realtime
bool kvm_hint_realtime;

(KVM) vCPUs are never preempted for an unlimited amount of time

vbox_apic_freq_khz
uint vbox_apic_freq_khz;

(VBox) Paravirtualization API KHz frequency

vbox_tsc_freq_khz
uint vbox_tsc_freq_khz;

(VBox) Timestamp counter frequency in KHz

version_
ubyte version_;

(AMD) Virtualization platform version

vme
bool vme;

Enhanced vm8086

Meta