/* * vmcs_host_state tracks registers that are loaded from the VMCS on VMEXIT * and whose values change infrequently, but are not constant. I.e. this is * used as a write-through cache of the corresponding VMCS fields.
*/ struct vmcs_host_state { unsignedlong cr3; /* May not match real cr3 */ unsignedlong cr4; /* May not match real cr4 */ unsignedlong gs_base; unsignedlong fs_base; unsignedlong rsp;
/* * Track a VMCS that may be loaded on a certain CPU. If it is (cpu!=-1), also * remember whether it was VMLAUNCHed, and maintain a linked list of all VMCSs * loaded on this CPU (so we can clear them if the CPU goes down).
*/ struct loaded_vmcs { struct vmcs *vmcs; struct vmcs *shadow_vmcs; int cpu; bool launched; bool nmi_known_unmasked; bool hv_timer_soft_disabled; /* Support for vnmi-less CPUs */ int soft_vnmi_blocked;
ktime_t entry_time;
s64 vnmi_blocked_time; unsignedlong *msr_bitmap; struct list_head loaded_vmcss_on_cpu_link; struct vmcs_host_state host_state; struct vmcs_controls_shadow controls_shadow;
};
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.