From nobody Fri Apr 26 05:03:34 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=fail(p=none dis=none) header.from=citrix.com ARC-Seal: i=1; a=rsa-sha256; t=1585131607; cv=none; d=zohomail.com; s=zohoarc; b=dEd5jY9HOgrd82rhHLX74BmXl0SB8e2HxUBBDfSQEo25o6C4JRLNxTaW4UhI0B5+zRcGfu6tckdNdoynVDQmvmxtpOB4jUq7g7OkEluboyvODJww0mSbSrXb5j+6Ho/26Pj3w0tjR8ppXVLACbJvjWpiegwkr17GAVvH39BMg18= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1585131607; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=A4E/bRDV3xPdSAbDLGRwNaytZimdB6QoKy6y3btIYrc=; b=WsXQ28UPh/dYNL/z29Pn/dQH//8snyQSnH+q2LHHdLfjJ0BEP8VqSojbrptIp/SG6dx/UC65hOTUs5NvyNVXVJ+ljLAcFqaTTXKvnk+4gLJyDuVN9dsY8EajyxY3+f0jWriS4XCVKhIfdRhyuJMrNo0GilkUYTXqGr3h9FdGkhw= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1585131607105828.3560380251139; Wed, 25 Mar 2020 03:20:07 -0700 (PDT) Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1jH38I-00018e-Nr; Wed, 25 Mar 2020 10:19:34 +0000 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1jH38H-00017y-Hq for xen-devel@lists.xenproject.org; Wed, 25 Mar 2020 10:19:33 +0000 Received: from esa5.hc3370-68.iphmx.com (unknown [216.71.155.168]) by us1-rack-iad1.inumbo.com (Halon) with ESMTPS id 1e89a288-6e82-11ea-a6c1-bc764e2007e4; Wed, 25 Mar 2020 10:19:33 +0000 (UTC) X-Inumbo-ID: 1e89a288-6e82-11ea-a6c1-bc764e2007e4 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=citrix.com; s=securemail; t=1585131573; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=6fjiTrIRuEMMbz6K31zXO+vBOLjObAGvvwGKsTQeTO4=; b=CfJCBgjS+n3O2KsxRFPza84QWZfHdDq7e8NP4UyE8smTIEYItLdOPVZJ 5K5KxygxlOTljS3sgXR8Y1PIRxzZWdBW6qrtcwq80nYmSMD29gGd4r07f msXQrGaqDvERZM+wAe/E0Q3L0gXsNCNX6GkQB233qsITC1tu7j6YHQxBj g=; Authentication-Results: esa5.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none; spf=None smtp.pra=roger.pau@citrix.com; spf=Pass smtp.mailfrom=roger.pau@citrix.com; spf=None smtp.helo=postmaster@mail.citrix.com Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Received-SPF: None (esa5.hc3370-68.iphmx.com: no sender authenticity information available from domain of roger.pau@citrix.com) identity=pra; client-ip=162.221.158.21; receiver=esa5.hc3370-68.iphmx.com; envelope-from="roger.pau@citrix.com"; x-sender="roger.pau@citrix.com"; x-conformance=sidf_compatible Received-SPF: Pass (esa5.hc3370-68.iphmx.com: domain of roger.pau@citrix.com designates 162.221.158.21 as permitted sender) identity=mailfrom; client-ip=162.221.158.21; receiver=esa5.hc3370-68.iphmx.com; envelope-from="roger.pau@citrix.com"; x-sender="roger.pau@citrix.com"; x-conformance=sidf_compatible; x-record-type="v=spf1"; x-record-text="v=spf1 ip4:209.167.231.154 ip4:178.63.86.133 ip4:195.66.111.40/30 ip4:85.115.9.32/28 ip4:199.102.83.4 ip4:192.28.146.160 ip4:192.28.146.107 ip4:216.52.6.88 ip4:216.52.6.188 ip4:162.221.158.21 ip4:162.221.156.83 ip4:168.245.78.127 ~all" Received-SPF: None (esa5.hc3370-68.iphmx.com: no sender authenticity information available from domain of postmaster@mail.citrix.com) identity=helo; client-ip=162.221.158.21; receiver=esa5.hc3370-68.iphmx.com; envelope-from="roger.pau@citrix.com"; x-sender="postmaster@mail.citrix.com"; x-conformance=sidf_compatible IronPort-SDR: iDUZuyWNElRo2j3uxW+9LC9d48FFnVlHM66p4HjdT7p4C9WG+Y+/QteIwqU5UoARr4omeBhPAl 7uVSHy0eUcvhAwnU07I0WJjHuOEESE7Z9k/PiImJcJlmuIi+v+zx2EHoI3C7bCz9rxs4a9EWsz ybkSlVOKE13Wd8+VXOTm0zW2OtDEDRW/+DtgPCO/1ANNy+aS0QZfIT7CcpaJbh62KiElJCJePL Rq1gosL2qQQAaXrVn7UvAE8dDbDqL6nctHff26XrTFqhx3epUoX2uqNvUW5DTtgpGIzkSI0l1P 3UM= X-SBRS: 2.7 X-MesageID: 14930583 X-Ironport-Server: esa5.hc3370-68.iphmx.com X-Remote-IP: 162.221.158.21 X-Policy: $RELAYED X-IronPort-AV: E=Sophos;i="5.72,304,1580792400"; d="scan'208";a="14930583" From: Roger Pau Monne To: Date: Wed, 25 Mar 2020 11:19:07 +0100 Message-ID: <20200325101910.29168-2-roger.pau@citrix.com> X-Mailer: git-send-email 2.26.0 In-Reply-To: <20200325101910.29168-1-roger.pau@citrix.com> References: <20200325101910.29168-1-roger.pau@citrix.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Subject: [Xen-devel] [PATCH v2 1/4] Revert "x86/vvmx: fix virtual interrupt injection when Ack on exit control is used" X-BeenThere: xen-devel@lists.xenproject.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Cc: Kevin Tian , Jun Nakajima , Wei Liu , Andrew Cooper , Jan Beulich , Roger Pau Monne Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) This reverts commit f96e1469ad06b61796c60193daaeb9f8a96d7458. The commit is wrong, as the whole point of nvmx_update_apicv is to update the guest interrupt status field when the Ack on exit VMEXIT control feature is enabled. Signed-off-by: Roger Pau Monn=C3=A9 Reviewed-by: Kevin Tian --- xen/arch/x86/hvm/vmx/vvmx.c | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/xen/arch/x86/hvm/vmx/vvmx.c b/xen/arch/x86/hvm/vmx/vvmx.c index f049920196..1b8461ba30 100644 --- a/xen/arch/x86/hvm/vmx/vvmx.c +++ b/xen/arch/x86/hvm/vmx/vvmx.c @@ -1456,12 +1456,7 @@ static void virtual_vmexit(struct cpu_user_regs *reg= s) /* updating host cr0 to sync TS bit */ __vmwrite(HOST_CR0, v->arch.hvm.vmx.host_cr0); =20 - if ( cpu_has_vmx_virtual_intr_delivery && - /* - * Only inject the vector if the Ack on exit bit is not set, else= the - * interrupt will be signaled in the vmcs VM_EXIT_INTR_INFO field. - */ - !(get_vvmcs(v, VM_EXIT_CONTROLS) & VM_EXIT_ACK_INTR_ON_EXIT) ) + if ( cpu_has_vmx_virtual_intr_delivery ) nvmx_update_apicv(v); =20 nvcpu->nv_vmswitch_in_progress =3D 0; --=20 2.26.0 From nobody Fri Apr 26 05:03:34 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=fail(p=none dis=none) header.from=citrix.com ARC-Seal: i=1; a=rsa-sha256; t=1585131607; cv=none; d=zohomail.com; s=zohoarc; b=MlIRxxvHTq0PdtpBsh1wIG7S7paW2H5dpLaJ7BIjhThdR/tNyZIUZ93/jD/aJx1fp/lxbRjESItOSDJPBJkbXiJZCqrbGABV3SDirTRjS1u0Ab1bOzTVDmntW7h9171OIJPukBo/PGeNhpWHj+kOkCwJKf9EHZBHKYuG9GLIxg4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1585131607; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=08mIVuQAjCXmG5vOn7gDN2oMbrnE0488TleN3mLI6J8=; b=lIQXyFuNSAso9KQ5B5jQDYdm+J/G3zRMQuijf6PBj8fuDbIvMREpK2JKqgiDOcirS9b/MYh7Zk7B3j5XH63cLDvcAR/G9tDgACUcOIQDKf06ikGkTfi9AJLnt8hl7hzbdX87lBnlWh2XDS46CpVSFaiY1cidSemKbWxMq8drwrc= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1585131607194901.2397024504519; Wed, 25 Mar 2020 03:20:07 -0700 (PDT) Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1jH38N-0001AU-0B; Wed, 25 Mar 2020 10:19:39 +0000 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1jH38M-0001AD-G4 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2020 10:19:38 +0000 Received: from esa6.hc3370-68.iphmx.com (unknown [216.71.155.175]) by us1-rack-iad1.inumbo.com (Halon) with ESMTPS id 1ff25322-6e82-11ea-bec1-bc764e2007e4; Wed, 25 Mar 2020 10:19:35 +0000 (UTC) X-Inumbo-ID: 1ff25322-6e82-11ea-bec1-bc764e2007e4 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=citrix.com; s=securemail; t=1585131575; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=/A+bcvfjca3kfttQ3O2CHSTKLGnVLeJAoXIODhnRIz0=; b=KJfSvJymGwvIFyB2gxLfWVg8ncemUYG5HmvqE6vGq6kLJ7spXVN4NIB0 18qvIDiRcpUf021M/v5X6P2cSLtNdjPyUxa9DiTaQskHWMLdvPSIEUlQM NB8ytxz8PoeGEMacXhhoKFcfVN59SWwAri52OSZSBubpyY4UcDY6j06YC o=; Authentication-Results: esa6.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none; spf=None smtp.pra=roger.pau@citrix.com; spf=Pass smtp.mailfrom=roger.pau@citrix.com; spf=None smtp.helo=postmaster@mail.citrix.com Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Received-SPF: None (esa6.hc3370-68.iphmx.com: no sender authenticity information available from domain of roger.pau@citrix.com) identity=pra; client-ip=162.221.158.21; receiver=esa6.hc3370-68.iphmx.com; envelope-from="roger.pau@citrix.com"; x-sender="roger.pau@citrix.com"; x-conformance=sidf_compatible Received-SPF: Pass (esa6.hc3370-68.iphmx.com: domain of roger.pau@citrix.com designates 162.221.158.21 as permitted sender) identity=mailfrom; client-ip=162.221.158.21; receiver=esa6.hc3370-68.iphmx.com; envelope-from="roger.pau@citrix.com"; x-sender="roger.pau@citrix.com"; x-conformance=sidf_compatible; x-record-type="v=spf1"; x-record-text="v=spf1 ip4:209.167.231.154 ip4:178.63.86.133 ip4:195.66.111.40/30 ip4:85.115.9.32/28 ip4:199.102.83.4 ip4:192.28.146.160 ip4:192.28.146.107 ip4:216.52.6.88 ip4:216.52.6.188 ip4:162.221.158.21 ip4:162.221.156.83 ip4:168.245.78.127 ~all" Received-SPF: None (esa6.hc3370-68.iphmx.com: no sender authenticity information available from domain of postmaster@mail.citrix.com) identity=helo; client-ip=162.221.158.21; receiver=esa6.hc3370-68.iphmx.com; envelope-from="roger.pau@citrix.com"; x-sender="postmaster@mail.citrix.com"; x-conformance=sidf_compatible IronPort-SDR: a1XK9iIo+b6ivGf1wNZfLcDD4YRXz9o3MqngQU4RaKcgPNNnldsC3tNLWd5jIyTU/xWZhLtB9v mMg23qZkt2ZDOBDPG4iz5vJxMNHekr/EaxiqG5WzIQPPSnK5FpirviOPtlz40L5XbM6KKQGCTZ z3di6sXnR30k2HhkYsYUsN2gDJI9bXHHA7ecn/hh/smoGn1HMdnmJNQSpD2nZ2Qa6PDFcgxxzK f5F72CBSbCIfuh/hJ5jKpobyoIFaRh4wkiZuT3O2aCI1L/bvvhV2tsaKz8WWTwEdsNcD0w0Zad SZY= X-SBRS: 2.7 X-MesageID: 15007540 X-Ironport-Server: esa6.hc3370-68.iphmx.com X-Remote-IP: 162.221.158.21 X-Policy: $RELAYED X-IronPort-AV: E=Sophos;i="5.72,304,1580792400"; d="scan'208";a="15007540" From: Roger Pau Monne To: Date: Wed, 25 Mar 2020 11:19:08 +0100 Message-ID: <20200325101910.29168-3-roger.pau@citrix.com> X-Mailer: git-send-email 2.26.0 In-Reply-To: <20200325101910.29168-1-roger.pau@citrix.com> References: <20200325101910.29168-1-roger.pau@citrix.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Subject: [Xen-devel] [PATCH v2 2/4] x86/nvmx: only update SVI when using Ack on exit X-BeenThere: xen-devel@lists.xenproject.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Cc: Kevin Tian , Jun Nakajima , Wei Liu , Andrew Cooper , Jan Beulich , Roger Pau Monne Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Check whether there's a valid interrupt in VM_EXIT_INTR_INFO in order to decide whether to update SVI in nvmx_update_apicv. If Ack on exit is not being used VM_EXIT_INTR_INFO won't have a valid interrupt and hence SVI shouldn't be updated to signal the interrupt is currently in service because it won't be Acked. Signed-off-by: Roger Pau Monn=C3=A9 Reviewed-by: Kevin Tian --- xen/arch/x86/hvm/vmx/vvmx.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/xen/arch/x86/hvm/vmx/vvmx.c b/xen/arch/x86/hvm/vmx/vvmx.c index 1b8461ba30..1753005c91 100644 --- a/xen/arch/x86/hvm/vmx/vvmx.c +++ b/xen/arch/x86/hvm/vmx/vvmx.c @@ -1383,7 +1383,7 @@ static void nvmx_update_apicv(struct vcpu *v) { struct nestedvmx *nvmx =3D &vcpu_2_nvmx(v); unsigned long reason =3D get_vvmcs(v, VM_EXIT_REASON); - uint32_t intr_info =3D nvmx->intr.intr_info; + unsigned long intr_info =3D get_vvmcs(v, VM_EXIT_INTR_INFO); =20 if ( reason =3D=3D EXIT_REASON_EXTERNAL_INTERRUPT && nvmx->intr.source =3D=3D hvm_intsrc_lapic && --=20 2.26.0 From nobody Fri Apr 26 05:03:34 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=fail(p=none dis=none) header.from=citrix.com ARC-Seal: i=1; a=rsa-sha256; t=1585131611; cv=none; d=zohomail.com; s=zohoarc; b=O98UPOxFY5W+LBZoO3Z51OK7+uIV+dFXWxp2bt9j58GuL7OoP9/i30lbVGxudGpECN7J9KTn0WmJPMdeU7KKxfUNYPIrFfYfiSz6zJ3amwbg+3vCfLwmb2d+Tz1F4tbuZeWyqVEiXpBue5UswzAFeXs2iFWPcQX2D+fWhzxaWis= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1585131611; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=EZrdwNn9NUuZD+zkrNVEBFz1c47NXYgwyVNbRE7bb4Y=; b=FDogqf8IlZkIsM9jzJzMyzFt4fpxU7fHfTqibDDc4pBg0ud23wMTEnHFtf/sC6UpFPI56haqaCDwfYJhahaLEVvaRqCYHb8ZHF123dpBdHvfW6kyAOakyT3PfoH19vWRPcTgm0FruONNjuTAxyWzb89boXbOA9q+MOqGWYPpxi0= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1585131611208568.6919332634446; Wed, 25 Mar 2020 03:20:11 -0700 (PDT) Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1jH38S-0001Do-HF; Wed, 25 Mar 2020 10:19:44 +0000 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1jH38R-0001Ch-Gt for xen-devel@lists.xenproject.org; Wed, 25 Mar 2020 10:19:43 +0000 Received: from esa5.hc3370-68.iphmx.com (unknown [216.71.155.168]) by us1-rack-iad1.inumbo.com (Halon) with ESMTPS id 216384f6-6e82-11ea-a6c1-bc764e2007e4; Wed, 25 Mar 2020 10:19:37 +0000 (UTC) X-Inumbo-ID: 216384f6-6e82-11ea-a6c1-bc764e2007e4 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=citrix.com; s=securemail; t=1585131577; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=z/xEhW0aEfRsm+03v7+aRFxfGwQG1ImR13kmJO0HdxI=; b=iDR2EnbNUrroGnGmnBhAsCaXsiOs42k9+FxLok9PdSIOvkW3NlgRoaXd +sUcLGJvWaehRL9oCdd3W6Zwp5YSMwUHpFLs63f9OJ9xE9uX9Ma0qjklt dbr5kqwzDLpvc5AakPIZH/KFptFVoKPgM6wbCWGl1fGGMhxFUzwZceakG s=; Authentication-Results: esa5.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none; spf=None smtp.pra=roger.pau@citrix.com; spf=Pass smtp.mailfrom=roger.pau@citrix.com; spf=None smtp.helo=postmaster@mail.citrix.com Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Received-SPF: None (esa5.hc3370-68.iphmx.com: no sender authenticity information available from domain of roger.pau@citrix.com) identity=pra; client-ip=162.221.158.21; receiver=esa5.hc3370-68.iphmx.com; envelope-from="roger.pau@citrix.com"; x-sender="roger.pau@citrix.com"; x-conformance=sidf_compatible Received-SPF: Pass (esa5.hc3370-68.iphmx.com: domain of roger.pau@citrix.com designates 162.221.158.21 as permitted sender) identity=mailfrom; client-ip=162.221.158.21; receiver=esa5.hc3370-68.iphmx.com; envelope-from="roger.pau@citrix.com"; x-sender="roger.pau@citrix.com"; x-conformance=sidf_compatible; x-record-type="v=spf1"; x-record-text="v=spf1 ip4:209.167.231.154 ip4:178.63.86.133 ip4:195.66.111.40/30 ip4:85.115.9.32/28 ip4:199.102.83.4 ip4:192.28.146.160 ip4:192.28.146.107 ip4:216.52.6.88 ip4:216.52.6.188 ip4:162.221.158.21 ip4:162.221.156.83 ip4:168.245.78.127 ~all" Received-SPF: None (esa5.hc3370-68.iphmx.com: no sender authenticity information available from domain of postmaster@mail.citrix.com) identity=helo; client-ip=162.221.158.21; receiver=esa5.hc3370-68.iphmx.com; envelope-from="roger.pau@citrix.com"; x-sender="postmaster@mail.citrix.com"; x-conformance=sidf_compatible IronPort-SDR: dLOpcjX8YA5t7HoZatAR2I69unop2MuriRg4leFI1Wb3oA1AA7uUi3wT61KP7JevhvkLhiaSWZ 55JXmlg+DI9P0XxWeCmpbRqntB8rdugqjSlCzbizHiJLFpmtmihSV9jvFpmNkrHEKljBhFCJCu OAXMLHHCOoUslIU1RlrTDDPqPPTkI10yIEzhovIQDXvq5cv829ttESQlbxeRYmXsEcWbeWdvC/ 9rOOohpRYk9nHxxt3l6uYOj2QBxzaqNQf4LaNAhznMw13KE1vXj77zyskIAVhqZC934ESSIxoC en0= X-SBRS: 2.7 X-MesageID: 14930585 X-Ironport-Server: esa5.hc3370-68.iphmx.com X-Remote-IP: 162.221.158.21 X-Policy: $RELAYED X-IronPort-AV: E=Sophos;i="5.72,304,1580792400"; d="scan'208";a="14930585" From: Roger Pau Monne To: Date: Wed, 25 Mar 2020 11:19:09 +0100 Message-ID: <20200325101910.29168-4-roger.pau@citrix.com> X-Mailer: git-send-email 2.26.0 In-Reply-To: <20200325101910.29168-1-roger.pau@citrix.com> References: <20200325101910.29168-1-roger.pau@citrix.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Subject: [Xen-devel] [PATCH v2 3/4] x86/nvmx: split updating RVI from SVI in nvmx_update_apicv X-BeenThere: xen-devel@lists.xenproject.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Cc: Kevin Tian , Jun Nakajima , Wei Liu , Andrew Cooper , Jan Beulich , Roger Pau Monne Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Updating SVI is required when an interrupt has been injected using the Ack on exit VMEXIT feature, so that the in service interrupt in the GUEST_INTR_STATUS matches the vector that is signaled in VM_EXIT_INTR_INFO. Updating RVI however is not tied to the Ack on exit feature, as it signals the next vector to be injected, and hence should always be updated to the next pending vector, regardless of whether Ack on exit is enabled. Signed-off-by: Roger Pau Monn=C3=A9 --- xen/arch/x86/hvm/vmx/vvmx.c | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/xen/arch/x86/hvm/vmx/vvmx.c b/xen/arch/x86/hvm/vmx/vvmx.c index 1753005c91..8431c912a1 100644 --- a/xen/arch/x86/hvm/vmx/vvmx.c +++ b/xen/arch/x86/hvm/vmx/vvmx.c @@ -1384,26 +1384,38 @@ static void nvmx_update_apicv(struct vcpu *v) struct nestedvmx *nvmx =3D &vcpu_2_nvmx(v); unsigned long reason =3D get_vvmcs(v, VM_EXIT_REASON); unsigned long intr_info =3D get_vvmcs(v, VM_EXIT_INTR_INFO); + int rvi; =20 if ( reason =3D=3D EXIT_REASON_EXTERNAL_INTERRUPT && nvmx->intr.source =3D=3D hvm_intsrc_lapic && (intr_info & INTR_INFO_VALID_MASK) ) { uint16_t status; - uint32_t rvi, ppr; - uint32_t vector =3D intr_info & 0xff; + uint32_t ppr; + unsigned int vector =3D intr_info & INTR_INFO_VECTOR_MASK; struct vlapic *vlapic =3D vcpu_vlapic(v); =20 + /* + * Update SVI to record the currently in service interrupt that's + * signaled in EXIT_INTR_INFO. + */ vlapic_ack_pending_irq(v, vector, 1); =20 ppr =3D vlapic_set_ppr(vlapic); WARN_ON((ppr & 0xf0) !=3D (vector & 0xf0)); =20 status =3D vector << VMX_GUEST_INTR_STATUS_SVI_OFFSET; - rvi =3D vlapic_has_pending_irq(v); - if ( rvi !=3D -1 ) - status |=3D rvi & VMX_GUEST_INTR_STATUS_SUBFIELD_BITMASK; + __vmwrite(GUEST_INTR_STATUS, status); + } + + rvi =3D vlapic_has_pending_irq(v); + if ( rvi !=3D -1 ) + { + unsigned long status; =20 + __vmread(GUEST_INTR_STATUS, &status); + status &=3D ~VMX_GUEST_INTR_STATUS_SUBFIELD_BITMASK; + status |=3D rvi & VMX_GUEST_INTR_STATUS_SUBFIELD_BITMASK; __vmwrite(GUEST_INTR_STATUS, status); } } --=20 2.26.0 From nobody Fri Apr 26 05:03:34 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=fail(p=none dis=none) header.from=citrix.com ARC-Seal: i=1; a=rsa-sha256; t=1585131612; cv=none; d=zohomail.com; s=zohoarc; b=axxls81eqXy86NVTGai/ak+Bv7kA75rd0bn/rlviMVGV3g2xSUb+z0/4Q4vtiSpMDzkUt7vkR4T4vKXJSONu14+YRG8eO1g64lkP+3m9o7x1Jm8Uc/LinkyBnOB+YxhEUhQSFCuC81Jo9ANP+xWRNXgAEG+3Ukm2/8N9HIFz73M= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1585131612; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=PNaGRZDWwKc0MQTAgQbkCE89RzeEkwc0y0joFpBP3JM=; b=n/Yvbfk6peT05hndam5KJGjN7OBnxhmL6jLRABEVTvbDOIk0qNKKseTECtOYWWQcA/3JCSiQc3IAT7GqbNb4IZLR6WzHI57inx9ED81ur7WeA1nidsXFT1kmtmtEgfibs646J31BtRHtEvnzJNDLa42vhE9TjGqlY89MREyNhHo= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1585131612569556.4227575116104; Wed, 25 Mar 2020 03:20:12 -0700 (PDT) Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1jH38R-0001CX-8k; Wed, 25 Mar 2020 10:19:43 +0000 Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1jH38Q-0001C4-76 for xen-devel@lists.xenproject.org; Wed, 25 Mar 2020 10:19:42 +0000 Received: from esa3.hc3370-68.iphmx.com (unknown [216.71.145.155]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id 2364727e-6e82-11ea-85c5-12813bfff9fa; Wed, 25 Mar 2020 10:19:41 +0000 (UTC) X-Inumbo-ID: 2364727e-6e82-11ea-85c5-12813bfff9fa DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=citrix.com; s=securemail; t=1585131582; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=iSLtQ1Z80LjlT3eP+GudnUv8D3/jZLE5hgvIgqVuyaY=; b=bqlUL8XgTAlhxQSwvUe/BEX9YXvb3P/subhj2us5Xg55GZfFEs/a+CpF k8LIlFayg1ZFbTwCEOq03WnywvOab3iKNVNWUGMk8wpZaF4dK2LJ7XLpg VNe8jrl/FGFrx+E0vji6qAjK0L9YqDVWhkX90fKeUZ0dS8T6BIh/1G4VV A=; Authentication-Results: esa3.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none; spf=None smtp.pra=roger.pau@citrix.com; spf=Pass smtp.mailfrom=roger.pau@citrix.com; spf=None smtp.helo=postmaster@mail.citrix.com Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Received-SPF: None (esa3.hc3370-68.iphmx.com: no sender authenticity information available from domain of roger.pau@citrix.com) identity=pra; client-ip=162.221.158.21; receiver=esa3.hc3370-68.iphmx.com; envelope-from="roger.pau@citrix.com"; x-sender="roger.pau@citrix.com"; x-conformance=sidf_compatible Received-SPF: Pass (esa3.hc3370-68.iphmx.com: domain of roger.pau@citrix.com designates 162.221.158.21 as permitted sender) identity=mailfrom; client-ip=162.221.158.21; receiver=esa3.hc3370-68.iphmx.com; envelope-from="roger.pau@citrix.com"; x-sender="roger.pau@citrix.com"; x-conformance=sidf_compatible; x-record-type="v=spf1"; x-record-text="v=spf1 ip4:209.167.231.154 ip4:178.63.86.133 ip4:195.66.111.40/30 ip4:85.115.9.32/28 ip4:199.102.83.4 ip4:192.28.146.160 ip4:192.28.146.107 ip4:216.52.6.88 ip4:216.52.6.188 ip4:162.221.158.21 ip4:162.221.156.83 ip4:168.245.78.127 ~all" Received-SPF: None (esa3.hc3370-68.iphmx.com: no sender authenticity information available from domain of postmaster@mail.citrix.com) identity=helo; client-ip=162.221.158.21; receiver=esa3.hc3370-68.iphmx.com; envelope-from="roger.pau@citrix.com"; x-sender="postmaster@mail.citrix.com"; x-conformance=sidf_compatible IronPort-SDR: IzG8s6y98iNs9VFz8rtU8OztE67uLr0yAbMAHf4bIaSRQ7GBaIiSZrbZrIFnA0hhnTtqDzvxDt +Nc/w2eXrt6LgW0ZaiiNPcPvpRkSpWfnFAl4Nxy4PXpcZBqQyF2hv2V9P43sLyqPI+dwXTwp0E CMlLWVqCFo5kAG9udrH4iXu2g1dqtjdO/KjXl8N0bnRzlo5Tgwj2DzR1BDNjpavJ9cI/iqJQbk c1gc7FFQD7kwuVXnSq++kx5iZ8gaSsBnfsL1QKFEwMqVqTjcHXSaC0DFfBsAMQuZMBM12r4zso NyM= X-SBRS: 2.7 X-MesageID: 14580739 X-Ironport-Server: esa3.hc3370-68.iphmx.com X-Remote-IP: 162.221.158.21 X-Policy: $RELAYED X-IronPort-AV: E=Sophos;i="5.72,304,1580792400"; d="scan'208";a="14580739" From: Roger Pau Monne To: Date: Wed, 25 Mar 2020 11:19:10 +0100 Message-ID: <20200325101910.29168-5-roger.pau@citrix.com> X-Mailer: git-send-email 2.26.0 In-Reply-To: <20200325101910.29168-1-roger.pau@citrix.com> References: <20200325101910.29168-1-roger.pau@citrix.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Subject: [Xen-devel] [PATCH v2 4/4] x86/nvmx: update exit bitmap when using virtual interrupt delivery X-BeenThere: xen-devel@lists.xenproject.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Cc: Kevin Tian , Jun Nakajima , Wei Liu , Andrew Cooper , Jan Beulich , Roger Pau Monne Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Force an update of the EOI exit bitmap in nvmx_update_apicv, because the one performed in vmx_intr_assist might not be reached if the interrupt is intercepted by nvmx_intr_intercept returning true. Extract the code to update the exit bitmap from vmx_intr_assist into a helper and use it in nvmx_update_apicv. Signed-off-by: Roger Pau Monn=C3=A9 --- Changes since v1: - Reword commit message. --- xen/arch/x86/hvm/vmx/intr.c | 21 +++++++++++++-------- xen/arch/x86/hvm/vmx/vvmx.c | 2 ++ xen/include/asm-x86/hvm/vmx/vmx.h | 2 ++ 3 files changed, 17 insertions(+), 8 deletions(-) diff --git a/xen/arch/x86/hvm/vmx/intr.c b/xen/arch/x86/hvm/vmx/intr.c index 49a1295f09..000e14af49 100644 --- a/xen/arch/x86/hvm/vmx/intr.c +++ b/xen/arch/x86/hvm/vmx/intr.c @@ -224,6 +224,18 @@ static int nvmx_intr_intercept(struct vcpu *v, struct = hvm_intack intack) return 0; } =20 +void vmx_sync_exit_bitmap(struct vcpu *v) +{ + const unsigned int n =3D ARRAY_SIZE(v->arch.hvm.vmx.eoi_exit_bitmap); + unsigned int i; + + while ( (i =3D find_first_bit(&v->arch.hvm.vmx.eoi_exitmap_changed, n)= ) < n ) + { + clear_bit(i, &v->arch.hvm.vmx.eoi_exitmap_changed); + __vmwrite(EOI_EXIT_BITMAP(i), v->arch.hvm.vmx.eoi_exit_bitmap[i]); + } +} + void vmx_intr_assist(void) { struct hvm_intack intack; @@ -318,7 +330,6 @@ void vmx_intr_assist(void) intack.source !=3D hvm_intsrc_vector ) { unsigned long status; - unsigned int i, n; =20 /* * intack.vector is the highest priority vector. So we set eoi_exit= _bitmap @@ -379,13 +390,7 @@ void vmx_intr_assist(void) intack.vector; __vmwrite(GUEST_INTR_STATUS, status); =20 - n =3D ARRAY_SIZE(v->arch.hvm.vmx.eoi_exit_bitmap); - while ( (i =3D find_first_bit(&v->arch.hvm.vmx.eoi_exitmap_changed, - n)) < n ) - { - clear_bit(i, &v->arch.hvm.vmx.eoi_exitmap_changed); - __vmwrite(EOI_EXIT_BITMAP(i), v->arch.hvm.vmx.eoi_exit_bitmap[= i]); - } + vmx_sync_exit_bitmap(v); =20 pt_intr_post(v, intack); } diff --git a/xen/arch/x86/hvm/vmx/vvmx.c b/xen/arch/x86/hvm/vmx/vvmx.c index 8431c912a1..845dd87f75 100644 --- a/xen/arch/x86/hvm/vmx/vvmx.c +++ b/xen/arch/x86/hvm/vmx/vvmx.c @@ -1418,6 +1418,8 @@ static void nvmx_update_apicv(struct vcpu *v) status |=3D rvi & VMX_GUEST_INTR_STATUS_SUBFIELD_BITMASK; __vmwrite(GUEST_INTR_STATUS, status); } + + vmx_sync_exit_bitmap(v); } =20 static void virtual_vmexit(struct cpu_user_regs *regs) diff --git a/xen/include/asm-x86/hvm/vmx/vmx.h b/xen/include/asm-x86/hvm/vm= x/vmx.h index b334e1ec94..111ccd7e61 100644 --- a/xen/include/asm-x86/hvm/vmx/vmx.h +++ b/xen/include/asm-x86/hvm/vmx/vmx.h @@ -610,6 +610,8 @@ void update_guest_eip(void); void vmx_pi_per_cpu_init(unsigned int cpu); void vmx_pi_desc_fixup(unsigned int cpu); =20 +void vmx_sync_exit_bitmap(struct vcpu *v); + #ifdef CONFIG_HVM void vmx_pi_hooks_assign(struct domain *d); void vmx_pi_hooks_deassign(struct domain *d); --=20 2.26.0