Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752495AbdHPTxT (ORCPT ); Wed, 16 Aug 2017 15:53:19 -0400 Received: from mx1.redhat.com ([209.132.183.28]:33006 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752026AbdHPTxR (ORCPT ); Wed, 16 Aug 2017 15:53:17 -0400 DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com 7E6F5745BB Authentication-Results: ext-mx03.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx03.extmail.prod.ext.phx2.redhat.com; spf=fail smtp.mailfrom=rkrcmar@redhat.com Date: Wed, 16 Aug 2017 21:53:12 +0200 From: Radim Krcmar To: Janakarajan Natarajan 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 Subject: Re: [PATCH 2/2] KVM: SVM: Enable Virtual GIF feature Message-ID: <20170816195312.GB32542@flask> References: <34f2f25e05496f4212c622ecce999dabb0bd2357.1502896608.git.Janakarajan.Natarajan@amd.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <34f2f25e05496f4212c622ecce999dabb0bd2357.1502896608.git.Janakarajan.Natarajan@amd.com> X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.27]); Wed, 16 Aug 2017 19:53:17 +0000 (UTC) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1300 Lines: 31 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.