From nobody Thu Oct 30 23:25:34 2025 Delivered-To: importer@patchew.org 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; Authentication-Results: mx.zohomail.com; dkim=pass header.i=teddy.astie@vates.tech; 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=pass(p=reject dis=none) header.from=vates.tech ARC-Seal: i=1; a=rsa-sha256; t=1753194062; cv=none; d=zohomail.com; s=zohoarc; b=DkQb/EQUynn96RBqsL2nEf/D/fUOgwtaScdwXxxkui6grfTZ9+SvXcPSBvrPX8vCrBTi9pD4m7hq9yLXIWm6QYpkekzT4c33Pii99Ca66SNruOwU4n6WW+zkRNL1TFEuviiZn+nsXMU3L3GsDMNwuD7Ynz7ObEBHLLnlldTT2Xk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1753194062; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=bG3MYiiu5bmuSUKoM/GL1UomjZlx2CXeETFIctQZnoQ=; b=f1vDi7n6yIz/OMKK81KTCHVmrCdFlHP8WTedJfMoyiiBMFQrMUeb32UwcW1TCcqBh35NL9PEVNT6kBbXmSSXnUekuo0c7UhI1K0MKCEmQP9M7rhJW5mt+4UQDqLWrBO9oXSJDfv/uilIVoMUblEK5BqH/zg9BYoAkNkX/RIVt5s= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass header.i=teddy.astie@vates.tech; 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=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1753194062202340.2009075307376; Tue, 22 Jul 2025 07:21:02 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1052736.1421491 (Exim 4.92) (envelope-from ) id 1ueDrH-0003Wv-7b; Tue, 22 Jul 2025 14:20:43 +0000 Received: by outflank-mailman (output) from mailman id 1052736.1421491; Tue, 22 Jul 2025 14:20:43 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1ueDrH-0003Wo-57; Tue, 22 Jul 2025 14:20:43 +0000 Received: by outflank-mailman (input) for mailman id 1052736; Tue, 22 Jul 2025 14:20:41 +0000 Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254] helo=se1-gles-sth1.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1ueDrF-0003VV-NC for xen-devel@lists.xenproject.org; Tue, 22 Jul 2025 14:20:41 +0000 Received: from mail13.wdc04.mandrillapp.com (mail13.wdc04.mandrillapp.com [205.201.139.13]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS id 0ac0c442-6707-11f0-a31d-13f23c93f187; Tue, 22 Jul 2025 16:20:39 +0200 (CEST) Received: from pmta16.mandrill.prod.suw01.rsglab.com (localhost [127.0.0.1]) by mail13.wdc04.mandrillapp.com (Mailchimp) with ESMTP id 4bmfYy2jMJzNCdKxR for ; Tue, 22 Jul 2025 14:20:38 +0000 (GMT) Received: from [37.26.189.201] by mandrillapp.com id b0cf1700dfea4608afdd89a472ee1c36; Tue, 22 Jul 2025 14:20:38 +0000 X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: 0ac0c442-6707-11f0-a31d-13f23c93f187 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com; s=mte1; t=1753194038; x=1753464038; bh=bG3MYiiu5bmuSUKoM/GL1UomjZlx2CXeETFIctQZnoQ=; h=From:Subject:To:Cc:Message-Id:Feedback-ID:Date:MIME-Version: Content-Type:Content-Transfer-Encoding:CC:Date:Subject:From; b=I9gH7ghlxZSkQJhminRoYucVUfBcaD7hBBoZgrm3nMBQpjACx+OQT3YeTDK7Dnn49 nFZav3MS3xmgv4BzJFCFRQe651l5H12uVlYnj+1k5wMIxKBi5tscGXMjUgsI6RGOLb 9tz2RieeQju+Qe2nGzeXWhpF47BlYzs5WUwmviWUqAJWAQvj8YRcTKW0JBdcGig+Hb dzW0A4Aw3H1gUSabWe0eryyh0knpgla/iNTVcRjTEEUkYosUoFaLTxuR/n5kcmHSSS 96dy/ipvcpj6oC50/Jx+peFfdbq2/L3ez6GpEmQrbgJ/U13hugijBs0xXNxHnoTQhS sI4F3rCjtZ+pA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1; t=1753194038; x=1753454538; i=teddy.astie@vates.tech; bh=bG3MYiiu5bmuSUKoM/GL1UomjZlx2CXeETFIctQZnoQ=; h=From:Subject:To:Cc:Message-Id:Feedback-ID:Date:MIME-Version: Content-Type:Content-Transfer-Encoding:CC:Date:Subject:From; b=X5RaawYa1zelzQ+t1FGKfkIdKUtbOVGezruC3Jki+OsbS6j/IiCIfWWN98VszjE0x /cwxSP+EjS1JPzIgAx+cUuMlkhAeNv/tUck3rs+D/uAskIBH6rqyN+Y7A7/NqyHxKd lfZI6iz6KBu/fw6zkUDXwpQIRxGCmdzzHS1NuWSY/kp4j5Zi1x6BSo/hPEsAW+n1HX ML/5BtYi0z4t6g6509KvKlOG1Q+4wcf1sxPjX6OjAXE+dbc87sG8/ZsrhaLOq2/fFY udJDCzIcmu9GuNUazMzupI/3D7o3O1m8YylENYzPDXqPCMnDZIUOV7CRD+v4ZA8dEl MgcTr+0KjzVEg== From: "Teddy Astie" Subject: =?utf-8?Q?[PATCH]=20x86/svm:=20Always=20flush=20TLB=20using=20TLB=5FCTRL=5FFLUSH=5FALL?= X-Mailer: git-send-email 2.50.1 X-Bm-Disclaimer: Yes X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2 X-Bm-Transport-Timestamp: 1753194037174 To: xen-devel@lists.xenproject.org Cc: "Teddy Astie" , "Jan Beulich" , "Andrew Cooper" , "=?utf-8?Q?Roger=20Pau=20Monn=C3=A9?=" Message-Id: X-Native-Encoded: 1 X-Report-Abuse: =?UTF-8?Q?Please=20forward=20a=20copy=20of=20this=20message,=20including=20all=20headers,=20to=20abuse@mandrill.com.=20You=20can=20also=20report=20abuse=20here:=20https://mandrillapp.com/contact/abuse=3Fid=3D30504962.b0cf1700dfea4608afdd89a472ee1c36?= X-Mandrill-User: md_30504962 Feedback-ID: 30504962:30504962.20250722:md Date: Tue, 22 Jul 2025 14:20:38 +0000 MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity teddy.astie@vates.tech) (identity @mandrillapp.com) X-ZM-MESSAGEID: 1753194064614116600 Content-Type: text/plain; charset="utf-8" Xen currently uses an ASID scheme where: - ASIDs are cycled where a "TLB flush" is performed - When ASIDs wrap around, perform a full TLB flush - In exceptional cases, stop using ASIDs However, the TLB control mode used only flushes the current active ASID of the logical processor. Which mean that will supply "stale" ASIDs (not flush= ed), because it hasn't been actually flushed (TLB_CTRL_FLUSH_ASID only performs a TLB flush of the ASID set in VMCB). This affects CPUs where flush-by-asid is available (Fam15h (2011) and later= ). To fix this, always flush all ASIDs even when flush-by-asid is available. Fixes: 64b1da5a2fcf ("x86/svm: Use flush-by-asid when available") Signed-off-by: Teddy Astie Reviewed-by: Jan Beulich Reviewed-by: Andrew Cooper --- This patch has been sent first at the security mailing list (security@xenpr= oject.org) which asked me to publish it publicly due to it being actually safe in prac= tice. xen/arch/x86/hvm/svm/asid.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/xen/arch/x86/hvm/svm/asid.c b/xen/arch/x86/hvm/svm/asid.c index 7977a8e86b..b2ca639539 100644 --- a/xen/arch/x86/hvm/svm/asid.c +++ b/xen/arch/x86/hvm/svm/asid.c @@ -46,9 +46,8 @@ void svm_asid_handle_vmrun(void) if ( vmcb_get_asid(vmcb) !=3D p_asid->asid ) vmcb_set_asid(vmcb, p_asid->asid); =20 - vmcb->tlb_control =3D - !need_flush ? TLB_CTRL_NO_FLUSH : - cpu_has_svm_flushbyasid ? TLB_CTRL_FLUSH_ASID : TLB_CTRL_FLUSH_ALL; + /* We can't rely on TLB_CTRL_FLUSH_ASID as all ASIDs are stale here. */ + vmcb->tlb_control =3D need_flush ? TLB_CTRL_FLUSH_ALL : TLB_CTRL_NO_FL= USH; } =20 /* --=20 2.50.1 Teddy Astie | Vates XCP-ng Developer XCP-ng & Xen Orchestra - Vates solutions web: https://vates.tech