Re: [PATCH 4/7] KVM: SVM: hyper-v: Nested enlightenments in VMCB
From: Paolo Bonzini <pbonzini@redhat.com>
Date: 2021-04-08 15:45:16
Also in:
kvm, lkml
From: Paolo Bonzini <pbonzini@redhat.com>
Date: 2021-04-08 15:45:16
Also in:
kvm, lkml
On 07/04/21 16:41, Vineeth Pillai wrote:
+#define VMCB_ALL_CLEAN_MASK (__CLEAN_MASK | (1U << VMCB_HV_NESTED_ENLIGHTENMENTS)) +#else +#define VMCB_ALL_CLEAN_MASK __CLEAN_MASK +#endif
I think this should depend on whether KVM is running on top of Hyper-V; not on whether KVM is *compiled* with Hyper-V support. So you should turn VMCB_ALL_CLEAN_MASK into a __read_mostly variable. Paolo
/* TPR and CR2 are always written before VMRUN */ #define VMCB_ALWAYS_DIRTY_MASK ((1U << VMCB_INTR) | (1U << VMCB_CR2))@@ -230,7 +251,7 @@ static inline void vmcb_mark_all_dirty(struct vmcb *vmcb) static inline void vmcb_mark_all_clean(struct vmcb *vmcb) { - vmcb->control.clean = ((1 << VMCB_DIRTY_MAX) - 1) + vmcb->control.clean = VMCB_ALL_CLEAN_MASK & ~VMCB_ALWAYS_DIRTY_MASK; }