On Fri, Mar 25, 2022, Wanpeng Li wrote: > From: Wanpeng Li <wanpengli@xxxxxxxxxxx> > > Let's get the information whether or not guests disable interruptions. This is missing critical information for _why_. It took me some staring to understand that this allows querying IRQs from a _different_ vCPU, which needs caching on VMX due to the need to do a VMREAD. > Signed-off-by: Wanpeng Li <wanpengli@xxxxxxxxxxx> > --- > arch/x86/include/asm/kvm_host.h | 1 + > arch/x86/kvm/x86.c | 3 +++ > 2 files changed, 4 insertions(+) > > diff --git a/arch/x86/include/asm/kvm_host.h b/arch/x86/include/asm/kvm_host.h > index 50f011a7445a..8e05cbfa9827 100644 > --- a/arch/x86/include/asm/kvm_host.h > +++ b/arch/x86/include/asm/kvm_host.h > @@ -861,6 +861,7 @@ struct kvm_vcpu_arch { > bool preempt_count_enabled; > struct gfn_to_hva_cache preempt_count_cache; > } pv_pc; > + bool irq_disabled; This is going to at best be confusing, and at worst lead to bugs The flag is valid if and only if the vCPU is not loaded. I don't have a clever answer, but this needs to have some form of guard to (a) clarify when it's valid and (b) actively prevent misuse.