Messages in this thread Patch in this message | | | Subject | Re: [PATCH 4/7] KVM: SVM: hyper-v: Nested enlightenments in VMCB | From | Paolo Bonzini <> | Date | Thu, 8 Apr 2021 17:44:59 +0200 |
| |
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; > }
| |