lkml.org 
[lkml]   [2010]   [Nov]   [29]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 1/3] KVM: X86: Introduce generic guest-mode representation
    Date
    This patch introduces a generic representation of guest-mode
    fpr a vcpu. This currently only exists in the SVM code.
    Having this representation generic will help making the
    non-svm code aware of nesting when this is necessary.

    Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
    ---
    arch/x86/include/asm/kvm_host.h | 1 +
    arch/x86/kvm/kvm_cache_regs.h | 15 +++++++++++++++
    2 files changed, 16 insertions(+), 0 deletions(-)

    diff --git a/arch/x86/include/asm/kvm_host.h b/arch/x86/include/asm/kvm_host.h
    index 54e42c8..d2a66be 100644
    --- a/arch/x86/include/asm/kvm_host.h
    +++ b/arch/x86/include/asm/kvm_host.h
    @@ -784,6 +784,7 @@ enum {
    #define HF_VINTR_MASK (1 << 2)
    #define HF_NMI_MASK (1 << 3)
    #define HF_IRET_MASK (1 << 4)
    +#define HF_GUEST_MASK (1 << 5) /* VCPU is in guest-mode */

    /*
    * Hardware virtualization extension instructions may fault if a
    diff --git a/arch/x86/kvm/kvm_cache_regs.h b/arch/x86/kvm/kvm_cache_regs.h
    index 975bb45..7e7c52d 100644
    --- a/arch/x86/kvm/kvm_cache_regs.h
    +++ b/arch/x86/kvm/kvm_cache_regs.h
    @@ -84,4 +84,19 @@ static inline u64 kvm_read_edx_eax(struct kvm_vcpu *vcpu)
    | ((u64)(kvm_register_read(vcpu, VCPU_REGS_RDX) & -1u) << 32);
    }

    +static inline void kvm_vcpu_enter_gm(struct kvm_vcpu *vcpu)
    +{
    + vcpu->arch.hflags |= HF_GUEST_MASK;
    +}
    +
    +static inline void kvm_vcpu_leave_gm(struct kvm_vcpu *vcpu)
    +{
    + vcpu->arch.hflags &= ~HF_GUEST_MASK;
    +}
    +
    +static inline bool kvm_vcpu_is_gm(struct kvm_vcpu *vcpu)
    +{
    + return !!(vcpu->arch.hflags & HF_GUEST_MASK);
    +}
    +
    #endif
    --
    1.7.1



    \
     
     \ /
      Last update: 2010-11-29 16:41    [W:0.026 / U:32.108 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site