• Alexander Graf's avatar
    KVM: SVM: Add VMRUN handler · 3d6368ef
    Alexander Graf authored
    This patch implements VMRUN. VMRUN enters a virtual CPU and runs that
    in the same context as the normal guest CPU would run.
    So basically it is implemented the same way, a normal CPU would do it.
    
    We also prepare all intercepts that get OR'ed with the original
    intercepts, as we do not allow a level 2 guest to be intercepted less
    than the first level guest.
    
    v2 implements the following improvements:
    
    - fixes the CPL check
    - does not allocate iopm when not used
    - remembers the host's IF in the HIF bit in the hflags
    
    v3:
    
    - make use of the new permission checking
    - add support for V_INTR_MASKING_MASK
    
    v4:
    
    - use host page backed hsave
    
    v5:
    
    - remove IOPM merging code
    
    v6:
    
    - save cr4 so PAE l1 guests work
    
    v7:
    
    - return 0 on vmrun so we check the MSRs too
    - fix MSR check to use the correct variable
    Acked-by: default avatarJoerg Roedel <joro@8bytes.org>
    Signed-off-by: default avatarAlexander Graf <agraf@suse.de>
    Signed-off-by: default avatarAvi Kivity <avi@redhat.com>
    3d6368ef
kvm_host.h 20.5 KB