• Nadav Har'El's avatar
    KVM: nVMX: Additional TSC-offset handling · 7991825b
    Nadav Har'El authored
    In the unlikely case that L1 does not capture MSR_IA32_TSC, L0 needs to
    emulate this MSR write by L2 by modifying vmcs02.tsc_offset. We also need to
    set vmcs12.tsc_offset, for this change to survive the next nested entry (see
    prepare_vmcs02()).
    Additionally, we also need to modify vmx_adjust_tsc_offset: The semantics
    of this function is that the TSC of all guests on this vcpu, L1 and possibly
    several L2s, need to be adjusted. To do this, we need to adjust vmcs01's
    tsc_offset (this offset will also apply to each L2s we enter). We can't set
    vmcs01 now, so we have to remember this adjustment and apply it when we
    later exit to L1.
    Signed-off-by: default avatarNadav Har'El <nyh@il.ibm.com>
    Signed-off-by: default avatarMarcelo Tosatti <mtosatti@redhat.com>
    7991825b
vmx.c 202 KB