From nobody Wed May 1 09:49:53 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=none (zohomail.com: 192.237.175.120 is neither permitted nor denied by domain of lists.xenproject.org) 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=1579802841; cv=none; d=zohomail.com; s=zohoarc; b=OjqdnVSwGVHdb4NvLUANJmg1j9pFaQH9nLgor3lYEO/Fbir+fuNcRwlqIICsKKhw9YPcSh0jVGNJ9HACU5JBzA1H/TiKkqAaMcRIUnZho/5xt5jBL2AqBb7+aRqTNR/tXYqqesLv34Vdv+XTzav2kKb1QgqAX6vYQLLENlyWwEM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1579802841; 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=MANaSnOssvUZEZKB5EyVOgvw8l4WzfEK8w7wp0I+p6k=; b=NQt9DR9i4p1Q2xEk5b4BtIlRCzE1la7aRIHucWfg4kHTJmDGSEUtISHBx3KQBI7b1Qv6H/KLw0qz8r8Thz7oe0DW20Kq//+WxEZIDlVjKG61nhNQy1nnI3Bk5l1ZgcPVtP2YhnoaDxqlUOAwScwTEohmcmuR6i0CtDIJ6ub0jdo= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=none (zohomail.com: 192.237.175.120 is neither permitted nor denied by domain of lists.xenproject.org) 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 1579802841524950.5562094678638; Thu, 23 Jan 2020 10:07:21 -0800 (PST) Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1iugsR-0008Gg-4P; Thu, 23 Jan 2020 18:06:47 +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 1iugsQ-0008Gb-0x for xen-devel@lists.xenproject.org; Thu, 23 Jan 2020 18:06:46 +0000 Received: from esa2.hc3370-68.iphmx.com (unknown [216.71.145.153]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id 1b9ff5c4-3e0b-11ea-bea0-12813bfff9fa; Thu, 23 Jan 2020 18:06:42 +0000 (UTC) X-Inumbo-ID: 1b9ff5c4-3e0b-11ea-bea0-12813bfff9fa DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=citrix.com; s=securemail; t=1579802802; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=INdQVtjZQ+K3BK30zmQJ0/qlG9XVDY8JeGQiaGOGdEI=; b=DS0dZ7LKSb0/X2tgArhof0O4kgnefVmWnTn5DoOEPt91CJnRnOw3cZD+ M3lwMFQjKtQ1EAgMwHhsaA4w84EfycenobYPLHCRqP6+SVLY/rFLQmcR4 7wUgAff3TKwqwvxTX6X2aCBvU8sxfrn1vxm1HeSe5fcgHW3L0pafnp+pF 4=; Authentication-Results: esa2.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: none (zohomail.com: 192.237.175.120 is neither permitted nor denied by domain of lists.xenproject.org) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Received-SPF: None (esa2.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=esa2.hc3370-68.iphmx.com; envelope-from="roger.pau@citrix.com"; x-sender="roger.pau@citrix.com"; x-conformance=sidf_compatible Received-SPF: Pass (esa2.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=esa2.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 (esa2.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=esa2.hc3370-68.iphmx.com; envelope-from="roger.pau@citrix.com"; x-sender="postmaster@mail.citrix.com"; x-conformance=sidf_compatible IronPort-SDR: zMv/MLPW/h6g+x9y+lFRwTY6OJQLeLg3ckjJGrmnPd3D+ydBhC6JqBJ35Lc2YWokJm4+qTtnNa 2eRE24yinEDmbt5k3JrZ9uEv8Pe4dxFNgC0ZdNjonLtIzz3RlJeonCsAMbZlnCj904AkDJpPQp Mz1PtqhDLfYnMg90u/b+KBFsQb1fSVz9HQz43axybR8EnzrFSG98CXqEZg9/jRcVKt77QyRd6t ZfzZghtGsbW6FL4O5d9Ppy9wIqDmJeKdXTBfSActpMnlanC7mpcVtMtQ6wmO8ZLaAxxbglUC1C w3I= X-SBRS: 2.7 X-MesageID: 11361584 X-Ironport-Server: esa2.hc3370-68.iphmx.com X-Remote-IP: 162.221.158.21 X-Policy: $RELAYED X-IronPort-AV: E=Sophos;i="5.70,354,1574139600"; d="scan'208";a="11361584" From: Roger Pau Monne To: Date: Thu, 23 Jan 2020 19:06:14 +0100 Message-ID: <20200123180615.69370-2-roger.pau@citrix.com> X-Mailer: git-send-email 2.25.0 In-Reply-To: <20200123180615.69370-1-roger.pau@citrix.com> References: <20200123180615.69370-1-roger.pau@citrix.com> MIME-Version: 1.0 Subject: [Xen-devel] [PATCH v2 1/2] x86/apic: fix disabling LVT0 in disconnect_bsp_APIC 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: Andrew Cooper , Wei Liu , Roger Pau Monne Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) The Intel SDM states: "When an illegal vector value (0 to 15) is written to a LVT entry and the delivery mode is Fixed (bits 8-11 equal 0), the APIC may signal an illegal vector error, without regard to whether the mask bit is set or whether an interrupt is actually seen on the input." And that's exactly what's currently done in disconnect_bsp_APIC when virt_wire_setup is true and LVT LINT0 is being masked. By writing only APIC_LVT_MASKED Xen is actually setting the vector to 0 and the delivery mode to Fixed (0), and hence it triggers an APIC error even when the LVT entry is masked. This would usually manifest when Xen is being shut down, as that's where disconnect_bsp_APIC is called: (XEN) APIC error on CPU0: 40(00) Fix this by calling clear_local_APIC prior to setting the LVT LINT registers which already clear LVT LINT0, and hence the troublesome write can be avoided as the register is already cleared. Reported-by: Andrew Cooper Signed-off-by: Roger Pau Monn=C3=A9 Reviewed-by: Jan Beulich --- Changes since v1: - Use clear_local_APIC in order to clear LINT0. --- xen/arch/x86/apic.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/xen/arch/x86/apic.c b/xen/arch/x86/apic.c index a6a7754d77..508b1586f2 100644 --- a/xen/arch/x86/apic.c +++ b/xen/arch/x86/apic.c @@ -262,6 +262,8 @@ void disconnect_bsp_APIC(int virt_wire_setup) /* Go back to Virtual Wire compatibility mode */ unsigned long value; =20 + clear_local_APIC(); + /* For the spurious interrupt use vector F, and enable it */ value =3D apic_read(APIC_SPIV); value &=3D ~APIC_VECTOR_MASK; @@ -279,10 +281,6 @@ void disconnect_bsp_APIC(int virt_wire_setup) value =3D SET_APIC_DELIVERY_MODE(value, APIC_MODE_EXTINT); apic_write(APIC_LVT0, value); } - else { - /* Disable LVT0 */ - apic_write(APIC_LVT0, APIC_LVT_MASKED); - } =20 /* For LVT1 make it edge triggered, active high, nmi and enabled */ value =3D apic_read(APIC_LVT1); --=20 2.25.0 _______________________________________________ Xen-devel mailing list Xen-devel@lists.xenproject.org https://lists.xenproject.org/mailman/listinfo/xen-devel From nobody Wed May 1 09:49:53 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=none (zohomail.com: 192.237.175.120 is neither permitted nor denied by domain of lists.xenproject.org) 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=1579802843; cv=none; d=zohomail.com; s=zohoarc; b=AWtgkiEw6orsKbHiw5qm66VXDYZznhq5VZ4mYXHNgT6O1WifANESjz10flm/sN4HI2Z7WDWSmWLCQx5SuLSfeSfSl813N1Dqh+iesE00JMon/tohNKCgtunwSUMNo3LJt3F4xEdDQSurUNu3FdcOX6KmhnHf9wH8sJVBtCLwE74= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1579802843; 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=oQI0g/A+uCrWE1xB8/EJ1FbETibQsJ2wuFPKPu3BdIA=; b=L+sIaefPrCfFSRDJMb2yyQvX0/cbxNXWtLtzVcYbsV9TctlZwL/TwdWclFtjtqfkCMTZbc3ML2sbH+o4x6PHwZG9PntOadpX4JKHocD0IISXQ9qmY43GC7qT2JSOkomrdaqQWe4wUtIp5mCwEtdV6wwS7TOToX6sRlV5wrshgpA= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=none (zohomail.com: 192.237.175.120 is neither permitted nor denied by domain of lists.xenproject.org) 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 1579802843018891.8993191619834; Thu, 23 Jan 2020 10:07:23 -0800 (PST) Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1iugsX-0008Ik-EG; Thu, 23 Jan 2020 18:06:53 +0000 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1iugsW-0008Hv-5g for xen-devel@lists.xenproject.org; Thu, 23 Jan 2020 18:06:52 +0000 Received: from esa4.hc3370-68.iphmx.com (unknown [216.71.155.144]) by us1-rack-iad1.inumbo.com (Halon) with ESMTPS id 1c77bba8-3e0b-11ea-9fd7-bc764e2007e4; Thu, 23 Jan 2020 18:06:43 +0000 (UTC) X-Inumbo-ID: 1c77bba8-3e0b-11ea-9fd7-bc764e2007e4 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=citrix.com; s=securemail; t=1579802803; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=SXGA3aDmcS42579i+1MDy79V4hdE3QhfUicYF1TSlic=; b=AHCWN+yPX7tcdd/kHs+ekQ9Xef6EC4Ih7CvnWYyFBKq28aHKTERyfGkI oTZMdaPLkKE9kaCiTBT5TDk7t2uSMTTQNdxePi3A4IoGl70cAiwwfm+kw q19twrsIO5gzePkXdVtlyCp+YzbaOEHZ63GU6BFbn6TJrJ+x4GT0Qumoj c=; Authentication-Results: esa4.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: none (zohomail.com: 192.237.175.120 is neither permitted nor denied by domain of lists.xenproject.org) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Received-SPF: None (esa4.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=esa4.hc3370-68.iphmx.com; envelope-from="roger.pau@citrix.com"; x-sender="roger.pau@citrix.com"; x-conformance=sidf_compatible Received-SPF: Pass (esa4.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=esa4.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 (esa4.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=esa4.hc3370-68.iphmx.com; envelope-from="roger.pau@citrix.com"; x-sender="postmaster@mail.citrix.com"; x-conformance=sidf_compatible IronPort-SDR: 0WuZWW6ihzgfXRpz9SP5E8wT2rE1O1V40spXKq3QViAcDGNVISg2lkm/S7DD8uh4feyLdezqN2 EWMXcNhicDp+qGWaUR/JFyeMpJS/mzFHoo5kg2oUOlfqfPCR9OuqRISsn1GpBopLhxqW1kyKHH ZY4febRaqRiAN+u3xxk7m7FRnY2JpBXm+PdNuPwyyE1oQo+QvrtwCIPMXbxcNbFZrswwdrtaPO m1uS9twMRbDXPlSIDOi8EhqfH1WgyY9Pfp1dRREDmrMTwYBr8mizReP1gSvIlKO6Qh3mVE+e83 7Fw= X-SBRS: 2.7 X-MesageID: 11950472 X-Ironport-Server: esa4.hc3370-68.iphmx.com X-Remote-IP: 162.221.158.21 X-Policy: $RELAYED X-IronPort-AV: E=Sophos;i="5.70,354,1574139600"; d="scan'208";a="11950472" From: Roger Pau Monne To: Date: Thu, 23 Jan 2020 19:06:15 +0100 Message-ID: <20200123180615.69370-3-roger.pau@citrix.com> X-Mailer: git-send-email 2.25.0 In-Reply-To: <20200123180615.69370-1-roger.pau@citrix.com> References: <20200123180615.69370-1-roger.pau@citrix.com> MIME-Version: 1.0 Subject: [Xen-devel] [PATCH v2 2/2] x86/apic: simplify disconnect_bsp_APIC setup of LVT{0/1} 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: Andrew Cooper , Wei Liu , Roger Pau Monne Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) There's no need to read the current values of LVT{0/1} for the purposes of the function, which seem to be to save the currently selected vector: in the destination modes used (ExtINT and NMI) the vector field is ignored and hence can be set to 0. Signed-off-by: Roger Pau Monn=C3=A9 --- xen/arch/x86/apic.c | 15 ++------------- 1 file changed, 2 insertions(+), 13 deletions(-) diff --git a/xen/arch/x86/apic.c b/xen/arch/x86/apic.c index 508b1586f2..c18314c1a3 100644 --- a/xen/arch/x86/apic.c +++ b/xen/arch/x86/apic.c @@ -273,23 +273,12 @@ void disconnect_bsp_APIC(int virt_wire_setup) =20 if (!virt_wire_setup) { /* For LVT0 make it edge triggered, active high, external and = enabled */ - value =3D apic_read(APIC_LVT0); - value &=3D ~(APIC_MODE_MASK | APIC_SEND_PENDING | - APIC_INPUT_POLARITY | APIC_LVT_REMOTE_IRR | - APIC_LVT_LEVEL_TRIGGER | APIC_LVT_MASKED ); - value |=3D APIC_LVT_REMOTE_IRR | APIC_SEND_PENDING; - value =3D SET_APIC_DELIVERY_MODE(value, APIC_MODE_EXTINT); + value =3D APIC_LVT_REMOTE_IRR | APIC_SEND_PENDING | APIC_DM_EX= TINT; apic_write(APIC_LVT0, value); } =20 /* For LVT1 make it edge triggered, active high, nmi and enabled */ - value =3D apic_read(APIC_LVT1); - value &=3D ~( - APIC_MODE_MASK | APIC_SEND_PENDING | - APIC_INPUT_POLARITY | APIC_LVT_REMOTE_IRR | - APIC_LVT_LEVEL_TRIGGER | APIC_LVT_MASKED); - value |=3D APIC_LVT_REMOTE_IRR | APIC_SEND_PENDING; - value =3D SET_APIC_DELIVERY_MODE(value, APIC_MODE_NMI); + value =3D APIC_LVT_REMOTE_IRR | APIC_SEND_PENDING | APIC_DM_NMI; apic_write(APIC_LVT1, value); } } --=20 2.25.0 _______________________________________________ Xen-devel mailing list Xen-devel@lists.xenproject.org https://lists.xenproject.org/mailman/listinfo/xen-devel