• N
    KVM: nVMX: Further fixes for lazy FPU loading · 36cf24e0
    Nadav Har'El 提交于
    KVM's "Lazy FPU loading" means that sometimes L0 needs to set CR0.TS, even
    if a guest didn't set it. Moreover, L0 must also trap CR0.TS changes and
    NM exceptions, even if we have a guest hypervisor (L1) who didn't want these
    traps. And of course, conversely: If L1 wanted to trap these events, we
    must let it, even if L0 is not interested in them.
    
    This patch fixes some existing KVM code (in update_exception_bitmap(),
    vmx_fpu_activate(), vmx_fpu_deactivate()) to do the correct merging of L0's
    and L1's needs. Note that handle_cr() was already fixed in the above patch,
    and that new code in introduced in previous patches already handles CR0
    correctly (see prepare_vmcs02(), prepare_vmcs12(), and nested_vmx_vmexit()).
    Signed-off-by: NNadav Har'El <nyh@il.ibm.com>
    Signed-off-by: NMarcelo Tosatti <mtosatti@redhat.com>
    36cf24e0
vmx.c 201.7 KB