From mboxrd@z Thu Jan 1 00:00:00 1970 From: Radim Krcmar Subject: Re: [PATCH 2/2] KVM: SVM: Enable Virtual GIF feature Date: Wed, 16 Aug 2017 21:53:12 +0200 Message-ID: <20170816195312.GB32542@flask> References: <34f2f25e05496f4212c622ecce999dabb0bd2357.1502896608.git.Janakarajan.Natarajan@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: kvm@vger.kernel.org, x86@kernel.org, linux-kernel@vger.kernel.org, Paolo Bonzini , Joerg Roedel , Andy Lutomirski , Tony Luck , Borislav Petkov , Thomas Gleixner , Ingo Molnar , "H . Peter Anvin" , Yazen Ghannam To: Janakarajan Natarajan Return-path: Content-Disposition: inline In-Reply-To: <34f2f25e05496f4212c622ecce999dabb0bd2357.1502896608.git.Janakarajan.Natarajan@amd.com> Sender: linux-kernel-owner@vger.kernel.org List-Id: kvm.vger.kernel.org 2017-08-16 10:54-0500, Janakarajan Natarajan: > Enable the Virtual GIF feature. This is done by setting bit 25 at position > 60h in the vmcb. > > With this feature enabled, the processor uses bit 9 at position 60h as the > virtual GIF when executing STGI/CLGI instructions. > > Since the execution of STGI by the L1 hypervisor does not cause a return to > the outermost (L0) hypervisor, the enable_irq_window and enable_nmi_window > are modified. > > The IRQ and NMI windows will be opened even if GIF is not set, under the > assumption that on resuming the L1 hypervisor the IRQ and NMI will be > held pending until the processor executes the STGI instruction. > > Signed-off-by: Janakarajan Natarajan > --- > diff --git a/arch/x86/kvm/svm.c b/arch/x86/kvm/svm.c > @@ -4702,8 +4735,8 @@ static void enable_nmi_window(struct kvm_vcpu *vcpu) > == HF_NMI_MASK) > return; /* IRET will cause a vm exit */ > > - if ((svm->vcpu.arch.hflags & HF_GIF_MASK) == 0) > - return; /* STGI will cause a vm exit */ > + if (!vgif_enabled(svm) && !gif_set(svm)) > + return; /* STGI will cause a vm exit or HW will set VGIF*/ Why don't we enable STGI interception to get notified that the window has opened? (I doubt that single stepping would be faster ...) Thanks.