[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH v2 04/13] nestedsvm: Set GIF during VMRUN if vGIF is enabled


  • To: xen-devel@xxxxxxxxxxxxxxxxxxxx
  • From: chunjie.zhu@xxxxxxxxxx
  • Date: Sat, 10 Oct 2026 18:13:17 +0800
  • Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com; dkim=pass header.d=citrix.com; arc=none
  • Arc-message-signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=WdaTuBkbnXYbNEnhmF8wQG3H1dNpqN4nruFVqpzOWRA=; b=b9yCL7guTpSAHad76kJG9L77D9dLJbEoF+zCvMVVlXvXxfFGyykRXafIZDqFyMPLWCMGMwdTeVUnJjqA+DGrkNM/EZJPLIJH1sW+CUySIvArV2kIbY9K1Tnh2yyYoJseGAZtCX4vo1sV5NRyefwZg+L1SG7upN5Pc8OPukGRbOBM6U4Gz5o3IkTnt3ozXI8XSTqlnUXGr5R1m9Rb2pEBZEgj9u3t5BcDPvBI9L9I0qgl3QnNietIhKNpgN5quET9yPkeG+TU6GSqcafJkH6zC3ZGzTxiLkRyVn0nHK61UWiqlaReP306av340Kv/QnhDVZ0Y2VV4Mrl0ZvYbvEgVrQ==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=diUAZW4sxBfhmFT0EYZkG6buYOjXz7Dpe3w/prS89Lix5P2OMEaCFFNelRhNLqqq6Fq4AkGa0axckLTE6J8fq+Qy4dJn4en4Xhux5cYHBG2f7oI6QwDqIyPMxXKi0RWeKa/H6Q6WWV40OKFfAVxsKRZSgdgqRsH0Tq3MndMYMlEdNUqnU8xzJKFnfs++G+wx7nJfjsnHzxAL6o/h6dttb6WNwAotInt0qUhiX+c1Zb09CsZ7XEeiGXAwx0dhuqOA0GnzVe2zklzexGNo4//aO9F9Fy0/m496bMwu+Qo/behfLq93ROfNpKyTWBcaJgUSLEv49pQ8/NY6TpmycYMiDA==
  • Authentication-results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=citrix.com header.i="@citrix.com" header.h="From:Date:Subject:Message-Id:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
  • Authentication-results: mx.microsoft.com 1; dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=citrix.com;
  • Cc: ross.lagerwall@xxxxxxxxxx, jbeulich@xxxxxxxx, andrew.cooper3@xxxxxxxxxx, roger@xxxxxxxxxxxxxx, jason.andryuk@xxxxxxx, teddy.astie@xxxxxxxxxx, stephen.cheng@xxxxxxxxxx, lin.liu01@xxxxxxxxxx
  • Delivery-date: Sat, 10 Oct 2026 10:14:57 +0000
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>

From: Ross Lagerwall <ross.lagerwall@xxxxxxxxxx>

During a VMRUN, the GIF is set by the processor so when Xen emulates
VMRUN, it should set the flag too. This was already handled for !vGIF so
handle it for the vGIF case too.

Fixes: 4cd0fad64590 ("x86/svm: Add virtual GIF support")
Signed-off-by: Ross Lagerwall <ross.lagerwall@xxxxxxxxxx>
---
 xen/arch/x86/hvm/svm/nestedsvm.c | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/xen/arch/x86/hvm/svm/nestedsvm.c b/xen/arch/x86/hvm/svm/nestedsvm.c
index 8943d61e2b25..a76cec1fecf1 100644
--- a/xen/arch/x86/hvm/svm/nestedsvm.c
+++ b/xen/arch/x86/hvm/svm/nestedsvm.c
@@ -625,10 +625,12 @@ nsvm_vcpu_vmentry(struct vcpu *v, struct cpu_user_regs 
*regs,
     int ret;
     struct nestedvcpu *nv = &vcpu_nestedhvm(v);
     struct nestedsvm *svm = &vcpu_nestedsvm(v);
-    struct vmcb_struct *ns_vmcb;
+    struct vmcb_struct *ns_vmcb, *n1vmcb;
 
     ns_vmcb = nv->nv_vvmcx;
+    n1vmcb = nv->nv_n1vmcx;
     ASSERT(ns_vmcb != NULL);
+    ASSERT(n1vmcb != NULL);
     ASSERT(nv->nv_n2vmcx != NULL);
     ASSERT(nv->nv_n2vmcx_pa != INVALID_PADDR);
 
@@ -673,7 +675,10 @@ nsvm_vcpu_vmentry(struct vcpu *v, struct cpu_user_regs 
*regs,
         return ret;
     }
 
-    svm->ns_gif = 1;
+    if ( n1vmcb->_vintr.fields.vgif_enable )
+        n1vmcb->_vintr.fields.vgif = 1;
+    else
+        svm->ns_gif = 1;
     return 0;
 }
 
-- 
2.34.1




 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.