From nobody Thu Sep 24 20:23:38 2026 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; 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; arc=pass (i=1 dmarc=pass fromdomain=citrix.com); dmarc=pass(p=reject dis=none) header.from=citrix.com ARC-Seal: i=2; a=rsa-sha256; t=1788531352; cv=pass; d=zohomail.com; s=zohoarc; b=KpFj63YWo4HuJTv92DwUXY3PnvKKPz3nGA4imgtm/Y57StLhcZ3dZGK6c6EjIp6tXdFsxbV5nrI1YGPJV9PqNSHE8HHCV0e+ERbHCML0UqoQYbET+ovSzveiTJiK6uwRxi6dDbjDbpq/Jj+WdbbArr3wyaBRNWxM7RstE/AQVnY= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1788531352; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=oAWojgnc1PX0meqiqPkIfh9aSER1BfswxCr1QfPRO50=; b=ca6D7U3t0zxOD9bVdgeLKHse+J3jXRyX6+Lkh7F5kKt0AZYgFmw71bDzX+i0bvojoXEf+N/J9/nEevy2BgMrHwk7i4J2UHg6E4ZgY0CEouiuJ8AIpYcLOxKNtz80hYtnri23I6wUD/rMcAinDG+OatdtZ0ZLiGf5fMGgOpiuyEQ= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass; 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; arc=pass (i=1 dmarc=pass fromdomain=citrix.com); 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 1788531352084228.457614798108; Fri, 4 Sep 2026 07:15:52 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1408561.1641056 (Exim 4.92) (envelope-from ) id 1x2Uhc-0001vp-AA; Fri, 04 Sep 2026 14:15:36 +0000 Received: by outflank-mailman (output) from mailman id 1408561.1641056; Fri, 04 Sep 2026 14:15:36 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1x2Uhc-0001vi-6l; Fri, 04 Sep 2026 14:15:36 +0000 Received: by outflank-mailman (input) for mailman id 1408561; Fri, 04 Sep 2026 14:15:35 +0000 Received: from mx.expurgate.net ([195.190.135.10]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1x2Uhb-0001vO-5X for xen-devel@lists.xenproject.org; Fri, 04 Sep 2026 14:15:35 +0000 Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp id 1x2Uha-00Ehtu-IU for xen-devel@lists.xenproject.org; Fri, 04 Sep 2026 16:15:34 +0200 Received: from [10.42.69.1] (helo=localhost) by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from ) id 6a9ad276-e002-0a2a0a5209dd-0a2a4501d956-48 for ; Fri, 04 Sep 2026 16:15:34 +0200 Received: from [40.107.208.31] (helo=PH0PR06CU001.outbound.protection.outlook.com) by tlsNG-d62444.mxtls.expurgate.net with ESMTPS (eXpurgate 4.57.1) (envelope-from ) id 6a9ad284-5984-0a2a45010019-286bd01fbc01-3 for ; Fri, 04 Sep 2026 16:15:34 +0200 Received: from CH8PR03MB8274.namprd03.prod.outlook.com (2603:10b6:610:2ba::5) by MW5PR03MB6957.namprd03.prod.outlook.com (2603:10b6:303:1a8::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.360.13; Fri, 4 Sep 2026 14:15:31 +0000 Received: from CH8PR03MB8274.namprd03.prod.outlook.com ([fe80::ebe2:32c1:d2be:a096]) by CH8PR03MB8274.namprd03.prod.outlook.com ([fe80::ebe2:32c1:d2be:a096%4]) with mapi id 15.21.0382.007; Fri, 4 Sep 2026 14:15:31 +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" 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" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=KoUugHMxOf6kIbWoNQFPCSvhopmfSpF7maR+rCot5xxSMWR/LxhEKDDr/19352ACE9TA/y2MRIunoflOELasi2YGaD0/3YwwAbDPhmeCoOw0gR3Na/54Gk6dz7zPFoHEEka4DQV4ZiapzU1BA1th/HItvzO9ykipPvw7/YRjwOl2UIuHisKXbNEO8ZdKxsnanTl+7fed+9rzV7ZOxyD9RWaCeV1HuvsDgKA7N1oyigWT3PzAEceV+xR1EJGssaOT+5nwZzK7+owV1w0LfS1vVpZZtomOSJz6ZALJMKJy5nZwn9o4ytApV1s48i+Q+nKuu6lUii0EAikoHClQ1KyBcg== 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=oAWojgnc1PX0meqiqPkIfh9aSER1BfswxCr1QfPRO50=; b=XWRbd8I9we6rpB0G8VsRD4ULdf5jX7k6RSDRYc+ld6AA6ET3jHLxE6ayk2qye0cv0PLluJWESFDRfAifqpFs6/iue/Ow8CDgLddQeIGHgoX6oDsNPYTUo1C9OV2GYUtXVb+4AqijVHhqwH7nVqzOTea3bKkeGB3pw8SmfZsp+NaM091sY2ohDFa96GXbjEfB8qWLoIXKzlOIHiMq37LL+Ovba6dLFUBCmHDDE+BwSNfEJVaobOnCFLjqJSFfRuH+1isPuxA1mL2LGXuBD9OoeqTU1ziZTNiBqyPqU9cKW9omdZ32JNjZEuhM4jXb9D3rmReEqKgWkwwMu462/cKQaA== 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 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=oAWojgnc1PX0meqiqPkIfh9aSER1BfswxCr1QfPRO50=; b=kh9iNkr3Vr8EPpuu+svjHH9U/0okjVD4EUZTipV2PKymqWPVUTEulmBCoOccq3cejn2Pwl24Uh2OZ9BJ+yKjTZRZ0devOgMKV10q2mYdrRHR6T+WgTAUUOrZ5AsbXmNYxJzN2f0eaCCWBMi2C9agokJIE1uigZ/K08PJG89wkHc= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=citrix.com; From: Ross Lagerwall To: xen-devel@lists.xenproject.org Cc: Ross Lagerwall , Paul Durrant , Jan Beulich , Andrew Cooper , =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= , Teddy Astie Subject: [PATCH v2 1/3] x86/viridian: Workaround Hyper-V GP fault writing to MSR Date: Fri, 4 Sep 2026 15:15:14 +0100 Message-ID: <20260904141516.367862-2-ross.lagerwall@citrix.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260904141516.367862-1-ross.lagerwall@citrix.com> References: <20260904141516.367862-1-ross.lagerwall@citrix.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: LO4P265CA0242.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:350::16) To CH8PR03MB8274.namprd03.prod.outlook.com (2603:10b6:610:2ba::5) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CH8PR03MB8274:EE_|MW5PR03MB6957:EE_ X-MS-Office365-Filtering-Correlation-Id: 4d7638cc-e6ea-4c72-0b85-08df0a8efa57 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|23010399003|1800799024|366016|10067099003|11063799006|18002099003|22082099003|56012099006; X-Microsoft-Antispam-Message-Info: Wp56Qn7AXtTqcy3g/hppy2hwg8RH+qoyD55zbnsybpVPXd8q0+vR3osIgJLu8bTUr4itkRtFJSePTAWSYj0O71b6ljrV16FnG+9n2AD5fkNcPr05G/kmRsfGXf7pc4gwbSwU99tH1eKzlpwt8KC9bg55ZN2CPnAz8E5XEwDgkEoPK7fH7sUuJ5HTPQSG0PWiTakCBK9wXV92mvIJWSFzalMy0mmHxYQJdVtTZQnwb3huUAI/W0n8EfH0P7Fv+r/xI+jblyjSdVgvF+wrUH98vLvIQEdn7TaG6GHai4+kG7PNZyX+u+dqadynEcA6M8lOnfOiNTHdUzBhtc4W+t5jcXQ1nev7JJXaZoYXQa8ZpYd52UOfE3DZHpBLOLC1ZoGg0TbnUGuPtcXO+OlzYWD6fDR+LG9ydZmtqkEjIoWO0zNjp1Xl1VRXOGvOc4yIDA4WqzAC5P4ujzF7mwu2fdOLtWeJjZkkyD4eEjLgMqFxrBHHXtWL8lIZgAVKhxHsP7hzYuwol49KT/oGE48lvrRnS9Z7a9e5I/5Bn6I9J5Yu8sDW8mszco6AHMQW32M9Gy1PcQ6TygxhhIGuT6BONeZ6jbKTOW/N242PVia0t54Zmud/Q+XLPlsVlsOunVEcIkvBHxVWTE2EUIhNugVc7/EAKg== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8274.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(23010399003)(1800799024)(366016)(10067099003)(11063799006)(18002099003)(22082099003)(56012099006);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?zybOA+dlOxhx7Qfak18Li3Sd2IsL2Jg09Q5S/E+J9uQbCSfRkIC9ZgOkbxti?= =?us-ascii?Q?OTNw2zhFhX4ehxGGYLqz2YbTFVj7787UiLtyve0KXDIYZZDbPg1waDuR6cLr?= =?us-ascii?Q?2BJYCf3gENXF+daWXbUbYW1o+HcGt5Jti1Rk29yJQr351cSwLmRLxC+iZ7ts?= =?us-ascii?Q?wowFj6GxbMra/SNufthEKWZPs05AHclV+ITti24/9nV3q89INgN+3rc5taMr?= =?us-ascii?Q?2e4St4ApIlrqv3hQU+kTeTiZ2ftpaGjN5QRYu6ElTWMThGKQvs9vmbMU24fD?= =?us-ascii?Q?RbweZj70nfGztkr6UL9pVHfGfmS8KoEJMqpszuegp2KjnnnEBfYI/tYDcviF?= =?us-ascii?Q?h5zxUSE5A+a1MjUEkmgNxRFsaWqd0C6G7gWxhTwJFTXg05t2e8Pt3jZZW1Id?= =?us-ascii?Q?505aPXO0rPo7NsDZ7PtTVBsrxXww3wgXfXqqTZ783UBHqSb6H8M7Q8U8vyJw?= =?us-ascii?Q?kgQxz68t89Atio5ZH1cNe9SNCkz0t1U/5u5mAa6pwN+SXThETAiA3q2GSJ+L?= =?us-ascii?Q?XF7wZQReuRl52AAdFGNDdiCGCqxwLVXbn9dbVqOxGEvamAKA9JWbb6YpE4Tq?= =?us-ascii?Q?yre7FDdWxWpPmJzaNvWH2Bj8AGsBDj7eMHghf/EnNbTSQRSBmnvhQDP+qKBT?= =?us-ascii?Q?tzmc4iaJQBI9HjV9s7PbuhUqGQkal0nb+OyKiXerIrSocJyFCjapPUNatyCA?= =?us-ascii?Q?HaiRAdb3OMqcZWmPdGN1TY5cubfra/tq390rq7JRPb63vyjKZ4rAfQn0m4gD?= =?us-ascii?Q?3DWrFf3JOSZaeNNxPx9Tjil06LMOXpILKCT7BK6gwHNxJitPi6vt+UfptE5T?= =?us-ascii?Q?22SlhrlcMEtc6AcF7Mn8/eZhnwpwX0tGfSEMN/jWjSCklFhDJxHyHybyzHoU?= =?us-ascii?Q?FOu5eGduVZtE1A+wnIgwnRwcnvUkwiiUzaR6UfSGu2KWDmVxTUXDsw9ULiOT?= =?us-ascii?Q?gzxXENs6dga78g8Y5+h05SVTijVFi7M2jdGpeqwfQsjDYvUVuB3/2qEkY1Iq?= =?us-ascii?Q?Rki12QFt8+Ifu1TYz/m8uBcqdg4UI3rbLmHISv1dFT5DM0zbwJpfgmZAs/qj?= =?us-ascii?Q?JG4tzFQ9+PJKP4awsc54o/KaOxhPgdI14YILopzzBZQOz11kDfEfyc1dCI13?= =?us-ascii?Q?pzDTbQXLKo2u9jhP31xsfiqPPppNdxURMJ9hkShbkA8jhwxYbdCQPyRpH3ue?= =?us-ascii?Q?dMNT8nji9ZNqreU5B48XOqJ7l0I+/LK9tspCO3G8N+SrRSIuBmIWmvBePvS1?= =?us-ascii?Q?jgiwa0lJcMpJcOXs2uBio8CEAOlrbUnOHrE7Wy9W2vDhp7NfOfmc59aIQzxx?= =?us-ascii?Q?a3pDN4iQZIh2FWhxI142aAUkIo1BVnmn/M0zZdwcICJThOROCE+3u6m0yfPq?= =?us-ascii?Q?FS7+cjfk9BMCvfkqeXjDMTF5FNEuGbeWnW1Qb28s2RR8yRsX2sp3tLuKMWlJ?= =?us-ascii?Q?GTOiWv9W7GjN50ElWB/Iz8hGa5opFBuv4Iz3yL9gp2rQRPRv23DpNnUFWC7y?= =?us-ascii?Q?NiyBEnHrDs+8jBQfBBcGYCeqRAlZHPhcekAMQsARaLZTcs301/nt1ZmTPHav?= =?us-ascii?Q?j7YHDExjk7i6eoPPVXwWyxCjZr1oh9BgErEF75Mtrjk7vJP07HfDP13MJa/G?= =?us-ascii?Q?0tL6LxZ+gOMCCqQQYrjtOPugJF4RN5+Zblg9pFq97kkd5ZOSJzK4WNeMA6HD?= =?us-ascii?Q?dGhCMdX0rmHZkewncsLhXvEvvWcskIBjo31MHLGsL2MfPjUdCS+nZocLY5xr?= =?us-ascii?Q?f8aUtjvmtfHaaFH1nCJcnyMXVe+cmmc=3D?= X-OriginatorOrg: citrix.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4d7638cc-e6ea-4c72-0b85-08df0a8efa57 X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8274.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Sep 2026 14:15:31.2111 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: DKYq1HfChJAnnYtW8FHf5mStycObAPL9nCMEXdjgYE8Ka2AyuKs4DBAYBbZzJE6QhfOClg1yxKRnBeGawUerUjt3sGsWjb/yxouikLMJFzI= X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW5PR03MB6957 X-purgate-ID: tlsNG-d62444/1788531334-1D87F757-12D9F311/0/0 X-purgate-type: clean X-purgate-size: 1490 X-ZohoMail-DKIM: pass (identity @citrix.com) X-ZM-MESSAGEID: 1788531354128158500 Content-Type: text/plain; charset="utf-8" The Viridian spec requires the vector to be >=3D 0x10 when writing to the SINTx MSR, otherwise it should #GP fault. The spec-defined initial value is 0x0000000000010000, i.e. the vector is 0. On startup, for some reason Windows 11 Hyper-V tries to set the MSR to the spec-defined initial value and since the vector is 0, it GP faults. To workaround this, treat the write as a no-op if the value is unchanged. Signed-off-by: Ross Lagerwall Acked-by: Jan Beulich --- In v2: Added a comment to clarify xen/arch/x86/hvm/viridian/synic.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/xen/arch/x86/hvm/viridian/synic.c b/xen/arch/x86/hvm/viridian/= synic.c index e6cba7548f1b..75b004440e58 100644 --- a/xen/arch/x86/hvm/viridian/synic.c +++ b/xen/arch/x86/hvm/viridian/synic.c @@ -157,6 +157,14 @@ int viridian_synic_wrmsr(struct vcpu *v, uint32_t idx,= uint64_t val) if ( !(viridian_feature_mask(d) & HVMPV_synic) ) return X86EMUL_EXCEPTION; =20 + /* + * Windows 11 Hyper-V (26H1) has been seen to write this MSR to + * its default value, despite not being a spec compliant value. + * Tolerate writes which have no change in value. + */ + if ( val =3D=3D vs->as_uint64 ) + break; + /* Vectors must be in the range 0x10-0xff inclusive */ new.as_uint64 =3D val; if ( new.vector < 0x10 ) --=20 2.53.0 From nobody Thu Sep 24 20:23:38 2026 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; 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; arc=pass (i=1 dmarc=pass fromdomain=citrix.com); dmarc=pass(p=reject dis=none) header.from=citrix.com ARC-Seal: i=2; a=rsa-sha256; t=1788531361; cv=pass; d=zohomail.com; s=zohoarc; b=Nx/9pClceQkxQ74BcuWrRIHfqed3NHsH05Rj2HPvWIM5UJEDFNQIKr20SXKkKc2pIZ8pcpZf5Xt76cGfJxweGvUAxFqWG7vlI7ZHS1sIxEzhAAaXnQkuC6Y+6T+K6ZYtWiKINLa7yUz26SfqstJdmUJ83tfFfrIbGavl0Vgi/MQ= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1788531361; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=QpE4bVBGUwH9EvsjPyq1mD2BzEXMSLIFuK5hnOBmzlQ=; b=hXF4223ZUATfOBmf+gLG1Hg5HgPAj4s/IrJ3jpQ+lIhArIuiYcqRCDSGA1Hu4UmeLKv467O4WAmNTkNa8fX5Co/XWzR475KikRXvCMOJpU4pLmwMQB6lql17m8b28hsdNeEYQl2iNc12sII2J0O4uDRkn+K/3tB4oUKwQNEGXKs= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass; 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; arc=pass (i=1 dmarc=pass fromdomain=citrix.com); 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 178853136170159.49163101602551; Fri, 4 Sep 2026 07:16:01 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1408562.1641065 (Exim 4.92) (envelope-from ) id 1x2Uhh-0002At-Fu; Fri, 04 Sep 2026 14:15:41 +0000 Received: by outflank-mailman (output) from mailman id 1408562.1641065; Fri, 04 Sep 2026 14:15:41 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1x2Uhh-0002Ak-Cv; Fri, 04 Sep 2026 14:15:41 +0000 Received: by outflank-mailman (input) for mailman id 1408562; Fri, 04 Sep 2026 14:15:40 +0000 Received: from mx.expurgate.net ([194.145.224.10]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1x2Uhg-0002A2-MB for xen-devel@lists.xenproject.org; Fri, 04 Sep 2026 14:15:40 +0000 Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp id 1x2Uhf-007o1s-IL for xen-devel@lists.xenproject.org; Fri, 04 Sep 2026 16:15:39 +0200 Received: from [10.42.69.2] (helo=localhost) by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from ) id 6a9ad26f-8faa-0a2a0a5109dd-0a2a4502a8ce-36 for ; Fri, 04 Sep 2026 16:15:39 +0200 Received: from [40.93.198.8] (helo=CY7PR03CU001.outbound.protection.outlook.com) by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.57.1) (envelope-from ) id 6a9ad289-6ca4-0a2a45020019-285dc6083325-3 for ; Fri, 04 Sep 2026 16:15:39 +0200 Received: from CH8PR03MB8274.namprd03.prod.outlook.com (2603:10b6:610:2ba::5) by MW5PR03MB6957.namprd03.prod.outlook.com (2603:10b6:303:1a8::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.360.13; Fri, 4 Sep 2026 14:15:36 +0000 Received: from CH8PR03MB8274.namprd03.prod.outlook.com ([fe80::ebe2:32c1:d2be:a096]) by CH8PR03MB8274.namprd03.prod.outlook.com ([fe80::ebe2:32c1:d2be:a096%4]) with mapi id 15.21.0382.007; Fri, 4 Sep 2026 14:15:36 +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" 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" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=EHP6iTHLSpa/GUYjC8ITUSgVZVEaBFcEWHjtqCh+oLluXuZ30sBxcyDA+UR17d9wZ9lQJziTNxMKOddo7lPcHYn33QcPGpWb+xp39u4PheYKlNsD5u1rFous72L0I5sw40iG8eq3Q1bVICJHY4vcJm8eV3P6l83PQP6rGQObxliOxS1pT/Z8UCuEkaS4hNfQ6GjcZr2MFZduqX1aZuJSZiuM/7GignXmSaslHhAtf4c0zUD9m4wOfzmx/t/OEDlk2pJNny1dncpGb/k6cyGIvaDiPtR1PS0x8OJMc8JcWfvkSUEA9TSctsxcwnCv9cAG/fmmMYDgI9z6U9YnruqGuw== 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=QpE4bVBGUwH9EvsjPyq1mD2BzEXMSLIFuK5hnOBmzlQ=; b=L4UpoAMrtQFstWtHJlUyZ0L5hmcCjZ/yguXEa7Do8+mEY+GJUyBBvl2NsWY6+AFxe0UfstjoCsEuU9ItXswK+vE3mc6O5OayEvBzfi9YgnxA+CTe1rttGJBqwSzE85MfZtrKxlU2xTk3rFwBZX2C84TrtqsagB4prAkrUmuzB+BeFO6wBUTRU5K6hyOaymZ/tD3d4h8jq0azu+6gi2yGWV/Nel8/vu0AqRsv6oRGIdDMV9jtnOkArTohLjK3UW28f8jWKkxOhLkG9FCfD36MbSPlPnq9gxKxrDRvzRcCEDGLhCTfdJ5Kp8dWmezD752pKXyeOCEuxkQh/f5TXkYT3w== 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 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=QpE4bVBGUwH9EvsjPyq1mD2BzEXMSLIFuK5hnOBmzlQ=; b=rOCzQkeF+1vFsAKBFjdoiG94Ez8CMDKpLPb+9ncD26OBkiilnHdATvgTV+67yEC6k7PV+kykmXtFN3CpSkpfeKrsQuNC/qp2N8FkTBe1JikKo5dDwZlhUPGd6ET/jYi0raoL9C4BJyHzTbeq3/aX1J/cSEvbi0RQxcmCPX5dMbU= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=citrix.com; From: Ross Lagerwall To: xen-devel@lists.xenproject.org Cc: Ross Lagerwall , Paul Durrant , Jan Beulich , Andrew Cooper , =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= , Teddy Astie , Anthony PERARD , Michal Orzel , Julien Grall , Stefano Stabellini Subject: [PATCH v2 2/3] x86/viridian: Implement synthetic timer direct mode Date: Fri, 4 Sep 2026 15:15:15 +0100 Message-ID: <20260904141516.367862-3-ross.lagerwall@citrix.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260904141516.367862-1-ross.lagerwall@citrix.com> References: <20260904141516.367862-1-ross.lagerwall@citrix.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: LO4P265CA0264.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:37c::15) To CH8PR03MB8274.namprd03.prod.outlook.com (2603:10b6:610:2ba::5) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CH8PR03MB8274:EE_|MW5PR03MB6957:EE_ X-MS-Office365-Filtering-Correlation-Id: 8e50b48f-50d6-4e26-1945-08df0a8efd3d X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|23010399003|1800799024|366016|10067099003|11063799006|18002099003|22082099003|56012099006; X-Microsoft-Antispam-Message-Info: m7L83IGCFDBdciGKZuhbUMb/N9RJn2LkqD+exi7m9DcQS3GqvTugc96+E+ecP9QOajz8hpF+VBTWHQIMcMSxvVO3FDJWWxTEezBpteNa5WLubN8dhJ/1KbajeWki5W2sHqkU0C1Icei+WJ9TvLrfm9jLCsvQeKmPxEr7KZ/U3F+zFHhTq8wRW5xwovIySq0z4NShamgva9AznZYzP6EUDVJ6InWtSUIaXXYMWA0YO0h1w7RTPzlpI19D3BTcZ9IFgUuc01jgUCPeqHjb3XAN4c/OXNaDfQAxWAZUzRYmNm/VeBN054UhQYF5MIR44ltU8oV/pXKc1/WAVCTxgFhqkhqwxIP6adz5LBbUrcongSpbpiD8APK1Dw1kPUnutp9+kktSz6oCSsdNMD3DpFjdEWaDtzEOFtnJVVqUOK1Wd57onc3UAxziJ9xUMZiw7d+rhXGShICFHR+7VGrELUgg6Z6tJlL19pbYM73Z5xTgsui0ck8/tk3Ljq2qMROqbsjCxaZfsN2t667UggcP3ZwSYALwzuYRt/krfwBoOM72gqYvdkkbq5PlRHqf4y2PBkJIebv/gpiFBavfzDCRBVPt5ciapW9e7B7yFvrmetdmI6Ard9dU7tu/C5Vf53cL3F/5Bii7FfUTJ283fTsLc7rrJPgmbzCHT/JuXpRCw8AV1Xg= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8274.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(23010399003)(1800799024)(366016)(10067099003)(11063799006)(18002099003)(22082099003)(56012099006);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?qMIHD4By5LdO63PXG8lUMvIISTvmSqmv1hVNASblns+Ci+Cmdekh0mORl6a6?= =?us-ascii?Q?MUrZMlBapyUhR2NoNzVElVWur+d9TqQZYCcDF9/OF9aCXVc37whPwnHPMZXq?= =?us-ascii?Q?dn6XDNY1pexmvRKX92gwPPWMioaUL7jXVzBEFOuORb95fcvqG084UFgZ0cO/?= =?us-ascii?Q?TLMH7AUhzJufUnxrXKoECW/HiCvAWiJPvAiD/J9skVXZJs/4pV/aijzkRpzn?= =?us-ascii?Q?Ljzor0SU2ZoUlZsF5rK5WQTQDiGpQ0aD1pi9R3ErF1tiDnijLHWdz96618qw?= =?us-ascii?Q?RXqtq6LPxiydeifp4w1NIvs8r8k1qweyFvHudNkgPv5MgYVuRARIxcalOutp?= =?us-ascii?Q?/9Z32V39Yp5Bi0AdjxoyPB/pNqqHuKl+tkHD3wtzRL7zcTO5DLG6+GVsRfAp?= =?us-ascii?Q?zXknUzv8jsiUwAC0Pt1iUzBxyUPqNKOjd7MvzglJofW/N+QTSVUorbdnQd+/?= =?us-ascii?Q?yqqeR1NWQ0BiWRWJnMhbf/HBA3f+piR+fxkqeFrXBthzCU/vAcOz+3Ya5zCe?= =?us-ascii?Q?lVWWIU+CD0vQim36K+DwtoIVpKjfT5fcaZ8mlL9XoB1trGOdOD1+jrkVbepl?= =?us-ascii?Q?mYuInNYg6UI0shPRl3lly0kLYrUh6BBPxdGpn5nTa1iV9Wd4kV2dtJCvyFTd?= =?us-ascii?Q?Bre/w6LyeX2hSJowZG7VDYJFEa6bc/Vec4qT832jQxOEsm+Lp7dglGUWDpRG?= =?us-ascii?Q?h1O/hWLw3t0cR49LifTcpNYFcoetGfBm/Zr0hxFvq8q3vUtFqHyVCSkxVQCl?= =?us-ascii?Q?KsPX15auBxTlWC3Se5Ql5nCXOnxpaQevu91hTSgJ3PXN27KSaHsY5t3bbLie?= =?us-ascii?Q?XEdyO3PwYiSHUxEDSJ4uTYWu4/mvFPJyQNzRCpPZdoMsl4QN6J4ggTw7ndJX?= =?us-ascii?Q?KkqXCrCqimPWVvAzSyaWRrhKG1eRGbTNWGH1TeNhFa6Gd5PSLg7ciwytuW+x?= =?us-ascii?Q?9v+jY6Yv7ea++dfY9VWgnUowDS38NPfXGQxStZFMliERusJHvxzhNN7NgfLp?= =?us-ascii?Q?6yGqYmP5yia6Lvkpl/oa27zCjMppHF1UMv5YfC06G4P57KjL+vHButryLq2/?= =?us-ascii?Q?lvkLjX6h43KgPN6RVGlqfn8II0FOep7sNUW6OtnPd52up6fT5U66knaWsOm4?= =?us-ascii?Q?KJYzW3cwnAbd/vWrSUxqge8H8TxVepGJuJL4QYK7zqZ2e/RQWa5lEvTN0L1q?= =?us-ascii?Q?8kIwHIu070m8lKhzsPTtslNkQ0bXFJFWXf9sKqnLJOEZ+O4wEtA1seqNLoAl?= =?us-ascii?Q?gUiHgtQ9m637uH2C4PgGC/Ok976O6Vv1qGhxtx5mpxz61RlRg4ENGVbSbAwr?= =?us-ascii?Q?b+xjw/2sm3t9KUWzLZzfQUXUq53fd5oITYhz5CiN0fNqysGgAQoM0Y7o3scz?= =?us-ascii?Q?Wy5eQHC6WMe5m1lkqWGZ7herjbRtIYbVUyQCvZPLKlVGrjyFhWbxbwoBz6jU?= =?us-ascii?Q?k39zgyx4FwhUnc3qQKYRmrzscL+NvMaUHAIGJ4M4kUrrVohVXJAG7Aj7IvjC?= =?us-ascii?Q?cpAyYoz0PmBtPneb4+k6f0ImLXFKWsdTCCKhfpPeojLumUQTGjysf7A3vMz0?= =?us-ascii?Q?0FG94BjN/k2dYmX59T3h7qx+fq2Pt/MrFocOTKZqHBy916ktAFLz6TYmR6v/?= =?us-ascii?Q?hvWKTBVLecyzYWTaff9SJwcKYbTb+/FCsNzktn78TpGi3aRG3INuUgFt9Xxc?= =?us-ascii?Q?YNfBHi2Tdi7epb07ZnNOjQvvGpTIb8XLKI6KVIxvfp8C2J1g/Ulxhc9xtJrR?= =?us-ascii?Q?z+oyDGqRAK/ze9UTsYHKW6RXbS7k69M=3D?= X-OriginatorOrg: citrix.com X-MS-Exchange-CrossTenant-Network-Message-Id: 8e50b48f-50d6-4e26-1945-08df0a8efd3d X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8274.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Sep 2026 14:15:36.0961 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: ovSZuJWg+JJX0/U9OrMQuOS24Wc4cWh+nqVkH+JcFOrBbUAKarustAGU+6PX6o8notXIzH8cTCoPsYuJHiN5X6HAD5uHvEmHH8x9F+cs0T4= X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW5PR03MB6957 X-purgate-ID: tlsNG-720697/1788531339-F3CBA2AC-7EF75AB7/0/0 X-purgate-type: clean X-purgate-size: 6017 X-ZohoMail-DKIM: pass (identity @citrix.com) X-ZM-MESSAGEID: 1788531363684158501 Content-Type: text/plain; charset="utf-8" In direct mode, the timer asserts an interrupt on expiration rather than using a SynIC message. It is useful to implement this since Windows 11's Hyper-V can only use synthetic timers in direct mode. Signed-off-by: Ross Lagerwall --- In v2: * Handle migration from older Xen by introducing a new Viridian flag. * Added more sanity checks during MSR write and vCPU context load. xen/arch/x86/hvm/viridian/time.c | 46 ++++++++++++++++++++++++---- xen/arch/x86/hvm/viridian/viridian.c | 3 ++ xen/include/public/hvm/params.h | 7 ++++- 3 files changed, 49 insertions(+), 7 deletions(-) diff --git a/xen/arch/x86/hvm/viridian/time.c b/xen/arch/x86/hvm/viridian/t= ime.c index 082528dc9416..4c8352612b19 100644 --- a/xen/arch/x86/hvm/viridian/time.c +++ b/xen/arch/x86/hvm/viridian/time.c @@ -223,6 +223,14 @@ static void start_stimer(struct viridian_stimer *vs) set_timer(&vs->timer, timeout + NOW()); } =20 +static void stimer_deliver_direct(struct vcpu *v, const struct viridian_st= imer *vs) +{ + struct vlapic *vlapic =3D vcpu_vlapic(v); + + if ( vlapic_enabled(vlapic) ) + vlapic_set_irq(vlapic, vs->config.apic_vector, 0); +} + static void poll_stimer(struct vcpu *v, unsigned int stimerx) { struct viridian_vcpu *vv =3D v->arch.hvm.viridian; @@ -242,9 +250,11 @@ static void poll_stimer(struct vcpu *v, unsigned int s= timerx) if ( !test_bit(stimerx, &vv->stimer_pending) ) return; =20 - if ( !viridian_synic_deliver_timer_msg(v, vs->config.sintx, - stimerx, vs->expiration, - time_ref_count(v->domain)) ) + if ( vs->config.direct_mode ) + stimer_deliver_direct(v, vs); + else if ( !viridian_synic_deliver_timer_msg(v, vs->config.sintx, + stimerx, vs->expiration, + time_ref_count(v->domain))= ) return; =20 clear_bit(stimerx, &vv->stimer_pending); @@ -361,6 +371,7 @@ int viridian_time_wrmsr(struct vcpu *v, uint32_t idx, u= int64_t val) case HV_X64_MSR_STIMER2_CONFIG: case HV_X64_MSR_STIMER3_CONFIG: { + union hv_stimer_config new; unsigned int stimerx =3D (idx - HV_X64_MSR_STIMER0_CONFIG) / 2; struct viridian_stimer *vs =3D &array_access_nospec(vv->stimer, stimerx); @@ -368,11 +379,18 @@ int viridian_time_wrmsr(struct vcpu *v, uint32_t idx,= uint64_t val) if ( !(viridian_feature_mask(d) & HVMPV_stimer) ) return X86EMUL_EXCEPTION; =20 + new.as_uint64 =3D val; + if ( new.direct_mode && + !(viridian_feature_mask(d) & HVMPV_stimer_direct) ) + return X86EMUL_EXCEPTION; + stop_stimer(vs); =20 vs->config.as_uint64 =3D val; =20 - if ( !vs->config.sintx || !vs->count ) + if ( (vs->config.direct_mode && + (vs->config.sintx || vs->config.apic_vector < 0x10)) || + (!vs->config.direct_mode && !vs->config.sintx) || !vs->count ) vs->config.enable =3D 0; =20 if ( vs->config.enable ) @@ -583,8 +601,24 @@ void viridian_time_load_vcpu_ctxt( =20 vs->config.as_uint64 =3D ctxt->stimer_config_msr[i]; vs->count =3D ctxt->stimer_count_msr[i]; - if ( !vs->config.sintx || !vs->count ) - /* Reject enabling with a zero sintx or count fields. */ + + if ( vs->config.direct_mode && + !(viridian_feature_mask(v->domain) & HVMPV_stimer_direct) ) + { + /* + * Old Xen didn't support direct mode but it could still be en= abled + * in the MSR. Disable it now to avoid unexpected behaviour. + */ + vs->config.direct_mode =3D 0; + } + + if ( (vs->config.direct_mode && + (vs->config.sintx || vs->config.apic_vector < 0x10)) || + (!vs->config.direct_mode && !vs->config.sintx) || !vs->count ) + /* + * Disable if sanity checking direct mode / sintx / APIC vector + * fails, or if the count is zero. + */ vs->config.enable =3D 0; } } diff --git a/xen/arch/x86/hvm/viridian/viridian.c b/xen/arch/x86/hvm/viridi= an/viridian.c index 90e749ceb581..90be5842b995 100644 --- a/xen/arch/x86/hvm/viridian/viridian.c +++ b/xen/arch/x86/hvm/viridian/viridian.c @@ -78,6 +78,7 @@ typedef union _HV_CRASH_CTL_REG_CONTENTS #define CPUID3D_CPU_DYNAMIC_PARTITIONING (1 << 3) #define CPUID3D_CRASH_MSRS (1 << 10) #define CPUID3D_SINT_POLLING (1 << 17) +#define CPUID3D_STIMER_DIRECT_MODE (1 << 19) =20 /* Viridian CPUID leaf 4: Implementation Recommendations. */ #define CPUID4A_HCALL_REMOTE_TLB_FLUSH (1 << 2) @@ -185,6 +186,8 @@ void cpuid_viridian_leaves(const struct vcpu *v, uint32= _t leaf, res->d |=3D CPUID3D_CRASH_MSRS; if ( viridian_feature_mask(d) & HVMPV_synic ) res->d |=3D CPUID3D_SINT_POLLING; + if ( viridian_feature_mask(d) & HVMPV_stimer_direct ) + res->d |=3D CPUID3D_STIMER_DIRECT_MODE; =20 break; } diff --git a/xen/include/public/hvm/params.h b/xen/include/public/hvm/param= s.h index 99c40b4287f1..4db5142970c2 100644 --- a/xen/include/public/hvm/params.h +++ b/xen/include/public/hvm/params.h @@ -159,6 +159,10 @@ #define _HVMPV_cpu_hotplug 12 #define HVMPV_cpu_hotplug (1 << _HVMPV_cpu_hotplug) =20 +/* Enable STIMER direct mode */ +#define _HVMPV_stimer_direct 13 +#define HVMPV_stimer_direct (1 << _HVMPV_stimer_direct) + #define HVMPV_feature_mask \ (HVMPV_base_freq | \ HVMPV_no_freq | \ @@ -172,7 +176,8 @@ HVMPV_hcall_ipi | \ HVMPV_ex_processor_masks | \ HVMPV_no_vp_limit | \ - HVMPV_cpu_hotplug) + HVMPV_cpu_hotplug | \ + HVMPV_stimer_direct) =20 #endif =20 --=20 2.53.0 From nobody Thu Sep 24 20:23:38 2026 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; 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; arc=pass (i=1 dmarc=pass fromdomain=citrix.com); dmarc=pass(p=reject dis=none) header.from=citrix.com ARC-Seal: i=2; a=rsa-sha256; t=1788531367; cv=pass; d=zohomail.com; s=zohoarc; b=aYUrm8i6pFq9iHWudjwMuTuefYwtTB2dbgnYSJQvY39cbC2yPSkY2cwWmnGXTBmylR6Xpb0MuXXH5LTi+VUYDjqt4evYcx22EhJFYZe3Es61rFlcu90EHjCombjDYsns7hBGa429aDujrAEhR4wzVOGczAu7M9/IXvYDG5bHscQ= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1788531367; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=GciZW9ECljd9rNpwA8gaFSi7EI+SgMi2NmfDY0Gfoqg=; b=dnAKnlTVkzeBGcOjjme7Qt/mhncmJ3vDv7dSLRrBf3Mxth78Tp6S2ZAlvZ6IXEP2coc4Epgk2vwxTiAPKXLvrGuxgiCXwje+mcErCrjY/exJig0u7WIC3lUpRzrWUA3VGVzTMTnQ2/F5E/NnCT2aq+DuPxIMhxb+SFYsLti7HDM= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass; 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; arc=pass (i=1 dmarc=pass fromdomain=citrix.com); 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 1788531367624405.36282076207294; Fri, 4 Sep 2026 07:16:07 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1408566.1641075 (Exim 4.92) (envelope-from ) id 1x2Uhv-0002f9-Ra; Fri, 04 Sep 2026 14:15:55 +0000 Received: by outflank-mailman (output) from mailman id 1408566.1641075; Fri, 04 Sep 2026 14:15:55 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1x2Uhv-0002f1-N2; Fri, 04 Sep 2026 14:15:55 +0000 Received: by outflank-mailman (input) for mailman id 1408566; Fri, 04 Sep 2026 14:15:54 +0000 Received: from mx.expurgate.net ([194.145.224.10]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1x2Uhu-0002bb-MT for xen-devel@lists.xenproject.org; Fri, 04 Sep 2026 14:15:54 +0000 Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp id 1x2Uhu-00H9Wx-39 for xen-devel@lists.xenproject.org; Fri, 04 Sep 2026 16:15:54 +0200 Received: from [10.42.69.10] (helo=localhost) by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from ) id 6a9ad299-2eae-0a2a0a5409dd-0a2a450aba1e-2 for ; Fri, 04 Sep 2026 16:15:53 +0200 Received: from [52.101.62.35] (helo=DM5PR21CU001.outbound.protection.outlook.com) by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.57.1) (envelope-from ) id 6a9ad28e-f2d2-0a2a450a0019-34653e23f6ab-3 for ; Fri, 04 Sep 2026 16:15:43 +0200 Received: from CH8PR03MB8274.namprd03.prod.outlook.com (2603:10b6:610:2ba::5) by MW5PR03MB6957.namprd03.prod.outlook.com (2603:10b6:303:1a8::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.360.13; Fri, 4 Sep 2026 14:15:39 +0000 Received: from CH8PR03MB8274.namprd03.prod.outlook.com ([fe80::ebe2:32c1:d2be:a096]) by CH8PR03MB8274.namprd03.prod.outlook.com ([fe80::ebe2:32c1:d2be:a096%4]) with mapi id 15.21.0382.007; Fri, 4 Sep 2026 14:15:39 +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" 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" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=N4MibUNStijVAbBl3lEuyqWbio0M2eadhCXsILbfy3VYdItVWB9fba8pDJW3rUiPmmEs8SyXzANMJ+3DLkIxKPHAUoKkbSYxiVlN9EUrk5u9n7RNOzbf9pM8xji7b7Fb+mU9tP6vJuwbA7R507QzBRZ77qA1Dn9YUYeZZmmDjp+Q/Ag8bxAa7yOtOgiNjvi8UPXDZEpI+XKbJVXjxQTFtAOUVxxyQorajGCjY4331xmFYwBbuw4QTDNkk1iznELbGvX40uGqpWn5XlulpzwYM92gi7BjoeOma6ZSRPi0R79oj23Hv+tkLapf6TijaM85/yRHFwBrS2JGa5BXksNhYg== 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=GciZW9ECljd9rNpwA8gaFSi7EI+SgMi2NmfDY0Gfoqg=; b=DScnDJa407pDB0vR8dHRrVrPmmjuasx5btNEZMlpPOsi+MIF+NWldv1Vhnb1HVpoUhxX02i2xXa71S6/vwfKhOfabES+GH0DRY3B+7WukRQmpRpTXH3J5kO7We86R6ya3lN22l/fNZpuw+ZOFYdh9jZwh7MQHZIE2zxt9TeEkGB+kDzaJPqHqH/nbVxHu/jU6TaVYWHVdsdfdYsViw4/fYAn6ozVohqDFJEAZJOXiEQ2K5KfiG9PSJs1V33d5mmGVy1wRsgYZzmhhWLppt11V5OVDC1jN7igy9FZ/71JSJW+04ZSBtxPzMhQau/Qly66pBUYTc/GjFFHCKLN4ApmAA== 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 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=GciZW9ECljd9rNpwA8gaFSi7EI+SgMi2NmfDY0Gfoqg=; b=rTpKYcjfodEl3YU0RQPCd5nD4tMQRs41JlXkWxTikULsjto3m0iXcRFd0+2zjI4P1Df3IwH/1uC0dPwSxskrdPzr58LZ7ddOgBBG0w9dMeoqDE9/nNU0+3fQLdHReFYMJyNUaC19fH/deec0H5cUtwZPQDc/C6799jmmHSuGVO4= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=citrix.com; From: Ross Lagerwall To: xen-devel@lists.xenproject.org Cc: Ross Lagerwall , Anthony PERARD , Juergen Gross Subject: [PATCH v2 3/3] tools/libxl: Add support for Viridian stimer direct mode Date: Fri, 4 Sep 2026 15:15:16 +0100 Message-ID: <20260904141516.367862-4-ross.lagerwall@citrix.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260904141516.367862-1-ross.lagerwall@citrix.com> References: <20260904141516.367862-1-ross.lagerwall@citrix.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: LO4P265CA0267.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:37c::7) To CH8PR03MB8274.namprd03.prod.outlook.com (2603:10b6:610:2ba::5) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CH8PR03MB8274:EE_|MW5PR03MB6957:EE_ X-MS-Office365-Filtering-Correlation-Id: 0d69cbc8-9a61-4394-ad48-08df0a8eff13 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|23010399003|1800799024|366016|6133799003|10067099003|11063799006|18002099003|22082099003|56012099006; X-Microsoft-Antispam-Message-Info: I6suOUyqFOknWpI3ZlKXQoMp3ZcVewiVLvSW/7goqnIwbwSraP8s2+JR0sI1YFOpzvb0nuKcUIkzfzG6+bkvPo/lmphmKKeQtzOTNCqLBK+VuCtlyMe+Wn7Hw4IoqjxacP+BMLBsH/U0kUcsnvx1SKOrAmvX3qWSnyJUCT+jTaUuvRrrF5SHASPhIkpQz7I5mN0gt2oNlJ0InqbknbRj/+m1/Jt5brq6MfF2y2QU12eSi1qt62nRI+5wRLsiKnbCcjU2RjN8wfZYa2/gxA+hnq1+ivUnA5vBukBuF7iPvRLkxjUjaZZV1lcl3gcCOpOPt/0UZQkE8Nb5HOIajRB7C+DF1tmL1z+pdckQcJdAhUin/h+6UAzOMAauCbCQg5SmPozvGsW1NVH4aSpZyaTt8p6+W2RC/rQqJ5C9XCfuuqxw37JSdLJ9UicdHWEhW36/t38w4zZ8kGHlZOAWPRX9eSV+S7oGxSl069bngiwbURZZM6Q3kEpr4vLknFS5OQY9HTcljtgVAQNexAyQ0aQSf9cTATgCulsEVSWoZvV4QEMvEPn3KLdJhSf6o5iCT89QvcYuliM7xtA8Qg4gzaLEVJ1AGuhmocrZ6K+PFJppfu3jLoqaS6n5OW6TCSp02KhkwWwdvpC/Kj/FfovM/21i3MspQDIazkkkQLfNcCmuZRg= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH8PR03MB8274.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(23010399003)(1800799024)(366016)(6133799003)(10067099003)(11063799006)(18002099003)(22082099003)(56012099006);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?sY4ZbLdxQX8y5zbqxrX+9gWg2qK3l2UNxkzrEwtn6keUSMpHJeNA7mHwsEjf?= =?us-ascii?Q?fBi5Rpdr5FUi4WMkBxxeN2tsUk2VtFKzkz6UOuRRlyO/QgkseoJC7EQIwZh2?= =?us-ascii?Q?XlfzX/+K+HM7AWczy8XC7StYYlYXcpYTMATCJJ3CELeb1HddFOBUgZFu/Cs1?= =?us-ascii?Q?Cg11mq4C2V1HUg+jOeVjo65dZpiQ/tJ9eJAE3ex4rHPiB7kTvSO7Hi/xru2I?= =?us-ascii?Q?cn1edphUXKS/6NuGB3V5d1ETmpL57QaTn2purqQ2xBeMpEz5YEh4oE5y97QX?= =?us-ascii?Q?SQh01wxnseIaKszgipV1G8TAX8q9gquRkxwRGCr38hP4L/wIzour1ZX17PGH?= =?us-ascii?Q?AEeZba5PQ4QrsobHNpN3q7mt26mblaunOhwLlq0lYVNNzunRZD91G4rqEs0R?= =?us-ascii?Q?OvLxIq3l1M47f9LqPH4l5lbIGLpGTDExdG54pqOaF/HdrUPqo5AOQ7qNBvr1?= =?us-ascii?Q?VT9fSeiaigWWZQCvkQ3XeUIBd5wEUG0snztm2cu3RZ2e3mwOe0VIXjype/AF?= =?us-ascii?Q?X0S0FYwMEqolMDIP6bRHg+5p4EseJ5qqlJfJI9/SCIpz5wg6qiyLXqOyNagA?= =?us-ascii?Q?uNzrRmHcStgN8tflM82m/q1s6FSf1imPtZ4o7eMBvBgETjN5LCJK4cdo+FfE?= =?us-ascii?Q?MCiEVEHTSAc3OMQz1liLLk5/KC9s1w+4O2XAK6/4ixsDiLhtzQCmWa53Wfy6?= =?us-ascii?Q?N+I7+gJGbXhueJdSF0fVPiJmmxu8Wpu4e0vLRVXkVPN/q7JSgzT4e0FwkyWd?= =?us-ascii?Q?YJJoHBbNN0EgacGtdxlLkWkrV7kx4WlaospdnLhAgooMyBF0NwcnOn2FNOa+?= =?us-ascii?Q?orqWQlckyu0C4fH4w/szEI8FkNdb9u8981n6q0DKKT+E6cYnWZjPDnTkznao?= =?us-ascii?Q?bXkPSthttGvEwKQ5TK8vXn5Ux3ghgQLMJU6ldLtuytek7reyHFmPYHy2eUDq?= =?us-ascii?Q?5gfGM4XpUVNQMPij1BN0R5qm6dCRf2GxID1DwTcHl6yoxhf8rWjbdCwF2PAt?= =?us-ascii?Q?3nSQ1gw/asvskr8ojqm77P8Jev22qm8zCypa9E7KaHVrn+Dxt0o11SGbMN+R?= =?us-ascii?Q?TupbeYBU57sg2GJ8lfgGPATzDBDXD0UoDygFes9yv0eFj2yrnOYhW34CsQXM?= =?us-ascii?Q?j7fyoh5WGfvMUMggamt9Eb7Px2YdfZUg+Q6/6fBgdpPhVT6tWaQt79+GkLv0?= =?us-ascii?Q?sNSWaFTLHR1RIqpAsOUwh83zJduCrk8yFebbSV3ykHrhwuAxigvrHg3QQZ01?= =?us-ascii?Q?3sRLrXXBDmDNfeu+sPKM2T/fAK6l+bUelEEXh2AE59MdszRxKlMIrxhFh3bM?= =?us-ascii?Q?DdZvj6EgjGzf6j5igqhKPv8gVv/RDYzvi/R75e7ZnxeM/+7Ps5XwGrB//fh8?= =?us-ascii?Q?todO1y3IiTfGIIstcmcTSUZ7bNmhZy1D1qQG1hGplGfWJadnKEgoEwaSqdNt?= =?us-ascii?Q?Ib9l8lVL6UAFKjrTZrac73+pIdpJNFsp4hrI5m4GrrC9qtjF1O7xkoBV6BzN?= =?us-ascii?Q?F3C1P80jujJZDNow6RLytVS5T6IXj09M32rhazYdSyBs1kX62ELFnlmjOEXP?= =?us-ascii?Q?o85FgQmUXiiLtI8AGDWV5M9qWqFEIqCqvzFbz0UXdrhdzXuVYXH7F+E/epDQ?= =?us-ascii?Q?4SF1sHm0Qm/X9lORsGeQ/zQqolAlabgrOIOp6uFJZed9SgNkbbyRvKN33V1i?= =?us-ascii?Q?VHeQWcQOxDilL86O24R7hBufVTKXUFjz/CtNKZZFGKQT3Wnp2XDFMSzd/WWS?= =?us-ascii?Q?UvVrzhar46C63a41mhkKdIRPHqqDyQA=3D?= X-OriginatorOrg: citrix.com X-MS-Exchange-CrossTenant-Network-Message-Id: 0d69cbc8-9a61-4394-ad48-08df0a8eff13 X-MS-Exchange-CrossTenant-AuthSource: CH8PR03MB8274.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Sep 2026 14:15:39.1659 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: KnX0NFx4INzq+0W5qC7bVJhHN1u41UBzmY8kttV7SVTqpMS/REkJohNxexk0Tvt5iEYoYcXqje9FuEE7nQ7wORy2hErncyAJWyeV9vIY0b4= X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW5PR03MB6957 X-purgate-ID: tlsNG-4011c0/1788531346-58FC6CFC-D793F6DE/0/0 X-purgate-type: clean X-purgate-size: 2779 X-ZohoMail-DKIM: pass (identity @citrix.com) X-ZM-MESSAGEID: 1788531369617158500 Content-Type: text/plain; charset="utf-8" Add support to libxl for using the stimer enlightenments in direct mode. Signed-off-by: Ross Lagerwall --- New in v2, since the new Viridian flag was added. docs/man/xl.cfg.5.pod.in | 5 +++++ tools/include/libxl.h | 6 ++++++ tools/libs/light/libxl_types.idl | 1 + tools/libs/light/libxl_x86.c | 5 +++++ 4 files changed, 17 insertions(+) diff --git a/docs/man/xl.cfg.5.pod.in b/docs/man/xl.cfg.5.pod.in index d34951edb98d..784e926c9990 100644 --- a/docs/man/xl.cfg.5.pod.in +++ b/docs/man/xl.cfg.5.pod.in @@ -2496,6 +2496,11 @@ ticks and hence enabling this group will ensure that= ticks will be consistent with use of an enlightened time source (B or B). =20 +=3Ditem B + +This set is the same as the B set but additionally supports +using synthetic timers in direct mode. + =3Ditem B =20 This set incorporates use of a hypercall for interprocessor interrupts. diff --git a/tools/include/libxl.h b/tools/include/libxl.h index 7c098edab663..5475530a5002 100644 --- a/tools/include/libxl.h +++ b/tools/include/libxl.h @@ -381,6 +381,12 @@ */ #define LIBXL_HAVE_VIRIDIAN_HCALL_IPI 1 =20 +/* + * LIBXL_HAVE_VIRIDIAN_STIMER_DIRECT indicates that the 'stimer_direct' va= lue + * is present in the viridian enlightenment enumeration. + */ +#define LIBXL_HAVE_VIRIDIAN_STIMER_DIRECT 1 + /* * LIBXL_HAVE_BUILDINFO_HVM_ACPI_LAPTOP_SLATE indicates that * libxl_domain_build_info has the u.hvm.acpi_laptop_slate field. diff --git a/tools/libs/light/libxl_types.idl b/tools/libs/light/libxl_type= s.idl index a7893460f013..95075f04fe45 100644 --- a/tools/libs/light/libxl_types.idl +++ b/tools/libs/light/libxl_types.idl @@ -260,6 +260,7 @@ libxl_viridian_enlightenment =3D Enumeration("viridian_= enlightenment", [ (10, "ex_processor_masks"), (11, "no_vp_limit"), (12, "cpu_hotplug"), + (13, "stimer_direct"), ]) =20 libxl_hdtype =3D Enumeration("hdtype", [ diff --git a/tools/libs/light/libxl_x86.c b/tools/libs/light/libxl_x86.c index 60d4e8661c93..9e8b48372d63 100644 --- a/tools/libs/light/libxl_x86.c +++ b/tools/libs/light/libxl_x86.c @@ -389,6 +389,11 @@ static int hvm_set_viridian_features(libxl__gc *gc, ui= nt32_t domid, if (libxl_bitmap_test(&enlightenments, LIBXL_VIRIDIAN_ENLIGHTENMENT_CP= U_HOTPLUG)) mask |=3D HVMPV_cpu_hotplug; =20 + if (libxl_bitmap_test(&enlightenments, + LIBXL_VIRIDIAN_ENLIGHTENMENT_STIMER_DIRECT)) + mask |=3D HVMPV_time_ref_count | HVMPV_synic | HVMPV_stimer | + HVMPV_stimer_direct; + if (mask !=3D 0 && xc_hvm_param_set(CTX->xch, domid, --=20 2.53.0